2. Do czego służą funkcje systemowe 3. Blok kontrolny procesu - co to jest, składniki. 4. Semafor - co to jest, do czego służy? 5. Mechanizm stronicowania pamięci. 6. Przerwania - co to jest, do czego służą? 7. Metody przydziału miejsca na dysku - wymień i opisz. 8. Planiści, wymień i opisz czym się różnią? 9. Na czym polega odpytywanie wejścia/wyjścia. 10. Kolejki wielopoziomowe. 11. Wątki co to jest, czym się różnią od procesów. 12. Sekcja krytyczna. 13. Fragmentacja pamięci. 14. W jakim celu tworzy się pamięć wirtualną. 15. Typy urządzeń I/0 i przykłady. 16. Tryby pracy procesora. 17. Warunki wystąpienia blokady. 18. Co to jest program nakładkowy, gdzie ma zastosowanie. 19. Opisz stronicowanie na żądanie. 20. Opisz kryteria wyboru wolnego obszaru pamięci przy przydziale ciągłym21. Wymień i opisz algorytmy zastępowania stron.2. Do czego służą funkcje systemowe, przykłady Funkcji systemowych Funkcje systemowe tworzą interfejs pomiędzy wykonywanym programem a OS'em. Poprzez funkcje systemowe użytkownik „daje polecenia” systemowi. Funkcje systemowe mają następujące zadania: • Nadzorowanie proces: ● Załadowanie lub wykonanie programu. ● Zaniechanie lub zakończenie procesu. ● Utworzenie lub zakończenie procesu (potomnego). ● Przydział i zwolnienie pamięci. • Operacje na plikach: ● Utworzenie lub usunięcie pliku. ● Otwarcie lub zamknięcie pliku. • Operacje na urządzenia: ● Zamówienie lub zwolnienie urządzenia. ● Pobranie lub ustawienie parametrów urządzenia. ● Logiczne przyłączanie lub odłączanie urządzeń. • Utrzymywanie informacji: ● Pobranie lub ustawienie daty/czasu. ● Pobranie lub ustawienie danych systemowych. ● Pobranie atrybutów procesu, pliku lub urządzenia. • Komunikacja: ● Przekazywanie informacji o stanie. ● Przyłączanie i odłączanie urządzeń zdalnych. 3. Blok kontrolny procesu - co to jest, składniki. Jest to część odpowiedzialna za przechowywanie informacji o procesie. Składa się zwykle z następujących części: ● Numer procesu. ● Aktualny stan procesu. ● Licznik rozkazów – adres następnego rozkazu do wykonania. ● Rejestry ● Adresy pamięci. ● Wykaz otwartych plików. ● Zarządzanie pamięcią. ● Informacje do rozliczeń. ● Informacje o stanie wejścia-wyjścia. ● Informacje do planowania przydziału procesora. 4. Semafor - co to jest, do czego służy? Semafory są najczęściej stosowane do synchronizacji dostępu procesów do wspólnych zasobów (np. pamięci dzielonej, plików itp.) Semafor to specjalna zmienna całkowita, początkowo rowna k. Specjalna, ponieważ (po zainicjowaniu) można na niej wykonywać tylko dwie operacje: P - Jeżeli semafor jest rny 0 (semafor jest opuszczony), to proces wykonujący tą operację zostaje wstrzymany, dopi wartość semafora nie zwiększy się (nie zostanie on podniesiony). Gdy wartość semafora jest dodatnia (semafor jest podniesiony), to zmniejsza się o 1 (pociąg zajmuje jeden z k wolnych tor). V - Wartość semafora jest zwiększana o 1 (podniesienie semafora). Jeżeli jakiś proces oczekuje na podniesienie 11. Wątki co to jest, czym się różnią od procesów. Watek jjest podstawowa jjednostka wykorzystania procesora. Jesttto czesc składowa procesu wielowatkowego. Wątek (proces lekki) jest podstawową jednostką wykorzystania procesora. Działanie wątk przypomina działanie proces. Mogą być w stanach: gotowości, zablokowania, aktywności, kończenia. Wątek może tworzyć wątki potomne, może się zablokować do czasu wykonania wywołania systemowego. Jeśli jeden wątek jest zablokowany, może działać inny wątek. Watek składa się z: • Licznika rozkaz. • Zbioru rejestr. • Obszaru stosu. Takie elementy jak sekcja kodu, sekcja danych, czy zasoby systemu (otwarte pliki, sygnały) są wspne dla kilku rnorzędnych wątk. Różnica między procesem a wątkiem polega przede wszystkim na sposobie wykorzystania dostępnych zasobów. Każdy proces ma przydzielony odrębny obszar pamięci operacyjnej i współzawodniczy z innymi procesami o dostęp do zasobów węzłów systemu. Często takie rozgraniczenie między procesami nie jest potrzebne. Znacznie taniej jest wówczas wykonywać je we wspólnej przestrzeni adresowej, tworząc współbieżnie działające wątki. 12. Sekcja krytyczna. Każdy ze wspłracujących proces posiada fragment kodu w ktym następuje zmiana wspnych danych. Jest to sekcja krytyczna procesu. Jeśli jeden z proces znajduje się w swojej sekcji krytycznej, inne nie mogą w tym czasie wejść do swoich krytycznych sekcji. Każdy proces musi prosić (w sekcji wejściowej) o pozwolenie na wejście do swojej sekcji krytycznej. Warunki poprawnego działania: • Wzajemne wykluczanie: jeśli proces działa w swej sekcji krytycznej, to żaden inny proces nie działa w swojej. • Postęp: tylko procesy nie wykonujące swoich reszt mogą kandydować do wejścia do sekcji krytycznych i wyb ten nie może być odwlekany w nieskończoność. • Ograniczone czekanie: Musi istnieć graniczna ilość wejść innych proces do ich sekcji krytycznych po tym, gdy dany proces zgłosił chęć wejścia do swojej sekcji krytycznej i zanim uzyskał na to pozwolenie. 13. Fragmentacja pamięci. • Fragmentacja zewnętrzna występuje, gdy suma wolnych obszar pamięci wystarcza na spełnienie zamienia, ale nie tworzą one spnego obszaru. Fragmentację zewnętrzną można zmniejszyć poprzez takie upakowanie proces, aby cała wolna pamięć znalazła się w jednym dużym bloku. Jest to możliwe tylko wtedy, gdy ustalanie adres jest wykonywane dynamicznie podczas działania procesu. Przetasowań proces nie można robić podczas operacji we/wy. • Fragmentacja wewnętrzna występuje, jeśli po przydzieleniu pamięci do procesu pozostałby wolny obszar wielkości kilku bajt, to przydziela się go też do procesu, ale stanowi on „nieużytek" - nie będzie wykorzystany (ale zmniejszy się tablica „dziur"). 22. Typy dostępu do pliku. 24. Zegary i czasomierze. 25. (DMA) 26. Zarządzanie wolną pamięcią na dysku. 27. Tablica stron prosta i odwrotna. 28.Poprawa wydajności systemów dyskowych 29. Opisz znane Ci metody przydziału procesora. 30. Co to jest wyjątek i do czego służy. 32. Wieloprocesory i wielokomputery, co to są i czym się różnią.33. Wymienić i opisać rodzaje przeźroczystości34. Co to są rozkazy niepodzielne. Gdzie maja zastosowanie?35. Wymień różnice pomiędzy odpytywaniem i wyjątkami.36. Atrybuty plików.37. Przełączanie kontekstu. 22. Typy dostępu do pliku. • Dostęp sekwencyjny - informacje w pliku są przetwarzane kolejno, rekord po rekordzie. • Dostęp bezpośredni - umożliwia czytanie z zapisywaniem blok w dowolnej kolejności. Rekordy muszą być stałej długości. Używany jest tam, gdzie potrzebny jest szybki dostęp do wielkich ilości informacji, np w bazach danych. • Dostęp indeksowy (plik indeksowy w pamięci, lub na dysku). 24. Zegary i czasomierze. Spełniają trzy podstawowe funkcje: • podawanie bieżącego czasu, • podawanie upływającego czasu, • powodowanie wykonania określonej operacji w określonej chwili, czasomierz programowalny - służy do pomiaru upływającego czasu i powodowania wykonania operacji w zadanym czasie można go zaprogramować na określony czas, po ktym generuje on przerwanie jest to te zegar systemowy do taktowania kwant czasu (dla przydziału procesora). 25. Bezpośredni dostęp do pamięci (DMA). DMA (ang. Direct Memory Access – bezpośredni dostęp do pamięci) – technika, w której inne układy (np. kontroler dysku twardego, karta dźwiękowa, itd.) mogą korzystać z pamięci operacyjnej RAM lub (czasami) portów we-wy pomijając przy tym procesor główny – CPU Wymaga to współpracy ze strony procesora, który musi zaprogramować kontroler DMA do wykonania odpowiedniego transferu, a następnie na czas przesyłania danych zwolnić magistralę systemową (przejść w stan wysokiej impedancji). Sam transfer jest już zadaniem wyłącznie kontrolera DMA. Realizacja cykli DMA może przez urządzenie być zrzucona na specjalny układ (np. w komputerach PC) lub być realizowana samodzielnie przez urządzenie. DMA ma za zadanie odciążyć procesor główny od samego przesyłania danych z miejsca na miejsce (np. z urządzenia wejściowego do pamięci), procesor może w tym czasie zająć się 'produktywnym' działaniem, wykonując kod programu pobrany uprzednio z pamięci RAM do pamięci cache operujący na danych w tejże pamięci zgromadzonych. Specjalizowane układy wspomagające DMA (np. te spotykane w PC) potrafią też kopiować obszary pamięci dużo szybciej niż uczyniłby to programowo procesor 26. Zarządzanie wolną pamięcią na dysku. • Mapa bitowa- w wektorze bitowym każdy wolny blok jest reprezentowany przez 1 a zajęty - przez 0. Łatwość znalezienia wolnego bloku istnieje dzięki rozkazom procesora pokazującym pozycje pierwszego niezerowego bitu w słowie. Metoda ta może być stosowana dla małych dysk • Lista powiązana -w pamięci przechowuje się położenie pierwszego wolnego bloku, a w nim - położenie następnego itd. Metoda mało wydajna - aby przejrzeć listę wolnych blok, należy wszystkie przeczytać • grupowanie - w pierwszym wolnym bloku przechowywana jest lista n wolnych blok. W n-tym wolnym bloku znajduje się lista następnych n blok itd. • zliczanie - przechowuje się adres pierwszego wolnego bloku i liczbę n następujących po nim wolnych blok. I tak dla każ dej grupy. N jest zazwyczaj > 1 30. Co to jest wyjątek i do czego służy. Pułapka (wyjątek) jest rodzajem przerwania generowanym przez oprogramowanie, a spowodowanym przez błąd numeryczny (np. dzielenie przez zero) lub przez niewłaściwy dostęp do pamięci, bądź też na specjalne zamienie użytkownika (wywołanie procedury obsługiwanej przez system operacyjny). 32. Wieloprocesory i wielokomputery, co to są i czym się różnią. Wieloprocesory (multiprocessors) - komputery mają wspólną pamięć; w wieloprocesorze istnieje pojedyncza fizyczna przestrzeń adresowa, współdzielona przez wszystkie procesory. Wielokomputery (multicomputers) - komputery nie mają wspólnej pamięci; każdy komputer ma własną prywatną pamięć fizyczną. - programowanie trudne: komunikacja poprzez przesyłanie komunikatów, problem gubionych komunikatów, buforowania, zakładania blokad. Pozostale roznice: Skalowalność: wieloproc: nie, komp umiarkowana Kopie OS’ow – wieloproc – jeden, komp tyle ile komputerow 33. Wymienić i opisać rodzaje przeźroczystości transparentność, przezroczystość (ang. transparency) – własność systemu pozwalająca na postrzeganie systemu przez użytkownika jako całości, a nie poszczególnych składowych Przezroczystość dostępu (access transparency) umożliwia dostęp do lokalnych i odległych zasobów za pomocą identycznych działań. Przezroczystość położenia (location transparency) umożliwia dostęp do zasobów bez znajomości ich lokalizacji – użytkownik nie jest w stanie określić, gdzie znajdują się CPU, drukarki, pliki i bazy danych; nazwa zasobu nie może określać jego położenia, Przezroczystość współbieżności (concurrency transparency) umożliwia wielu procesom niezakłócone działanie współbieżne z użyciem wspólnych zasobów, użytkownicy po prostu nie zauważają obecności innych użytkowników. Przezroczystość zwielokrotnienia (replication transparency) pozwala na użycie wielu kopii obiektów informacji w celu zwiększenia niezawodności i wydajności bez wiedzy użytkowników (serwery same mogą decydować o zwielokrotnieniu dowolnego pliku, np. intensywnie eksploatowanego, bez powiadamiania użytkownika). Przezroczystość wędrówki (migration transparency) pozwala na przemieszczanie zasobów z jednego miejsca na drugie, w obrębie systemu, bez wpływu na działania użytkowników lub programów użytkowych (bez zmiany ich nazw). Przezroczystość wydajności umożliwia rekonfigurowanie systemu w celu poprawy działania przy zmianie obciążenia. Przezroczystość skalowania umożliwia systemowi I jego zastosowaniom rozszerzenie skali bez zmiany struktury systemu lub algorytmów użytkowych. Przezroczystość awarii umożliwia ukrywanie uszkodzeń, pozwalając użytkownikom i programom użytkowym na kończenie zadań pomimo awarii. |
5. Mechanizm stronicowania pamięci. Stronicowanie pomaga w racjonalnym wykorzystaniu wolnych miejsc w pamięci. Pamięć fizyczną dzieli się na bloki o stałej długości (ramki) 2n (512 B do 16 MB). Pamięć logiczna podzielona jest na strony o tym samym rozmiarze. Wolną pamięć obrazuje lista wolnych ramek. Proces o wielkości N stron jest ładowany w N ramek (niekoniecznie kolejnych). Tablica stron odwzorowuje adresy logiczne na fizyczne. W ten spos eliminuje się fragmentację zewnętrzną, ale występuje fragmentacja wewnętrzna (zaokrąglenie w gę wielkości procesu do wielokrotności rozmiaru ramki). 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, kta 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. Jeżeli rozmiar strony jest potęgą 2 oraz: - rozmiar przestrzeni adresowej wynosi 2m - rozmiar strony wynosi 2n, to m-n bardziej znaczących bit adresu logicznego wskazuje nr strony (2m-n), n mniej znaczących bit wskazuje odległość na stronie. 6. Przerwania - co to jest, do czego służą? Jest to sygnał pochodzący od sprzętu lub programu,sygnalizujący wystąpienie zdarzenia. Sygnały przerwań od sprzętu są wysyłane do procesora najczęściej przez szyny systemowe. Oprogramowanie może spowodowac przerwanie poprzez wykonanie wywołania systemowego. Zdarzenia powodujące przerwania: • Zakończenie operacji I/O. • Dzielenie przez zero. • Niedozwolony dostęp do pamięci. • Zapotrzebowanie na usługę systemu. Każdemu przerwaniu odpowiada procedura obsługi. 7 Metody przydziału miejsca na dysku - wymień i opisz. Przydział ciągły - każdy plik zajmuje ciąg kolejnych blok na dysku. Zalety: łatwość implementacji dostępu sekwencyjnego i bezpośredniego. Wady: trudności ze znalezieniem wolnego miejsca (fragmentacja zewnętrzna) Przydział listowy - istnieje lista powiązanych ze sobą blok dyskowych, stanowiących dany plik. Bloki te mogą się znajdować w dowolnym miejscu na dysku. Zalety: nie trzeba deklarować długości pliku (plik może rosnąć, dopi są wolne bloki). Wady: w przypadku błędu jednego wskaźnika można wejść w obszar innego pliku. Przydział indeksowy - jak przydział listowy, ale wskaźniki umieszczone w jednym miejscu - w tablicy indeks. Zalety: jak w przydziale listowym, Wady: wskaźniki bloku indeksowego zajmują zazwyczaj więcej miejsca niż wskaźniki przy przydziale listowym. Implementacje dla dużych plik: - schemat listowy - jeśli lista blok jest dłuższa niż blok indeksowy, na ostatniej pozycji w bloku indeksowym podaje się adres bloku kontynuacji. - indeks wielopoziomowy - pozycje bloku indeksowego wskazują na bloki indeksowe poziomu drugiego. - schemat mieszany - pierwsze kilka, kilkanaście pozycji wskazuje bezpośrednio na bloki, a następne 2-3 na indeksy poziomu drugiego w indeksowaniu 2,3,4-poziomowym. Schemat ten zastosowany w systemie UNIX. 14. W jakim celu tworzy się pamięć wirtualną. Pamięć wirtualna odseparowuje pamięć logiczną od jej fizycznej realizacji. Można ją zaimplementować jako stronicowanie na żądanie lub segmentację na żądanie. Zalety korzystania z pamięci wirtualnej: • Program nie jest ograniczony wielkością pamięci fizycznej - można pisać ogromne programy bez specjalnych „sztuczek" programistycznych • Każdy program zajmuje w pamięci mniej miejsca niż program „kompletny". Można więc w tym samym czasie wykonywać więcej zadań, polepszając wykorzystanie procesora. • Maleje liczba operacji wejścia-wyjścia koniecznych do załadowania program do pamięci oraz do realizacji wymiany - programy powinny więc wykonywać się szybciej. • Nie ma konieczności robienia nakładek przy małej pamięci operacyjnej. 15. Typy urządzeń I/0 i przykłady. Trzy rodzaje urządzeń wejścia-wyjścia: • Urządzenia pamięci (dyski, taśmy). • Urządzenia przesyłania danych (karty sieciowe, modemy). • Urządzenia komunikacji z człowiekiem (klawiatury, myszy, monitory). Rżice miedzy urządzeniami we-wy: • Urządzenie znakowe - przesyła bajty (znaki) z osobna jeden za drugim (terminal). • Urządzenie blokowe - przesyła jednorazowo całe bloki (dysk). • Dostęp sekwencyjny - dane przesyłane kolejno w spos uporządkowany (modem). • Dostęp swobodny - mona miećddostępdo danych w rżych miejscach, niekoniecznie kolejno (CD-ROM). • Przesyłanie synchroniczne - taktowane zegarem (taśma). • Przesyłanie asynchroniczne - w nieokreślonych chwilach czasu, sterowane startem i stopem (klawiatura). 16. Tryby pracy procesora. W nowoczesnych systemach rozrżiamy dwa tryby pracy procesora: • Tryb użytkownika (user-mode) - jest to tryb ograniczony - nie można w nim wykonywać niebezpiecznych dla systemu operacji uprzywilejowanych • Tryb nadzorcy (kernel-mode) - tryb uprzywilejowany, w ktym wykonywane są potencjalnie niebezpieczne dla systemu operacje. Użytkownik nie może samodzielnie przełączyć procesora w tryb nadzorcy - może to zrobić jedynie sam system. 17. Warunki wystąpienia blokady. • Wzajemne wykluczanie - co najmniej jeden zas musi być niepodzielny (w danym czasie może go używać tylko jeden proces). • Przetrzymywanie i oczekiwanie - przynajmniej jeden proces przetrzymuje jakiś zas, ponieważ czeka na przydział dodatkowego innego zasobu, przetrzymywanego przeważnie przez inny proces. • Brak wywłaszczeń - zas może być zwolniony jedynie z inicjatywy przetrzymującego, np. po zakończeniu procesu. • Czekanie cykliczne - P1 czeka na zas przetrzymywany przez P2, P2 czeka na oddanie przez P3....Pn czeka na zwolnienie zasobu przez P1. 18. Co to jest program nakładkowy, gdzie ma zastosowanie. Nakładki są potrzebne jeśli proces jest większy niż ilość dostępnej pamięci. Program nakładkowy nie potrzebuje specjalnego wsparcia ze strony systemu operacyjnego, ale wymaga starannego programowania, ze znajomością rzeczy. 27. Tablica stron prosta i odwrotna. • Tablica stron - Jest przechowywana w pamięci operacyjnej. Jej położenie wskazuje rejestr bazowy tablicy stron. Rozmiar tablicy stron jest przechowywany w rejestrze długości tablicy stron. Określa on na największy dopuszczalny adres. Przy korzystaniu z tablicy stron, dostęp do pamięci wymaga dwukrotnego dostępu do pamięci. W celu przyspieszenia dostępu do pamięci stosuje się rozwiązanie sprzętowe - małą, szybką pamięć podręczną zwaną rejestrami asocjacyjnymi lub buforami translacji adres stron. Bufory te zwierają od 8 do 2048 pozycji. Jeśli dany numer strony nie znajduje się w buforach, to przeszukiwana jest cała tablica stron. Przy dobrze skonstruowanym algorytmie, w buforach translacji znajduje się od 80 do 98 % potrzebnych numer stron. • Odwrona tablica stron ma po jednej pozycji dla każdej ramki w pamięci fizycznej Każda pozycja zawiera numer procesu posiadającego ramkę oraz adres wirtualny strony przechowywanej w ramce rzeczywistej pamięci. W systemie istnieje tylko jedna tablica stron - ogranicza to zajętość pamięci, ale zwiększa czas przeszukiwania (trzeba przeszukać całą tablicę). Stosowanie 28.Poprawa wydajności systemów dyskowych • pamięć podręczna- przechowywanie całych ścieżek dysku w pamięci - prawdopodobnie będą z nich w niedługim czasie czytane dane. Wykorzystana do tego celu specjalna pamięć, lub nieużywana pamięć głna • wczesne zwalnianie -usuwanie bloku z bufora natychmiast, gdy pojawia się zamienia na następny (oszczędza pamięć) • czytanie z wyprzedzeniem - z zamionym blokiem czyta się kilka następnych, gdy prawdopodobnie zaraz będą potrzebne • RAM-dysk - wszystkie operacje dyskowe przeprowadza się w pamięci Zawartość RAMdysku jest pod kontrola uużytkownika Wada - zawartość ginie po wyłączeniu zasilania, awarii. 29. Opisz znane Ci metody przydziału procesora. • Planowanie metoda FCFS (pierwszy zgłoszony - pierwszy obsłużony). ▪ Średni czas oczekiwania bardzo zależy od kolejnosci zgłoszenia proces ▪ Efekt konwoju - małe procesy czekają na zwolnienie procesora przez jeden wielki proces ▪ Algorytm FCFS jest niewywłaszczający ▪ Algorytm ten jest nieużyteczny w systemach z podziałem czasu, w ktych procesy powinny dostawać procesor w regularnych odstępach czasu • Planowanie metoda SJF (najpierw najkrsze zadanie) ▪ Mozna udowodnić, że planowanie ta metoda jest optymalne ▪ Umieszczenie krkiego procesu przed długim w większym stopniu zmniejsza czas oczekiwania krkiego procesu niż zwiększa czas oczekiwania procesu długiego ▪ Problem - nie można przewidzieć długości następnej fazy procesora, można ja tylko szacowac, najczesciej za pomoca sredniej wykładniczej z poprzednich faz procesora. ▪ Algorytm SJF może być wywłaszczajacy lub niewywłaszczający Gdy do kolejki dochodzi nowy proces, kty posiada fazę procesora krsza niż pozostały czas w bieżącym procesie, algorytm wywłaszczajacy odbiera procesor bieacemu procesowi i przekazuje go krszemu. Metoda ta nazywa się SRTF (shortest remaining time first) 34. Co to są rozkazy niepodzielne. Gdzie maja zastosowanie? _ Sa to sprzetowe rozkazy składajace sie z kilku kroków, ale wykonywane nieprzerwanie, np.: function Testuj_i_Ustal (var znak:boolean):boolean; begin Testuj_i_Ustal:=znak; znak:=true; end; Zastosowanie: repeat while Testuj_i_Ustal (wspolna) do nic_nie_rob; sekcja krytyczna wspolna:=false; reszta until false; 36. Atrybuty plików.Atrybut pliku to cecha charakterystyczna danego pliku w komputerze.Atrybutami mogą być:rozmiarnazwadata utworzenia, modyfikacji, ostatniego dostępu, usunięcia itp.właściciel i grupa plikuprawa (zapisu, odczytu itd. - mogą być odmienne dla różnych grup użytkowników)położenie, czyli wskaźnik do miejsca na urządzeniu, na którym plik został zapisany (często tablica wskaźników)typ plikuAtrybuty zależą od systemu operacyjnego, a dokładniej od jego systemu plików.37. Przełączanie kontekstu. Podczas przejścia procesora z wykonywania jednego procesu do drugiego należy przechować stan starego procesu i załadować przechowany stan nowego. Z punktu widzenia systemu są to działania nieproduktywne, tak jak przygotowanie czy sprzątanie stanowiska pracy, ale są niezbędne przy wieloprogramowości. Mechanizm wątk pozwala na redukcję czasu przełączania kontekstu. |
8. Planiści, wymień i opisz czym się różnią? Planiści służą do planowania przydzielania poszczegnym procesom zasob systemowych. Planist dzielimy na dwie kategorie: • Planista długoterminowy (planista zadań) - wybiera procesy do kolejki proces gotowych, do pamięci. Jest on wywoływany stosunkowo rzadko (sekundy) i nie musi być szybki. Zadaniem planisty długoterminowego jest dob optymalnej mieszanki zadań ograniczonych przez procesor (wymagających więcej czasu procesora niż I/O) i przez we-wy (wymagających obsługi I/O częściej niż procesora). • Planista krkoterminowy (planista przydziału procesora) - wybiera proces z puli proces gotowych i przydziela mu procesor. Jest on wywoływany bardzo często (co ms) i musi być bardzo szybki. • Planista średnioterminowy - występuje w niektych systemach z podziałem czasu. Jego zadaniem jest, w koniecznych przypadkach, zmniejszanie stopnia wieloprogramowości poprzez wysyłanie części zadań chwilowo na dysk (swapping). Pomaga to w doborze lepszego zestawu proces w danej chwili, lub dla zwolnienia obszaru pamięci. 9. Na czym polega odpytywanie wejścia/wyjścia. Odpytywanie (polling) — ciągłe lub okresowe sprawdzanie stanu sterownika. Do uzgadniania pomiędzy procesorem a urządzeniem w prostym schemacie producent konsument wystarczą dwa bity: • Od strony procesora bit gotowości polecenia w rejestrze poleceń - sygnalizujący kompletne polecenie dla urządzenia. • Od strony urządzenia bit zajętości (w rejestrze stanu), sygnalizujący, że urządzenie jest zajęte pracą. Kolejność działań przy uzgadnianiu: • Procesor realizuje aktywne czekanie, dopi bit zajętości jest ustawiony. • Procesor ustawia bit pisania i wpisuje bajt danych do rejestru danych wy. • Procesor ustawia bit gotowości polecenia. • Sterownik ustawia bit zajętości po zauważeniu bitu gotowości polecenia. • Sterownik czyta rejestr poleceń, rozpoznaje polecenie pisania. Czyta bajt danych z rejestru i wykonuje na urządzeniu operacje wejścia-wyjścia. • Sterownik czyści bit gotowości polecenia, bit błędu, a na końcu bit zajętości. I tak dla każdego bajtu danych 10. Kolejki wielopoziomowe. ● Kolejka procesów gotowych jest podzielona na kilka kolejek, na przykład – Kolejka procesów pierwszoplanowych (interakcyjnych) – Kolejka procesów drugoplanowych ● Każda kolejka ma swój własny algorytm planowania, na przykład – Kolejka procesów pierwszoplanowych, alg. Rotacyjny – Kolejka procesów drugoplanowych, alg. FCFS ● Możliwości podziału czasu procesora pomiędzy kolejki. – Procesy pierwszoplanowe wykonują się zawsze pierwsze. – Time Slice - każda kolejka ma przydzielony pewien stopień wykorzystania procesora ● Procesy pierwszoplanowe 80% ● Procesy drugoplanowe 20% Wielopoziomowe kolejki ze sprzężeniem zwrotnym ● Proces może być przemieszczany pomiędzy kolejkami. ● Jeżeli proces zużywa za dużo czasu procesora zostaje przemieszczony do kolejki o niższym priorytecie ● Proces oczekujący bardzo długo może zostać przemieszczony do kolejki o wyższym priorytecie. – Zapobiega to zagłodzeniu. 19. Opisz stronicowanie na żądanie. · Strona jest sprowadzana do pamieci dopiero wtedy, gdy jest potrzebna: mniej wejscia-wyjscia, mniejsze zapotrzebowanie na pamieci, wiecej uzytkowników · Strona jest potrzebna, gdy pojawia sie do niej odwolanie · Z kazde pozycja w tablicy stron jest zwiazany bit poprawnosci odwolania (1 - strona w pamieci, 0 – strona poza pamiecia) · Odwolanie do strony z bitem poprawnosci odwolania równym 0 powoduje blad braku strony System operacyjny: - znajduje wolna ramke - sprowadza strone z dysku do pamieci - uaktualnia bit poprawnosci odwolania (:= 1) - restartuje instrukcje, która spowodowala blad · Co sie dzieje, gdy nie ma wolnej ramki: wymiana stron - OS znajduje w pamieci strone (najmniej uzywana) i usuwa ja na dysk · Niektóre strony moga byc sprowadzane do pamieci wielokrotnie 20. Opisz kryteria wyboru wolnego obszaru pamięci przy przydziale ciągłym • Dziura - ciągły obszar niezajętej pamięci • Pierwsze dopasowanie - system przydziela pierwsza dziurę o wystarczajacej wielkości Szukanie rozpoczyna się od początku wykazu dziur lub od miejsca w ktym zakończono ostatnie szukanie. • Najlepsze dopasowanie - przydziela się najmniejsza z dostatecznie dużych dziur (najmniejsza pozostałość po przydziale). • Najgorsze dopasowanie - przydziela się największą dziurę Czasami duża pozostałość po takim przydziale jest bardziej przydatna niż malutkie fragmenty po najlepszym dopasowaniu. Ciekawe i oryginalne podejście do zagadnienia, ale praktyka wykazała, że dwie pozostałe metody są lepsze pod względem czasu działania i wykorzystania pamięci 21. Wymień i opisz algorytmy zastępowania stron. • Algorytm FIFO (first in, first out) - o każdej ze stron zapamiętuje się informację, kiedy ona została sprowadzona do pamięci i zastępuje się „najstarszą" stronę. • Algorytm LRU (least recently used) - zastępowanie stron, kte były najdawniej używane. Typowanie najstarszych odbywa się poprzez licznik (w tablicy stron jest rejestr czasu ostatniego używania strony) lub stos (przy każdym odwołaniu do strony, jej numer jest wyjmowany i umieszczany na szczycie stosu). • Algorytmy zliczające Wprowadzamy licznik odwołań do strony LFU (least frequently used) -wyrzuć najrzadziej używaną MFU (most frequently used) - bo najrzadziej używana jest chyba niedawno wprowadzona do pamięci i bedzie niedługo w użyciu Obydwa te algorytmy niezbyt dobrze przybliżaja optimum. • Algorytmy buforowania stron Zanim się usunie ofiarę, wczytuje się potrzebna stronę do wolnej ramki. Zaleta - można wcześniej uruchomić proces, zanim strona-ofiara zostanie zapisana na dysku. Zapis robi się w wolnej chwili. Po zapisie oprżioną ramkę dopisuje się do listy wolnych. • Planowanie priorytetowe ▪ Mechanizm bardzo podobny do SJF, ale kryterium szeregowania jest priorytet procesu. ▪ Priorytety mogą być definiowane wewnętrznie, na podstawie pewnych cech procesu (np. wielkość pamięci) ▪ Wady: Procesy o niskim (mało ważnym) priorytecie mogą nigdy nie dostać procesora (głodzenie, nieskończone blokowanie). Rozwiązaniem problemu jest „postarzanie”. • Planowanie rotacyjne (Round-Robin - RR) ▪ Zaprojektowane specjalnie do system z podziałem czasu. ▪ Każdy proces otrzymuje kwant czasu (10-100ms), po upływie ktego jest wywłaszczany i umieszczany na końcu kolejki zadań gotowych. ▪ Kolejny proces do wykonania jest wybierany zgodnie z algorytmem FCFS ▪ Jeżeli jest n proces gotowych a kwant czasu wynosi q, to kady proces czeka nie dłużej niż (n-1)*q jednostek czasu. ▪ Wydajność algorytmu bardzo zależy od kwantu czasu q. Gdy q jest due, to algorytm RR przechodzi w FCFS. Gdy q jest bardzo małe, to znaczna część czasu procesora poświęcona jest na przełączanie kontekstu. Dobra zasada: 80% faz procesora powinno być krszych ni jeden kwant czasu. • Wielopoziomowe planowanie kolejek ▪ Kolejka proces gotowych jest podzielona na oddzielne pod kolejki, np: • kolejka proces pierwszoplanowych (foreground), • kolejka proces drugoplanowych (background). ▪ Procesy pierwszoplanowe maja absolutny priorytet nad drugoplanowymi. Aby nie „zagłodzić” proces 2-planowych, stosuje się podział czasu na kolejki, przykładowo: • kolejka pierwszoplanowa - 80% czasu procesora, • kolejka drugoplanowa - pozostałe 20% ▪ Kolejki wielopoziomowe ze sprzężeniem zwrotnym. Mechanizm ten pozwala na przesuwanie proces pomiędzy kolejkami. Proces, kty używa za dużo procesora, można „karnie” przenieść do kolejki o niższym priorytecie i przez to dać szerszy dostęp do procesora innym procesom. • Planowanie wieloprocesorowe. ▪ Planowanie heterogeniczne - dla system sieciowych, rozproszonych, o rżych procesorach - bardzo trudne w realizacji ▪ Planowanie homogeniczne - dla procesor tego samego typu. Nie stosuje się oddzielnych kolejek dla każdego procesora – możliwość przestoj niektych procesor. ▪ Wieloprzetwarzanie symetryczne - kady procesor sam wybiera procesy ze wspnej kolejki - działanie musi być bardzo starannie zaprogramowane, aby uniknąć np. dublowania. ▪ Wieloprzetwarzanie asymetryczne - jeden procesor jest nadrzędny (master) i on planuje przydział proces, a pozostałe (slave) wykonują przydzielone im zadania. • Planowanie w czasie rzeczywistym ▪ W rygorystycznych systemach czasu rzeczywistego musi być zapewnione wykonanie zadania krytycznego w określonym czasie. Następuje rezerwacja zasob niezbędnych do wykonania zadania. Jeśli planista nie może zarezerwować zasob - rezygnuje z przydziału zadania do procesora. |