Podaj trzy różne przykłady definicji systemu

Transkrypt

Podaj trzy różne przykłady definicji systemu
Podaj trzy różne przykłady definicji systemu operacyjnego (1):
- dystrybutor zasobów (ang. resource allocator) -przydziela zasoby poszczególnym zamawiajajcym
(programom)
- program sterujący (ang. control program) - nadzoruje wykonanie programów użytkowych oraz operacji
wejscia/wyjscia, kontrola błędów
- jądro systemu (ang. kernel, ang. nucleus) - program działający w komputerze nieustannie, często jest
synonimem systemu operacyjnego
Wymień zadania systemu operacyjnego (2):
- tworzenie środowiska do wykonywania programów
- powodowanie aby system komputerowy był wygodny w użyciu
Wymień składowe systemu komputerowego wraz z ich angielskimi odpowiednikami (3):
- sprzęt (ang. hardware) – zasoby o specyficznej architekturze oraz organizacji zarządzane przez system
operacyjny
- system operacyjny (operating system) - program, który nadzoruje i koordynuje dostęp programów do
zasobów
- programy użytkowe (software) – realizują, potrzeby użytkowników systemu komputerowego
(kompilatory, bazy danych, gry,....)
- użytkownicy (users) – ludzie, maszyny, komputery..
Wymień ogólne funkcje komputera (4):
- przetwarzanie danych - rożne formy i zakres wymagań
- przechowywanie danych
- krótkotrwałe
- długotrwałe
- przemieszczanie danych - proces wejscia/wyjscia między komputerem a urządzeniem peryferyjnym
(zewnętrznym)
- sterowanie – wszystkimi powyższymi funkcjami
Podaj strukturę komputera (5):
- jednostka centralna (CPU)
- pamięć główna
- wejście/wyjście
- magistrala systemowa
Podaj strukturę procesora (6):
- rejestry
- jednostka arytmetyczno – logiczna (ALU)
- jednostka sterująca
- połączenie wewnętrzne CPU
Podaj strukturę jednostki sterującej (7):
- rejestry i dekodery
- układy logiczne szeregowania
- synchronizacja i sterowanie
- wewnętrzna szyna danych
Narysuj schemat maszyny von Neumana (8):
+------------+
+----------------+
+--------+
|
|-->| Jednostka
|--->|
|
|
|
| arytmetyczno
|
|
|
|
|<--| logiczna (ALU) |<---|
|
| Urządzenia |
+----------------+
|
|
| wejścia- |
|
^
| pamięć |
| wyjścia
|
v
|
| główna |
|
|
+----------------+
|
|
|
|
| Programowa
|--->|
|
|
|
| jednostka
|
|
|
|
|
| sterująca
|<---|
|
+------------+
+----------------+
+--------+
Opisz architekturę maszyny IAS, pamięci, rejestry, fromat danych i rozkazów (9):
- pamięć: 1000 x 40 bitowych słów
- reprezentacja binarna
- 2 x 20 bitowe rozkazy
- rejestry (pamiętane w CPU)
- rejestr buforowy pamięci – MBR: Master Buffer Register
- rejestr adresowy pamięci – MAR: Memory Address Reg.
- rejestr rozkazów – IR: Instruction Register
- rejestr buforowy rozkazów – IBR: Instruction Buffer Reg.
- licznik programu – PC : Program Counter
- akumulator - AC: Acumulator
- rejestr mnożenia-dzielenia –MQ: Multiper-Quotier
- format danych:
0 1
30
+---------------------------+
| |
|
+---------------------------+
^
|
bit znaku
- M(X, A:B) – zawartość komórki pamięci o adresie X od bitu A do bitu B; M(X) = M(X, 0:39)
- format rozkazów:
- rozkaz dzieli się na rozkaz lewy i rozkaz prawy, każdy dwudziesto bitowy
Rozkaz lewy
| Rozkaz prawy
0
8
19 20
39
+------------------------------+
|
|
|
|
|
+------------------------------+
^
^
|
|
8-bitowy
adres
kod lewego
rozkazu
Wymień funkcje jednostki centralnej oraz rejestry procesora (10):
- funkcje:
- pobieranie rozkazów z pamięci
- interpretowanie rozkazów
- pobieranie danych (z pamięci lub we/wy)
- przechowywanie danych w pamięci
- przetwarzanie danych - wykonywanie rozkazów
- zapisywanie wyników (do pamięci lub we/wy)
- rejestry:
- licznik programu (PC) - adres rozkazu do pobrania
- rejestr rozkazu (IR) - kod rozkazu
- rejestr adresowy pamięci (MAR) - adres lokacji
- rejestr buforowy pamięci (MBR) - dane do/z pamięci
- rejestry PSW (ang. program status word) - słowo stanu programu,
- informacje o stanie; dokładniej o PSW (bity, flagi)
- znak - bit znaku ostatniej operacji
- zero - wynik operacji = zero
- przeniesienie (ang. carry) - przeniesienie w wielokrotnej precyzji
- równość (ang. equal) - wynik porównania logicznego
- przepełnienie - (ang. overflow)
- zezwolenie/blokowanie przerwań
- nadzorca – tryb systemu lub tryb użytkownika
Wymień linie magistrali systemowej (11):
- linie danych - do przenoszenia danych np. szyna danych 8b a rozkaz 16b: 2 x transfer z pamięci
- linie adresowe - do określenia adresu danych
- linie sterowania - do sterowania liniami
- linie zasilania
Wymień funkcje jednostki centralnej (12):
To samo co pytanie 10.
Wymień kategorie urządzeń we/wy (13):
- przeznaczone do odczytu przez człowieka (np. monitor ekranowy, wydruk, dźwięk)
- przeznaczone do odczytu przez maszynę (np. dyski magnetyczne, taśmy, czujniki w robotach)
- komunikacyjne (np. modem, karta sieciowa)
Wymień funkcje modułu we/wy (14):
- sterowanie i taktowanie (zegar)
- komunikacja z procesorem
- komunikacja z urządzeniem
- buforowanie danych
- wykrywanie błędów
Wymień i opisz sposoby realizacji we/wy (15):
- programowane – dane są wymieniane między procesorem a modułem we/wy, procesor czeka na
zakończenie operacji we/wy,
- sterowane przerwaniami – procesor wydaje operację we/wy i wykonuje dalsze rozkazy do momentu
zakończenia operacji we/wy (przerwanie we/wy),
- bezpośredni dostęp do pamięci (ang. direct memory access – DMA) – moduł we/wy wymienia dane
beżpośrednio z pamięcią bez udziału procesora
Wymień i opisz metody dostępu do pamięci (16):
- dostęp sekwencyjny (ang. sequential)
- dostęp liniowy blok po bloku w przód lub w tył,
- czas dostępu zależy od pozycji bloku względem pozycji bieżącej, przykład: taśmy,
- dostęp bezpośredni (ang. direct)
- każdy blok na unikalny adres,
- czas dostępu realizowany przez skok do najbliższego otoczenia i sekwencyjne przeszukiwanie,
przykład: dysk magnetyczny,
- dostęp swobodny (ang. random)
- każda adresowalna lokacja w pamięci ma unikatowy, fizycznie wbudowany mechanizm adresowania,
- czas dostępu nie zależy od poprzednich operacji i jest stały, przykład: RAM,
- dostęp skojarzeniowy (ang. associative)
- dane są lokalizowane raczej na podstawie porównania z ich zawartością niż na podstawie adresu,
- czas dostępu nie zależy od poprzednich operacji i jest stały, przykład: pamięć podręczna (ang. cache).
Wymień rodzaje pamięci ze względu na własności fizyczne (17):
- półprzewodnikowa (np. RAM),
- magnetyczna (dysk, taśma),
- magneto-optyczna (CD, DVD).
Podaj hierarchię pamięci (18):
- rejestry,
- pamięć podręczna
- poziom 1,
- poziom 2,
- pamięć główna,
- dyskowa pamięć podręczna,
- pamięć dyskowa,
- pamięć optyczna | taśmowa.
Wymień zastosowania oraz cechy pamięci DRAM (19):
- bity zapamiętane jako ładunki w kondensatorach,
- rozładowywanie,
- okresowe „odświeżanie ładunku”,
- prosta budowa,
- mała,
- tania,
- wolna,
- asynchroniczna,
- zastosowania: pamięć główna.
Wymień zastosowania oraz cechy pamięci SRAM (20):
- bity przechowywane za pomocą przerzutników,
- nie wymaga odświeżania,
- bardziej złożona budowa,
- większa,
- droższa,
- szybsza,
- zastosowanie: pamięć podręczna.
Wymień zastosowania oraz rodzaje pamięci ROM (21):
- zapisywana w trakcie produkcji
- bardzo droga dla małych serii,
- pamięć programowalna (PROM, ang. programmable)
- do zapisu (tylko raz) wymagane jest specjalne urządzenie,
- pamięć głównie do odczytu (ang. read-mostly memory)
- optycznie wymazywalna programowalna pamięć stała (ang. Erasable Programmable (EPROM))
- wymazywanie: naświetlanie promieniowaniem ultrafioletowym z układu znajdującego się w
obudowie,
- elektrycznie wymazywalna programowalna pamięć stała (ang. Electrically Erasable Programmable
(EEPROM))
- zapisywane są tylko bajty zaadresowane,
- zapisywanie trwa dłużej niż odczyt (kilka mikrosekund/B),
- mniej gęsto upakowana niż EPROM,
- pamięć błyskawiczna (ang. Flash memory)
- wymazywanie elektryczne,
- nie umożliwia wymazywania na poziomie bajtu,
- szybsza niż EPROM,
- tańsza niż EEPROM.
Opisz stany cyklu rozkazu z przerwaniami (22):
- obliczanie adresu rozkazu (iac - instruction address calculation) - adres następnej instrukcji
- pobieranie rozkazu (if - instruction fetch) - wczytanie z pamięci do CPU
- dekodowanie operacji rozkazu (iod - instruction operation decoding )
- obliczanie adresu argumentu (oac - operand address calculation)
- pobieranie argumentu (of - operand fetch)
- operacja na danych (do - data operation ) - operacja na danych
- przechowanie argumentu (os - operand store) - zapisanie wyniku
Opisz cykl przerwania (23):
- do cyklu rozkazu dodaje się cykl przerwania
- procesor sprawdza czy nastąpiło przerwanie
- obecność sygnału przerwania
- jeśli nie ma przerwania pobiera nowy rozkaz
- jeśli następuje przerwanie to procesor::
- zawiesza wykonanie bieżącego programu
- zachowuje kontekst bieżącego programu
- ustawia licznik rozkazów (ang. Program Counter) na adres programu obsługi przerwań (ang. interrupt
handler routine)
- obsługuje przerwanie
- odtwarza kontekst i kontynuuje przerwany program
Opisz typy przerwań (24):
- programowe
- np. przepełnienie arytmetyczne, dzielenie przez 0
- zegarowe
- generowane przez wewnętrzny zegar procesora
- umożliwia wywłaszczanie w systemie wielozadaniowym
- we/wy - od modułu we/wy
- sprzętowe
- np. błąd parzystości pamięci
Opisz sprzętową ochronę adresów (25):
- sprzęt jednostki centralnej porównuje każdy adres wygenerowany w trybie użytkownika z zawartością
rejestrów bazowego i granicznego
- zwartości rejestru bazowego i granicznego mogą być załadowane jedynie w trybie monitora (load jest
instrukcją uprzywilejowaną)
- przerwanie protekcji pamięci
Opisz zegarową ochronę CPU (26):
- zegar jest ustawiany przez system operacyjny przed przekazaniem sterowania do programu
użytkownika
- w trakcie wykonywania programu zegar jest zmniejszany
- jeśli zegar osiągnie 0 generowane jest przerwanie
- ładuj zegar jest rozkazem uprzywilejowanym
- zegar może być wykorzystany do realizacji podziału czasu (ang. time sharing) - przerwanie zegarowe
następuje po wykorzystaniu kwantu czasu przez proces
Opisz start systemu W2K (27):
- rozruch systemu (ang. booting) - mały fragment kodu, przechowywany w ROM, określany jako
program rozruchowy (ang. bootstrap program) lub elementarny program ładujący (ang. bootstrap loader)
- program ładujący jest w stanie zlokalizować kod jądra systemu, wprowadzić go do pamięci i rozpocząć
jego wykonanie
- dwuetapowy program ładujący sprowadza do pamięci bardziej złożony program ładujący, który
powoduje załadowanie jądra systemu
- pierwszy sektor na dysku (ang. Master Boot Record, MBR) zawiera program boot, który zostaje
wczytany do pamięci
- uruchomiony zostaje program boot, który:
- relokuje się aby zwolnić początkowe adresy pamięci na jądro systemu
- czyta katalog root na dysku
- wczytuje program ntldr
- przekazuje sterowanie programowi ntldr:
- czyta plik konfiguracyjny Boot.ini
- wczytuje pliki: hal.dll, ntoskrnl.exe, bootvid.dll
- wczytuje drivery (myszy,...)
- przekazuje sterowanie programowi ntoskrnl.exe
Opisz dualny tryb operacji (28):
- system wielozadaniowy musi chronić system operacyjny oraz wykonywane programy przed każdym
niewłaściwie działającym programem
- należy wyposażyć sprzęt w środki pozwalające na rozróżnienie przynajmniej dwóch trybów pracy:
- tryb użytkownika (ang. user mode) - wykonanie na odpowiedzialność użytkownika
- tryb monitora (ang. monitor mode) = tryb nadzorcy (ang. supervisor mode ) = tryb systemu (ang.
system mode) = tryb uprzywilejowany (ang. privileged mode) - wykonanie na odpowiedzialność
systemu operacyjnego
- bit trybu (ang. mode bit) w sprzęcie komputerowym wskazujący na bieżący tryb pracy: system (0),
użytkownik (1) ,
- wystąpienie błędu: przejście w tryb 0
Błąd/przerwanie
Monitor <---------------------- użytkownik
---------------------->
ustaw tryb 1
- rozkazy uprzywilejowane (ang. privileged) - tryb systemu
Wymień usługi systemu operacyjnego (29):
- wykonanie programu - system powinien móc załadować program do pamięci i wykonać go,
- operacje we/wy – ponieważ program użytkowy nie wykonuje operacji we/wy bezpośrednio więc musi
to oferować system
- manipulowanie systemem plików - program musi mieć możliwość (pod kontrolą) do czytania, pisania,
tworzenia i usuwania plików
- komunikacja – wymiana informacji pomiędzy procesami wykonywanymi na tym samym lub zdalnym
komputerze np. za pomocą pamieci dzielonej (ang. shared memory) lub przekazywania komunikatów
(ang. message passing)
- wykrywanie błędów – zapewnienie prawidłowości działania komputera poprzez wykrywanie i obsługę
wszystkich błedów w jednostce centralnej, pamięci operacyjnej, urządzeniach we/wy (np. błąd sumy
kontrolnej) i w programie użytkownika (np. przekroczenie czasu)
- dodatkowe funkcje systemu nie są przeznaczone do pomagania użytkownikowi, lecz do optymalizacji
działania samego systemu:
- przydzielanie zasobów dla wielu użytkowników i wielu zadań w tym samym czasie
- rozliczanie – przechowywanie danych o tym, którzy użytkownicy i w jakim stopniu korzystają z
poszczególnych zasobów komputera (statystyka użytkowania)
- ochrona – zapewnienie aby cały dostęp do zasobów systemu odbywał się pod kontrolą np. dostęp
przez modem po podaniu hasła
Co to jest funkcja systemowa (30):
- funkcje systemowe (ang. system calls) tworzą interfejs między wykonywanym programem a systemem
operacyjnym,
- dostępne na poziomie języka maszynowego (asemblera) - IBM/370: rozkaz SIO (start input/output)
- pewne języki zastępują asembler w programowaniu systemowym i umożliwiają bezpośrednie
wykonywanie funkcji systemowych (np. C, C++, Bliss, PL/360, PERL)
- win32 API (ang. Application Programmer Interface) - wielki zbiór procedur dostarczanych przez
Microsoft, które umożliwiają realizację funkcji systemowych
Wymień podstawowe metody przekazywania parametrów między procesorem a systemem (31):
- są trzy metody przekazywania parametrów między wykonywanym programem a systemem
operacyjnym
- umieszczenie parametrów w rejestrach jednostki centralnej
- zapamiêtanie parametrów w tablicy w pamięci operacyjnej i przekazanie adresu tej tablicy jako
parametru w rejestrze
- składowanie (ang. push) przez program parametrów na stosie (ang. stack) i zdejmowanie (ang. pop)
ze stosu przez system operacyjny
Wymień rodzaje funkcji systemowych (32):
- nadzorowanie procesów
- operacje na plikach
- operacje na urz¹dzeniach
- utrzymywanie informacji
- komunikacja
Wymień po siedem przykładów funkcji systemowych w W2K oraz Unixie (33):
- unix (operacje na plikach):
- utworzenie (create) i usunięcie (delete)
- otwarcie (open) i zamknięcie (close)
- czytanie (read), pisanie (write), zmiana położenia (reposition)
- pobranie (get) i ustawienie (set) atrybutów (attributes) pliku
- W2K (nadzorowanie procesów)
- zakończenie (end), zaniechanie (abort)
- załadowanie (load), wykonanie (execute)
- utworzenie (create) i zakończenie (terminate)
- pobranie (get) i ustawienie (set) atrybutów
- czekanie czasowe (wait for time)
- czekanie na zdarzenie (event), sygnał (signal)
- przydział (allocate) i zwolnienie (free)
Wymień etapy realizacji polecenia w systemie Unix (34):
- interpreter poleceń: powłoka (ang. shell)
- system wielozadaniowy
- wprowadzenie polecenia to zapoczątkowanie procesu funkcją systemową fork lub exec
- powłoka oczekuje na zakończenie procesu
- jeśli polecenie wykonuje się w tle (ang. background) to powłoka może przyjmować nowe polecenia
- proces wykonuje funkcję systemową exit
- powłoka może realizować nowe polecenie
Wymień kategorie programów systemowych (35):
- manipulowanie plikami (ang. file manipulation) - programy do tworzenia, usuwania, kopiowania,
przemianowywania, składowania i wyprowadzania zawartości plików
- informowanie o stanie systemu (ang. status information) - logi systemowe
- tworzenie i zmienianie zawartości plików (ang. file modification) - np. edytory
- translatory języków programowania (ang. programming language support) - C, Pascal, Basic, Lisp..
- ładowanie i wykonywanie programów (ang. program loading and execution) - konsolidatory i programy
ładujące
- komunikacja (ang. communications) - np. remote login
- programy aplikacyjne (ang. application programs)
Wymień trzy struktury systemów operacyjnych oraz przykłady ich realizacji (36):
- monolityczna (ang. monolithic) - jądro jednoczęściowe
- OS/360 - 5000 programistów 1M kodu w ciągu 5 lat
- IBM/360 MVT/TSO - koszt 50M $
- AIX - Unix wersji IBM - jądro dwuczęściowe
- MS-DOS, Unix
- warstwowa (ang. layered)
- struktura hierarchiczna - skutki małych zmian w jednej warstwie trudne do przewidzenia w innych
warstwach
- system THE (Technische Hogeschool w Eindhoven)
- mikrojądra (ang. microkernel, µ-kernel)
- jedynie bezwzględnie niezbędne funkcje systemowe w jądrze systemu (np. mikrojądro L4 ma 12kB
kodu, 7 funkcji systemowych)
- Mach – opracowany w Carnegie-Mellon University
- Tru64 UNIX – Digital UNIX
- Apple MacOS X Server
- QNX - przykład systemu czasu rzeczywistego
Wyjaśnij zasadę maszyny wirtualnej (37):
- maszyna wirtualna (ang. virtual machine) jest logiczną konsekwencją podejęcia warstwowego: jądro
systemu jest traktowane jako sprzęt
- IBM VM/370, JavaOS, Tryb MS-DOS, Cygwin, VMware
- maszyna wirtualna dostarcza identycznego interfejsu dla sprzętu
- system operacyjny tworzy wirtualne systemy komputerowe, każdy proces ma do dyspozycji własne
(wirtualne) jądro, dyski, pamięć, drukarki
- zasoby fizycznego komputera są dzielone w celu utworzenia maszyn wirtualnych
- planowanie przydziału procesora jest tak wykorzystane, że użytkownik ma wrażenie jakoby miał do
dyspozycji własny procesor
- spooling i system zarzadzania plikami jest wykorzystany tak, że powstaje wrażenie użytkowania
drukarki, czytnika na wyłączność
- zwykłe terminale użytkownika funkcjonują jak konsole operatorskie maszyny wirtualnej ( system
interakcyjny CMS)
Podaj argumenty za i przeciw realizacji maszyny wirtualnej (38):
- koncepcja maszyny wirtualnej dostarcza pełnej ochrony zasobów systemu, bowiem każda maszyna
wirtualna jest całkowicie odizolowana od innych maszyn. Z drugiej strony izolacja taka utrudnia
bezpośrednie dzielenie zasobów
- system maszyn wirtualnych jest doskonałym narzędziem do badania systemów operacyjnych oraz
poszukiwania kierunków ich rozwoju. Nie ma potrzeby wyłączać z eksploatacji systemu komputerowego
w czasie trwania prac systemowych - można eksperymentowaæ na jednej z maszyn wirtualnych
- metasystem operacyjny - system operacyjny nadzorujący jednoczesną pracę wielu systemów
operacyjnych na jednym komputerze: np. 9xLinux, 2xW95, 2xWNT, 1xSolaris, 1xMS-DOS
- koncepcja maszyny wirtualnej jest bardzo trudna do zaimplementowania dlatego, że zawsze będzie
pokusa uzyskania oryginalnego systemu w pod postacią maszyny wirtualnej - petitio principii - “błędne
koło”
Wymień założenia projektowania systemu operacyjnego (39):
- oczekiwania użytkownika - system operacyjny powinien być wygodny i łatwy w użyciu i do nauki,
niezawodny, bezpieczny i szybki
- oczekiwania projektanta systemu - system operacyjny powinien być łatwy w projektowaniu oraz
realizacji; elastyczny, niezawodny, wolny od błędów i wydajny
- sformułowane oczekiwania są niejasne, nieprecyzyjne, na domiar złego ogólny sposób realizacji jest
nieznany
Wymień stany procesu wraz z ich angielskimi odpowiednikami (40):
- wykonujący się proces zmienia swój stan (ang. state)
- nowy (ang. new): proces został utworzony
- aktywny (ang. running): są wykonywane instrukcje
- oczekiwanie (ang. waiting): proces czeka na zdarzenie (np. zakończenie we/wy)
- gotowy (ang. ready): proces czeka na przydział procesora
- zakończony (ang. terminated): proces zakończył działanie
Opisz zawartość PCB (41):
- każdy proces w systemie operacyjnym jest reprezentowany przez blok kontrolny procesu (ang. process
control block - PCB) zawierający
- stan procesu – gotowy, nowy, aktywny, czekający, zatrzymany
- licznik rozkazów - adres następnego rozkazu do wykonania w procesie
- rejestry procesora - zależą od architektury komputera: akumulatory, rejestry (ogólne, bazowe,
indeksowe) wskaźniki stosu przechowywane aby proces mógł być kontynuowany po przerwaniu
- informacje o planowaniu przydziału procesora - priorytet procesu, wskaźniki do kolejek
porządkujących zamówienia
- informacje o zarządzaniu pamięcią - zawartości rejestrów granicznych, tablice stron, tablice
segmentów w zależności od systemu używanej pamięci
- informacje do rozliczeń - ilość zużytego czasu procesora i czasu rzeczywistego, ograniczenia
czasowe, numery kont, numery zadań
- informacje o stanie we/wy - lista zaalokowanych urządzeń, wykaz otwartych plików
Wymień zasoby używane przez wątki (42):
- wątek (ang. thread) nazywany niekiedy procesem lekkim (ang. lightweight process – LWP) jest
podstawową jednostką wykorzystania procesora. W skład tej jednostki wchodzą
- licznik rozkazów
- zbiór rejestrów
- obszar stosu
- wątek współużytkuje z innymi równorzędnymi wątkami
- sekcję kodu
- sekcję danych
- zasoby systemu (takie jak otwarte pliki i sygnały) zwane wspólnie zadaniem (ang. task)
Wymień typy wątków (43):
- wątki (ang. kernel-level) obsługiwane przez jądro
- Mach, OS/2, Windows 9x/NT/2K, Linux, BeOS
- wątki tworzone na poziomie użytkownika (ang. user-level) za pomocą funkcji bibliotecznych
- system Andrew
- POSIX: Pthreads, Mach: C-threads, Solaris 2: UI-threads
- zaleta: szybsze przełączanie, wada: planowanie wątków
- hybrydowe podejście - Solaris 2
- wątki zarządzane przez JVM
- zielone (ang. green) – watki w ramach maszyny wirtualnej
- natywne (ang. nativ) – watki w ramach systemu operacyjnego
Wymień rodzaje planistów (44):
- planista długoterminowy (ang. long-term scheduler) lub planista zadań (ang. job scheduler) - wybiera
procesy, które powinny być sprowadzone do pamięci do kolejki procesów gotowych
- planista krótkoterminowy (ang. short-term scheduler) lub planista przydziału procesora (ang. CPU
scheduler) - wybiera proces następny do wykonania z kolejki procesów gotowych i przydziela mu
procesor
- planista krótkoterminowy jest wołany bardzo często (milisekundy) dlatego musi być bardzo szybki
- planista długoterminowy jest wołany rzadko (sekundy, minuty) dlatego może nie być szybki
- planista długoterminowy nadzoruje stopień wieloprogramowości (liczbę procesów w pamięci)
- proces może być opisany jako jeden z
- ograniczony przez we/wy (ang. I/O bound) - więcej czasu zajmuje we/wy niż dostęp do procesora
- ograniczony przez dostęp do procesora (ang. CPU bound) – więcej czasu zajmują obliczenia, we/wy
sporadyczne
- planista długoterminowy powinien dobrać mieszankę procesów (ang. process mix) zawierającą zarówno
procesy ograniczone przez we/wy jak i procesor
- planista średnioterminowy(ang. medium-term scheduler) – swapping (wymiana) w celu uzyskania
lepszego doboru procesów
Wymień sytuacje w jakich planista przydziału procesora podejmuje decyzję o przydziale
procesora (45):
- decyzje o przydziale procesora podejmowane są
- gdy proces przeszedł od stanu aktywności do czekania (np. z powodu we/wy)
- gdy proces przeszedł od stanu aktywności do gotowości (np. wskutek przerwania)
- gdy proces przeszedł od stanu czekania do gotowości (np. po zakończeniu we/wy)
- gdy proces kończy działanie
Wymień niebezpieczeństwa związane z wywłaszczeniami (46):
- planowanie wywłaszczające: drogie i ryzykowne
- co się stanie gdy wywłaszczony zostanie proces w trakcie wykonywania funkcji systemowej (np.
zmiany danych w blokach opisu kolejki we/wy)?
- UNIX czeka z przełączeniem kontekstu do zakończenia wywołania systemowego lub do zablokowania
procesu na we/wy
- nie można wywłaszczać procesu gdy wewnętrzne struktury jądra są niespójne
- blokowanie przerwań przy wejściu do ryzykownych fragmentów kodu jądra
Wymień kryteria stosowane przy doborze algorytmu najlepszego planowania (47):
- wykorzystanie procesora - procesor musi być nieustannie zajęty pracą
- powinno się mieścić od 40% (słabe obciążenie systemu) do 90% (intensywna eksploatacja)
- przepustowość (ang. throughput) - liczba procesów kończących w jednosce czasu: długie procesy 1 na
godzinę, krótkie - 10 na sekundę
- czas cyklu przetwarzania (ang. turnaround time) - czas między nadejściem procesu do systemu a chwilą
jego zakończenia: suma czasów czekania na wejście do pamięci, czekania w kolejce procesów gotowych,
wykonywania we/wy, wykonania (CPU) Czas oczekiwania - suma kresów, w których proces czeka w
kolejce procesów gotowych do działania
- czas odpowiedzi (ang. response time) - ilość czasu między wysłaniem żądania a pojawieniem się
odpowiedzi (bez czasu potrzebnego na wyprowadzenie odpowiedzi np. na ekran). Czas odpowiedzi jest
na ogół uzależniony od szybkości działania urządzenia wyjściowego
Wymień kryteria optymalizacji algorytmu planowania (48):
- maksymalne wykorzystanie procesora
- maksymalna przepustowość
- minimalny cykl przetwarzania
- minimalny czas oczekiwania
- minimalny czas odpowiedzi
- minimalizowanie wariancji czasu odpowiedzi
- mało algorytmów minimalizujących wariancję
- pożądany system z sensownym i przewidywalnym czasem odpowiedzi
Opisz algorytm FCFS (49):
- pierwszy zgłoszony, pierwszy obsłużony (ang. first-come, first-served – FCFS)
- implementuje się łatwo za pomocą kolejek FIFO - blok kontrolny procesu dołączany na koniec kolejki,
procesor dostaje PCB z czoła kolejki
- załóżmy, ze mamy jeden proces P ograniczony przez procesor i wiele procesów ograniczonych przez
we/wy (Q,R,..)
- proces P uzyskuje procesor i procesy Q,.. kończą we/wy
- urządzenia we/wy są bezczynne
- proces P kończy swoją fazę procesora, procesy Q,... zadziałają szybko (mają krotkie fazy procesora bo
są ograniczone przez we/wy)
- proces P uzyskuje procesor, procesy Q,.. kończą we/wy...
- efekt konwoju (ang. convoy effect) - procesy czekają aż wielki proces odda procesor
- algorytm FCFS jest niewywłaszczający
- proces utrzymuje procesor do czasu aż zwolni go wskutek zakończenia lub zamówi operację we/wy
- algorytm FCFS jest kłopotliwy w systemach z podziałem czasu bowiem w takich systemach ważne jest
uzyskiwanie procesora w regularnych odstępach czasu
- //Według tego schematu proces, który pierwszy zamówił procesor, pierwszy go otrzyma.
Implementację tego algorytmu łatwo otrzymuje się za pomocą kolejki FIFO. Blok kontrolny procesu
wchodzącego do kolejki procesów gotowych jest dołączony do końca kolejki. Wolny procesor przydziela
się procesorowi z czoła kolejki procesów gotowych. Algorytm planowania metodą FCFS łatwo
zaprogramować i zrozumieć jego kod.
Opisz algorytm SJF wywłaszczający (50):
- algorytm najpierw najkrótsze zadanie (ang. shortest-job-first - SJF) wiąże z każdym procesem długość
jego najbliższej z przyszłych faz procesora. Gdy procesor staje się dostępny wówczas zostaje
przydzielony procesowi o najkrótszej następnej fazie (gdy fazy są równe to mamy FCFS)
- wywłaszczający – SJF usunie proces jeśli nowy proces w kolejce procesów gotowych ma krótszą
następną fazę procesora od czasu do zakończenia procesu; metoda najpierw najkrótszy pozostały czas
(ang. shortest-remaining-time-first - SRTF)
Opisz algorytm RR (51):
- planowanie rotacyjne (ang. round-robin - RR) zaprojektowano dla systemów z podziałem czasu
- każdy proces otrzymuje małą jednostkę czasu, nazywaną kwantem czasu (ang. time quantum, time
slice) zwykle od 10 do 100 milisekund. Gdy ten czas minie proces jest wywłaszczany i umieszczany na
końcu kolejki zadań gotowych (FCFS z wywłaszczeniami)
- jJeśli jest n procesów w kolejce procesów gotowych a kwant czasu wynosi q to każdy proces otrzymuje
1/n czasu procesora porcjami wielkości co najwyżej q jednostek czasu.
- każdy proces czeka nie dłużej niż (n-1)*q jednostek czasu
- wydajność algorytmu
- gdy q duże to RR przechodzi w FCFS
- gdy q małe to mamy dzielenie procesora (ang. processor sharing) ale wtedy q musi być duże w
stosunku do przełączania kontekstu (inaczej mamy spowolnienie)
- mniejszy kwant czasu zwiększa przełączanie kontekstu
- czas cyklu przetwarzania zależy od kwantu czasu
Rozważmy, procesy: p1, p2, p3, p4, p5 o nast. Czasach trwania fazy (milisekundach): ?,?,?,?.
Narysuj diagram Gantta dla algorytmów FCFS, SJF, z i bez wywłaszczeń, RR (kwant = 1) oraz
oblicz ich średnie czasy cyklu przetwarzania i oczekiwania (52):
- Wykład 7
Opisz algorytm wielopoziomowych kolejek ze sprzężeniem zwrotnym (53):
- kolejki wielopoziomowe z sprzężeniem zwrotnym (ang. multilevel feedback queue scheduling)
umożliwiają przesuwanie procesów między kolejkami
- proces, który zużywa za dużo procesora można zdymisjonować poprzez przesunięcie go do kolejki o
niższym priorytecie i dzięki temu zapobiec zagłodzeniu innych procesów
- postępowanie takie prowadzi do pozostawienia procesów ograniczonych przez we/wy oraz
interakcyjnych w kolejkach o wyższych priorytetach
- trzy kolejki:
- Q0 - kwant czasu 8 milisekund
- Q1 - kwant czasu 16 milisekund
- Q2 - FCFS
- planowanie
- nowe zadanie wchodzi do kolejki Q0 obsługiwanej przez FCFS. Zadanie dostaje 8 milisekund i jeśli
się nie zmieści w tym czasie zostaje przeniesione na koniec kolejki Q1
- w kolejce Q1 zadanie jest znów obsługiwane przez algorytm FCFS i dostaje dodatkowe 16
milisekund. Jeśli ponownie nie zmieści się w tym czasie zostaje wywłaszczone do kolejki Q2
- algorytm ten daje najwyższy priorytet procesom o fazie nie większej niż 8ms, procesy o fazie między
8ms i 24ms są także szybko obsługiwane; długie procesy wchodzą do kolejki 2 i są obsługiwane
(FCFS) w cyklach pracy procesora nie wykorzystanych przez procesy z kolejek 0 i 1
- planowanie ze sprzężeniem zwrotnym jest najogólniejszym i najbardziej złożonym algorytmem
planowania przydziału procesora
- planista wielopoziomowych kolejek ze sprzężeniem zwrotnym jest określony za pomocą następujących
parametrów
- liczba kolejek
- algorytm planowania dla każdej kolejki
- metody użytej do decydowania o awansowaniu (ang. upgrade) procesu do kolejki o wyższym
priorytecie
- metody użytej do decydowania o zdymisjonowaniu (ang. demote) procesu do kolejki o niższym
priorytecie
- metody wyznaczenia kolejki, do której trafia proces potrzebujący obsługi
Wymień metody oceny algorytmów planowania (54):
- modelowanie deterministyczne - przyjmuje się konkretne, z góry określone obciążenie robocze systemu
i definiuje zachowanie algorytmu w warunkach tego obciążenia. Jest to odmiana oceny analitycznej (ang.
analytic evaluation)
- dla danego zbioru procesów mających zadane uporządkowanie i wyrażone w milisekundach fazy
procesora rozważamy algorytmy planowania (FCFS, SJF, RR (o zadanym kwancie czasu) , itp.)
- pytanie: który algorytm minimalizuje czas oczekiwania?
- modelowanie deterministyczne jest proste i szybkie, daje konkretne liczby pozwalające dokonać
wyboru algorytmu planowania
- modelowanie deterministyczne wymaga jednak specyficznych sytuacji i dokładnej wiedzy dlatego nie
zasługuje na miano ogólnie użytecznego
- modele obsługi kolejek – analiza obsługi kolejek w sieciach(ang. queueing-network analysis)
- wzór Little’a: n = l*W – liczba procesów opuszczających kolejkę musi się równać liczbie procesów
przychodzących
- n - średnia długość kolejki
- W - średni czas oczekiwania w kolejce
- l - ilość nowych procesów na sekundę
- symulacja sterowana rozkładami
- ma ograniczoną dokładność
- taśma śladów zdarzeń rzeczywistego systemu może poprawić dokładność
- implementacja - kosztowna ale dokładna ocena
Podaj definicję impasu (55):
- zbiór procesów jest w stanie impasu, gdy każdy proces z tego zbioru czeka na zdarzenie, które może
być spowodowane tylko przez inny proces z tego samego zbioru
Wymień warunki wystąpienia impasu w systemie (56):
- do impasów może dochodzić wtedy, kiedy w systemie zachodzą jednocześnie cztery warunki
- wzajemne wykluczanie (ang. mutual exclusion)
- przetrzymywanie i oczekiwanie (ang. hold and wait)
- brak wywłaszczeń (ang. no preemption)
- czekanie cykliczne (ang. circular wait)
- wzajemne wykluczanie zajdzie wtedy gdy przynajmniej jeden zasób jest niepodzielny; zasobu w danym
czasie może używać tylko jeden proces
- przetrzymywanie i oczekiwanie zajdzie wtedy jeśli istnieje proces, któremu przydzielono co najmniej
jeden zasób i który oczekuje na przydział dodatkowego zasobu, przetrzymywanego przez inny proces
- brak wywłaszczeń zajdzie wtedy gdy zasób może zostać zwolniony jedynie z inicjatywy
przetrzymującego go procesu (np. po zakończeniu)
- czekanie cykliczne zajdzie wtedy jeśli istnieje zbiór czekających procesów { P0, P1 …, Pn }, takich
że proces P0 czeka na zasób trzymany przez proces P1, proces P1 czeka na zasób trzymany przez
proces P2, …, proces Pn-1 czeka na zasób trzymany przez proces Pn, oraz proces Pn czeka na zasób
trzymany przez proces P0
Wymień metody zapobiegania impasom (57):
- zapewnić, aby nie mógł wystąpić przynajmniej jeden z czterech warunków koniecznych:
- wzajemne wykluczanie – dotyczy jedynie zasobów niepodzielnych (np. drukarek); nie można
zaprzeczyć temu warunkowi bowiem niektóre zasoby są z natury niepodzielne
- przetrzymywanie i oczekiwanie - aby zapewnić, że warunek ten nigdy nie wystąpi w systemie trzeba
zagwarantować, że gdy proces zamawia zasób to nie powinien trzymać innych zasobów
- każdy proces zamawia i otrzymuje wszystkie swoje zasoby przed rozpoczęciem działania (np.
najpierw wywołania systemowe dotyczące zasobów, potem pozostałe)
- proces może zamówić zasób o ile nie ma żadnych zasobów
- zanim proces zamówi zasób musi wpierw wszystkie oddać
- wady: słabe wykorzystanie zasobów, możliwość głodzenia
- brak wywłaszczeń - trzeba zapewnić, że zasoby nie ulegają wywłaszczeniu jedynie z inicjatywy
przetrzymującego je procesu
- jeśli proces żąda zasobu i nie może go otrzymać to traci wszystkie swoje zasoby i czeka na nie
- jeśli proces zamawia jakieś zasoby to się sprawdza czy są one dostępne
- jeśli są dostępne to się je przydziela
- jeśli są trzymane przez proces, który sam czeka na jakiś zasób to się mu zasoby odbiera i przydziela
zamawiającemu
- w przeciwnym razie proces czeka i może utracić zasoby
- czekanie cykliczne - sposobem aby warunek ten nigdy nie wystąpił w systemie jest przyporządkowanie
wszystkim zasobom danego typu kolejnych liczb i żądanie, aby
- każdy proces zamawiał zasoby we wzrastającym porządku numeracji
- alternatywnie można wymagać aby proces zamawiający zasób miał zawsze zwolnione zasoby o
numeracji wyższej od zamawianego
- porządek używania zasobów: np. taśmy - 3, drukarki - 4
Podaj definicję stanu bezpiecznego (58):
- kiedy proces żąda wolnego zasobu system musi zadecydować czy przydzielenie zasobu pozostawi
system w stanie bezpiecznym
- system jest w stanie bezpiecznym (ang. safe) jeśli istnieje taki porządek przydzielania zasobów
każdemu procesowi, który pozwala na uniknięcie impasu
- system jest w stanie bezpiecznym jeśli istnieje bezpieczny ciąg procesów
- system jest w stanie zagrożenia (ang. unsafe) jeśli nie jest w stanie bezpiecznym
- ciąg procesów <P1, P2, …, Pn> jest bezpieczny jeśli dla każdego procesu Pi , jego potencjalne
zapotrzebowanie na zasoby może być zaspokojone przez bieżąco dostępne zasoby + zasoby użytkowane
przez wszystkie procesy Pj , przy czym j<i
- jeśli Pi żąda zasobów, które nie są natychmiast dostępne, to Pi może poczekać aż skończą się
wszystkie procesy Pj
- jeśli Pj skończą, Pi może otrzymać wszystkie potrzebne zasoby, dokończyć pracę, zwolnić zasoby i
zakończyć
- jeśli Pi zakończy, Pi+1 może otrzymać niezbędne zasoby itd.
Wymień sposoby likwidacji impasu (59):
- likwidowanie impasu – zaniechanie (abort)
- zaniechanie wszystkich zakleszczonych procesów
- usuwanie procesów pojedynczo, aż do wyeliminowania cyklu impasu
- na kolejność zaniechania ma wpływ
- priorytet procesu
- długość czasu wykonania i czas pozostały do zakończenia
- zasoby i typy potrzebne do zakończenia
- ilość procesów do przerwania
- interakcyjność lub wsadowość
- likwidowanie impasu – wywłaszczanie
- wybór ofiary – minimalizowanie kosztów
- wycofanie (ang. rollback) - wycofanie procesu do bezpiecznego stanu, od którego można go będzie
wznowić
- głodzenie - ten sam proces może być zawsze ofiarą, podobnie jak i ten sam proces może być ciągle
wycofywany. Trzeba zadbać aby proces mógł być delegowany do roli ofiary tylko skończoną liczbę
razy
- likwidowanie impasu – podejście mieszane
- podstawowe strategie
- zapobieganie (ang. prevention)
- unikanie (ang. avoidance)
- wykrywanie (ang. detection)
- strategie stosowane osobno nie nadają się do rozwiązywania problemów z przydzielaniem zasobów
- podział wszystkich zasobów na hierarchicznie uporządkowane klasy
- w obrębie klas dobieramy najodpowiedniejsze techniki pokonywania impasu
- system składa się z klas zasobów
- zasoby wewnętrzne (bloki kontrolne)
- pamięć główna
- zasoby zadania (urządzenia, pliki)
- wymienny obszar pamięci pomocniczej
- strategie postępowania z impasami w obrębie każdej z klas
- porządkowanie zasobów
- wywłaszczanie
- unikanie impasu
- wstępny przydział
Dana jest migawka systemu. Posługując się algorytmem bankiera określ czy system jest w stanie
bezpiecznym? Jeśli proces złoży zamówienie to czy jest możliwe jego natychmiastowe spełnienie??
(60):
- wykład 8.
Wymień etapy przetwarzania programu użytkownika (61):
- wymiana
- przydział ciągły
- wtronicowanie
- segmentacja
- segmentacja ze stronicowaniem
Opisz zasadę konsolidacji dynamicznej (62):
- konsolidację opóźnia się do czasu wykonania
- w obrazie binarnym, w miejscu odwołania bibliotecznego znajduje się tylko namiastka (ang. stub)
procedury będąca małym fragmentem kodu, wskazującym jak odnaleźć odpowiedni, rezydujący w
pamięci podprogram biblioteczny lub jak załadować bibliotekę jeśli podprogramu nie ma w pamięci
- namiastka wprowadza na swoje miejsce adres podprogramu i go wykonuje
- system operacyjny sprawdza podprogram czy jest w pamięci a jeśli nie ma to go sprowadza
Opisz różnicę między adresacją logiczną i fizyczną (63):
- logiczny adres – wygenerowany przez CPU; jeśli odwzorowany na adres fizyczny podczas
wykonywania programu wtedy jest to wirtualny adres
- fizyczny adres - adres widziany przez sterownik pamięci
- adres logiczny i fizyczny jest taki sam podczas kompilacji i ładowania; logiczny(wirtulany) i fizyczny
adres różnią się podczas wykonania
Objaśnij pojęcia : swapping, roll in, roll out (64):
- swapping – tymczasowe odsyłanie procesu do pamięci pomocniczej i pobieranie go stamtąd z
powrotem do pamięci operacyjnej w celu kontynuowania działania
- roll out – wytaczanie
- roll in – wtaczanie
- oba pojęcia dotyczą wariantu wymiany wykorzystywanego w planowaniu priorytetowym; proces
niskopriorytetowy zostaje wyswapowany w sytuacji gdy nadejdzie proces wysokopriorytetowy do
kolejki procesów gotowych; proces wysokopriorytetowy zostaje załadowany do pamięci i wykonany, a
gdy skończy, to proces o niższym priorytecie może być sprowadzony do pamięci i wznowiony
Wymień sposoby, jak na podstawie listy wolnych dziur spełnić zamówienie procesu na pamięć (65):
- pierwsze dopasowanie: (ang. first-fit)
- najlepsze dopasowanie: (ang. best-fit)
- najgorsze dopasowanie: (ang. worst-fit)
Wyjaśnij różnicę między fragmentacją zewnętrzną i wewnętrzną (66):
- fragmentacja zewnętrzna (ang. external fragmentation) - suma wolnych obszarów w pamięci wystarcza
na spełnienie zamówienia ale nie tworzą one ciągłego obszaru – opisuje stan przed przydzieleniem
pamięci
- fragmentacja wewnętrzna ( ang. internal fragmentation) - zaalokowana pamięć jest nieznacznie większa
od żądania alokacji pamięci; różnica ta stanowi bezużyteczny kawałek pamięci wewnątrz przydzielonego
obszaru – opisuje stan po przydzieleniu
Opisz paging (67):
- logiczna przestrzeń adresowa procesu może być nieciągła tj. procesowi można przydzielać dowolne
dostępne miejsca w pamięci fizycznej
- pamięć fizyczną dzieli się na bloki stałej długości zwane ramkami (ang. frames) (rozmiar jest potęgą 2,
między 512B a 16MB)
- pamięć logiczną dzieli się na bloki tego samego rozmiaru zwane stronami (ang. pages)
- pamiętana jest lista wolnych ramek
- wykonanie procesu o rozmiarze n stron wymaga znalezienia n wolnych ramek i załadowanie w nie
procesu
- utworzenie tablicy stron (ang. page table) do odwzorowywania adresów logicznych na fizyczne
- eliminuje się fragmentację zewnętrzna ale może powstać fragmentacja wewnętrzna
Podaj schemat translacji adresu przy stronicowaniu (68):
- stronicowanie wymaga wsparcia sprzętowego
- adres wygenerowany przez CPU jest dzielony na dwie części:
- numer strony (ang. Page number) (p) – używany jako indeks w tablicy stron zawierającej adresy
bazowe wszystkich stron w pamięci fizycznej
- odległość na stronie (ang. Page offset ) (d) – w połączeniu z adresem bazowym definuje fizyczny
adres pamięci posyłany do jednostki pamięci
Opisz implementację tablicy stron (69):
- tablicę stron przechowuje się w pamięci operacyjnej
- rejestr bazowy tablicy stron (ang. Page-table base register - PTBR) wskazuje położenie tablicy stron
- rejestr długości tablicy stron (ang. Page-table length register - PTLR) wskazuje rozmiar tablicy stron;
zwartość ta jest badana w celu sprawdzenia czy dany adres jest dozwolny
- schemat ten wymaga dwóch kontaktów z pamięcia w celu uzyskania dostępu do bajtu - jeden do wpisu
do tablicy stron, drugi do danego bajtu. W większości przypadków takie opóźnienie jest nie do
zaakceptowania
- problem ten rozwiązuje się za pomocą specjalnej, małej i szybko przeszukiwanej, sprzętowej pamięci
podręcznej zwanej rejestrami asocjacyjnymi (ang. associative registers ) lub buforami translacji adresów
stron (ang. translation look-aside buffers -TLBs)
Podaj wzór na efektywny czas dostępu do pamięci (70):
- przeglądnięcie rejestrów asocjacyjnych = ? jednostek czasu
- niech cykl pamięci wynosi 1 mikrosekundę
- współczynnik trafień (ang. hit ratio) - procent numerów stron odnajdowanych w rejestrach
asocjacyjnych; współczynnik zależy od liczby rejestrów asocjacyjnych
- współczynnik trafień = ?
- Effective Access Time (EAT)
- EAT = (1 + ?) ? + (2 + ?)(1 - ?) = 2 + ? - ?
Podaj schemat translacji adresu przy odwróconej tablicy stron (71):
- odwrócona tablica stron (ang. inverted page table) ma po jednej pozycji dla każdej rzeczywistej strony
pamięci (ramki)
- każda pozycja zawiera adres wirtualny strony przechowywanej w ramce rzeczywistej pamięci oraz
informacje o procesie posiadającym stronę
- zmniejsza się rozmiar pamięci potrzebnej do pamiętania wszystkich tablic stron, jednak zwiększa się
czas potrzebny do przeszukania tablicy przy odwołaniu do strony
- tablica haszowania (ang. hash table) – ogranicza szukanie do jednego lub najwyżej kilku wpisów w
tablicy stron
Podaj schemat translacji adresu przy haszowanej tablicy stron (72):
- przestrzeñ adresowa > 32 bitów
- numer strony pamięci wirtualnej jest odwzorowany (ang. hashed ) przy pomocy funkcji haszującej na
pozycje w tablicy (ang. hashed page table)
- wszystkie strony wirtualne którym odpowiada ta sama pozycja w tablicy (kolizja) zostają umieszczone
na jednej liście (metoda łańcuchowa)
- element listy: numer strony wirtualnej (p), numer strony pamięci (r), wskaźnik do następnego elementu
listy
Podaj schemat translacji adresu przy segmentacji (73):
- adres logiczny = <numer segmentu , odległość w segmencie>
- tablica segmentów ( segment table ) - jest wykazem par :
- bazy – zawiera początkowy adres fizyczny w pamięci
- granicy – długości segmentu
- STBR - rejestr bazowy tablcy segmentów ( Segment-table base register) - wskazuje na tablicę
segmentów w pamięci
- STLR - rejestr dlugości tablcy segmentów ( Segment- table length register) - liczba segmentów
przypadających na program
- jeśli:
- numer segmentu >= STLR to błąd
- odległość w segmencie >= tablica segmentów [ numer segmentu ].granica to bład
- w przeciwnym wypadku
- adres fizyczny = tablica segmentów [ numer segmentu ] .baza + odleglosc w segmencie
Podaj schemat translacji adresu przy segmentacji z dwupoziomowym schematem stronicowania
(74):
- adres logiczny = <p1,p2,d>
- p1 – indeks do zewnetrznej tablicy stron
- p2 – przesuniecie na stronie zewnetrznej tablicy stron
- d - odleglosc na stronie
- adres fizyczny = ((zewnetrzna tablica stron[p1])[p2])+d
- oczywiscie przy kazdym odniesieniu nalezy sprawdzic czy nie przekroczone zostały granice.
Wymień zalety pamięci wirtualnej (75):
- brak ograniczeń na pamięć
- więcej programów – lepsze wykorzystanie procesora
- można jedynie część programu załadować do pamięci w celu wykonania ( reszta nieużywana
(procedury obsługi rzadkich blędów) albo nadmiarowa (np. nadmiarowe tablice) jest w pamięci
wirtualnej )
- logiczan przestrzeń adresowa może być większa niż fizyczna
- kopiowanie przy zapisie ( copy-on-write) przy tworzeniu procesu
- odwzorowanie plików do pamięci ( memory-mapped files ) przy tworzeniu procesu
Wymień sposoby implementacji pamięci wirtualnej (76):
- stronicowanie na żądanie – demand paging
- segmentacja na żądanie – demand segmentation
Opisz stronicowanie na żądanie (77):
- nigdy nie dokonuje się wymiany strony w pamięci o ile nie jest to konieczne ( procedura leniwej
wymiany - lazy swapper ) Jesli strona jest potrzebna to odwołaj sie do niej; gdy odwołanie jest
niepoprawne - przerwij, gdy brak strony w pamięci to ją do niej sprowadź. Jest to zgodne z zasadą
lokalności odniesień.
Opisz obsługę braku stron (78):
- system operacyjny sprawdza wewnętrzną tablicę oraz decyduje że:
- jeśli odwołanie niedozwolone - kończy proces
- jeśli odwołanie dozwolone tylko zabrakło strony w pamięci to sprowadza tę stronę
- system znajduje wolną ramkę na liście wolnych ramek
- gdy nie ma wolnej ramki to szukamy strony w pamięci która nie jest używana i zapisujemy ją na dysk
- system wczytuje stronę z dysku do wolnej ramki
- system wstawia bit 1 w tablicy stron
- system wykonuje przerwany rozkaz
Podaj wzór na obliczenie sprawności stronicowania (79):
- EAT – efektywny czas dostępu
- p – prawdopodobieństwo braku strony( 0 – brak braku stron , 1 - każde odwołanie generuje brak
strony )
- cd - czas dostępu do pamięci
- cz - czas obsługi strony ( obsługa przerawnia wywołanego brakiem strony, czytanie strony, wznowienie
procesu )
- EAT = (1-p)*cd+p*cz
Wymień komponenty czasu obsługi page-fault (80):
- przejście do systemu operacyjnego
- przechowanie kontekstu
- określenie, że przerwanie to brak strony
- okreslenie dopuszczalności i położenia strony
- czytanie z dysku do wolnej ramki
- przydzielenie procesora w trakcie transferu
- przerwanie we/wy po transferze strony
- odebranie sterowania i przełączenie kontekstu
- skorygowanie tablicy stron
- czekanie na przydział procesora i wznowienie
Opisz zastępowanie strony (81):
- przebieg:
- ochrona przed nadprzydziałem ( over-allocation) pamięci przez dodanie do obsługi braku strony
możliwości zastąpienia strony ( page replacement )
- zlokalizowanie potrzebnej strony na dysku
- odnalezienie wolnej ramki
- jeśli ramka istnieje – zostaje użyta
- w przeciwnym wypadku typowanie ramki ofiary ( victim )
- ramka ofiara zapisana na dysk, zmiana w tablicy stron
- wczytanie potrzebnej strony
- wznowienie procesu
- udoskonalenia:
- dodanie bitu modyfikacji ( zabrudzenia ) ( modify ( dirty )) do zredukowania czasu - tylko strony
zmodyfikowanie są zapisywane na dysk.
Skonstruuj przykład ilustrujący anomalię Belady.ego (82):
- anomalia Belady’ego (ang. Belady’s anomaly) odzwierciedla fakt, że w niektórych algorytmach
zastępowania stron współczynnik braków stron może wzrastać ze wzrostem wolnych ramek (mimo, że
intuicja zdaje się sugerować, że zwiększenie pamięci procesu powinno polepszyć jego działanie)
- przykład dla algorytmu FIFO:
- ciąg odniesień: 1, 2, 3, 4, 1, 2, 5, 1, 2, 3, 4, 5
- 3 ramki (3 strony mogą być w pamięci w tym samym czasie) - 9 braków stron
- 4 ramki (4 strony mogą być w pamięci w tym samym czasie) – 10 braków stron
Opisz algorytm zastępowania stron FIFO (83):
- algorytm FIFO (ang. First-In-First-Out) stowarzysza z każdą ze stron czas kiedy została ona
sprowadzona do pamięci
- jeśli trzeba zastąpić stronę to zastępowana jest najstarsza ze stron
- implementuje się za pomocą kolejek FIFO
Opisz algorytm zastępowania stron LRU (84):
- zastąp tę stronę, która najdawniej była użyta (ang. Least Recently Used)
- nie jest dotknięty anomalią Belady’ego
- odwracalność
- dwie implementacje
- liczniki – do każdej pozycji w tablicy stron dołączamy rejestr czasu użycia, do procesora zaś
dodajemy zegar logiczny lub licznik. Wskazania zegara są zwiększane wraz z każdym odniesieniem do
pamięci. Ilekroć występuje odniesienie do pamięci, tylekroć zawartość rejestru zegara jest kopiowana
do rejestru czasu użycia należącego do danej strony w tablicy stron
- stos – przy każdym odwołaniu do strony jej numer wyjmuje się ze stosu i umieszcza na szczycie najlepsza implementacja to dwukierunkowa lista ze wskaźnikami do czoła i do końca
- najwyżej 6 zmian wskaźników
- nie jest potrzebne przeszukiwanie listy
Opisz algorytm zastępowania stron OPT (85):
- zastąp tę stronę, która najdłużej nie będzie używana; nazywany OPT lub MIN
- nie ma anomalii Belady’ego
- bardzo trudny do realizacji bo wymaga wiedzy o przyszłej postaci ciągu odniesień (podobnie jak przy
planowaniu procesora metodą SJF)
- używany głównie w studiach porównawczych
- wiedza o tym, że jakiś algorytm odbiega od optymalnego o 12,3% a średnio jest od niego gorszy o
4,7% może okazać się cenną
Wymień algorytmy zastępowania stron dotknięte anomalią Beladye’go (86):
- FIFO
Opisz zegarowy algorytm drugiej szansy (87):
- bit odniesienia (ang. reference bit)
- z każdą stroną stowarzyszamy na początku bit 0
- czytanie lub pisanie na stronie ustawia bit na 1
- zastąp stronę jeśli ma bit 0
- nie można poznać porządku użycia stron
- algorytm drugiej szansy (ang. second chance)
- algorytm FIFO (wymaga zegara)
- gdy strona (FIFO) ma bit odniesienia = 1 to strona dostaje drugą szansę na pobyt pamięci:
- bit odniesienia = 0 i czas przybycia = bieżący
- zostawia się stronę w pamięci
- zastępuje się następną w porządku FIFO stronę według powyższych zasad
- ulepszony algorytm drugiej szansy
- (x,y) - x - bit odniesienia, y- bit modyfikacji
- 4 klasy (od najniższej)
- (0,0) - nie używana ostatnio i nie zmieniana: najlepsza ofiara
- (0,1) - nie używana ostatnio ale zmieniona: gorsza ofiara bo wymaga zapisu na dysk
- (1,0) - używana ostatnio i czysta: może być wkrótce użyta
- (1,1) - używana ostatnio i zmieniana - najgorsza ofiara, prawdopodobnie będzie zaraz użyta
- algorytm drugiej szansy ale zastępujemy pierwszą napotkaną stronę z najniższej niepustej klasy (x,y)
Rozważmy następujący ciąg odniesień ?,?,?,?,?,?,?,?,?,?,?,? ile braków stron wystąpi gdy mamy
1,2,3,4,5,6 lub 7 ramek dla algorytmów FIFO, OPT, LRU?? (88)
Wykład 10
Co to jest trashing i jakie są jego przyczyny (89):
- jeśli proces nie ma “wystarczająco dość” ramek to współczynnik braków stron jest znaczny. Powoduje
to:
- słabe wykorzystanie CPU
- system operacyjny reaguje: trzeba zwiększyć wieloprogramowość i podnieść wykorzystanie CPU
- nowy procesy z kolejki procesów gotowych staje się aktywnym
- szamotanie (ang. trashing) – proces się szamoce jeśli spędza więcej czasu na stronicowaniu niż na
wykonaniu
- przyczyny szamotania:
- system operacyjny nadzoruje wykorzystanie jednostki centralnej
- jeśli jest ono za małe planista przydziału procesora zwiększa stopień wieloprogramowości
- strony zastępowane są według globalnego algorytmu bez brania pod uwagę do jakich procesów należą
- procesom zaczyna brakować stron
- procesy ustawiają się w kolejce do urządzenia stronicującego
- planista opróżnia kolejkę procesów gotowych
Opisz budowę portu we/wy (90):
- port we/wy składa się z 4 rejestrów (dł. 1B-4B)
- stan (ang. status) - zawiera bity czytane przez procesor
- zakończenie polecenia, dostępność danych w rejestrze, dane wyjściowe, wykrycie błędu
- sterowanie (ang. control) – zapisywany przez procesor
- rozpoczęcie polecenia, zmiana trybu pracy urządzenia (komunikacja pełnodupleksowa, szybkość
portu)
- dane wejściowe (ang. data-in) – czytany przez procesor
- pobranie informacji z urządzenia
- dane wyjściowe (ang. data-out) - dane zapisywane przez procesor
- układy FIFO - rozszerzają pojemność rejestrów
Opisz polling (91):
Ciąg uzgodnień procesor-sterownik:
- aktywne czekanie (ang. busy-waiting), odpytywanie (ang.polling) - procesor czyta bit zajętości do
czasu aż będzie on równy 0
- trzy cykle rozkazowe procesora do odpytania: czytanie rejestru urządzenia, operacja koniunkcji
(wydobycie bitu zajętoœci), skok przy wartości niezerowej
- procesor ustawia bit pisania (ang. write bit) w rejestrze poleceń i wpisuje bajt do rejestru danych
wyjściowych
- procesor ustawia bit gotowości polecenia
- sterownik ustawia bit zajętości
- sterownik czyta rejestr poleceń
- rozpoznaje polecenie pisania, czyta bajt z rejestru danych wejściowych i wykonuje operację we/wy na
urządzeniu
- sterownik ustawia bit gotowości polecenia na 0 i bit błędu (ang. error bit) w rejestrze stanu oraz ustawia
bit zajętości na 0
Opisz cykl we/wy obsługiwany przerwaniami (92):
- odpytywanie staje się niewydajne w sytuacji rzadkich przypadków gotowości urządzenia
- osprzęt procesora ma ścieżkę zwaną linią zgłaszania przerwań (ang. interrupt request line), którą
procesor bada w cyklu rozkazu
- jeśli procesor wykryje przerwanie od sterownika to przechowa dane określające bieżący stan (PC) i
wykona skok do procedury obsługi przerwania (ang. interrupt-handler)
- wykrycie przyczyny przerwania
- wykonanie niezbędnych czynności
- rozkaz powrotu z przerwania
- sprzęt sterownika przerwań (ang. interrupt controller) powinien zapewnić
- opóźnianie obsługi przerwania podczas działań krytycznych
- brak odpytywania urządzeń w celu wykrycia sprawcy
- przerwania wielopoziomowe o różnym priorytecie
- przerwania maskowalne (ang. maskable) pozwalają wyłączyć zgłoszenia żądań
- adres obsługi przerwania znajduje się w tablicy zwanej wektorem przerwań (ang. interrupt vector)
- system poziomów priorytetów przerwań (ang. interrupt priority levels) umożliwia opóźnianie przez
procesor obsługi przerwań niskopriorytetowych bez maskowania wszystkich przerwań i pozwala
wywłaszczać procesy ich obsługi
- mechanizm przerwania stosuje się również do obsługi sytuacji wyjątkowych (ang. exceptions)
- dzielenie przez 0, rozkaz uprzywilejowany
Opisać DMA (93):
- DMA controller – wyspecjalizowany procesor zwany sterownikiem bezpośredniego dostępu do
pamięci.
- DMA = Direct Memory Access
- podłączony do magistrali urządzeń peryferyjnych. Gdy chcemy uniknąć programowanego we/wy w
celu np. lepszego wykorzystania procesora wykonuje on część pracy podczas bezpośredniego dostępu do
pamięci.
- przesyłanie w trybie DMA:
- procesor zapisuje w pamięci blok sterujący DMA (wskaźnik źródła, miejsce docelowego przesyłania i
licznik)
- sterownik DMA pobiera adres tego bloku (DMA przejmuje nadzór nad operacją we/wy). Przesyłanie
między sterownikiem DMA i sterownikiem urządzenia dokonuje się za pomocą pary przewodów
nazywanych zamówieniem DMA (DMA request) i potwierdzeniem DMA (DMA acknowledge).
- procesor kontynuuje pracę (po pauzie na transfer)
- DMA spowalnia CPU (cycle stealing)
- Tryb DMA umożliwia ransfer danych bezpośrednio pomiędzy pamięcią (wirtualną) i urządzeniem
we/wy.
Scharakteryzować różnice między urządzeniami we/wy (94):
- strumień znaków (character stream) : urządzenie znakowe przesyła bajt po bajcie.
- Bloki (block) : urządzenie blokowe przesyła jednorazowo blok danych.
- synchroniczność sterowana zegarem.
- asynchroniczność sterowana znakiem stopu i startu.
- dzielenie lub wyłączność.
- prędkość działania nawet TB na sekundę.
- czytanie&pisanie, tylko czytanie, tylko pisanie.
Opisać interfejs urządzeń znakowych i blokowych (95):
- interfejs urządzenia blokowego (np. dyski) :
- komendy : czytaj, pisz, szukaj (Unix – dostęp przez interfejs plików)
- surowe we/wy np. dostęp do baz danych
- pliki odwzorowywane w pamięci (memory mapped file) mechanizm jak w stronicowaniu na żadanie
- interfejs urządzeń znakowych (klawiatura, mysz, port szeregowy)
- komendy pobrania (get) i przekazania (put) jednego znaku (character stream)
- oprogramowanie biblioteczne może tworzyć dostęp na zasadzie przesyłania całych wierszy tekstu :
buforowanie i redagowanie (np. kasowanie znaków - backspace)
Wymienić funkcje czasomierzy (96).
- podawanie bieżącego czasu
- podawanie upływającego czasu
- powodowanie wykonania operacji w ustalonej chwili
Co to jest blokowane wywołanie systemowe (97):
- jest to wywołanie, które wykonuje proces gdy jego działanie zostaje wstrzymane (do zakończenia
we/wy). Proces wtedy staje się czekającym a po zakończeniu (we/wy) proces staje się gotowy.
- niektóre procesy wymagają nieblokowanego we/wy (sygnały z klawiatury i myszy przeplatane
przerwaniem i wyświetlaniem danych na ekranie).
Podaj wzór na średni czas dostępu do dysków (98):
- T_a = T_s + 1/2r + T
-T_s – średni czas przeszukiwania (5 do 10ms)
- r – prędkość w obrotach na min (10000 rpm)
- T - czas transferu
- T=b/r*N
- b - ilość transferowanych bajtów; N - ilość bajtów na ścieżkę
- przykład: 2650 sektorów = 512B*320S*8T = 1.3MB
- pierwsza ścieżka: 10ms+ 6/2ms + 6ms = 19ms
- następne ścieżki: 3ms + 6ms =9ms; T= 19ms+7*9ms=0.082s
- niesekwencyjnie: 2560*(10ms + 3ms + 6*512B/512B*320) = 2560*13.01875ms= 33.328s
Co to jest semantyka kopii (99):
- semantyka kopii jest to własność, która gwarantuje, że wersja danych zapisana na dysku będzie z chwili
odwołania się aplikacji do systemu gdy np. chcemy zapisać dane z bufora na dysk. Wywoływana jest
funkcja systemowa „pisz”, w tym czasie w buforze następuje zmiana danych. Można w wywołaniu
systemowym „pisz” przekopiować dane do bufora w jądrze.
Wymień algorytmy planowania we/wy dla dysków (100):
- FIFO (ang First-in, First-out),
- PRI (ang. priority),
- LIFO (ang Last-in, First-out),
- SSTF (ang. Shortest service time first),
- SCAN,
- ??
- C-SCAN,
- N-step-SCAN,
- FSCAN
Opisz algorytm SCAN (101):
- głowice przemieszczają się w jednym kierunku do ostatniej ścieżki lub do ostatniego żądania w danym
kierunku
- kierunek zostaje następnie odwrócony
- neguje zasadę lokalności odniesień
- nie ma możliwości głodzenia
- SCAN faworyzuje zadania o żądaniach we/wy na skrajnych ścieżkach
Wymienić etapy przekształcania zamówień we/wy na operacje sprzętowe (102):
- (Na przykładzie zamówienia procesu a systemie z plikiem z dysku).
- identyfikacja nośnika (urządzenia) pliku
- przetłumaczenie nazwy pliku na jego reprezentacje w urządzeniu
- fizyczne czytanie z urządzenia do bufora
- udostępnianie danych zamawiającemu procesorowi
- przekazanie sterowania procesowi po wykonanej operacji we/wy
Podaj sposoby na poprawienie wydajności we/wy (103):
- zmniejszać liczbę przełączeń kontekstu
- zmniejszać liczbę kopiowań danych w pamięci podczas przekazywanie ich od urządzenia do aplikacji
- zmniejszać częstość występowania przerwań przez stosowanie wielkich przesłań i przemyślnych
sterowników oraz odpytywania
- zwiększać współbieżność za pomocą sterowników pracujących w trybie DMA lub kanałów w celu
odciążenia procesora
- realizować elementarne działania za pomocą sprzętu i pozwalać na ich współbieżne wykonywanie w
sterownikach urządzeń
- równoważyć wydajność procesora, podsystemów pamięci, szyny i operacji we/wy
- przeciążenie w jednym miejscu powoduje bezczynność w innych miejscach
Podać imię i nazwisko twórcy systemu Linux oraz rok pojawienia się pierwszej wesji systemu Linux
(104):
- Linus Torvalds, 14.V.1991 – Linux-0.01
Wymień podstawowe założenia systemu Linux (105):
- Linux jest wielodostępnym, wielozadaniowym systemem z pełnym zestawem narzędzi zgodnym z
systemem Unix.
- System plików systemu Linux pasuje do tradycyjnej semantyki uniksowej i ma zrealizowany w pełni
sieciowy standard systemu UNIX.
- Główne cele projektu : szybkość, wydajność i standardyzacja.
- Zaprojektowany tak, bo pozostawał w zgodzie z istotnymi opisami standardu POSIX; co najmniej 2
dystrybucje mają oficjalny certyfikat komitetu normalizacyjnego POSIX
- Interfejs programisty w systemie Linux odpowiada bardziej semantyce systemu SVR4 UNIX niż
zachowaniu systemu BSD.
Wymień składowe jądra w systemie Linux (106) (?????):
- zwykły kod jądra
- moduły jądra
Wymień składowe kontekstu wykonania procesu w systemie Linux (107):
- kontekst procesu, jako stan wykonywanego procesu rozpatrywany w danej chwili, zmienia się
nieustannie (przeciwnie niż tożsamość i środowisko procesu)
- kontekst planowania (ang. scheduling context) - najważniejsza część kontekstu procesu; są to
informacje potrzebne planiście do zawieszania i wznawiania procesu
- rozliczanie (ang. accounting) - informacje o zasobach zużywanych na bieżąco przez każdy z procesów,
jak również o ich łącznej ilości zużytej od momentu startu procesu
- tablica plików (ang. file table) zawiera wskaźniki do jądrowych struktur plików; wykonując systemowe
operacje we/wy, procesy odwołują się do plików za pomocą indeksów do tej tablicy
- kontekst systemu plików (ang. file-system context) odnosi się do zamówień na otwarcie nowych
plików; przechowuje się w tym celu informacje o bieżącym katalogu głównym oraz o katalogach
używanych zastępczo do poszukiwania nowych plików
- tablica obsługi sygnałów (ang. signal-handler table) określa procedurę w przestrzeni adresowej procesu,
która ma być wywołana po nadejściu konkretnego sygnału
- kontekst pamięci wirtualnej (ang. virtual-memory context) opisuje całą zawartość prywatnej przestrzeni
adresowej procesu
Opisz sposób implementacji wątków w systemie Linux (108):
- Linux stosuje dokładnie tą samą wewnętrzną reprezentację dla procesów i wątków; wątek jest po prostu
nowym procesem, któremu przychodzi dzielić ze swoim rodzicem tą samą przestrzeń adresową
- rozróżnienia między procesem i wątkiem dokonuje się tylko podczas tworzenia nowego wątku za
pomocą funkcji systemowej clone
- fork tworzy nowy proces z własnym, całkowicie nowym kontekstem
- clone tworzy odrębny proces z odrębną tożsamością, któremu pozwala się dzielić struktury danych
rodzica
- Linux przechowuje konteksty w oddzielnych strukturach danych w postaci podkontekstów a nie w
głównej strukturze danych procesu; struktura danych procesu zawiera jedynie wskaźniki do tamtych
struktur
- funkcja systemowa clone tworz¹c nowy proces, przyjmuje argument okreœlaj¹cy, które podkonteksty
nale¿y skopiowaæ, a które maj¹ byæ wspólne
- fork jest specjalnym przypadkiem clone, w którym kopiowane są wszystkie podkonteksty
- proces reprezentuje struktura task_struct
- Linux stosuje kopiowanie przy zapisie
- Stany wykonania procesu
- aktywny (ang. running) - proces wykonywany albo gotowy
- interruptable - proces zablokowany, czekający na zasób lub zdarzenie
- uninterruptable - proces zablokowany, czekający na zdarzenie sprzętowe
- stopped – proces może być wznowiony jedynie przy pomocy innego procesu (np. debugging)
- zombie – proces zakończył, lecz dalej jest w strukturach tablic procesów
Opisz techniki ochrony sekcji krytycznych w systemie Linux (109):
- Linux wykorzystuje dwie techniki do ochrony sekcji krytycznych:
1. Zwykły kod jądra jest niewywłaszczalny – gdy przerwanie zegarowe wystąpi w czasie gdy proces
wykonuje jądrową procedurę obsługi, znacznik need_resched jest ustawiany aby poinformować jądro o
zapotrzebowaniu na planistę po zakończeniu tej procedury i przed wejściem w tryb użytkownika
2.Druga technika dotyczy tych sekcji krytycznych, które występują w procedurach obsługi przerwań
– przez wprowadzenie zakazu przerwań w trakcie wykonywania sekcji krytycznej jądro gwarantuje,
że jej wykonanie przebiegnie bez ryzyka dla współbieżnego dostępu do dzielonych (krytycznych)
struktur danych
Opisz budowę i działanie procedur obsługi przerwań w systemie Linux (110):
- aby uniknąć pogorszenia wydajności (rozkazy włączania i wyłączania przerwań są kosztowne), w
jądrze systemu Linux zastosowano architekturę synchronizacji umożliwiającą wykonywanie długich
sekcji krytycznych bez wyłączania przerwań na czas trwania całej sekcji
- procedury obsługi przerwań są podzielona na górną i dolną połowę (ang. top & bottom half)
- górna połowa jest zwykłą procedurą przerwania; jej wykonanie ma wyłączone rekurencyjne
przerwania
- dolna połowa przebiega z włączonymi wszystkimi przerwaniami i jest nadzorowana przez
miniaturowego planistę, który zapewnia, że dolne połowy nigdy nie przerywają się wzajemnie
- architektura ta jest uzupełniana przez mechanizm wyłączania wybranych dolnych połów podczas
wykonywania zwykłego, pierwszoplanowego kodu jądra
- sekcje krytyczne procedur obsługi przerwań są zaprogramowane jako dolne połowy i gdy jądro
działając pierwszoplanowo, zechce wejść do sekcji krytycznej, wówczas może zabronić działania
dowolnych z dolnych połów w celu obronienia się przed przerwaniem z niepożądanej sekcji krytycznej
Opisz algorytm planowania z podziałem czasu w systemie Linux (111):
- dla procesów z podziałem czasu system Linux używa algorytmu priorytetowego, opartego na
kredytowaniu
- kiedy należy wybrać nowy proces wybiera się proces z największym kredytem, jeśli każdy proces
wyczerpał kredyt udziela się go
- wzór na kredytowanie: nowy_kredyt = 0.5*kredyt + priorytet, uzględnia dwa czynniki historię
procesu i jego priorytet
- ten system kredytowania automatycznie preferuje procesy interakcyjne, ograniczone przez we/wy, dla
których istotny jest czas odpowiedzi
Opisz algorytm rejestrowania ramek stosowany przez dyspozytora stron w systemie Linux (112):
- dyspozytor stron (ang. page allocator) w jądrze odpowiada za przydział i zwalnianie wszystkich
fizycznych stron i jest w stanie przydzielać na zamówienie partie stron fizycznie ze sobą sąsiadujących
- dyspozytor stosuje algorytm sąsiednich stert (buddy-heap) w celu rejestrowania dostępych ramek
- wszystkie bloki są zgrupowane w 13 listach: po 32, 64, 128, 256, 512,...., 131072 bajtów
- każdy obszar zdatnej do przydziału pamięci ma przyległego partnera, czyli sąsiada ( stąd nazwa)
- ilekroć dwa sąsiadujace obszary są zwalniane, łaczy się je w większy obszar
- z drugiej strony, gdy małe zamówienie na pamięć nie może być zrealizowane przez przydział
istniejącego, małego wolnego obszaru, wówczas w celu zrealizowania zamówienia większy wolny
obszar zostanie podzielony na dwa sąsiednie
Wymień metody startowania systemu Linux (113):
- system linux można wystartować z wykorzystaniem nast. metod:
- MS/DOS – LOADLIN.EXE
- LiLo - Linux Loader
- GRUB – Grand Unified Bootloader
- Projekt PUPA = GRUBng – GRUB new generation
- net loader
Wymień obszary pamięci w formacie ELF (114):
- plik binarny formatu ELF składa się z nagłówka, oraz z sekcji kończących się i rozpoczynających się na
granicach stron
- program ładujący formatu ELF czyta nagłówek i odwzorowuje sekcje pliku na osobne obszary pamięci
wirtualnej
- stos zawiera kopie argumentów i zmienne środowiskowe
- kod binarny jest odwzorowany jako obszar do czytania
- dane są odwzorowane jako obszar do zapisu
- obszar o zmiennej długości, którego granicę określa wskaźnik brk

Podobne dokumenty