background image

 
 

Politechnika Krakowska 

im. Tadeusza Kościuszki 

 

Wydział Fizyki, Matematyki i Informatyki 

 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 

 

Systemy Operacyjne 

 

dr inż. Stanisława Plichta 

 
 
 
 

Przykładowe pytania i odpowiedzi do zadań 

egzaminacyjnych. 

 
 
 

background image

1. Co to jest utykanie procesora i jak temu zapobiegać? 
Jest to oczekiwanie procesora na nadejście danych do wykonywanego polecenia. Sytuację poprawia bufor z szybkiej 
pamięci zwany pamięcią podręczną albo cache. 
 
2. Prawa kopiowania i kontroli? 
Prawo kopiowania (oznaczamy *): umożliwia skopiowanie prawa dostępu w obrębie kolumny, dla której zostało 
zdefiniowane. Istnieją dwa warianty: 
-przekazywanie (prawo jest kopiowane z pola do innego pola i usuwane z poprzedniego miejsca pobytu) 
- ograniczone kopiowanie (Prawo R* jest kopiowane i wynikiem takiej operacji jest R (nie R*). Proces działający w 
następnej domenie ma prawo R i nie może dalej kopiować prawa R.) 
Prawo kontroli: 
-zmiana elementów w wierszach macierzy dostępów (jedynie dla obiektów - domen) 
-proces działający w domenie D2 może zmienić domenę D4 
 
3. Porównanie linków twardych i symbolicznych w tabelce? 
 

Cecha 

Link Twardy 

Link Symboliczny 

Ilość dowiązań pliku 

Zwiększa 

Nie zwiększa 

Działanie 

Twardy link wskazuje na konkretny 

obszar dysku 

Odwołuje się do ścieżki i 

nazwy pliku 

 

Zastosowanie 

Pliki zwykłe 

Wszystkie rodzaje plików i 

katalogi (nawet nieistniejące) 

 

 

Zakres działania (system 

plikowy) 

 

tylko w obrębie tego samego 

systemu plikowego 

 

W różnych systemach 

plikowych 

 

Nr i-węzła 

Ten samo co plik 

nowy 

 

Wielkość pliku 

Taka jak plik 

Taka jak długość nazwy pliku 

 

Typ pliku 

Taki jak plik 

- l 

 

 
4. Jakie informacje zawiera katalog w FAT? 
Nazwa zbioru, czas i data utworzenia zbioruczas i data ostatniego dostępunumer pozycji zbioru w tablicy FAT
Długość zbioru 
 
5. Jakie informacje zawiera katalog w Ext?
 
Numer i-węzła (2 bajty), nazwa pliku (14 bajtów). 
 
6. Obliczyć liczbę braku stron - LRU? 
Algorytm LRU (Least Recently Used). Ciąg odniesień: 7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1 
Działanie (przy trzech ramkach) : 

7 0 
7 0 1 
2 0 1 
2 0 3 
4 0 3 
itd. 
Ofiarą jest strona, która nie była używana od najdłuższego czasu. Jest to algorytm 
przybliżający algorytm optymalny. 
 
 
7. Obliczyć średni czas oczekiwania – alg. SJF? 
patrz 31. 

background image

 
8. Różnice w sposobach synchronizacji: semafory i strukturalne metody synchronizacji? 
Monitory. 
Stosując semafory można popełnić szereg błędów programistycznych: zapomnieć o podniesieniu czy 
opuszczeniu semafora, pomylić semafory, czy np. pomylić operacje P i V. W przypadku monitorów 
odpowiednie instrukcje synchronizujące są realizowane przez język programowania. 
Konstrukcja monitora zapewnia, że tylko jeden proces na raz może znajdować się w monitorze. Pozostałe 
procesy oczekują w kolejce (FIFO). Jeśli jakiś proces chce wejść do monitora, który jest właśnie zajęty, to 
jest on wstawiany na koniec kolejki procesów oczekujących na wejście do monitora. Jeśli proces opuszcza 
monitor, a inne procesy czekają w kolejce na wejście do monitora, to pierwszy proces z kolejki wchodzi do 
monitora. 
Regiony Krytyczne. 
 Każdy proces posiada swoje własne zmienne lokalne oraz procedury 
 Do zmiennych lokalnych proces może sięgać tylko w swoich procedurach, żaden z procesów nie ma 
dostępu do zmiennych lokalnych innego procesu 
 Procesy współdzielą między sobą zmienne globalne 
 
9. Sprzętowe mechanizmy ochrony pamięci operacyjnej? 
Ochrona wektora przerwańochrona procedur obsługi przerwańoddzielenie obszaru pamięci programów 
 
10. Problem zgodności pamięci podręcznej? 
Jest to chwilowy brak zgodności pomiędzy zawartością wiersza pamięci operacyjnej, a jego kopią w pamięci 
podręcznej. Występuje gdy w wyniku zapisu przez CPU zmienia się zawartość jej pamięci podręcznej. Problem w 
środowisku wieloprocesorowym (cache coherency) 
 
11. Buforowanie a spooling? 
Buforowanie: 
Zrównoleglenie we/wy w pojedynczej maszynie. Metoda jednoczesnego wykonywania obliczeń i wejścia-wyjścia 
dla jednego zadania: 
• nie eliminuje całkowicie przestojów CPU czy urządzeń we-wy 
• wymaga przeznaczenia pamięci na systemowe bufory 
• niweluje wahania w czasie przetworzenia danych 
WE → BUFOR → CPU BUFOR WY 
Spooling: 
Przenoszenie danych do szybszej pamięci zewnętrznej. Zastosowanie bufora do przechowywania danych dla 
urządzeń, które nie dopuszczają przeplatania danych w ich strumieniach. NP :drukarka 
Metoda jednoczesnego wykonywania wejścia-wyjścia jednego zadania i obliczeń dla innego zadania. 
- Możliwe dzięki upowszechnieniu się systemów dyskowych 
- Podczas wykonywania jednego zadania system operacyjny: 
– czyta następne zadanie z czytnika kart na dysk (kolejka zadań) 
– drukuje umieszczone na dysku wyniki poprzedniego zadania 
- Pula zadań - możliwość wyboru kolejnego zadania wykonania 
WE DYSK CPU DYSK WY 
 
12. Jaki ciąg poleceń jest powodowany przez brak strony? 
1. Odniesienie 
2. Pułapka (brak strony w tablicy stron) 
3. SO sprawdza, czy strona jest w pamięci pomocniczej 
4. Sprowadzenie brakującej strony 
5. Odnowienie tablicy stron 
6. Wznowienie wykonania 
 
13. Jakie metody przydziału miejsca na dysku są odpowiednie dla dostępu bezpośredniego? 
System plików zwartych (również dostęp sekwencyjny), mapa plików, bloki indeksów 
 
14. W jakich metodach przydziału miejsca na dysku nie występuje fragmentacja zewnętrzna? 
Łańcuch powiązanych bloków, bloki indeksów 
 
 
 

background image

15. Co to jest i do czego służy blok kontrolny systemu? 
PCB 
– (Process Control Block) Zestaw informacji o stanie procesu. Znajduje zastosowanie przy przywracaniu 
procesu i usuwaniu go z procesora. Zawiera: 
 Stan procesu 
 Licznik rozkazów 
 Star rejestrów procesora 
 Informacji związane z planowaniem 
 Informacje związane z zarządzaniem pamięcią 
 Informacje rozliczeniowe, 
 Informacje o stanie WE/WY 
 
16. Wymień niewywłaszczające algorytmy planowania? 
FCFS (First Come First Served - FIFO), SJF (Shortest Job First) 
 
17. Implementacja operacji semaforowej wait (z obsługą kolejek procesora)? 
C(s) 
– wartość początkowa semafora s, C(s)>=0 
ns(s)- liczba wykonań operacji (signal) na 
nw(s) 
liczba wywołań operacji (wait) na 
np(s) 
liczba przejść przez operacje (wait) na (procesy kontynuowały pracę po P) 
wait(s), P(s): 
nw(s):=nw(s) + 
1
if nw(s)<= C(s)+ns(s) 
then np(s):=np(s)+1 
 
Wykonanie operacji nie pociąga za sobą zawieszenia procesu, o ile liczba wykonań tej operacji nie jest większa 
nią liczba wykonań operacji zwiększona o wartość początkowa semafora. 
signal(s) V(s): 
if nw(s) > C(s)+ns(s) 
then np(s):=np(s)+1; 
ns(s):=ns(s) + 1; 
W wyniku działania operacji jeden proces jest reaktywowany (o ile taki był). 
 
18. Różnice między: blokującym, nieblokującym i asynchronicznym we/wy? 
 Blokowane wywołanie systemowe – wstrzymanie procesu wywołującego (kolejka procesów czekających) 
Zachodzenie na siebie operacji we/wy i obliczeń – aplikacja wielowątkowa 
 Nieblokowane wywołanie op.we/wy – nie wstrzymuje aplikacji; kończy się szybko zwracając liczbę 
przesłanych bajtów (niekoniecznie wszystko) 
 Asynchroniczne odwołanie do systemu – powrót do aplikacji natychmiast; po zakończeniu operacji 
we/wy przerwanie lub przekazanie sygnału (zamówienie zostanie wykonane w całości) 
 
19. Zasada wiedzy koniecznej? 
Zasada wiedzy koniecznej (need to know): Proces p wywołuje procedurę A - procedura A ma dostęp jedynie do 
swoich zmiennych i przekazanych do niej parametrów, a nie do wszystkich zmiennych procesu p. 
 
20. Na czym polega wyższość RAID5 nad RAID3? 
Równomierne obciążenie dysków, większa szybkość odczytu 
 
21. Jakie są strategie radzenia sobie z zakleszczeniami? 
patrz 101 

 

22. Porównaj sposób zarządzania pamięcią w systemach Linux i Windows? 

 

Windows 

Linux 

- pamięć fizyczna (RAM), 
-  pamięć wirtualna (przechowywana na dysku), 
 automatycznie ustawia obsługę pamięci fizycznej 
- umożliwia użytkownikowi ręczną konfigurację pamięci 
wirtualnej lub może zrobić to 
automatycznie 
- dzięki takiemu narzędziu jak Miernik zasobów możliwa 

- podział pamięci fizycznej na ramki 
- podział pamięci wirtualnej na strony 
- rozwiązania sprzętowe 
- przydział pamięci fizycznej poszczególnym procesom, 
- odwzorowanie logicznej przestrzeni adresowej procesu 
na fizyczną przestrzeń adresową pamięci, 
-ochrona zawartości pamięci, 

background image

jest kontrola zużycia zasobów 
użytkownika, systemu oraz interfejsu graficznego 
- również dzięki Monitorowi systemu możliwa jest 
obserwacja aktualnego stanu zużycia 
pamięci, podręcznej pamięci dysku, jądra systemu oraz 
systemu plików 
- ma ikonę System, która informuje nas o pamięci 
wirtualnej i pamięci fizycznej komputera 

 

- współdzielenie obszarów pamięci przez różne procesy. 
- obsługuje pamięć wirtualną - wykorzystuje cześć 
dysku jako rozszerzenie fizycznej Pamięci 
- Jądro zapisuje zawartość nieużywanych bloków 
pamięci fizycznej na dysku, umożliwiając tym 
samym wykorzystanie ich do innych celów 
- Linux potrafi wykorzystywać zwykły plik na systemie 
plików lub oddzielną partycję jako obszar wymiany. 
- Linux pozwala używać kilku partycji/plików wymiany 
jednocześnie. 
 
 

 

 

 
23. Schematy przydziału ramek? 
- równy (każdy proces dostaje tyle samo ramek) 
- proporcjonalny (liczba ramek proporcjonalna do jego rozmiaru) 
- priorytetowy (liczba przydzielanych ramek jest proporcjonalna do priorytetu procesu lub do kombinacji priorytetu 
i rozmiaru) 
- zstępowanie lokalne 
- zstępowanie globalne 
 
24. Jak obniżyć aktywność stronicowania we wstępnej fazie procesu? 
Zastosować stronicowanie wstępne (prepaging). 
 
25. Jak się oblicza efektywny czas dostępu? 
EAT (Effective Access Time)=(1-p)·cd + p · x 
cd - czas dostępu do pamięci zwykłej 
x – narzut związany z przerwaniem braku strony 
p - prawdopodobieństwo braku strony 
 
26. Model zbioru roboczego? 
Opiera się na założeniu, że program ma charakterystykę strefową(lokalność odwołań). Zbiór roboczy, to zbiór 
stron, do których nastąpiło odwołanie w ciągu ostatnich I instrukcji (np. I = 1000). Zbiór roboczy ma przybliżać 
strefę, w której znajduje się program. Dla każdej strony procesu utrzymujemy bit odwołania. Co ‘I’ instrukcji 
następuje zliczenie podniesionych bitów odwołania we wszystkich ramkach procesu i ich wyzerowanie. Liczba 
podniesionych bitów jest przybliżeniem rozmiaru zbioru roboczego. Znając wielkości zbiorów roboczych, 
możemy przydzielić procesom pamięć proporcjonalnie do wielkości ich zbiorów roboczych. Jeśli suma rozmiarów 
zbiorów roboczych wszystkich procesów jest większa niż rozmiar dostępnej pamięci, prawdopodobnie mamy do 
czynienia z szamotaniem. Należy wówczas wstrzymać jeden z procesów, aby nie pogarszać sytuacji. System 
przydziela ramki procesom wg rozmiarów ich zbiorów roboczych 
 
27. Rozszerzone prawa dostępu dla właściciela pliku? 
t: Powoduje utrzymanie w pamięci kodu programu nawet, jeśli proces, który z nich korzystał, już się zakończył. 
Może to zmniejszyć obciążenie systemu. 
s: ustawione dla plików binarnych powoduje, że procesy, które je wykonują mają takie same prawa, jak właściciel 
wykonywanego pliku. 
 
28. Omów architekturę klient - serwer? 

Struktura klient-serwer: 
 Podział systemu operacyjnego na moduły, 
 Moduły nie są rozmieszczone w warstwach, 
 Nie komunikują się między sobą poprzez wywołanie procedur, ale wysyłają komunikaty za pośrednictwem 
centralnego programu obsługi komunikatów, 
 Komunikaty mogą być wysyłane w obie strony, 
 Moduł wysyłający komunikat początkowy nazywa się klientem
 Moduł obierający ten komunikat jest serwerem

 
 

background image

29. Omówić RAID0 i RAID1? 
RAID 0 - Dane są podzielone na bloki(najczęściej o rozmiarze 512 bajtów) pomiędzy wszystkie dyski. Jest to 
rozwiązanie tanie w implementacji, lecz nie oferuje bezpieczeństwa danych. Dane odczytywane są równolegle ze 
wszystkich dysków co zapewnia szybkość, lecz przy awarii jednego dysku nie jesteśmy w stanie odtworzyć 
danych. 
RAID 1 – Zapis danych jest realizowany na dyskach połączonych w pary, dane na obu dyskach w każdej parze są 
identyczne. Zapewnia wysoki poziom bezpieczeństwa, lecz kosztem utraty połowy pojemności dysku. 
 
30. Omów semafor oraz operacje, które można na nim wykonać? 

Semafory służą do synchronizacji procesów. Pozwalają na czasowe zabezpieczenie jakiegoś zasobu przed innymi 
procesami. Semafor jest to nieujemna zmienna całkowita, na której, z wyjątkiem nadawania wartości 
początkowych, mogą działać jedynie operacje czekaj sygnalizuj
Operacja czekaj powoduje zmniejszenie wartości semafora o 1, pod warunkiem, że nie ma on wartości 0. Jest to 
operacja niepodzielna. Operacja czekaj może spowodować wstrzymanie jakiegoś procesu, ponieważ jeśli dotyczy 
ona semafora mającego wartość 0, to proces, którym ta operacja wystąpiła, będzie mógł być nadal wykonywany 
tylko wówczas, gdy inny proces zwiększy wartość semafora o 1 w wyniku operacji sygnalizuj

Operacja sygnalizuj powoduje zwiększenie wartości semafora o 1 i zawsze jest możliwa do wykonania. Jest to 
również operacja niepodzielna. 
(ogólnie o semaforach można lać wodę na 3 strony ale te informacje wydają mi się najrzetelniejsze) 
 
31. Omów algorytm SJF oraz policz średni czas oczekiwania dla algorytmów szeregowania zadań SJF i 
FIFO dla procesów o czasach trwania faz wynoszących 7, 5, 2, 4 jednostki? 
SJF jest algorytmem optymalnym ze względu na najkrótszy średni czas oczekiwania. W wersji z wywłaszczaniem, 
stosowana jest metoda: najpierw najkrótszy czas pracy pozostałej do wykonania. Problemem tego algorytmu 
jest głodzenie długich procesów - może się zdarzyć, że cały czas będą nadchodzić krótsze procesy, a wtedy proces 
dłuższy nigdy nie zostanie wykonany. Algorytm SJF jest optymalny, tzn. daje minimalny średni czas oczekiwania 
dla danego zbioru procesów. 
SJF śr. czas oczek. = (0 + (0+2) + (0+2+4) + (0+2+4+5))/4 = (0+2+6+11)/4 = 19/4 = 4.75 
FCFS śr. czas oczek. = (0 + (0+7) + (0+7+5) + (0+7+5+2))/4 = (0+7+12+14)/4 = 33/4 = 8.25 
 
32. Omów poziomy planowania procesów (zadania planistów)? 
Poziomy planowania: planowanie długoterminowe, średnioterminowe i krótkoterminowe. 
Długoterminowe – planista kontroluje raz na kilka minut w razie potrzeby ładuje zadanie z pamięci pomocniczej do 
operacyjnej 
Średnioterminowe – występuje wtedy jeżeli planista średnioterminowe usuwa jakiś proces z pamięci bo np. trzeba 
tej pamięci dla innych procesów a potem go przywraca 
Krótkoterminowe – planista co 10-100ms kontroluje i wybiera, zgodnie z algorytmem, proces z pamięci 
operacyjnej do wykonania po bieżącym-aktywnym procesie (lub natychmiast w zależności od algorytmu.) 
 
33. Oblicz liczbę braków stron dla algorytmu FIFO dla 4 ramek, gdy ciąg odwołań do pamięci ma postać 
501,503,103,205,200,210,100,501,302,320,201,210 przy założeniu że strona ma rozmiar 100B. 
 
Możemy skrócić odwołania do postaci 5,5,1,2,2,2,1,5,3,3,2,2 , następnie zredukować powtarzające się po sobie 
odwołania do postaci 5 1 2 1 5 3 2. Daje to łącznie 4 braki stron. 
 

Chwila 

1  2  3  4  5  6  7 

odwołanie  5  1  2  1  5  3  2 

Ramka1 

5  5  5  5  5  5  5 

Ramka2 

  1  1  1  1  1  1 

Ramka3 

 

  2  2  2  2  2 

Ramka4 

 

 

 

 

  3  

 
 
 
 
 
 
 

background image

34.Prawa dost

ępu 

WYKONANIE CZYNNOŚCI 

PLIK 

KATALOG 

 

r w x 

r w x 

Wejście do katalogu 

komenda cd 

- - - 

- - x 

Przeglądanie, jakie pliki znajdują się w katalogu 

komenda ls 

- - - 

r - - 

Przeglądanie, jakie pliki znajdują się w katalogu i 

jakie mają atrybuty 

komenda ls –l, ls –s, ls –F 

- - - 

r – x 

Utworzenie nowego pliku 

- - - 

- w x 

Zmiana nazwy pliku 

- - - 

- w x 

Usunięcie pliku 

- - - 

- w x 

Czytanie pliku 

r - - 

- - x 

Zapis do pliku istniejącego 

- w - 

- - x 

Wykonanie pliku binarnego 

- - x 

- - x 

Wykonanie skryptu powłoki 

r - x 

- - x 

oglądanie 

zawartości 

pokazywanie 

plików z 
katalogu 

zmiana, 

usunięcie 

zawartości 

dodawanie 

elementu do 

katalogu 

uruchomienie 

pliku 

wykonywalnego 

cd 

usuwanie pliku 

usuwanie 

katalogu 

(pustego) 

zmiana praw 

dostępu 

zmiana 

praw 

dostępu 

otrzymanie 

własności 

otrzymanie 

własności 

 
35. Co się dzieje z procesem po jego utworzeniu? (w jakich stanach przebywa, do jakich kolejek może trafić, 
kiedy może do nich zostać wrzucony, a kiedy wyciągnięty)? 
Gdy nowoutworzony proces ma już wszystkie zasoby do dyspozycji (oprócz procesora) 
1.Proces nowy może przejść jedynie do stanu gotowy. Dzieje się tak po przyjęciu go przez system. 
2.Proces gotowy może przejść jedynie do stanu aktywny. Dzieje się tak, gdy planista przydzieli temu procesowi 
procesor. 
3.Proces aktywny może przejść do jednego z trzech stanów: 
- gotowy (gdy planista odbierze temu procesowi procesor), 
- czekający (gdy ten proces rozpocznie oczekiwanie na jakieś zdarzenie, albo na ukończenie operacji wejściawyjścia), 
- zakończony (gdy proces zakończy działanie). 
4.Proces czekający może przejść jedynie do stanu gotowy. Dzieje się tak, gdy nastąpi oczekiwane przezeń 
zdarzenie lub ukończenie operacji wejścia-wyjścia. 
5.Proces zakończony nie może już zmienić swojego stanu. 
 

background image

 

 
proces może wydać zamówienie na operację we/wy i następnie zostać umieszczony w kolejce procesów 
czekających na we/wy. Proces może utworzyć nowy proces i oczekiwać na jego zakończenie. Proces może zostać 
przymusowo usunięty z procesora w wyniku przerwania i przeniesiony z powrotem do kolejki procesów gotowych. 

 

 
Stan procesu opisany w strukturze procesu, może przyjmować następujące wartości: 
SIDL - stan pośredni podczas tworzenia procesu 
SRUN – wykonywany 
SSLEEP - oczekujący (na zdarzenie) 
SSTOP - zawieszony (proces jest zatrzymany przez sygnał lub proces macierzysty) 
SZOMB – stan pośredni podczas usuwania procesu 
 
36. Omów metody przydziału miejsca na dysku, które Twoim zdaniem najlepiej nadają się do 
implementowania dostępu sekwencyjnego? 
1. System plików zwartych (przydział ciągły): cały plik zajmuje ciąg kolejnych bloków; odwołanie do pliku składa 
się z adresu bloku początkowego i rozmiaru pliku (ilość bloków w pliku). Własności: 
-Efektywność dostępu (niewielkie ruchy głowic dysk.) 
-Łatwa lokalizacja bloków pliku zarówno przy dostępie sekwencyjnym jak i swobodnym 
-Problem fragmentacji zewnętrznej: po usuniętych plikach pozostają dziury, które trudno połączyć w jeden 
większy blok 

background image

-Umożliwia najbardziej elastyczną organizację danych – zniszczenie jednego bloku powoduje tylko lokalną utratę 
danych 
2. Łańcuch powiązanych bloków (przydział listowy): plik jest listą powiązanych bloków, dowolnie rozproszonych 
w dostępnej przestrzeni dyskowej; kilka ostatnich bajtów jednego bloku wskazuje na adres bloku kolejnego. 
Bloków może być dowolna ilość. Własności: 
-Nie ma fragmentacji zewnętrznej i wynikających z niej wad metody przydziału 
-Dostęp do pliku jest z konieczności sekwencyjny 
-Konieczność uzyskania dużej liczby dostępów do dysku, zanim znajdzie się koniec pliku 
-Konieczność pamiętania wewnątrz bloku wskaźnika do bloku następnego 
-Utrata jednego bloku pociąga za sobą stratę wszystkich następnych 
 
37. Omów odwzorowanie adresu przy użyciu stronicowania pamięci i segmentacji ? 
Segmentacja - Przestrzeń adresów logicznych jest zbiorem segmentów. Każdy segment ma nazwę i długość. 
Użytkownik określa więc każdy adres poprzez nazwę segmentu i odległość. Odwzorowanie adresów polega zatem 
po prostu na dodawaniu adresu użytego w programie do adresu bazowego, w celu określenia adresu odpowiedniej 
komórki pamięci. 
Stronicowanie - Każdy adres wygenerowany przez procesor dzieli się na dwie części: numer strony i odległość na 
stronie. Numer jest używany jako indeks w tablicy stron, która zawiera adresy bazowe wszystkich stron w pamięci 
operacyjnej. Łącząc adres bazowy z odległością na stronie uzyskuje się fizyczny adres w pamięci. 
 
38. Oblicz liczbę braków stron dla algorytmu LRU dla k-ramek dla ciągu odwołań do pamięci postaci 501, 
505, 103, 205, 200, 210, 100, 501, 302? 
Patrz zadanie 6 
 
39. Różnice pomiędzy EXT3 a FAT? 
W systemie FAT32 ograniczenie co do pojedynczego pliku to 4GB wynika to z ograniczonej pojemności tablicy 
FAT. W systemie ext3 zależy od wielkości bloku dyskowego. W FAT32 pierwszy blok danych znajduję się we 
wpisie katalogowym, kolejne znajdują się w tablicy FAT. W ext3 wszystkie adresy znajdują się w i-węźle pliku. 
 
40. Jakie dane pamiętane są w i-węźle a jakie w katalogu? 
W i-węźle: ID właściciela, ID grupy, typ pliku, prawa dostępu, czas utworzenia, modyfikacji, ostatniego dostępu, 
liczbę dowiązań, liczba bloków dyskowych zajmowanych przez plik, adresy dyskowe 
W Katalogu: Nazwa pliku, nr i-węzła 
 
41. Co to jest szamotanie i jak zapobiegać? 
Szamotanie to sytuacja gdy proces ma mniej ramek niż liczba aktywnie używanych stron i musi co chwile 
sprowadzać jedną ze stron usuwając inną, która za chwilę będzie niezbędna. Zapobieganie: zastosować lokalny lub 
priorytetowy algorytm zastępowania stron lub dostarczyć procesowi właściwą liczbę ramek – strategia tworzenia 
zbioru roboczego. 
 
42. Macierz praw? 
Abstrakcja ochrony obiektów w systemie operacyjnym: macierz, której wiersze reprezentują domeny ochrony, a 
kolumny — chronione obiekty. Każdy element takiej macierzy zawiera zbiór praw dostępu, które proces działający 
w domenie Di może wykonać na obiekcie Oi 
 
43. Metody przydziału bloków w EXT3? 
System plików zwartych (przydział ciągły), Łańcuch powiązanych bloków ( przydział listowy ), Bloki indeksów ( 
przydział indeksowy ext3 ) 
 
44. Gdzie jest przechowywany adres pierwszego bloku i kolejne w FAT i EXT? 
patrz 39 
 
45. Do czego służy struktura katalogowa? 
Struktura katalogowa służy do odwzorowania faktycznego adresu pliku. 
 
46. We/Wy z blokowaniem i bez. Na czym to polega? 
patrz 18. 
 
47. Co to rekord fizyczny i rekord logiczny i problem zamiany rekordów logicznych na fizyczne? 
Rekord fizyczny – (blok fizyczny) jednostka fizycznej pamięci dyskowej, wszystkie bloki są tego samego rozmiaru 

background image

Rekord logiczny – logiczna jednostka informacja, pod część pliku 
Problemem są różne rozmiary rekordów logicznych i fizycznych. Do rozwiązania tego problemu stosuje się bufor. 
Pobierana jest większa porcja danych z pliku będąca wielokrotnością rozmiaru bloku dyskowego 
 
48. Przez co uzyskana jest optymalizacja zapisu danych? 
Przez odpowiednie umiejscowienie obszaru wymiany dokładnie gdy korzystamy z osobnej strefy dyskowej 
(zarządca pamięci obszaru wymiany) 
 
49. Czego dotyczy adresacja w PAO a czego w pamięci pomocniczej? 
PAO - adresowanie bezpośrednich rozkazów procesora 
Pamięć pomocnicza - adresowanie informacji, danych(pliki, katalogi) znajdujących się trwale na nośniku 
 
50. Co się dzieje w przypadku błędu braku strony? 
Błąd taki musi być obsłużony przez SO. SO sprawdza, czy błąd rzeczywiście jest spowodowany brakiem strony. 
Jeśli nie, to kończy działanie programu. Jeśli tak, to odszukuje adres brakującej strony w pamięci pomocniczej i 
sprowadza ją do wolnej ramki pamięci operacyjnej. Uaktualnia tablicę stron i wznawia działanie procesu. 
 
51. Sposoby realizacji domeny (ochrona)? 
- użytkownik – domena(zbiór obiektów zależy od id użytkownika) 
- proces ( zbiór obiektów zależy od id procesu) 
- procedura ( zbiór obiektów zależy od lokalnych zmiennych procedury) 
 
52. Fragmentacja zewnętrzna? 
Pojawia w trakcie działania aplikacji, gdy dochodzi do szeregu przydzielania i zwalniania bloków pamięci o różnej 
wielkości, skutkiem czego po pewnym czasie bloki wolne i zajęte są przemieszane. Przy chęci wstawienia nowego 
pliku, powstaje brak wolnych bloków w ciągu koło siebie, lecz dziury pomiędzy nimi w zupełności wystarczą na 
zapisanie pliku. 
 
53. Gdzie definiujemy aliasy? 
Aliasy nie są przekazywane do powłok potomnych, istnieją jedynie w bieżącej powłoce, pamiętane są w pamięci 
operacyjnej . W bashu jest to plik .bashrc w TCSH .tcshrc. Polecenie alias wyświetla listę zdefiniowanych aliasów, 
definiuje nowe aliasy 
 
54. Algorytm Lamporta? 
Inaczej algorytm piekarniany. Algorytm ten wykorzystuje się do rozwiązania problemu wzajemnego wykluczania. 
Z zagadnieniem tym mamy do czynienia na przykład, gdy dwa równolegle wykonywane procesy korzystają ze 
wspólnej pamięci 
 
55. Zasada wiedzy koniecznej? 
patrz 19. 
 
56. Algorytmy planowania? 
Planowanie metodą FCFS (first come first served
) - NW 
- proces, który pierwszy zamówił procesor pierwszy go otrzyma. 
- Implementacja - za pomocą kolejki FIFO 
- Blok kontrolny procesu wchodzącego do kolejki procesów gotowych jest dołączany do końca. 
- Wolny procesor przydziela się procesowi z czoła kolejki procesów gotowych 
- Średni czas oczekiwania bywa bardzo długi. 
Najpierw najkrótsze zadanie (SJF shortest job first) NW W(SRTF) 
- długość najbliższej z przyszłych faz procesora (w przypadku równych faz - FCFS) 
- minimalny średni czas oczekiwania 
- planowanie długoterminowe 
Planowanie priorytetowe NW i W 
- SFJ (PRI=1/dł. Fazy) 
- priorytet definiowany wewnętrznie (limity czasu, wielkość pamięci, liczba otwartych plików) 
- priorytet definiowany zewnętrznie (ważność procesu, opłaty, polityka) 
- problem nieskończone blokowanie =głodzenie nisko priorytetowych procesów - rozwiązanie postarzanie (aging
np. co 15 min PRI+=1 
Planowanie rotacyjne – (round-robin) W 
- Zaprojektowano specjalnie dla systemów z podziałem czasu 

background image

- Kolejka procesów gotowych do wykonania traktowana jest jak kolejka cykliczna 
- Planista przydziału procesora przegląda tę kolejkę i każdemu procesowi przydziela odcinek czasu nie dłuższy od 
jednego kwantu czasu 
- Jeśli faza procesora w danym procesie przekracza 1 kwant czasu, to proces będzie wywłaszczony i wycofany do 
kolejki procesów gotowych 
- Implementacja - kolejka FIFO 
- Długi średni czas oczekiwania 
- Duży kwant czasu - FCFS; mały - dzielenie procesora 
Wielopoziomowe planowanie kolejek W 
- Algorytm wielopoziomowego planowania kolejek rozdziela kolejkę procesów gotowych na osobne kolejki. 
- W zależności od pewnych cech, jak rozmiar pamięci lub typ procesu, procesy zostają na stałe przypisane do 
jednej z tych kolejek. 
- Każda kolejka ma własny algorytm planujący 
- Każda kolejka ma bezwzględne pierwszeństwo nad kolejkami o niższych priorytetach (żaden proces z kolejki 
procesów wsadowych nie może być wybrany dopóty dopóki kolejki procesów systemowych i interakcyjnych nie są 
puste) 
- procesy nie mogą przemieszczać się między kolejkami. 
- niski koszt planowania, brak elastyczności. 
- Inna możliwość - operowanie przedziałami czasu między kolejkami: proc. pierwszoplanowe - 80% - metoda 
rotacyjna proc. drugoplanowe - 20% - FCFS 
Wielopoziomowy ze sprzężeniem zwrotnym 
- umożliwia przemieszczanie procesów między kolejkami 
- rozdzielenie procesów o różnych rodzajach faz procesora 
- proces zużywający za dużo czasu procesora przeniesiony do kolejki o niższym priorytecie 
- pozostawienie procesów ograniczonych przez we/wy i procesów interakcyjnych w kolejkach o wyższych 
priorytetach 
- proces oczekujący zbyt długo w nisko priorytetowej kolejce może zostać przeniesiony do kolejki o wyższym 
priorytecie (zapobiega głodzeniu) 
 
57. Algorytmy zamiany stron? 
LRU - ofiarą staje się strona , która nie była używana przez najdłuższy okres, uzyskuje mniejszą ilość braków 
stron niż FIFO. Trudny w zaimplementowaniu, można zastosować dla strony pole znacznika czasu ostatniego 
dostępu do strony(ofiara to ta z najmniejszą wartością znacznika) lub skorzystać ze stosu, wolny od anomalii 
Belady’ego 
FIFO - ofiarą staje się strona, która najdłużej przebywa w pamięci, gorszy niż LRU, nie jest wolny od anomalii 
Belady’ego 
Optymalny - ofiarą staje się strona, która przez najdłuższy okres będzie nieużywana – jest to algorytm teoretyczny, 
służy do oceny jakości innych algorytmów, nie da się go zaimplementować, gdyż nie da się przewidzieć przyszłym 
odwołań do pamięci, maksymalne obniżenie braków stron, wolny od anomalii Belady’ego 
Algorytmy przybliżające LRU 
Jedno z takich przybliżeń polega na skojarzeniu z każdą ramką bitu odwołania/odniesienia. Wstępnie wszystkie 
bity odwołania są równe 0. Przy każdym odwołaniu do strony odpowiadający jej bit jest ustawiany na 1. 
- Algorytm bitów odniesień 
z każdą pozycją w tablicy stron związany jest bit odniesienia ustawiony początkowo na 0 
przy odwołaniu do strony jest on ustawiany na 1 
zastępowana jest ta strona w porządku FIFO, która ma bit odniesienia ustawiony na 0 
Algorytm dodatkowych bitów odniesień 
z każdą stroną związany jest 8 bitowy rejestr ustawiony na początek na 00000000 
w regularnych odstępach czasu (np. co 100ms) SO wprowadza na najbardziej znaczącą pozycję rejestru bit 
odniesienia 
wymieniana jest strona najdawniej używana - najmniejsza liczba w rejestrze np. 0111010<1100010 
jeśli kilka stron ma taką samą wartość rejestru - wymiana wszystkich lub FIFO 
Algorytm drugiej szansy (zegarowy) 
strony przeglądane są w porządku FIFO 
sprawdzenie bitu odniesienia: 
jeśli 0 - strona zastąpiona 
jeśli 1 - druga szansa 
druga szansa - zerowanie bitu odniesienia, ustawienie czasu bieżącego (koniec kolejki) 
przewijanie stron dokonuje się cyklicznie 
strona często eksploatowana - nigdy nie będzie zastąpiona 

background image

Algorytmy zliczające 
algorytmy zliczające korzystają ze związanego z każdą stroną licznika odwołań 
licznik zrealizowany sprzętowo - odwołanie do danej strony powoduje zwiększenie jej licznika o jeden 
Istnieją dwa algorytmy oparte na przeciwstawnych założeniach: 
Least Frequently Used (LFU) - ofiarą staje się strona, do której było najmniej odwołań (najrzadziej używana 
strona) - może być obarczony błędami wynikającymi z faktu, że strona na początku była intensywnie używana, a 
później wcale nie była potrzebna (realizacja – przesuwanie liczników w prawo o jeden bit w regularnych odstępach 
czasu) 
Most Frequently Used (MFU) - ofiarą staje się strona, do której było najwięcej odwołań (najczęściej używana 
strona) 
implementacja tych algorytmów jest kosztowna i nie przybliżają one dobrze algorytmu optymalnego 
 
58. Algorytmy szeregowania, które są wywłaszczające, a które nie? 
patrz 67

 
59. Sposoby komunikacji w linuxie? 
 sygnały - jądro systemu oraz procesy mogą wysyłać sygnały do dowolnego procesu. Zestaw wszystkich 
sygnałów daje polecenie kill –l. 
 plik - najczęstszą metodą komunikowania się procesów są pliki (jeden proces tworzy plik za pomocą 
dowolnego edytora, drugi przetwarza ten tekst - porządkuje alfabetycznie). Taki sposób komunikowania 
się procesów nie jest możliwy w przypadku procesów współbieżnych, chociażby dlatego, że proces 
czytający może wyprzedzić proces piszący i uznać, że komunikacja została zakończona. Ten problem 
został rozwiązany dzięki łączom komunikacyjnym. 
 łącza komunikacyjne - nie są plikami, chociaż mają swój i-węzeł ale nie ma dowiązania. W przypadku 
łącza: jeśli proces czytający zbyt wyprzedzi proces piszący, to oczekuje na dalsze dane; jeśli proces piszący 
zbyt wyprzedzi proces czytający, to zostaje uśpiony. Łącza komunikacyjne wykorzystywaliśmy z poziomu 
powłoki - potoki. dotyczą procesów pokrewnych, powolne. Ponieważ dwa procesy mogą się komunikować 
przez łącze tylko w jedna stronę, więc żaden z nich nie wykorzysta obydwu deskryptorów. Jeden z 
procesów zamyka łącze do czytania, a drugi to pisania. Uzyskuje się wtedy jednokierunkowe połączenie 
między dwoma procesami. 
 łącza nazwane ( kolejki FIFO) - pliki specjalny (typ pliku określony jest literą p), który może być otwarty 
przez każdy proces. Umożliwiają współpracę wielu procesów piszących i czytających (gwarantują 
niepodzielność),powolne Kolejka musi zostać otwarta w trybie komplementarnym tzn. musza być 2 
procesy, których jeden otwiera kolejkę w trybie O_RDONLY, a drugi O_WRONLY, w przeciwnym razie 
jeden z procesów jest blokowany 
Komunikacja międzyprocesorowa IPC 
 semafory - w wielu sytuacjach konieczne jest uniemożliwienie dostępu do zasobów dwóm lub większej 
liczbie procesów. Semafor jest flagą, uniemożliwiającą dostęp do zasobów w takich przypadkach. 
 Komunikaty - niewielka liczba danych, którą można przesłać do kolejki komunikatów. Procesy, które mają 
uprawnienia mogą pobierać z tej kolejki komunikaty. 
 pamięć dzielona - najszybszy sposób komunikacji między procesami. Komunikacja polega na tym, że ten 
sam obszar pamięci jest przydzielany dla kilku procesów. Dzięki temu natychmiast po wpisaniu danych 
przez jeden proces, inne procesy mogą z nich korzystać. 
 
60. Sekcja krytyczna – problem zgodności pamięci podręcznej? 
Pomiędzy pobraniem wartości X a ustawieniem jej na wartość true żaden inny proces nie ma dostępu do zmiennej 
X. Korzystając z funkcji TestAndSet możemy rozwiązać ten problem sekcji krytycznej: 
Sekcja wejściowa: 
while TestAndSet (S) do; 
Sekcja wyjściowa: 
S:=false; 
 
61. Wypisz rodzaje SO i opisz jeden z nich? 
Rownoległe, rozproszone, czasu rzeczywistego 
Czasu rzeczywistego – W systemie takim istnieją dobrze zdefiniowane i stałe ograniczenia czasowe. Przetwarzanie 
musi się zmieścić w tych ramach czasowych w przeciwnym wypadku system nie spełni wymagań. Zastosowano 
także szybkie pamięci ROM. Znajduje zastosowanie jako sterownik urządzenia o specjalnym przeznaczeniu. 
Łagodne systemy czasu rzeczywistego mają mniej napięte ograniczenia czasowe i nie zapewniają planowania w 
terminach nieprzekraczalnych. Przykładem łagodnego systemu jest LINUX. 
 

background image

62. Jak deklaruje się zmienne w powłoce BASH i TCSH? 
[BASH] zmienna=3 (bez spacji) 
[TCSH] set zmienna = 3 
 
63. Jak się inicjalizuje i inkrementuje zmienne w BASH i TCSH? 
[BASH] zmienna=$(($zmienna+1)) 
[TCSH] @ x++ (między @ a nazwa zmiennej spacja) 
 
64. Przełączanie kontekstu 
Proces zachowywania i odtwarzania stanu procesora (kontekstu), by wiele procesów mogło dzielić zasoby 
pojedynczego procesora. Przełączanie kontekstu polega na przydzielaniu procesorowi kolejnych zadań i jest ważną 
cechą wielozadaniowego systemu operacyjnego. Z reguły przełączanie kontekstu jest zadaniem intensywnym 
obliczeniowo i wiele czasu przy projektowaniu systemów operacyjnych poświęca się na optymalizację tego 
zadania. 
 
65. Omów planistów? 
Proces wędruje między różnymi kolejkami przez cały czas swego istnienia. System operacyjny musi w jakiś sposób 
wybierać procesy z tych kolejek. Selekcji dokonuje odpowiedni proces systemu zwany planistą. W systemie 
wsadowym często występuje więcej procesów niż można by ich wykonać. Procesy te są przechowywane w 
urządzeniach pamięci masowej (Dysk). 
Planista długoterminowy (planista zadań) wybiera procesy z puli zadań przechowywanych w pamięci masowej i 
ładuje je do pamięci operacyjnej w celu wykonania. 
Planista krótkoterminowy (planista przydziału procesora) wybiera jeden proces spośród procesów gotowych do 
wykonania i przydziela mu procesor. 
Podstawową różnicą między obydwoma planistami jest częstość ich uaktywnień. Planista krótkoterminowy musi 
bardzo często wybierać nowy proces dla procesora. Częstość uruchamiania planisty krótkoterminowego jest rzędu 
milisekund, planisty długoterminowego – rzędu sekund. Planista długoterminowy działa o wiele rzadziej. 
Zadaniem planisty średnioterminowego jest usuwanie, wymiane (swapping) procesów między pamięcią 
operacyjną, a dyskiem w celu zmniejszenia stopnia wieloprogramowości. 
Usunięte procesy wprowadza się później do pamięci i kontynuuje ich wykonanie od tych miejsc, w których je 
przerwano. Postępowanie takie jest często nazywane wymianą. Proces jest wymieniany, czyli wysyłany z pamięci 
operacyjnej do pamięci masowej i później wprowadzany do pamięci operacyjnej ponownie (przez planistę 
średnioterminowego). 
Wymiana może być niezbędna do uzyskania lepszego doboru procesów lub wówczas, gdy żądania przydziału 
pamięci operacyjnej przekraczają jej bieżący obszar i wymagają zwolnienia miejsca w pamięci. 
 
66. Wieloprogramowość a wielozadaniowość? 
Wieloprogramowość 
- wprowadza się wiele zadań do wykonania 
- program jest przetwarzany w procesorze centralnym dopóki nie musi być wykonane we/wy 
- szeregowanie zadań 
- efektywne wykorzystanie zasobów systemu 
- przetwarzanie wsadowe 
Wielozadaniowość 
- zadania przetwarzane współbieżnie (podział czasu) 
- dostęp bezpośredni zamiast przetwarzania wsadowego 
- priorytety 
 
67. Niewywłaszczające i wywłaszczające algorytmy planowania procesów? 
Niewywłaszczające: FCFS (First Come First Served - FIFO), SJF (Shortest Job First) 
Wywłaszczające: planowanie rotacyjne (round robin), SJF 
 
68. Przy jakim algorytmie szeregowania jest problem głodzenia procesów, na czym polega i jak jemu 
zapobiec? 
Problem głodzenia procesów występuje przy planowaniu priorytetowym. Polega na nieskończonym blokowaniu 
niskopriorytetowych procesów. Rozwiązaniem jest inkrementacja priorytetu o 1 co jakiś czas. 
 
69. Omów i porównaj stronicowanie z segmentacją? 
Celem segmentacji jest logiczny podział przestrzeni adresów, podczas gdy celem stronicowania jest fizyczny 
podział pamięci, którą chcemy implementować jako pamięć na tym samym poziomie. 

background image

Strony mają ustalony rozmiar wynikający z architektury maszyny, podczas gdy rozmiar segmentów może być 
dowolny, określony przez programistę. 
Podział adresu programu na numery strony i bajtu jest wykonywany środkami sprzętowymi, a przekroczenie 
zakresu dla numeru bajtu automatycznie powoduje zwiększenie numeru strony. 
Podział adresu programu na numery segmentu i bajtu jest logiczny, a przekroczenie zakresu dla numeru bajtu nie 
ma żadnego wpływu na numer segmentu (przekroczenie zakresu dla numeru bajtu powoduje sygnalizację 
przekroczenia zakresu pamięci). 
 
70. Omów zarządzanie pamięcią w linuksie? 
- podział pamięci fizycznej na ramki 
- podział pamięci wirtualnej na strony 
- rozwiązania sprzętowe 
 
71. Zagrożenia systemowe i programowe. 
Systemowe
(wynikające z możliwości rozmnażania procesów) 
wirusy - rozchodzą się po innych programach siejąc spustoszenie 
fragment kodu osadzony w poprawnym programie 
systemy jednoużytkownikowe 
robaki 
mechanizm rozmnażania - paraliżowanie działania systemu 
1988r, Morris - robak internetowy, program haczący, program główny (rsh, finger, sendmail) 
kompletny program 
programowe (używanie programów pisanych przez innych użytkowników) 
koń trojański (segment kodu nadużywający swojego środowiska np. w edytorze) 
zagrożenie - długie ścieżki dostępu, 
program naśladujący login przechwytujący hasło 
boczne wejście - pozostawienie luki w oprogramowaniu przez projektanta 
obchodzenie procedur bezpieczeństwa dla pewnego użytkownika 
oszustwa bankowe, kompilator 
 
72. Omów RPC? 
RPC (Remote Procedure Call - zdalne wywołanie procedury) to protokół zdalnego wywoływania procedur. 
Protokoły tego typu mają na celu ułatwienie komunikacji pomiędzy komputerami. Na typowy scenariusz 
użytkowania składają się: 
 Serwer (czyli program oferujący usługi, np. drukowania) przez cały czas nasłuchuje na wybranym porcie, czy 
ktoś się z nim nie łączy. 
 Klient (czyli program który potrzebuje jakiejś usługi od serwera na innym komputerze) nawiązuje z nim 
łączność poprzez sieć komputerową. 
 Klient wysyła swoje dane we wcześniej ustalonym przez programistów klienta i serwera formacie. 
 Serwer realizuje usługę i odsyła potwierdzenie lub kod błędu. 
Powyższe protokół sam zapewnia cały powyższy mechanizm, ukrywając go przed klientem. Może on nawet nie 
wiedzieć, że łączy się z innym komputerem - z punktu widzenia programisty zdalne wywołanie procedury serwera 
wygląda jak wywołanie dowolnej innej procedury z programu klienta. 
 
73. Sposoby realizacji algorytmu wzajemnego wyłączania i jego wady w systemach rozproszonych? 
Wyróżniony proces – koordynator (np. najwyższy adr. siec.). Proces wysyła do koordynatora zamówienie we. do 
SK. Jeśli SK wolna koordynator odsyła odp. OK 
- po jej nadejściu proces wchodzi do SK 
- po wy. Z SK wysyła do koordynatora komunikat 
Jeśli SK zajęta koordynator nie odpowiada; 
- proces -> do kolejki 
- koordynator odpowiada po zwolnieniu SK 
Zalety Zapewnia wzajemne wyłączanie Reguła sprawiedliwa: brak głodzenia, we. do SK w kolejności zamawiania 
Wady: Koordynator - wąskie gardło; wrażliwość na uszkodzenia całego systemu 
 
74. Omów algorytm deterministyczny przydziału procesora w systemie rozproszonym? 
W informatyce, algorytm deterministyczny to algorytm, którego działanie jest całkowicie zdeterminowane przez 
warunki początkowe (wejście). Oznacza to, że uruchomienie kilkukrotne takiego algorytmu doprowadzi za 
każdym razem do takiego samego wyniku. Algorytmy deterministyczne stanowią główny obszar badań 
informatycznych i są najczęściej stosowane, ponieważ mogą być łatwo realizowane na współczesnych 

background image

komputerach. 
 
75. Architektura systemu NFS? 
NFS - sieciowy system plików - umoz˙liwia dzielenie plików 
(zasobów) z róz˙nych systemów operacyjnych (np. UNIX, DOS, VMS). 
NFS przyjmuje abstrakcyjny model systemu plików i odwzorowuje go 
w system lokalny, zalez˙ny od systemu operacyjnego. 
Wykorzystuje architekture klient-serwer. 
– podzial systemu operacyjnego na moduly 
– moduly nie sa rozmieszczone w warstwach 
– nie komunikuja sie miedzy soba poprzez wywoływanie procedur ale wysylaja komunikaty 
za posrednictwem centralnego programu obslugi komunikatow 
– komunikaty moga byc wysylane w dwie strony 
– modul wysylajacy poczatkowy komunikat nazywa sie klientem 
– modul odbierajacy ten komunikat serwerem 
 
76. Omów systemy plików EXT3 i FAT, Czy są jakieś ograniczenia co do wielkości pliku? Gdzie zapisany 
jest pierwszy blok danych pliku, a gdzie kolejne bloki? 
W systemie FAT32 ograniczenie co do pojedynczego pliku to 4GB wynika to z ograniczonej pojemności tablicy 
FAT. W systemie ext3 zależy od wielkości bloku dyskowego. 
MIBD = 12 + n/4B + (n/4)^2 + (n/4)^3 
MRP = MIBD * RB 
MIBD – maksymalna ilość bloków dyskowych 
RB – rozmiar bloku 
MRP – maksymalny rozmiar pliku 
W FAT32 pierwszy blok danych znajduję się we wpisie katalogowym, kolejne znajdują się w tablicy FAT. W ext3 
wszystkie adresy znajdują się w i-węźle pliku. 
 
77. Wymień rodzaje indeksowania wolnych obszarów? 
 Wektor bitowy – Mapa bitowa: Każdy blok dyskowy jest reprezentowany przez 1 bit w wektorze, jeśli 
jest 1 to blok jest wolny, jeśli 0 to blok jest zajęty, mało wydajne, nadaje się jedynie dla małych 
dysków 
 Lista powiązana – Powiązanie wszystkich wolnych bloków w ten sposób, że w bloku poprzednim 
znajduje się indeks bloku następnego, metoda niewydajna 
 Grupowanie – pierwszy wolny blok zawiera indeksy n innych wolnych bloków, z których n-1 wolnych 
bloków służy do alokacji, a n-ty blok zawiera znowu n-1 indeksów kolejnych wolnych bloków, 
umożliwia szybkie odnajdywanie większej liczby wolnych bloków 
 Zliczanie – W przypadku kilku kolejnych (przylegających do siebie) wolnych bloków pamiętany jest 
tylko indeks pierwszego z nich oraz liczba wolnych bloków znajdujących się bezpośrednio za nim. 
Wykazy wolnych obszarów jest ciągiem wpisów składających się z indeksu bloku oraz licznika 
 
78. Wymień cechy planowania wielopoziomowego ze sprzężeniem zwrotnym? 
patrz 56 
 
79. Jakie informacje podlegają transakcjom w NTFS? 
W NTFS wszystkie zmiany na dysku organizowane są w transakcje, które 
wyglądają następująco: 
1. Zapis operacji w logu w pamięci 
2. Zmodyfikowanie woluminu w pamięci 
3. Zapis loga na dysk 
4. Zapis modyfikacji woluminu na dysk 
Jak widać zmodyfikowanie pliku kroniki zawsze wyprzedza faktyczną 
modyfikację. W logu zapisywana jest też informacja o pomyślnym zakończeniu 
danej operacji. Okresowo do dziennika zapisywane są też punkty kontrolne. 
Kronikowaniu w NTFS podlegają tylko metadane (definiujące strukturę 
woluminu i prawa dostępu). Zwykłe dane nie są księgowane. 
 
 
 
 

background image

80. Wymień cztery sposoby implementowania macierzy dostępów? 
- Tablica globalna 
- Wykazy dostępów do obiektów 
- Wykazy uprawnień do domen 
- Mechanizm zamka-klucz 
 
81. Zadania systemu operacyjnego? 

 

zarządzanie procesami,  

 

zarządzanie pamięcią operacyjną, 

 

zarządzanie plikami,  

 

zarządzanie systemem we/wy, 

  zarządzanie pamięcią pomocniczą, 

  planowanie prac,  

 

ochrona zasobów,  

 

umożliwienie wielodostępności, 

 

udostępnienie dobrego sposobu komunikowania się z operatorem,  

 

ewidencjonowanie zasobów komputerowych. 

 
82. Omów strukturę warstwową systemu operacyjnego? 
Tworzenie systemu polega na podzieleniu go na moduły połączone w warstwy. Każda warstwa spełnia funkcje, 
które zależą tylko od warstwy znajdującej się pod spodem. Podział na moduły zmniejsza stopień wzajemnych 
zależności między różnymi składowymi systemu. Pozwala to uniknąć niepożądanych powiązań. 
 
83. Jakie polecenia zmieniają liczbę dowiązań do pliku? 
ln – stworzenie linku twardego 
rm – usunięcie pliku lub linku twardego do tego pliku 
 
84. Kiedy następuje zwolnienie bloków dyskowych zajmowanych przez plik? 
Gdy zostaną usunięte wszystkie dowiązania do pliku. 
 
85. Jakie prawa powinien posiadać plik aby można było go usunąć? 
Prawa dostępu nie mają znaczenia, aby usunąć plik, folder w którym się znajduje musi mieć prawa „w”. 
 
86. Lista rozkazów uprzywilejowanych? 
Aby procesy współbieżne nie zakłócały się wzajemnie część listy rozkazów maszynowych jest zarezerwowana 
wyłącznie do użytku systemu operacyjnego. Te rozkazy uprzywilejowane powinny spełniać następujące zadania: 
włączanie i wyłączanie przerwań, przełączanie procesora od procesu do procesu, obsługiwanie rejestrów 
używanych przez sprzętową ochronę pamięci operacyjnej, wykonywanie operacji wejścia i wyjścia, zatrzymywanie 
procesora centralnego i sterowanie jego operacjami 
 
87. Co się dzieje podczas kasowania pliku? 
Obszar na dysku zajmowany przez plik jest dodawany do listy wolnych obszarów 
 
88. Co się dzieje podczas tworzenia pliku? 
System sprawdza czy lista wolnych obszarów zawiera wymagana ilość wolnego miejsca, jeśli tak, to przydziela 
miejsce na dysku. 
 
89. Co to jest proces? 
Proces to ciąg czynności wykonywanych za pośrednictwem ciągu rozkazów, których wynikiem jest wykonywanie 
pewnych zadań. Aby móc przetrwać w komputerowym środowisku proces potrzebuje pewnych zasobów, do 
których należą m.in. pamięć, procesor, wszelkiego typu urządzenia zewnętrzne. 
 
90. Co to jest ekspedytor? 
Ekspedytor to proces egzekwujący wyroki planisty krótkoterminowego. Przekazuje wybranemu procesowi władzę 
nad procesorem, co wymaga przełączenia kontekstu, przejścia w tryb użytkownika i wykonania skoku do 
instrukcji, którą teraz należy wykonać (np. do tej instrukcji, przed którą ów proces poprzednio wywłaszczono). 
 
91. Co zawiera ogólnosystemowa tablica otwartych plików, a co procesowa? 
Procesowa – bieżący wskaźnik każdego pliku 
Ogólnosystemowa – położenie pliku na dysku, daty dostępu, rozmiar pliku i licznik otwarć 

background image

 
92. Realizacja domeny na UNIXie? (
patrz 43) 
 
94. Środowisko ulotne procesu? 
Możemy zdefiniować jako podzbiór takich podlegających zmianom właściwości systemu, do których proces może 
mieć dostęp. 
 
96. Na czym polega anomalia Belady’ego? 
Zjawisko polegające na tym, że przy zwiekszeniu ilości dostępnych ramek pamięci fizycznej liczba braków stron 
zamiast maleć – rośnie. 
 
97. Gdzie można umiejscowić obszar wymiany? 
Dysk twardy, pamięć flash (USB) – generalnie szybka pamięć pomocnicza z możliwością zapisu i odczytu 
 
98. Jakich procesowych map wymiany używa jądro systemu UNIX? 
Jądro systemu korzysta z dwu procesowych map wymiany (swap maps): 
Mapa wymiany segmentu tekstu – przydziela obszar wymiany segmentowi tekstu (ma ustalony rozmiar) kawałkami 
po 512 KB, z wyjątkiem ostatniego kawałka, który jest wymierzany w jednostkach 1 kilobajtowych. 
Mapa wymiany segmentu danych – bardziej skomplikowana, bo segment danych może rosnąć z upływem czasu; 
mapa ma ustalony rozmiar, ale zawiera adresy bloków o zmiennych rozmiarach: każdy następny blok jest 2 razy 
większy od poprzedniego (maksymalny rozmiar bloku to 2 MB). 
- Małe procesy używają małych bloków. 
- Zmniejsza się fragmentacja. 
- Mapa wymiany pozostaje mała. 
 
99. Do czego służy podsystem we/wy? 
podsystem wej/wyj nadzoruje: 
- przestrzenie nazw plików i urządzeń, 
- przebieg dostępu do plików i urządzeń, 
- poprawność operacji, 
- przydzielanie miejsca w systemie plików, 
- przydział urządzeń, 
- buforowanie, przechowywanie podr. (caching) spooling, 
- planowanie operacji we/wy 
 
100. Omów interakcję jednostki centralnej ze sterownikiem urządzenia we/wy? 
Procesor przekazuje sterownikom polecenia i dane niezbędne do wykonania danych poleceń. Sterownik ma 
specjalny rejestr, który służy do przekazywania komunikatów z i do procesora. Procesor porozumiewa się ze 
sterownikiem pisząc i czytając bity w tym rejestrze. Przesłanie tych bitów do rejestru urządzenia może odbywać 
się poprzez specjalne instrukcje wejścia/wyjścia będące zleceniami przesłania bitów na adres portu 
wejścia/wyjścia. Rozkazy te powodują przekazanie bitów z i do rejestrów sterujących urządzenia poprzez szynę. 
Rejestry sterujące urządzenia mogą być też odwzorowane w pamięci operacyjnej. Wówczas komunikacja z 
urządzeniem odbywa się poprzez zapis i odczyt odpowiednich bajtów w pamięci operacyjnej. 
 
101. Omów metody obsługi zakleszczeń? 
Zapobieganie zakleszczeniom Polega na zaprzeczeniu co najmniej jednemu z czterech warunków koniecznych 
zakleszczenia. Gdy co najmniej jeden z tych warunków nie jest spełniony, mamy pewność, że do zakleszczenia nie 
dojdzie. 
Unikanie zakleszczeń Gdy stosujemy tę metodę wszystkie warunki konieczne występowania zakleszczeń są 
prawdziwe. Nie dopuszczamy do zakleszczeń poprzez badanie stanu systemu przed każdym żądaniem przydziału 
zasobów i niekiedy odrzucamy to żądanie nawet wtedy, gdy są wolne zasoby, ale uznaliśmy, że spełnienie tego 
żądania może prowadzić do zakleszczenia. Unikanie zakleszczeń zwykle wymaga dodatkowej wiedzy o procesach 
(np. o ich maksymalnym dopuszczalnym zapotrzebowaniu na zasoby). 
Wykrywanie zakleszczeń i odtwarzanie Dopuszczamy powstawanie zakleszczeń, ale umiemy je wykrywać, 
likwidować i przywracać normalne działanie systemu po tym zabiegu. 
 
102. Jaka jest różnica pomiędzy wątkiem a procesem? 
Różnica między zwykłym procesem a wątkiem polega na współdzieleniu przez wszystkie wątki działające w 
danym procesie przestrzeni adresowej oraz wszystkich innych struktur systemowych (np. listy otwartych plików, 
gniazd, itp.) - z kolei procesy posiadają niezależne zasoby. 

background image

 
103. Jaką trudność musi pokonać osoba pisząca SO przeznaczony do pracy w warunkach czasu 
rzeczywistego? 
W systemie takim muszą istnieć dobrze zdefiniowane ograniczenia czasowe i z nimi musi zmagać się programista. 
Przetwarzanie musi się zmieścić w tych ramach czasowych w przeciwnym wypadku system nie spełni wymagań. 
 
104. Do czego służy pamieć cache? 
- przechowuje informacje przejściowo 
- 80-99% dostępów 
- polityka zastępowania informacji 
 
105. Omów dwie metody przydziału miejsca na dysku, które najlepiej nadają się do realizacji dostępu 
bezpośredniego? 
1. System plików zwartych (przydział ciągły): cały plik zajmuje ciąg kolejnych bloków; odwołanie do pliku składa 
się z adresu bloku początkowego i rozmiaru pliku (ilość bloków w pliku). Własności: 
-Efektywność dostępu (niewielkie ruchy głowic dysk.) 
-Łatwa lokalizacja bloków pliku zarówno przy dostępie sekwencyjnym jak i swobodnym 
-Problem fragmentacji zewnętrznej: po usuniętych plikach pozostają dziury, które trudno połączyć w jeden 
większy blok 
-Umożliwia najbardziej elastyczną organizację danych – zniszczenie jednego bloku powoduje tylko lokalną utratę 
danych 
2. Mapa plików (Windows): 
Wpis katalogowy wskazuje na adres pierwszego bloku, natomiast pozostałe adresy wynikają z mapy plików 
(tablicy alokacji). Uszkodzenie mapy plików powoduje utratę informacji dyskowych w pliku. 
Właściwości: 
• Każdy blok na dysku – pozycja w mapie, 
• Bloki nieużywane – 0 w tablicy, 
• Uszkodzenie mapy plików może spowodować poważne straty danych – dwie kopie 
mapy w różnych rejonach dysku, aby w razie awarii sprzętu nie zniszczyć wszystkich 
kopii, 
• Znaczy ruch głowic dyskowych, 
• Polepszenie czasu dostępu swobodnego. 
 
106. Do czego służy graf przydziału zasobów? 
Stosowany przy postępowaniu z blokadami. 

 

107.  W katalogu  /home/jas (domowy katalog użytkownika Jas) znajduje się plik: plik1. W katalogu 
/home/stas/dane znajduje się plik: plik2. Chcesz skopiować plik: plik1 do katalogu /home/stas oraz przenieść 
plik: plik2 do katalogu /home/stas. Zakładając, że należysz do tej samej grupy linuksowej co Jaś i Staś zapisz 
polecenia, które to umożliwiają, zaznaczając kto wydaje polecenie i z jakiego katalogu (minimalne prawa 
dostępu do plików i katalogów). Opisy plików i katalogów w katalogu /home i podkatalogach są następujące: 
drwx------  10      jas    inffiz    1024   May    7   9.15 

jas 

drwx------    4      jas    inffiz    1024   May    7   9.16 

plik1 

drwx------  10    stas    inffiz    1024   May    7   9.15 

stas 

drwx------  10    stas    inffiz    1024   May    7   9.16 

dane 

drwx------    4    stas    inffiz    1024   May    7   9.17 

plik2 

 
a) jestem użytkownikiem nie-jaś i nie-staś, ale razem z nimi w grupie: 
jestem w kat. /home; minimalne prawa dostępu (z mojego punktu widzenia): 
jas:     d--- --x  --- 
plik1: f---  r--  --- 
stas:   d--- -wx --- 
 
jas musi napisać: 
w katalogu /home/jas: chmod 040 plik1, 
w katalogu /home: chmod 010 jas 
 
stas musi napisac:  
w kat /home : chmod 030 stas 
polecenie: cp jas/plik1 stas/ 

background image

 
b) jestem użytkownikiem nie-jaś i nie-staś, ale razem z nimi w grupie: 
jestem w kat. /home; minimalne prawa dostępu(z mojego punktu widzenia): 
stas:   d--- -wx  ---, 
dane: d--- -wx  --- 
plik2  f---  r-x   --- 
 
stas musi napisac:  
w katalogu /home/stat/dane: chmod 050 plik2,   
w katalogu /home/stas : chmod 030 dane,  
w katalogu  /home chmod 030 stas 
 
polecenie: mv stas/dane/plik2 stas/ 
 
założenie: pliki docelowe nie istnieją, jas i stas nie potrzebuja dostepu do swoich katalogow (nic o tym nie ma w 
zadaniu : )) 
 
108. Udogodnienia sprzętowe? 
Mechanizm przerwań, ochrona pamięci operacyjnej, zbiór rozkazów uprzywilejowanych, zegar czasu 
rzeczywistego 
 
109. Omów typowe rejestry sterowników? 
- rejestr stanu (zawiera bity wskazujące na stan portu np. zakończenia polecenia, dostępność bajtu. Może być 
czytany przez procesor) 
- rejestr sterowania (zawiera bity definiujące tryb pracy urządzenia, lub umożliwiające rozpoczęcie realizacji 
polecenia – najczęściej zapisywany przez procesor) 
- rejestr danych wejściowych (czytany przez procesor w celu odbioru danych z urządzenia) 
- rejestr danych wyjściowych (zapisywany przez procesor w celu wysłania danych do urządzenia) 

 

110. Co przechowuje katalog w NTFS? 

 

Katalogi trzymają informacje o plikach w nich zawartych w atrybucie $INDEX_ROOT. 

 

Oprócz referencji do rekordów plików w MFT są tam też często używane atrybuty plików, zduplikowane z 
MFT: 

nazwy plików, 

czasy utworzenia, ostatniego dostępu i modyfikacji, 

wielkość pliku. 

 

Referencje do plików w MFT są 64-bitowymi liczbami: 

48 bitów to numer rekordu pliku w MFT, 

16 bitów to licznik wykorzystywany do sprawdzania spójności danych, zwiększany za każdym 
rzazem, gdy rekord zostaje użyty na nowy plik. 

 

Małe katalogi, podobnie jak małe pliki, mogą być zawarte całkowicie w swoim rekordzie w MFT. 

 

Pliki w dużych katalogach są indeksowane i sortowane po nazwie. 

 

Indeksy są zaimplementowane jako B+ - drzewa, z korzeniem umieszczonym w atrybucie $INDEX_ROOT. 

 

Kolejne węzły drzewa (index-buffers) są alokowane w razie konieczności, a ich położenie jest zapisywane w 
atrybucie $INDEX_ALLOCATION. 

 

Dodatkowy atrybut $BITMAP określa które klastry w węzłach drzewa są jeszcze wolne.