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.
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 zbioru, czas i data ostatniego dostępu, numer 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
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.
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
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 V (signal) na s
nw(s) liczba wywołań operacji P (wait) na s
np(s) liczba przejść przez operacje P (wait) na s (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 P nie pociąga za sobą zawieszenia procesu, o ile liczba wykonań tej operacji nie jest większa
nią liczba wykonań operacji V 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 V 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,
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.
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 i 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 3
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
R
oglądanie
zawartości
pokazywanie
plików z
katalogu
W
zmiana,
usunięcie
zawartości
dodawanie
elementu do
katalogu
X
uruchomienie
pliku
wykonywalnego
cd
D
usuwanie pliku
usuwanie
katalogu
(pustego)
P
zmiana praw
dostępu
zmiana
praw
dostępu
O
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.
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
-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
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
- 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
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.
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.
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
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.
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ć
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.
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/
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:
o
nazwy plików,
o
czasy utworzenia, ostatniego dostępu i modyfikacji,
o
wielkość pliku.
Referencje do plików w MFT są 64-bitowymi liczbami:
o
48 bitów to numer rekordu pliku w MFT,
o
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.