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ę.