1. Wymień cechy algorytmu i sposoby jego reprezentacji.  
 
Algorytm – ciąg jasno zdefiniowanych czynności koniecznych do wykonania pewnego rodzaju zadań. 
 
Cechy:  
Poprawność (algorytm daje poprawne wyniki)
Jednoznaczność (daje takie same wyniki przy takich samych danych wejściowych)
Skończoność (wykonuje się w skończonej ilości kroków)
Sprawność (algorytm działa szybko i potrzebuje jak najmniej zasobów)
 
Sposoby reprezentacji: 
Zapis słowny
Schemat blokowy
Pseudokod
 
 
 
2. Omówić zagadnienie asymptotycznej złożoności obliczeniowej algorytmów. Podać standardowe notacje 
rzędu złożoności. 
 
Asymptotyczna  złożoność  obliczeniowa  algorytmu  –  oszacowanie  dla  dostatecznie  dużych  danych 
wejściowych rzędu wielkości liczby operacji lub czasu działania algorytmu  
 
Notacje rzędu złożoności:  
Notacja O (omikron) – jest to ograniczenie funkcji z góry (asymptotyczna granica górna). Służy do
szacowania czasu działania algorytmu w przypadku pesymistycznym.
Notacja Θ (teta) – jest to ograniczenie funkcji z góry i dołu. Asymptotyczne oszacowanie dokładne.
Notacja  Ω  (omega)  –  ograniczenie  funkcji  z  dołu  (asymptotyczna  granica  dolna).  Służy  do 
oszacowania działania algorytmu w najlepszym przypadku. 
3. Algorytmy sortowania oraz charakterystyka ich złożoności obliczeniowej.  
 
Sortowanie bąbelkowe O(n
2
) – porównywanie dwóch kolejnych elementów i zamiana ich kolejności
Sortowanie przez wstawianie O(n
2
) – wstawianie elementu w odpowiednie miejsce w liście
Sortowanie przez scalanie O(n log(n)) – dzielimy listę na pół, do każdej części stosujemy ponownie
aż do 1 elementu, na koniec łączymy posegregowane podciągi w jeden
Sortowanie szybkie Θ(n log(n)), pesymistyczny O(n
2
) – wybieramy element średni, mniejsze
wartości na lewo, większe na prawo aż do pojedynczego elementu
4. Przedstawić iteracyjne oraz rekurencyjne struktury algorytmiczne. Dokonać porównania. 
 
Rekurencja jest  techniką programowania, dzięki której  funkcja jest w stanie w swoim  ciele wywołać samą 
siebie.  Dzięki  niej  łatwo  jest  wykonać  wiele  zadań,  w  których  potrzeba  jest  wyników  cząstkowych  do 
obliczenia całości.  
 
Iteracja  to  czynność  wielokrotnego  powtarzania  tej  samej  instrukcji  w  pętli.  W  odróżnieniu  od  rekurencji, 
która  działa  "od  góry",  iteracja  do  obliczenia  n+1-szej  wartości  wykorzystuje  poprzednią,  n-tą  iterację. 
Rekurencja dla obliczenia n-tej wartości potrzebowała zejścia aż do pierwszej wartości. 
 
Prostym przykładem porównania rekurencji i iteracji jest liczenie silni (n!). 
 
rekurencja 
iteracja
FUNCTION Silnia(n: INTEGER): INTEGER; 
BEGIN 
IF n <= 1 THEN 
     Silnia := 1 
ELSE 
     Silnia := n * Silnia(n-1) 
END; 
FUNCTION Silnia(n: INTEGER): INTEGER; 
VAR wynik: INTEGER; 
BEGIN 
   wynik := 1; 
   WHILE n > 1 DO 
   BEGIN 
        wynik := n * wynik; 
        n := n - 1; 
   END; 
   Silnia := wynik 
END; 
5. Struktury drzewiaste, charakterystyka podstawowych typów drzew oraz przykłady ich zastosowań. 
 
Drzewo  –  w  informatyce  to  struktura  danych  reprezentująca  drzewo  matematyczne.  Drzewa  składają  się  z 
wierzchołków (węzłów) oraz łączących je krawędzi.  
 
Jeden z wierzchołków nazwany jest korzeniem, z którego odchodzą inne węzły.
Ciąg krawędzi łączących węzły nazywa się ścieżką.
Wysokość drzewa to liczba krawędzi w ścieżce od korzenia do najniżej położonego węzła.
Wszystkie  wierzchołki  połączone  z  danym  wierzchołkiem,  a  leżące  na  następnym  poziomie  są 
nazywane dziećmi tego węzła. 
Wierzchołek  jest  rodzicem  dla  każdego  swojego  dziecka.  Każdy  węzeł  ma  dokładnie  jednego 
rodzica. 
 
W informatyce istnieją drzewa binarne, w których liczba dzieci ograniczona jest do dwóch. 
Drzewa, które mają więcej niż dwoje dzieci są nazywane drzewami wyższych rzędów. 
 
Drzewa reprezentują hierarchię danych. Ułatwiają i przyspieszają wyszukiwanie danych. 
 
Przykładem zastosowania może być drzewo kategorii, które zastosowałem w swojej pracy. Na pierwszym 
poziomie drzewa znajdują się kategorie. Dzieci tych kategorii to podkategorie. 
 
6.  Omówić  sposoby  implementacji  list  jednokierunkowej  oraz  dwukierunkowej.  Podać  zestaw  operacji 
wchodzących w skład interfejsu listy. 
 
Lista jednokierunkowa – jest to lista gdzie elementy posiadają wskazanie tylko na następnika 
Lista dwukierunkowa – jest to lista gdzie elementy posiadają wskazanie na następnika i poprzednika 
 
Implementacje list mogą być wykonane przy pomocy tablic lub wskaźników. 
 
Tablice:
 
 
Wskaźniki:
 
 
Operacje: 
Dodawanie elementu do listy
Usuwanie elementu o wskazanym indeksie
Pobieranie rozmiaru listy
Odczytywanie elementu o wskazanym indeksie
7. Omówić algorytmy efektywnego poszukiwania najkrótszej ścieżki w grafie. 
 
 
Algorytm Dijkstry – polega na przypisaniu wierzchołkom pewnych wartości liczbowych (cech
wierzchołka). Na początku wszystkie wierzchołki mają cechę „nieskończoność”. Źródło oznaczymy 
„s”  otrzymuje  wartość  cechy  „0”.  Wszystkie  wierzchołki  połączone  ze  źródłem  otrzymują  cechę 
tymczasową  równą  odległości  od  źródła.  Wybierany  jest  wierzchołek  o  najmniejszej  cesze 
tymczasowej  i  oznaczamy  go  „v”.  Cechę  tego  wierzchołka  zamieniamy  na  stałą  i  przeglądamy 
wszystkie wierzchołki połączone z „v”. Jeśli droga z „s” do któregoś z nich przechodząca przez „v” 
ma  mniejszą  długość  od  cechy  tymczasowej  tego  wierzchołka  to  zmniejszamy  cechę.  Ponownie 
znajdujemy wierzchołek o najmniejszej cesze tymczasowej i zamieniamy na stałą. Kontynuujemy aż 
do momentu, gdy cecha wierzchołka końcowego będzie stała. 
Algorytm Forda-Belmana – w każdym kroku tego algorytmu obliczana jest odległość od wierzchołka
startowego do wszystkich pozostałych wierzchołków. Gdy w kolejnym kroku stwierdzimy, że droga 
jest  krótsza  to  polepszamy  aktualne  wartości.  Algorytm  kończy  się  gdy  nie  da  się  już  polepszyć 
żadnej  wartości.  Macierz  odległości  zawiera  najkrótsze  odległości  z  wierzchołka  startowego  do 
wszystkich pozostałych wierzchołków. * - oznaczamy brak drogi 
 
 
 
8.  Procesy  kompilacji  i  interpretacji  w  różnych  językach  programowania.  Omów  ich  przebieg,  porównaj 
wady i zalety, wskaż przykłady implementacji w popularnych językach. 
 
// długie i męczące… 
 
9.  Mechanizm  przeładowanie  operatorów  w  językach  obiektowych.  Podaj  przykład  praktycznego 
zastosowania. 
 
Przeładowanie operatorów – polega na tym, że operator może mieć różne implementacje zależne od użytych 
typów argumentów. Wywoływana jest odpowiednia funkcja klasy. 
 
Przykład: dodawanie do siebie dwóch obiektów 
Np.  obiekt  szklanka  mleka  +  obiekt  szklanka  mleka  ->  zwróci  obiekt  szklanka  mleka  i  pojemności 
zsumowanej a zmienionym oprocentowaniu 
 
10. Mechanizm dziedziczenia. Dziedziczenie jedno i wielokrotne. Podaj przykład wykorzystania. 
 
Dziedziczenie – to mechanizm współdzielenia funkcjonalności między klasami. Klasa może dziedziczyć po 
innej klasie, co oznacza, że oprócz swoich własnych atrybutów i zachowań uzyskuje także te pochodzące z 
klasy, z której dziedziczy. Klasa dziedzicząca jest nazywana klasą pochodną lub potomną, zaś klasa z której 
następuje  dziedziczenie  –  klasą  bazową.  Z  jednej  klasy  bazowej  można  uzyskać  dowolną  liczbę  klas 
pochodnych. 
 
Dziedziczenie wielokrotne – klasa może dziedziczyć metody i pola z więcej niż jednej klasy bazowej. 
 
Przykład:  
 
Clasa pracownik : imie, nazwisko, wypłata 
 
Clasa 
szef
:
dodatkowo
mamy
pole
„premia”
 
 
11. Klasy abstrakcyjne i funkcje wirtualne w językach obiektowych. Podaj przykład zastosowania. 
 
Klasa  abstrakcyjna  –  to  klasa,  której  obiektów  nie  można  tworzyć.  Służy  jedynie  do  dziedziczenia  i 
polimorfizmu. 
 
Przykład: możemy mieć klasę „figura” – lecz nie wiadomo dokładnie co to za figura. Wiadomo jednak, że 
figura  ma  pole  i  obwód.  Nie  można  tworzyć  obiektów  „figura”  !  Mamy  także  wywodzące  się  od  nich 
klasy „koło” i „kwadrat”. Możemy wtedy stworzyć obiekty tych klas! 
 
Funkcje wirtualne – to specjalne funkcje składowe które przydają się gdy używamy obiektów posługując się 
wskaźnikami  do  nich.  Dla  funkcji  z  identycznymi  nazwami  to,  czy  zostanie  wywołana  funkcja  z  klasy 
podstawowej czy pochodnej zależy od typu wskaźnika a nie od tego na co wskazuje. 
 
Przykład: mamy klasę „figura” i dziedziczącą po niej klasę „koło”. Klasa „figura” posiada funkcję „pole”. 
W  programie:  tworzymy  obiekty  klas  ,  tworzymy  wskaźnik  na  „figura”,  następnie  wskaźnikowi 
przypisujemy adres „koła” i wywołujemy metodę „pole” posługując się wskaźnikiem. 
 
Gdyby  nie  było  funkcji  wirtualnej  to  wywołana  by  była  metoda  „pole”  z  klasy  „figura”.  Dzieki  funkcji 
wirtualnej wywołana została metoda „pole” z klasy „koło”. 
 
12. Obsługa sytuacji wyjątkowych w językach obiektowych (np. C++, Java). 
 
Obsługa sytuacji wyjątkowej odbywa się przy użyciu 3 bloków: try, catch, finally. 
 
W „try” mieści się kod, w którym może wystąpić wyjątek.
W „catch” przechwytujemy określony wyjątek lub wszystkie wyjątki i zajmujemy się obsługą błędu 
(np. wypisujemy na ekran treść błędu). 
Blok
„finally”
jest
to
fragment,
który
zawsze
zostanie
wykonany.
13. Organizacja pamięci pomocniczej - metody przydziału miejsca na dysku. 
 
Pierwszą z metod przydziały miejsca na dysku jest: 
 
Przydział  ciągły  –  wszystkie  bloki  w  pliku  przylegają  do  siebie.  Wskazanie  na  plik  zawiera 
wskazanie na pierwszy blok i długość pliku. 
Łańcuch  powiązanych  bloków  (taka  lista  jednokierunkowa)  –  każdy  blok  zawiera  wskaźnik  do 
następnego bloku, ostatni blok zawiera adres pusty. 
Mapa  plików  (tablica  alokacji)  –  stan  dysku  pamiętany  jest  w  mapie  plików.  Każdy  blok  dysku 
reprezentuje jedną pozycję na mapie. Pozycja w katalogu wskazuje na element mapy reprezentujący 
pierwszy 
blok.
14. Omów i porównaj najczęściej stosowane systemy plików. 
 
FAT32 – prosty system plików, gdzie wielkość partycji nie może przekroczyć 2TB, a maksymalny
rozmiar  pliku  to  4GB.  Występuje  w  nim  często  fragmentacja  danych.  Obsługiwany  jest  przez 
wszystkie OS. 
NTFS – standardowy system plików systemu MICROSOFT WINDOWS. Został wprowadzony w
celu  zastąpienia  FAT’u.  Zawiera  obsługę  metadanych  oraz  obsługę  większych  plików  przez  co  na 
dysku można trzymać np. obraz płyty DVD. 
EXT3 – system plików systemu LINUX. Automatyczne sprawdzanie systemu plików po
niepoprawnym  odmontowaniu.  Zawiera  mechanizm  zapobiegający  fragmentacji  danych.  Hierarchia 
przy 
pomocy
i-węzłów.
15. Metody zarządzania wolną przestrzenią pamięci dyskowej. 
 
Wolna przestrzeń jest dopełnieniem przestrzeni przydzielonej dla plików w ramach danej strefy dysku. 
 
Efektywna  identyfikacja  wolnych  bloków  na  potrzeby  tworzenia  nowych  plików  wymaga  utrzymywania 
takich informacji. Wyróżnia się takie struktury: 
Wektor bitowy – każdy blok jest reprezentowany przez 1 bit
Lista powiązana – wskaźnik do pierwszego bloku
Grupowanie – w pierwszym wolnym bloku lista adresów innych wolnych bloków
Zliczanie – adres pierwszego wolnego bloku + licznik wolnych bloków następujących nieprzerwanie
po pierwszym
16. Algorytmy planowania przydziału procesora. 
 
FCFS (first come first served) – proces, który pierwszy zamówił procesor, pierwszy go otrzyma.
Zastosowana jest tu kolejka FIFO. Proces po skończeniu swojego działania przekazuje kontrolę nad 
procesorem następnym procesom. 
SJF (shortest job first) – procesorowi przydzielany jest najpierw proces o najkrótszym zadaniu. Gdy
znajdzie się proces o krótszym zadaniu to przerywany jest i zastępowany
Planowanie priorytetowe – każdemu procesowi przydzielany jest priorytet. Pierw wykonywane są
procesy  o  wyższym  priorytecie.  Procesy  mogą  być  przerywane  gdy  przyjdzie  inny  o  wyższym 
priorytecie  
17. Algorytmy zastępowania stron. 
 
FIFO – ofiarą staje się strona, która najdłużej przebywa w pamięci. Strony wprowadzane do pamięci
są wstawiane na koniec kolejki, a strony ofiary do usunięcia z pamięci są brane z początku kolejki
Algorytm optymalny – ofiarą staje się strona, która przez najdłuższy czas nie będzie używana
LRU (last recently used) – ofiarą staje się strona, która przez najdłuższy czas nie była używana
18.  Schematy  RAID  (Redundant  Array  of  Independent  Disks).  Porównanie  pod  kątem  niezawodności  i 
wydajności. 
 
RAID0 – polega na połączeniu ze sobą dwóch lub więcej dysków fizycznych, tak aby były widziane
jako jeden dysk logiczny. Powstała przestrzeń ma rozmiar N * rozmiar najmniejszego dysku. Dane 
są zapisywane naprzemiennie na każdym dysku. Awaria jednego dysku powoduje utratę wszystkich 
danych! 
RAID1 – te same dane zapisywane są na wszystkich dyskach (kopia). Awaria N-1 dysków nie
powoduje utraty danych. Wydajność: prędkość najwolniejszego dysku.
RAID3 – dane składowane są na N-1 dyskach. Na ostatnim dysku przechowywane są sumy
kontrolne danych. Dane są dzielone jak w RAID0. Odporność na awarię 1 dysku!
RAID5 – dane składowane są na wszystkich dyskach lecz sumy kontrolne porozkładane są na
wszystkich dyskach
19. Omów metody zarządzania pamięcią. 
 
Pierwszą z metod przydziały miejsca w pamięci jest: 
 
Przydział  ciągły  (system  plików  zwartych)  –  wszystkie  bloki  w  pliku  przylegają  do  siebie. 
Wskazanie na plik zawiera wskazanie na pierwszy blok i długość pliku. 
Łańcuch  powiązanych  bloków  (taka  lista  jednokierunkowa)  –  każdy  blok  zawiera  wskaźnik  do 
następnego bloku, ostatni blok zawiera adres pusty. 
Mapa  plików  (tablica  alokacji)  –  stan  dysku  pamiętany  jest  w  mapie  plików.  Każdy  blok  dysku 
reprezentuje jedną pozycję na mapie. Pozycja w katalogu wskazuje na element mapy reprezentujący 
pierwszy 
blok.
 
 
20. Mechanizmy komunikacji międzyprocesowej IPC (Inter Process Communication). 
 
Procesy mogą używać różnych sposobów komunikacji takich jak: 
 
Pliki i blokady
Sygnały
Semafory – używane do kontroli dostępu do zasobów systemu dzielonych przez kilka procesów.
Zapobiegają one sytuacji w których dwa procesy jednocześnie mają dostęp do modyfikacji danego 
zasobu 
Kolejki komunikatów – działają na zasadzie algorytmu FIFO. Komunikaty zawarte w kolejce są w 
kolejności nadejścia wysyłane do swoich odbiorców. 
Pamięć dzielona – dane są umieszczane przez proces w segmentach, w obszarze adresowym procesu 
wywołującego.  Może  z  nich  korzystać  wiele  procesów.  Najszybszy  sposób  komunikacji  między 
procesami. 
21. Układy elektroniczne jako filtry. Klasyfikacja i przykłady zastosowań. 
 
Filtr  –  jest  fragmentem  obwodu  elektronicznego  lub  elektrycznego  odpowiedzialny  za  przepuszczanie  lub 
blokowanie sygnałów o określonym zakresie częstotliwości. 
 
Podział: Filtry można podzielić na 4 rodzaje: 
Dolnoprzepustowe – przepuszczanie sygnałów poniżej danej częstotliwości
Górnoprzepustowe
Środkowoprzepustowe
Środkowozaporowe
 
Zastosowanie: 
filtry stosowane są do zmniejszenia amplitudy tętnień napięcia, które występuje w zasilaczach.
używane są także do np. strojenia radiowych odbiorników.
22. Wzmacniacz operacyjny. Parametry charakterystyczne, zastosowania. 
 
Wzmacniacz  operacyjny  –  to  wzmacniacz  prądu  stałego,  który  charakteryzuje  się  bardzo  dużym 
wzmocnieniem.  Wzmacniacz  operacyjny  służy  podobnie  jak  inne  wzmacniacze  do  wzmocnienia  napięcia 
czy też mocy. Wzmacniacz operacyjny posiada dwa wejścia: odwracające (oznaczane symbolem '-', napięcie 
na tym  wejściu) i  nieodwracające (oznaczane symbolem  '+', napięcie na  tym  wejściu), oraz jedno wyjście 
(napięcie na wyjściu ); różnica napięć wejściowych nazywa się napięciem różnicowym. 
 
Różnicowe  wzmocnienie  napięciowe  jest  to  stosunek  zmiany  napięcia  wyjściowego  do  zmiany 
różnicowego napięcia wejściowego 
Wzmocnienie sygnału współbieżnego – napięcie wyjściowe wzmacniacza może zależeć też od sumy 
napięć na wejściach wzmacniacza. 
Współczynnik  tłumienia  sygnału  współbieżnego  –  jest  to  iloraz  wzmocnienia  różnicowego  do 
wzmocnienia sygnału współbieżnego 
Współczynnik  tłumienia  wpływu  zasilania  –  jest  to  stosunek  zmiany  napięcia  zasilania  do 
wywoływanej przezeń zmiany napięcia wyjściowego 
 
Zastosowanie wzmacniaczy operacyjnych: 
układach, gdzie wykonują operacje: dodawania, odejmowania, mnożenia, dzielenia
generatorach sygnałów: prostokątnych, trójkątnych i sinusoidalnych
filtrach
23. Bramki i funktory logiczne. Tabele prawdy. Minimalizacja funkcji. 
 
Bramki  logiczne  –  jest  to  element  konstrukcyjny  maszyn  realizujący  fizycznie  pewną  prostą  funkcję 
logiczną, której argumenty i funkcja mogą przybierać wartości „0” i „1” 
 
Mamy bramki: 
AND (A*B) – obie wartości muszą być „1” by była „1” 
OR (A+B) – co najmniej jedna z wartości musi być „1” 
NOT (~A)  
NAND (~(A*B)) – gdy obie „1” to „0” 
NOR (~(A+B)) 
XOR – gdy jedna z wartości równa się „1” to „1” 
 
Minimalizacja  funkcji  logicznych  polega  na  uproszczeniu  wyrażeń  logicznych  tak  by  zawierały  tylko 
najmniejszą liczbę niezbędnych operacji logicznych. 
 
Istnieje metoda minimalizacji Karnaugh’a 
Rysujemy  tabelę  z  współrzędnymi.  Grupujemy  obszary  z  wartościami  „1”  i  analizujemy  powstałe  grupy 
dzięki którym możemy stworzyć zminimalizowane funkcje logiczne. 
 
24. Układy sekwencyjne. Przykłady realizacji i obszary zastosowań. 
 
Układ sekwencyjny – jest to układ, w którym stan wyjść zależy od stanu wejść oraz od poprzedniego stanu, 
zwanego stanem wewnętrznym pamiętanego w pamięci. 
 
Przykładem może być automat do napojów. Automat stoi na korytarzu i czeka aż ktoś wrzuci monetę. Jeśli 
ktoś  wrzuci  to  automat  przechodzi  do  kolejnego  stanu.  Automat  czeka  na  wybranie  rodzaju  napoju.  Po 
wybraniu automat przygotowuje napój i wydaje resztę. Automat oczekuje na odebranie napoju wyświetlając 
napis „proszę odebrać” nie pozwalając na przygotowanie kolejnego. 
 
25. Sumator równoległy. Sumator a jednostka arytmetyczno- logiczna. 
 
Sumator  –  to  układ  kombinacyjny,  który  wykonuję  operację  dodawania  dwóch  lub  więcej  liczb 
dwójkowych. Istnieją dwa rodzaje sumatorów: 
 
Sumator kaskadowy
Sumator równoległy
 
Sumator równoległy dodaje do siebie jednocześnie bity ze wszystkich pozycji. 
 
26. Budowa i zasada działania procesorów: potokowy, wektorowy, CISC, RISC. 
 
Procesor potokowy – instrukcja jest dzielona na części, logiczne etapy. Każdy etap wykonywany jest
niezależnie na określonym stopniu potoku. Taki tryb pracy pozwolił na wykorzystanie jednocześnie 
wszystkich bloków procesora. Wykorzystanie takiego procesora znacznie przyspiesza wykonywanie 
instrukcji i przynosi wzrost wydajności. 
 
Wektorowy – pozwala na przetwarzanie w pojedynczym cyklu całych wektorów danych
CISC – każda instrukcja może wykonać kilka operacji niskiego poziomu (pobranie z pamięci,
operacje arytmetyczne) 
 
RISC – zredukowana liczba rozkazów do minimum. Ograniczona jest komunikacja między
procesorem a pamięcią
27. Klasyfikacja architektur komputerowych. 
 
W  latach  sześćdziesiątych  XX  wieku  zaproponowana  została  klasyfikacja  architektur,  opierająca  się  na 
liczbie przetwarzanych strumieni danych i strumieni rozkazów. 
 
W klasyfikacji tej wyróżniamy: 
SISD (Single instruction single data) – przetwarzany jeden strumień danych przez jeden program
SIMD (Single instruction multiple data) – przetwarzanych jest kilka strumieni danych przez jeden
wykonywany program
MISD (Multiple instruction single data) – wiele wykonywanych programów przetwarza jednocześnie
jeden wspólny strumień danych.
MIMD (Multiple instruction multiple data) – równolegle wykonywane jest wiele programów, z
których każdy przetwarza własne strumienie danych
28. Systemy przerwań. Aspekty sprzętowe i programowe. 
 
Przerwanie – to sygnał powodujący zmianę przepływu sterowania, niezależnie od aktualnie wykonywanego 
programu.  Pojawienie  się  przerwania  powoduje  wstrzymanie  aktualnie  wykonywanego  programu  i 
wykonanie przez procesor kodu procedury obsługi przerwania.  
 
 
Przerwania dzielą się na dwie grupy: 
 
Sprzętowe:
Zewnętrzne – sygnał przerwania pochodzi z zewnętrznego układu obsługującego przerwania
sprzętowe;  przerwania  te  służą  do  komunikacji  z  urządzeniami  zewnętrznymi,  np.  z 
klawiaturą 
Wewnętrzne,  nazywane  wyjątkami  (ang.  exceptions)  –  zgłaszane  przez  procesor  dla 
sygnalizowania sytuacji wyjątkowych (np. dzielenie przez zero);  
Programowe – z kodu programu wywoływana jest procedura obsługi przerwania; najczęściej
wykorzystywane do komunikacji z systemem operacyjnym.
29. Omówić podstawowe tryby adresowania 
 
Tryb prosty- W trybie tym wszystkie informacje wymagane dla wykonania operacji są znane
jednostce centralnej i żaden zewnętrzny argument z pamięci lub z programu nie jest potrzebny.
Tryb natychmiastowy - pole adresowe zawiera bezpośrednio operand (argument) czyli daną dla
rozkazu.
Adresowanie  bezpośrednie  -  jest  najbardziej  podstawowym  trybem  adresowania.  W  tym  trybie 
zawartość pola adresowego stanowi już finalny adres argumentu rozkazu w pamięci operacyjnej  
Adresowanie pośrednie - rozkaz zawiera adres komórki pamięci operacyjnej, w której zawarty jest 
finalny adres operandu rozkazu. 
Adresowanie indeksowe - W tym trybie wykorzystuje się specjalne rejestry procesora tzw. rejestry
indeksowe, które zawierają przesunięcie, które trzeba dodać do adresu istniejącego w rozkazie aby 
wyliczyć adres finalny operandu.  
 
 
30.  Formaty  i  typy  rozkazów  procesora,  wpływ  długości  rozkazów  procesora  na  wielkość  zajmowanej 
pamięci przez program oraz na jego czas wykonania. 
 
Rozkazem  (instrukcją  maszynową)  nazywamy  najprostszą  operację,  której  wykonania  programista  może 
zażądać od procesora.  
 
Sposób realizacji rozkazu nie jest istotny dla użytkownika systemu i z reguły nie jest znany. Został on po 
prostu  wyznaczony  przez  projektanta  mikroprocesora.  Tworzenie  programów  bezpośrednio  przy  pomocy 
rozkazów jest nazywane programowaniem w asemblerze.  
 
Listą  rozkazów  nazywamy  zestaw  wszystkich  instrukcji  maszynowych  (rozkazów),  jakie  potrafi  wykonać 
dany procesor. 
 
Rozkaz składa się z nazwy rozkazu i argumentu. 
 
Rozkazy możemy podzielić na grupy w zależności od ich przeznaczenia: 
rozkazy przesłań - są najczęściej wykonywanymi rozkazami. Nie zmieniają one wartości informacji,
natomiast przenoszą ją z miejsca na miejsce.
rozkazy arytmetyczne i logiczne - służą do przetwarzania informacji, czyli w wyniku ich wykonania
jest ona zmieniana.
rozkazy sterujące - rozkazy te pozwalają zmieniać kolejność wykonywania instrukcji programu np.
rozkazy skoku, bezwarunkowe i warunkowe wywołania programów czy też instrukcje pętli.
 
Im krótszy rozkaz, tym zajmuje mniej pamięci i może być szybciej wczytany  
31. Typy i hierarchia pamięci w systemie komputerowym. 
 
Pamięć rejestru – czas dostępu do niej jest bardzo niski, a jej zawartość istnieje tylko w czasie pracy 
procesora. Na jej zawartości procesor wykonuje bezpośrednio operacje arytmetyczne i logiczne. 
Pamięć podręczna (ang. cache) – jej zawartość istnieje tylko w czasie pracy procesora; w pamięci tej
przechowywane są najczęściej używane fragmenty zawartości pamięci operacyjnej
Pamięć  operacyjna  (RAM)  –  jest  używana  do  przechowywania  danych  i  kodów  zadań  aktualnie 
potrzebnych do wykonywania. 
Pamięć masowa – jest tania a jej zawartość jest trwała; służy do przechowywania kodów programów 
i danych. 
Pamięć zewnętrzna – wymienne dyski CD, DVD
 
 
Pod względem trwałości długoterminowej zapisu pamięci dzielimy na: 
Stałe  -  w  których  zapis  nie  ulega  zniszczeniu  po  wyłączeniu  zasilania  w  systemie  komputerowym 
(np. pamięci ROM zaprogramowane przez producenta, pamięci dyskowe, itp.); 
Ulotne - w których zapis ulega zniszczeniu po wyłączeniu zasilania (np. pamięci operacyjne,
podręczne, rejestrowe)
32. Omów metody projektowania baz danych. 
 
Metody projektowania bazy danych: 
wstępująca – rozpoczyna się od podstawowego poziomu zawierającego atrybuty, a następnie poprzez 
analizę  powiązań  łączy  się  je;  metodę  tę  stosuje  się  do  projektowania  prostych  baz  danych 
zawierających małą liczbę atrybutów; 
zstępująca – rozpoczyna się od stworzenia modeli danych zawierających niewielką liczbę ogólnych 
encji, atrybutów i związków między nimi; stosując metodę kolejnych uściśleń wprowadza się encje, 
związki  i  atrybuty niższych poziomów; metoda  ta jest właściwą strategią projektowania złożonych 
baz danych; 
strategii mieszanej – łączy w sobie powyższe dwie metody.
33. Omów relacyjny model danych. 
 
W relacyjnym modelu danych: 
Baza danych składa się z prostokątnych tablic, każda o określonej liczbie kolumn i dowolnej liczbie 
wierszy. Takie tablice są określane jako relacje. Wiersz relacji jest nazywany krotką. 
Elementy krotek są atomowe (niepodzielne) i są bezpośrednio wartościami.
Porządek krotek nie ma znaczenia. Porządek kolumn również nie ma znaczenia.
Jakiekolwiek  cechy  odnoszące  się  do  reprezentacji  relacji  lub  usprawnienia  dostępu  do  relacji  są 
ukryte przed użytkownikiem 
Relacje i ich kolumny posiadają nazwy. Nazwy kolumn są określane jako atrybuty.
Każda relacja posiada wyróżniony atrybut lub grupę atrybutów określną jako klucz.
34. Na czym polega proces normalizacji baz danych 
 
Normalizacja bazy danych jest to proces mający na celu eliminację powtarzających się danych w relacyjnej 
bazie danych. Główna idea polega na trzymaniu danych w jednym miejscu, a w razie potrzeby linkowania 
do danych.  
 
Normalizacja  nie  usuwa  danych,  tylko  zmienia  schemat  bazy  danych.  Normalizacja  przeprowadza  bazę 
danych z jednego stanu spójnego (przed normalizacją) w inny stan spójny (po normalizacji). Jedyna różnica 
polega na innym układzie danych i relacji pomiędzy nimi, ale bez utraty danych  
 
Przykładem przed normalizacją może być: 
Tabela student, która zawiera za dużo informacji np. Imię, Nazwisko, Indeks, Imię nauczyciela, Nazwisko 
nauczyciela. Kilka uczniów będzie miało tego samego nauczyciela co spowoduje powtarzanie tych samych 
danych o nauczycielu. Należy rozdzielić tabelę na 2. W jednej dane ucznia, w drugiej nauczyciela. 
35. Przedstawić koncepcję transakcyjności w relacyjnych bazach danych. 
 
Transakcja to ciąg operacji do wspólnego niepodzielnego wykonania. Wymagana jest: 
niepodzielność: ,,wszystko-lub-nic”, transakcja nie może być wykonana częściowo;
izolacja: efekt równoległego wykonania dwu lub więcej transakcji musi być szeregowalny;
trwałość: po udanym zakończeniu transakcji jej efekty na stałe pozostają w bazie danych.
 
W  trakcie  wykonywania  transakcja  może  być  wycofana  w  dowolnym  momencie.  Wszelkie  wprowadzone 
przez nią zmiany danych zostaną wtedy zignorowane. Po zakończeniu wykonywania transakcji następuje jej 
zatwierdzenie, w wyniku czego zmiany są utrwalane w bazie danych.  
36. Techniki modelowania bazy danych, diagramy E/R i UML, narzędzia do modelowania.  
 
Diagram  związków  encji  lub  Diagram  ERD  –  rodzaj  graficznego  przedstawienia  związków  pomiędzy 
encjami używany w projektowaniu systemów informacyjnych do przedstawienia modeli danych używanych 
w systemie. 
 
Systemy wspierają tworzenia tych diagramów, mogą na ich podstawie automatycznie tworzyć bazy danych 
odpowiadające relacjom na diagramie. 
 
Diagram pokazuje logiczne związki pomiędzy różnymi encjami, związki te mają dwie cechy: 
Opcjonalność  –  która  mówi  o  tym,  czy  każda  encja  musi,  czy  też  może  wystąpić  równocześnie  z 
inną. Np. TOWAR musi zostać zakupiony przez co najmniej jednego KLIENTA, ale KLIENT może 
być nabywcą TOWARU. 
Krotność – określającą ile encji wchodzi w skład związku (1:1 1:N M:N)
 
Diagram  stanów  –  diagram  pokazuje  możliwe  stany  obiektu  oraz  przejścia,  które  powodują  zmianę  tego 
stanu. Diagram stanów to diagram UML. 
 
Przykładem narzędzia do modelowania jest Visual Paradigm gdzie tworzyłem różne diagramy 
zaprezentowane w pracy. 
 
37. Problemy współbieżności i wielodostępu w SZBD. 
 
W bazach danych podczas wielodostępu mogą wystąpić takie zjawiska jak: 
 
Brudny odczyt - kiedy pozwalamy na odczyt danych modyfikowanych przez transakcje jeszcze nie
zatwierdzoną
Utracona modyfikacja - kiedy dwie transakcje modyfikują te same dane
Niepowtarzalny odczyt - gdy transakcja składa się z poleceń które wielokrotnie odczytują ten sam
rekord z bazy, a my odczytujemy inne dane;
Fantomy - wykonujemy polecenie select na bazie danych, za każdym razem wykonujemy coraz
więcej, za każdym razem select coraz więcej wyświetla
 
Brudny odczyt i utracona modyfikacja - poważne zagrożenia, nie do zaakceptowania Niepowtarzalny odczyt 
i fantomy - mniej poważne, tolerowane 
 
38. Model ISO OSI. Model TCP/IP. Krótka charakterystyka warstw modelu. 
 
Model  OSI  opisuje  drogę  danych  od  aplikacji  w  systemie  jednej  stacji  roboczej  do  aplikacji  w  systemie 
drugiej. Przed wysłaniem dane wraz z przekazywaniem do niższych warstw sieci zmieniają swój format, co 
nosi nazwę procesu kapsułkowania. 
 
Wyróżniamy trzy warstwy górne, czyli warstwę aplikacji, prezentacji i sesji. Ich zadaniem jest współpraca z 
oprogramowaniem  realizującym  zadania  zlecane  przez  użytkownika  systemu  komputerowego. 
 
Warstwa aplikacji – jej zadaniem jest kontakt z użytkownikiem bądź procesem
Warstwa prezentacji – jej zadaniem jest transformacja danych aplikacji do jednolitego formatu
Warstwa sesji – jej zadaniem jest nawiązanie wirtualnego połączenia (sesji) z aplikacją na zdalnym
komputerze
Warstwa transportowa – jej zadaniem jest zapewnienie poprawnego transportu danych ze zdalnym
komputerem oraz podział danych na segmenty
Warstwa sieciowa – jej zadaniem jest podjęcie decyzji co do rutingu ma podstawie topologii sieci
oraz podział danych na pakiety
Warstwa  łącza  danych  –  jej  zadaniem  jest  nadzór  nad  jakością  i  niezawodnością  fizycznego 
przesyłania informacji oraz podział danych na ramki 
Warstwa fizyczna – jej zadaniem jest przesłanie informacji przez nośnik fizyczny
 
Model  TCP/IP  jest  modelem  podobnym  do  modelu  OSI.  Nie  przypisuje  on  jednak  na  sztywno  funkcji  do 
każdej  warstwy  jest  więc  bardziej  elastyczny.  Warstwy  aplikacji,  prezentacji  i  sesji  połączone  są  w  jedną 
warstwę aplikacji, a łącza danych i fizyczna w dostępu do sieci. 
39. Metody dostępu do medium. Protokół CSMA/CD. 
 
Protokół CSMA/CD – jest to protokół wielodostępu z badaniem stanu kanału i wykrywaniem kolizji 
 
CSMA/CD polega na tym, że stacja sprawdza czy jakaś inna już nadaje. Jeśli tak to czeka aż skończy. Stacja 
zaczyna nadawać sprawdzając czy ktoś inny nie nadaje równocześnie z nią. Jeśli ktoś nadawał, to przerywa 
nadawanie i odczekuje losowy odcinek czasu. 
 
W przypadku zapełnienia łącza protokół ten generuje duże straty czasowe. 
 
40. Adresowanie IP, podsieci i maski podsieci zmiennej długości.  
 
Maska  sieci  składa  się  podobnie  jak  adres  IP  z  4  bajtów,  używana  jest  do  wydzielenia  części  adresu 
odpowiadającej za identyfikację sieci i części odpowiadającej za identyfikację komputera z adresu IP. 
 
Adres  sieci  tworzymy  przepisując  niezmienione  wszystkie  bity  adresu  IP,  dla  których  odpowiednie  bity 
maski  mają  wartość  jeden.  Resztę  uzupełniamy  zerami.  Adres  broadcast  jest  adresem  rozgłoszeniowym 
sieci.  Używa  się  go  do  jednoczesnego  zaadresowania  wszystkich  komputerów  w  danej  sieci  (jest 
przetwarzany  przez  wszystkie  komputery  w  sieci).  Tworzymy  go  podobnie  do  adresu  sieci,  jednak 
dopełniamy jedynkami zamiast zerami. 
 
Podsieci poszerzają pole adresu sieci poza granicę zdefiniowana przez schemat dla typów A, B, C. Zapewnia 
to możliwość hierarchizacji poszczególnych podsieci wewnątrz sieci. 
 
41. Ruting w sieciach komputerowych, metody rutingu, porównanie.  
 
Metody Routingu: 
Rozproszony - gdy w dowolnym momencie jedna stacja posiada uprawnienie do nadawania, a
uprawnienie  przekazywane  jest  miedzy  kolejnymi  stacjami  w  sieci.  Wykorzystywany  jest  w 
metodach z przekazywaniem znacznika. 
Scentralizowany - gdy jedna stacja kontroluje działanie sieci i przyznaje innym stacjom prawo do
nadawania
Statyczne - protokół ten jest stosowany w małych sieciach lokalnych polega na tym że jest ręcznie
ustawiany przez administratora sieci
Dynamiczne - stosowane są w większych sieciach. Protokół taki sam modyfikuje trasę
42. Metody dostępu do sieci w technologii bezprzewodowej WiFi.  
 
Istnieją metody dostępu takie jak: 
Odpytywanie (gdy stacja centralna posiada łączność z każdą ze stacji pozostałych)
przekazywanie żetonu (w pierścieniu sieci Token Ring krąży mała ramka zwana token „żeton”)  — 
gdy wszystkie stacje sieci posiadają wzajemną łączność.  
43. Podstawowe i złożone topologie sieci komputerowych. 
 
Topologia magistrali (liniowa) – wszystkie elementy sieci podłączone do jednej magistrali 
Topologia  pierścienia  –  poszczególne  elementy  połączone  są  pomiędzy  sobą  kablami  tworząc  zamknięty 
pierścień 
Topologia gwiazdy – komputery podłączone są do jednego punktu centralnego 
Topologia hierarchiczna (drzewa) -   budowa podobna do drzewa binarnego 
Topologia siatki – sieć zawiera połączenia nadmiarowe, każdy element sieci łączy się z każdym 
 
 
 
 
 
44. Charakterystyka systemów rozproszonych - zalety i wady. 
 
System rozproszony – to zbiór niezależnych urządzeń połączonych w jedną, spójną logicznie całość. 
 
 
Zalety systemów rozproszonych: 
Dzielenie zasobów (dane, urządzenia sprzętowe, jak np. drukarki, dyski).
Przyśpieszenie obliczeń (dzielenie obciążenia).
Niezawodność (awaria jednego urządzenia nie powinna uniemożliwiać działania systemu, lecz co
najwyżej pogorszyć jego wydajność).
Skalowalność - system zdolny do adaptowania się do wzrastających zapotrzebowani
 
Wady systemów rozproszonych: 
Oprogramowanie (zdecydowanie bardziej złożone; wymaga opracowania wspólnych standardów).
Sieć (może ulec awarii lub zostać przeciążona).
45. Modele programowania równoległego. 
 
Modele  programowania  równoległego  stosowane  są  w  celu  skrócenia  czasu  działania  programów, 
zwiększenia wydajności obliczeń i uzyskania szybszego przetwarzania 
 
Wyróżniamy modele takie jak: 
Pamięć współdzielona - Zadania korzystają ze wspólnej przestrzeni adresowej
Wątki - pojedynczy program zawierający szereg podprogramów
Przekazywanie komunikatów - Zbiór zadań posiadających własną lokalną pamięć
Równoległe dane
46. Miary efektywności obliczeń równoległych. 
 
Programowanie  równoległe  stosowane  jest  w  celu  skrócenia  czasu  działania  programów,  zwiększenia 
wydajności obliczeń i uzyskania szybszego przetwarzania 
 
Wyróżniamy modele takie jak: 
Pamięć współdzielona - Zadania korzystają ze wspólnej przestrzeni adresowej
Wątki - pojedynczy program zawierający szereg podprogramów
Przekazywanie komunikatów - Zbiór zadań posiadających własną lokalną pamięć
Równoległe dane
47. Środowiska programowania równoległego. 
 
OpenMP 
–środowisko umożliwiające tworzenie programów komputerowych dla systemów
wieloprocesorowych z pamięcią dzieloną. Może być wykorzystywany w językach programowania C, C++.  
 
RPC ( Remote Procedure Call ) - mechanizm nieprzystosowany do programowania obiektowego, do klienta 
przekazywany jest wynik procedury 
 
CORBA  -    technologia  zapewniająca  komunikację  pomiędzy  obiektami  pracującymi  w  różnorodnych 
systemach komputerowych 
 
 
48. Prawo Amdahla. 
 
Prawo  to  jest  używane  do  znajdowania  maksymalnego  spodziewanego  zwiększenia  wydajności  całkowitej 
systemu jeżeli tylko  część systemu została ulepszona. Jest  ono często używane w przypadku prowadzenia 
obliczeń  równoległych  do  przewidzenia  teoretycznego  maksymalnego  wzrostu  szybkości  obliczeń  przy 
użyciu wielu procesorów. 
 
 
49. Obrazy rastrowe i wektorowe: budowa, właściwości, różnice. 
 
Grafika  rastrowa  -  prezentacja  obrazu  za  pomocą  pionowo-poziomej  siatki  odpowiednio  kolorowanych 
pikseli na monitorze komputera. Kolor każdego piksela jest definiowany pojedynczo.  
 
Grafika  wektorowa  –  obraz  opisany  jest  za  pomocą  figur  geometrycznych  umiejscowionych  w 
matematycznie zdefiniowanym układzie współrzędnych. 
 
 
Grafika  rastrowa  różni  się  od  wektorowej  tym,  że  grafika  wektorowa  pokazuje  obraz  używając  obiektów 
geometrycznych,  takich  jak  krzywe  czy  wielokąty.  Pixmapę  charakteryzują  dwie  podstawowe  liczby  - 
wysokość  i  szerokość  pixmapy  liczone  w  pikselach.  Wielkość  obrazka  rastrowego  nie  może  zostać 
zwiększona  bez  zmniejszenia  jego  ostrości.  Jest  to  przeciwne  grafice  wektorowej,  którą  łatwo  można 
skalować. 
 
Grafika  rastrowa  jest  bardziej  użyteczna  od  wektorowej  do  zapisywania  zdjęć  i  realistycznych  obrazów, 
podczas gdy grafika wektorowa jest częściej używana do obrazów tworzonych z figur geometrycznych oraz 
prezentacji tekstu. 
 
 
 
 
50.  Grafika  rastrowa  -  prymitywy  graficzne  2D:  kreślenie  odcinków,  okręgów,  wypełnianie  obszarów. 
 
 
51. Algorytmy poprawy jakości obrazu rastrowego. 
 
52. Metody skalowania obrazów rastrowych. 
 
 
 
53. Modele barw stosowane w grafice komputerowej (RGB, CMY, HSV, LAB). 
 
RGB – Jego nazwa powstała ze złożenia pierwszych liter angielskich nazw barw: R – red (czerwonej), G – 
green  (zielonej)  i  B  –  blue(niebieskiej),  z  których  model  ten  się  składa.  Jest  to  model  wynikający  z 
właściwości  odbiorczych  ludzkiego  oka,  w  którym  wrażenie  widzenia  dowolnej  barwy  można  wywołać 
przez zmieszanie w ustalonych proporcjach trzech wiązek światła o barwie czerwonej, zielonej i niebieskiej  
 
CMYK – zestaw czterech podstawowych kolorów farb drukarskich stosowanych powszechnie w druku 
wielobarwnym w poligrafii i metodach pokrewnych 
 
HSV (ang. Hue Saturation Value) – wszelkie barwy wywodzą się ze światła białego. Symbole w nazwie 
modelu to pierwsze litery nazw angielskich dla składowych opisu barwy: H – odcień światła (ang. Hue), S – 
nasycenie koloru (ang. Saturation) , V – (ang. Value) moc światła białego 
 
LAB - Wartości liczbowe w tym modelu opisują wszelkie kolory dostrzegane przez oko człowieka, mamy 3 
główne kolory i współrzędne a i b określają dokładnie mieszanie koloru 
54. Cykl życia oprogramowania. 
 
W inżynierii oprogramowania proces produkcji oprogramowania dzieli się na pewne fazy, typowy podział 
to:  
specyfikacja – na tym etapie następuje określenie i ustalenie wymagań, które musi spełniać oprogramowanie 
projektowanie – ustalenie ogólnej architektury systemu, wymagań dla poszczególnych jego składowych  
implementacja – realizacja ustalonej architektury poprzez implementację składowych (modułów) i połączeń 
między nimi.  
integracja – zintegrowanie poszczególnych składowych w jeden system, testowanie całego systemu  
ewolucja  –  uruchomienie  systemu,  usuwanie  wykrytych  podczas  jego  używania  błędów,  rozszerzanie 
systemu 
 
 
 
55. Model kaskadowy i spiralny, charakterystyka i porównanie. 
 
Model  kaskadowy  –  jeden  z  procesów  tworzenia  oprogramowania.  Polega  on  na  wykonywaniu 
podstawowych czynności jako odrębnych faz projektowych, w porządku jeden po drugim. Każda czynność 
to kolejny schodek (kaskada). Jeśli któraś faza zwróci niesatysfakcjonujący produkt to cofamy się w fazie. 
 
Model spiralny – jeden z modeli procesów tworzenia oprogramowania. Proces tworzenia ma postać spirali, 
której każda pętla reprezentuje jedną fazę procesu. Najbardziej wewnętrzna pętla przedstawia początkowe 
etapy projektowania. 
 
Widoczną cechą modelu spiralnego jest szczegółowe potraktowanie zagrożeń realizacji projektu i 
przeciwdziałanie im. Oprogramowanie jest bardziej niezawodne. 
 
56. Metryki oprogramowania, przykłady i obszary zastosowań. 
 
Metryka oprogramowania – miara pewnej własności oprogramowania lub jego specyfikacji. Termin ten nie 
ma  precyzyjnej  definicji  i  może  oznaczać  właściwie  dowolną  wartość  liczbową  charakteryzującą 
oprogramowanie. 
 
Metryki  statyczne  -  pozwalają  na  ocenę  jakości  kodu  źródłowego  i  łączą  się  ściśle  z  analizą  statyczną, 
dziedziną  inżynierii  oprogramowania  zajmującą  się  badaniem  struktury  kodu  źródłowego.  Metryki  te 
najbardziej przydatne są dla samych programistów i  innych osób bezpośrednio  zaangażowanych w proces 
powstawania oprogramowania. Pozwalają na bieżące śledzenie jakości kodu i zwrócenie uwagi na miejsca, 
które wymagają uproszczenia bądź szczególnie uważnego testowania. 
 
57.  Specyfikacja  wymagań  funkcjonalnych  i  niefunkcjonalnych,  rola  UML  w  procesie  specyfikowania 
wymagań. 
 
Wymagania  funkcjonalne  –  są  to  wymaganie  co  system  musi  wykonywać.  Czasami  są  znane  jako 
możliwości. 
Wymagania  niefunkcjonalne  –  ograniczenia,  przy  których  system  musi  realizować  swoje  funkcje 
 
UML - wykorzystywany jest do modelowania różnego rodzaju systemów informatycznych. 
 
58. Model logiczny a model fizyczny systemu – rola w procesie tworzenia oprogramowania. 
 
Model logiczny – to zbiór informacji określający zachowanie się systemu (lista funkcji systemu). 
Model fizyczny – to propozycja konkretnej realizacji (implementacji) modelu logicznego. 
 
 
 
59. UML w analizie i projektowaniu – omówienie podstawowych cech notacji. 
 
UML: 
język formalny wykorzystywany do modelowania różnego rodzaju systemów.
Służy  do  modelowania  dziedziny  problemu  (opisywania-modelowania  fragmentu  istniejącej 
rzeczywistości – np. modelowanie tego, czym zajmuje się jakiś dział w firmie) 
w  przypadku  stosowania  go  do  analizy  oraz  do  modelowania  rzeczywistości,  która  ma  dopiero 
powstać – tworzy się w nim głównie modele systemów informatycznych. 
UML  jest  głównie  używany  wraz  z  jego  reprezentacją  graficzną  –  jego  elementom  przypisane  są 
symbole, które wiązane są ze sobą na diagramach. 
UML  jest  notacją  pośrednią,  pomostem  pomiędzy  ludzkim  rozumieniem  struktury  i  działania 
programów, a kodem programów. 
Taka notacja jest niezbędna do specyfikacji, konstrukcji, wizualizacji i dokumentacji
60. Diagramy stanu oraz diagramy sekwencji, porównanie obszarów stosowania. 
 
Diagram  stanów  –  diagram  używany  przy  analizie  i  projektowaniu  oprogramowania.  Pokazuje  przede 
wszystkim możliwe stany obiektu oraz przejścia, które powodują zmianę tego stanu.  
 
Diagram sekwencji – służy do prezentowania interakcji pomiędzy obiektami wraz z uwzględnieniem w 
czasie komunikatów, jakie są przesyłane pomiędzy nimi. Na diagramie sekwencji obiekty ułożone są wzdłuż 
osi X. Pozwalają uzyskać odpowiedź na pytanie, jak w czasie przebiega komunikacja pomiędzy obiektami.  
 
61. Testowanie oprogramowania, omówić model V. 
 
Pierwszym  stadium  tworzenia  oprogramowania  jest  Pomysł.  Kiedy  podejmiemy  decyzję,  że  koncepcja 
znajdzie swoją realizację "wchodzimy" w Model V i fazę projektową.  
 
Model V jest to model podzielony na lewą i prawą stronę. Z lewej strony znajdują się fazy projektowania a z 
prawej weryfikacji. Na samym dole modelu (w środkowej części) znajduję się implementacja. 
 
Na  początku  tworzymy  wymagania  jakie  ma  spełniać  aplikacja.  Analizujemy  czy  wymagania  będą 
realizowalne i przechodzimy do tworzenia architektury.  
Po skończeniu procesu projektowania aplikacji następuje implementacja.  
Po poprawnym jej zakończeniu przechodzimy do fazy weryfikacji oprogramowania. Testujemy wszystkie 
fazy które miały miejsce w projektowaniu. 
 
 
62. Podstawowe pojęcia niezawodności systemów technicznych, niezawodność systemów oprogramowania, 
miary niezawodności. 
 
Niezawodność - Stopień odporności programu na błędy, jego poprawność formalna oraz sposoby reakcji na 
błędne sytuacje 
 
Miarami niezawodności oprogramowania są np.: 
prawdopodobieństwo wystąpienia awarii
częstotliwość występowania awarii (lub średni czas pomiędzy awariami, MTBF)
dostępność – procent czasu w jakim system pozostaje do dyspozycji użytkownika
63. Proces zarządzania bezpieczeństwem systemów informatycznych, polityka bezpieczeństwa. 
 
Polityka bezpieczeństwa – jest zbiorem przepisów, reguł i procedur, według których udostępniane są zasoby 
i systemy informacyjne i informatyczne. Określa ona, które zasoby i w jaki sposób mają być chronione. 
 
Polityka bezpieczeństwa powinna odzwierciedlać potrzeby instytucji. 
 
Bezpieczeństwo  systemu  informatycznego  –  wszystkie  aspekty  związane  z  definiowaniem,  osiąganiem  i 
utrzymywaniem poufności i dostępności danych. 
 
Polityka  bezpieczeństwa  systemów  informatycznych  powinna  odzwierciedlać  podstawowe  zasady 
bezpieczeństwa  i  zarządzenia  wynikające  z  polityki  bezpieczeństwa  instytucji  oraz  ogólne  zasady 
korzystania z systemów informatycznych w instytucji. 
 
64. Kryptosystemy symetryczne oraz metody dystrybucji kluczy w systemach symetrycznych. 
 
W kryptosystemach symetrycznych  używa się tego samego klucza do szyfrowania i deszyfrowania (jest to 
klucz tajny). Wadą jest to że klucz należy przesłać do drugiej osoby i klucz ten musi być bardzo chroniony 
by nikt inny nie dostał go. 
 
Istnieje konieczność utrzymywania obydwu kluczy w tajemnicy – stąd nazwa klucz tajny. Klucz szyfrujący 
jest tożsamy z kluczem deszyfrującym.  
 
Klucz może być przesyłany do drugiej osoby podzielony na części i każda część innym medium 
transmisyjnym by nie mógł nikt go przechwycić. 
Do przesyłania może być także wykorzystane Centrum Dystrybucji kluczy (KDC).
65.  Kryptografia  asymetrycznej  w  zagadnieniach  bezpieczeństwa  sieciowych  systemów  komputerowych  – 
przykłady zastosowań. 
 
Kryptografia  asymetryczna  jest  to  kryptografia,  w  której  do  szyfrowania  używamy  jednego  klucza  (tzw. 
Klucz publiczny) natomiast do odszyfrowywania używamy innego klucza (tzw. Klucz prywatny). 
 
Działa  to  w  taki  sposób,  że  w  publicznym  katalogu  każdy  użytkownik  umieszcza  publiczny  klucz  E  tego 
użytkownika. Klucz prywatny D jest przechowywany przez użytkownika i nikomu pod żadnym względem 
nie powinien być udostępniony. Metody szyfrowania i deszyfrowania są jawne. 
 
a) Odszyfrowując zaszyfrowaną wiadomość musimy dostać oryginalną 
wiadomość: 
D(E(M))=M dla każdej wiadomości M; 
 
Zastosowanie: 
Podpis cyfrowy (Podpisu cyfrowy umożliwia potwierdzenie autentyczności dokumentu.  Podpis 
cyfrowy wykonywany jest przy pomocy klucza prywatnego, a weryfikowany za pomocą klucza 
publicznego. Oznacza to, że tylko jedna osoba może dokonać podpisu, właściciel klucza prywatnego, 
natomiast weryfikacji dokumentu może dokonać każdy posiadający klucz publiczny)  
66. Podpis elektroniczny a podpis cyfrowy, definicje, przykłady zastosowań. 
 
Podpis  elektroniczny  –  to  powiązanie  dokumentu  z  daną  osobą,  poprzez  cechy  jednoznacznie  go 
charakteryzujące. 
Przy dzisiejszym stanie technologii jedynie nagranie dokumentu przekazywanego głosem człowieka spełnia 
wymagania stawiane podpisowi elektronicznemu (np. zlecenia bankowe lub maklerskie przekazywane przez 
telefon). 
 
Podpis elektroniczny a podpis cyfrowy 
Pojęcia podpisu elektronicznego oraz podpisu cyfrowego nie są tożsame  – podpis elektroniczny to pojęcie 
szersze znaczeniowo niż podpis cyfrowy, ten drugi stanowi jeden z rodzajów podpisu elektronicznego. 
Podpis cyfrowy różni się od innych podpisów elektronicznych tym, że został wykonany przy 
pomocy kryptografii asymetrycznej z parą kluczy prywatny – publiczny. 
 
67. Zapory ogniowe – pojęcia podstawowe, obszary zastosowań. 
 
Zapora sieciowa (ang. firewall) – jeden ze sposobów zabezpieczania sieci i systemów przed intruzami. 
Termin  ten  może  odnosić  się  zarówno  do  dedykowanego  sprzętu  komputerowego  wraz  ze 
specjalnym  oprogramowaniem,  jak  i  do  samego  oprogramowania  blokującego  niepowołany  dostęp 
do komputera  
Pełni rolę ochrony sprzętowej i programowej sieci wewnętrznej LAN przed dostępem z zewnątrz tzn. 
sieci publicznych, Internetu,  
chroni też przed nieuprawnionym wypływem danych z sieci lokalnej na zewnątrz.
  
Do jego podstawowych zadań należy filtrowanie połączeń wchodzących i wychodzących oraz tym samym 
odmawianie żądań dostępu uznanych za niebezpieczne. 
Poprawnie skonfigurowany firewall powinien odeprzeć wszelkie znane typy ataków.  
 
68. Systemy wykrywania zagrożeń (IDS) – koncepcja, zasady lokalizacji sondy. 
 
IDS ( Intrusion Detection System) – systemy wykrywania i zapobiegania włamaniom – urządzenia sieciowe 
zwiększające bezpieczeństwo sieci komputerowych przez wykrywanie (IDS) lub wykrywanie i blokowanie 
ataków (IPS) w czasie rzeczywistym. 
 
Systemy  wykrywania  włamań  działają  przez  analizę  ruchu  sieciowego  polegającą  na  wyszukiwaniu  w 
pakietach ciągów danych charakterystycznych dla znanych ataków sieciowych. Kluczowym elementem jest 
baza sygnatur, budowana wraz z pojawianiem się nowych ataków i odpowiednio często aktualizowana. 
 
Typowe elementy systemu IDS to: 
sonda (ang. sensor) – element analizujący ruch sieciowy i wykrywający ataki,
baza danych – zbierająca informacje o atakach z grupy sensorów,
analizator logów – umożliwiający wizualizację i analizę logów z grupy sensorów.
69. Wirtualne sieci prywatne (VPN) - koncepcja, przykłady zastosowań, stosowane protokoły. 
 
VPN (ang.  Virtual  Private Network, Wirtualna Sieć Prywatna) –  Tunel,  przez który płynie  ruch w ramach 
sieci  prywatnej  pomiędzy  klientami  końcowymi  za  pośrednictwem  publicznej  sieci  (takiej  jak  Internet)  w 
taki sposób, że węzły tej sieci są przezroczyste dla przesyłanych w ten sposób pakietów. Można szyfrować 
przesyłane dane w celu zapewnienia większego poziomu bezpieczeństwa. Określenie "Wirtualna" oznacza, 
że  sieć  ta  istnieje  jedynie  jako  struktura  logiczna  działająca  w  rzeczywistości  w  ramach  sieci  publicznej. 
Pomimo  takiego  mechanizmu  działania  stacje  końcowe  mogą  korzystać  z  VPN  dokładnie  tak  jak  gdyby 
istniało pomiędzy nimi fizyczne łącze prywatne. Rozwiązania oparte na VPN stosowane są np. w sieciach 
korporacyjnych firm, których zdalni użytkownicy pracują ze swoich domów na niezabezpieczonych łączach.  
 
Protokoły: 
IPSec
L2TP
PPTP
70.  Wyjaśnij  określenie  "exploitation-exploration  trade-off"  w  kontekście  próby  definicji  sztucznej 
inteligencji. 
 
Określenie to zostało wprowadzone z uwagi na trudność sformułowania definicji sztucznej inteligencji.  
Prawdziwy inteligentny system, powinien w odpowiednim stopniu, wykorzystywać informacje i wiedzę na 
temat problemu(exploitation)[wykorzystanie tego co już wiemy o problemie i metodzie jego rozwiązania]. 
Jednak system taki nie powinien się zawężać tylko do wykorzystania tego co już umiemy, ale również dążyć 
do  poznania  nowego[exploration].  Dobrze  skonstruowany  system,  powinien  odpowiednio  wyważyć  ile 
zasobów poświęcić na exploitation i exploration. 
 
71. Na czym polega uczenie sieci neuronowej algorytmem typu backpropagation. 
 
Metoda  wstecznej  propagacji  błędów  jest  jedną  z  najpopularniejszych  metod  uczenia  sieci  neuronowych 
wielowarstwowych. 
Algorytm  wstecznej  propagacji  -  BP  (ang.  BackPropagation)  określa  strategię  doboru  wag  w  sieci 
wielowarstwowej. Podczas procesu uczenia sieci dokonuje się prezentacji pewnej ilości zestawów uczących 
(tzn.  wektorów  wejściowych  oraz  odpowiadających  im  wektorów  sygnałów  wzorcowych  (wyjściowych)). 
Uczenie polega na takim doborze wag neuronów by w  efekcie końcowym błąd popełniany przez sieć był 
mniejszy  od  zadanego.  Nazwa  "wsteczna  propagacja"  pochodzi  od  sposobu  obliczania  błędów  w 
poszczególnych warstwach sieci. Najpierw obliczane są błędy w warstwie ostatniej (na podstawie sygnałów 
wyjściowych  i  wzorcowych.  Błąd  dla  neuronów  w  dowolnej  warstwie  wcześniejszej  obliczany  jest  jako 
pewna  funkcja  błędów  neuronów  warstwy  poprzedzającej.  Sygnał  błędu  rozprzestrzenia  się  od  warstwy 
ostatniej, aż do warstwy wejściowej, a więc wstecz. 
 
72. Omów podstawowe metody bezstratnej i stratnej kompresji danych. 
 
Kompresja stratna – metoda zmniejszania liczby bitów potrzebnych do wyrażenia danej informacji, które nie 
dają gwarancji, że odtworzona informacja będzie identyczna z oryginałem 
Dla  niektórych  danych  algorytm  kompresji  stratnej  może  odtworzyć  informację  w  sposób 
identyczny.  
Algorytmy kompresji stratnej odrzuca najmniej istotne dane o dźwięku, obrazie, pozostawiając dane
o wyższej wartości dla rozpoznawania tej informacji (akustycznej, wizualnej).
Ilość odrzucanych danych jest zazwyczaj określana przez stopień kompresji.
Zwykle kompresję stratną stosuje się do: obrazków, dźwięków, ruchomych obrazów, np. w filmie.
Prostym przykładem kompresji stratnej jest np. zachowanie tylko co drugiego piksela
 
Kompresja  bezstratna–  ogólna  nazwa  metod  kompresji  informacji  do  postaci  zawierającej  zmniejszoną 
liczbę  bitów,  pod  warunkiem  że  metoda  ta  gwarantuje  możliwość  odtworzenia  informacji  z  postaci 
skompresowanej  do  identycznej  postaci  pierwotnej.  Algorytmy  kompresji  bezstratnej  dobrze  kompresują 
"typowe" dane, czyli takie w których występuje znaczna nadmiarowość informacji (redundancja).  
 
Najczęściej  używane  metody  kompresji  bezstratnej  można  podzielić  na  słownikowe  i  statystyczne,  choć 
wiele metod lokuje się pośrodku: 
metody  słownikowe  poszukują  dokładnych  wystąpień  danego  ciągu  znaków,  np.  zastępują  'the  ' 
krótszą ilością bitów niż jest potrzebna na zakodowanie 4 niezwiązanych znaków. Jednak znajomość 
symbolu 'the ' nie pociąga za sobą usprawnień w kompresowaniu 'they' czy 'then'. 
metody statystyczne używają mniejszej ilości bitów dla częściej występujących symboli, w
przypadku  praktycznie  wszystkich  oprócz  najprostszych  metod,  prawdopodobieństwa  zależą  od 
kontekstu.  A  więc  np.  dla  'h'  występującego  po  't'  używają  mniejszej  ilości  bitów  niż  dla  innych 
znaków w tym kontekście. 
73. Wymień standardowe metody kompresji sygnałów multimedialnych: obrazów nieruchomych, dźwięku, 
video. Omów dokładniej jedną z nich. 
 
Kompresja obrazków JPEG  
Najbardziej powszechnym algorytmem kompresji obrazów jest JPEG. Ludzie znacznie dokładniej 
postrzegają drobne różnice jasności od drobnych różnic barwy. Obraz składający się z pikseli o takich 
samych cechach można połączyć w jedną grupę. 
 
Kompresja dźwięku 
Kompresję dźwięku możemy uzyskać poprzez zmniejszenie częstotliwości próbkowania. 
 
Kompresja ruchomych obrazów  
Najprostsze systemy kompresji ruchomych obrazów po prostu kompresują wszystkie klatki osobno. Prostym 
sposobem wykorzystania danych o poprzednich klatkach jest kodowanie różnicy wartości pikseli o tym 
samym położeniu zamiast samych wartości. Tym sposobem można dobrze skompresować sceny w których 
kamera jest nieruchoma. Obraz składający się z pikseli o takich samych cechach można połączyć w jedną 
grupę.