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.
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.
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
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 |
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
Jakie informacje zawiera katalog w Ext?
Numer i-węzła (2 bajty), nazwa pliku (14 bajtów).
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.
Obliczyć średni czas oczekiwania – alg. SJF?
patrz 31.
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
Sprzętowe mechanizmy ochrony pamięci operacyjnej?
Ochrona wektora przerwań, ochrona procedur obsługi przerwań, oddzielenie obszaru pamięci programów
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)
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?
Odniesienie
Pułapka (brak strony w tablicy stron)
SO sprawdza, czy strona jest w pamięci pomocniczej
Sprowadzenie brakującej strony
Odnowienie tablicy stron
Wznowienie wykonania
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
W jakich metodach przydziału miejsca na dysku nie występuje fragmentacja zewnętrzna? Łańcuch powiązanych bloków, bloki indeksów
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
Wymień niewywłaszczające algorytmy planowania?
FCFS (First Come First Served - FIFO), SJF (Shortest Job First)
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)
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.
Na czym polega wyższość RAID5 nad RAID3?
Równomierne obciążenie dysków, większa szybkość odczytu
Jakie są strategie radzenia sobie z zakleszczeniami?
patrz 101
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.
|
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
Jak obniżyć aktywność stronicowania we wstępnej fazie procesu? Zastosować stronicowanie wstępne (prepaging).
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
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
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.
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.
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.
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)
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
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.)
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?
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
Ł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
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.
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
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
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.
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
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 )
Gdzie jest przechowywany adres pierwszego bloku i kolejne w FAT i EXT?
patrz 39
Do czego służy struktura katalogowa?
Struktura katalogowa służy do odwzorowania faktycznego adresu pliku.
We/Wy z blokowaniem i bez. Na czym to polega? patrz 18.
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
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)
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
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.
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)
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.
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
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
Zasada wiedzy koniecznej?
patrz 19.
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
Algorytmy szeregowania, które są wywłaszczające, a które nie?
patrz 67.
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ć.
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;
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.
Jak deklaruje się zmienne w powłoce BASH i TCSH? [BASH] zmienna=3 (bez spacji)
[TCSH] set zmienna = 3
Jak się inicjalizuje i inkrementuje zmienne w BASH i TCSH? [BASH] zmienna=$(($zmienna+1))
[TCSH] @ x++ (między @ a nazwa zmiennej spacja)
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.
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
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
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.
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).
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
Wymień cechy planowania wielopoziomowego ze sprzężeniem zwrotnym?
patrz 56
Jakie informacje podlegają transakcjom w NTFS?
W NTFS wszystkie zmiany na dysku organizowane są w transakcje, które wyglądają następująco:
Zapis operacji w logu w pamięci
Zmodyfikowanie woluminu w pamięci
Zapis loga na dysk
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
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.
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ń.
Jakie polecenia zmieniają liczbę dowiązań do pliku?
ln – stworzenie linku twardego
rm – usunięcie pliku lub linku twardego do tego pliku
Kiedy następuje zwolnienie bloków dyskowych zajmowanych przez plik? Gdy zostaną usunięte wszystkie dowiązania do pliku.
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”.
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
Co się dzieje podczas kasowania pliku?
Obszar na dysku zajmowany przez plik jest dodawany do listy wolnych obszarów
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.
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.
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).
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ć
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.
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.
Gdzie można umiejscowić obszar wymiany?
Dysk twardy, pamięć flash (USB) – generalnie szybka pamięć pomocnicza z możliwością zapisu i odczytu
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
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.
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.
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.
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?
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
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.
Do czego służy graf przydziału zasobów? Stosowany przy postępowaniu z blokadami.
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 : ))
Udogodnienia sprzętowe?
Mechanizm przerwań, ochrona pamięci operacyjnej, zbiór rozkazów uprzywilejowanych, zegar czasu rzeczywistego
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, o 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.