Zbigniew S. Szewczak Podstawy Systemów Operacyjnych
Transkrypt
Zbigniew S. Szewczak Podstawy Systemów Operacyjnych
Zbigniew S. Szewczak Podstawy Systemów Operacyjnych Wykład 7 Planowanie przydziału procesora. Toruń, 2004 Odrabianie wykładów ☛czwartek, 1.04.2004, S7, g. 12.00 za 19.05 ☛czwartek, 15.04.2004, S7, g. 12.00 za 12.05 Planowanie przydziału procesora ☛Podstawowe pojęcia ☛Kryteria planowania ☛Algorytmy planowania ☛Planowanie wieloprocesorowe ☛Planowanie w czasie rzeczywistym ☛Ocena algorytmów Podstawowe pojęcia ☛Idea wieloprogramowania: wiele procesów dzieli (niepodzielny zasób) CPU ☛Celem wieloprogramowania jest maksymalne wykorzystanie jednostki centralnej (CPU) ☛Planowanie przydziału procesora (ang. CPU sheduling) jest kluczową funkcją w każdym systemie operacyjnym operacyjnym albowiem jest realizacją idei wieloprogramowania Fazy procesu ☛CPU-I/O - wykonanie procesu składa się z fazy procesora (ang. CPU burst) i fazy we/wy (ang. I/O burst) ☛Krzywa częstości zatrudnień procesora ma kształt wykładniczy lub hiperwykładniczy ☛Proces ograniczony przez we/wy ma wiele krótkich faz procesora, proces ograniczony przez procesor ma mało długich faz procesora Naprzemienny ciąg faz procesora i we/wy załaduj przechowaj dodaj przechowaj czytaj z pliku czekaj na we/wy przechowaj zwiększ indeks pisz do pliku czekaj na we/wy załaduj przechowaj dodaj przechowaj czytaj z pliku czekaj na we/wy . . . faza procesora faza we/wy faza procesora faza we/wy faza procesora faza we/wy Histogram czasów faz procesora 160 częstość występowania fazy 140 120 100 80 60 40 20 0 8 16 24 czas trwania fazy (milisekundach) 32 40 Planista przydziału procesora ☛Planista (krótkoterminowy) przydziału procesora (ang. CPU scheduler) wybiera jeden proces spośród przebywających w pamięci procesów gotowych do wykonania i przydziela mu procesor ☛Decyzje o przydziale procesora podejmowane są 1. gdy proces przeszedł od stanu aktywności do czekania (np. z powodu we/wy) 2. gdy proces przeszedł od stanu aktywności do gotowości (np. wskutek przerwania) 3. gdy proces przeszedł od stanu czekania do gotowości (np. po zakończeniu we/wy) 4. gdy proces kończy działanie Diagram stanów procesu nowy zakończony przerwanie przyjęcie wyjście gotowy obsłużenie zadrzenia lub operacja we/wy aktywny decyzja planisty czekający oczekiwanie na zdarzenie lub na wykonanie operacji we/wy Planista przydziału procesora (c.d.) ☛Planowanie w sytuacji 1 i 4 nazywamy niewywłaszczeniowym (ang. nonpreemptive) ☛Każde inny algorytm planowania nazywamy wywłaszczeniowym (ang. preemptive) ☛Planowanie bez wywłaszczeń : proces, który otrzyma procesor, zachowuje go tak długo aż nie odda go z powodu przejścia w stan oczekiwania lub zakończenia (nie wymaga zegara) ☛użyta w systemie Windows 3.1 i Apple Macintosh Planista przydziału procesora (c.d.) ☛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 Ekspedytor ☛Ekspedytor (ang. dispatcher) jest modułem, który faktycznie przekazuje procesor do dyspozycji procesu wybranego przez planistę krótkoterminowego; obowiązki ekspedytora to ☛przełączanie kontekstu ☛przełączanie do trybu użytkownika ☛wykonanie skoku do odpowiedniej komórki w programie użytkownika w celu wznowienia działania programu ☛Opóźnienie ekspedycji (ang. dispatch latency) to czas, który ekspedytor zużywa na wstrzymanie jednego procesu i uaktywnienie innego Kryteria planowania ☛Definicje ☛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) Kryteria planowania (c.d.) ☛Czas oczekiwania - suma okresó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 Kryteria optymalizacji ☛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 Planowanie metodą FCFS ☛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 ☛Przykład: Proces Czas trwania fazy P1 24 P2 3 P3 3 ☛Przypuśćmy, że procesy nadejdą w porządku: P1 , P2 , P3 Planowanie metodą FCFS (c.d.) ☛Diagram Gantta dla FCFS P1 0 P2 24 P3 27 30 ☛Czas oczekiwania dla P1 = 0; P2 = 24; P3 = 27 ☛Średni czas oczekiwania: (0 + 24 + 27)/3 = 17 milisekund Planowanie metodą FCFS (c.d.) ☛Przypuśćmy, że procesy nadejdą w porządku P2 , P3 , P1 ☛Diagram Gantta P2 0 P3 3 P1 6 30 ☛Czas oczekiwania dla P1 = 6; P2 = 0; P3 = 3 ☛Średni czas oczekiwania (6 + 0 + 3)/3 = 3 ☛Średni czas oczekiwania znacznie lepszy ☛Dlaczego? Planowanie metodą FCFS (c.d.) ☛Założ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 Planowanie metodą FCFS (c.d.) ☛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 Planowanie metodą SJF ☛Algorytm napierw najkrótsze zadanie (ang. shortestjob-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) ☛Algorytm może być ☛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) ☛niewywłaszczający - pozwól procesowi zakończyć SJF niewywłaszczający Proces Czas trwania fazy P1 6 P2 8 P3 7 P4 3 ☛SJF (niewywłaszczający) P4 0 P1 3 P3 9 ☛Średni czas oczekiwania: ☛ (3 + 16 + 9 + 0)/4 = 7 P2 16 24 SJF wywłaszczający Proces P1 P2 P3 P4 ☛SRTF P1 0 1 P2 Czas przybycia 0 1 2 3 P4 5 Czas trwania fazy 8 4 9 5 P1 10 ☛Średni czas oczekiwania: P3 17 ☛((10-1) + (1-1) + (17-2) + (5-3))/4 = 26/4=6.5 26 Następna faza procesora ☛SJF jest optymalny: daje minimalny średni czas oczekiwania ☛Nie ma sposobu na poznanie długości następnej fazy, możemy ją jedynie oszacować ☛Można tego dokonać wyliczając średnią wykładniczą poprzednich faz procesora ☛t(n) = długość n-tej fazy procesora ☛s(n+1) = przewidywana długość nast. fazy ☛a - liczba z przedziału [0,1], zwykle 0.5 ☛Definiujemy s(n+1) = a*t(n) + (1-a)*s(n) Następna faza procesora (c.d.) ☛a=0 ☛s(n+1) = s(n) ☛niedawna historia nie ma wpływu ☛a=1 ☛s(n+1) = t(n) ☛jedynie najnowsze notowanie długości fazy ma wpływ ☛Jeśli rozwiniemy wzór to s(n+1) = a*t(n) + (1-a)*a*t(n-1) + .... (1-a)^j*a*t(n-j) + ..... ..+ (1-a)^(n+1)*s(0) ☛Ponieważ a i (1-a) są mniejsze od 1 to każdy następny składnik ma mniejszą wagę Przykład dla s(0)=10; a=1/2 12 s(i) 10 8 t(i) 6 4 2 faza procesora t(n) wartość odgadnięta s(n) 10 6 4 6 4 13 13 13 .... 8 6 6 5 9 11 12 .... Planowanie priorytetowe ☛SJF jest przykładem planowania priorytetowego (ang. priority scheduling) w którym każdemu procesowi przypisuje się priorytet (liczbę) ☛Priorytety należą do pewnego skończonego podzbioru liczb naturalnych np. [0..7], [0,4095] ☛nice {+|- n} polecenie ☛Procesor przydziela się procesowi o najwyższym priorytecie (jeśli równe - FCFS) ☛wywłaszczające ☛niewywłaszczające ☛SJF - priorytet jest odwrotnością następnej fazy Przykład: 0 - najwyższy priorytet Proces Czas trwania fazy 10 1 2 1 5 P1 P2 P3 P4 P5 P2 0 P5 1 Priorytet 3 1 4 5 2 P1 6 ☛średni czas oczekiwania: ☛(6 + 0 + 16 + 18 + 1)/5 = 41/5 = 8.2 P3 16 P4 18 19 Planowanie priorytetowe ☛Problem: nieskończone zablokowanie (ang. indefinite blocking) lub głodzenie (ang. starvation) - procesy o małym priorytecie mogą nigdy nie dostać czasu procesora ☛W 1973 r. w wycofywanym w MIT z eksploatacji IBM 7094 wykryto zagłodzony niskopriorytetetowy proces przedłożony do wykonania w 1967 r. ☛Rozwiązanie: postarzanie (ang. aging) polegające na podwyższeniu priorytetu procesów oczekujących już zbyt długo Planowanie rotacyjne ☛Planowanie rotacyjne (ang. round-robin - RR, time-slicing) 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łaszeniami) Planowanie rotacyjne (c.d.) ☛Jeś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 kwant czas procesu = 10 kontekstu 0 12 0 6 1 1 9 10 0 0 przełą czenia 6 1 2 3 4 5 6 10 7 8 9 10 Czas cyklu przetwarzania zależy od kwantu czasu proces czas 12.0 P1 6 11.5 P2 3 11.0 P3 1 10.5 P4 7 średni czas cyklu przetwarzania 12.5 10.0 9.5 9.0 1 2 3 4 5 kwant czasu 6 7 8 RR - średni czas cyklu przetwarzania z kwantem = 6 Proces Czas trwania fazy P1 6 P2 3 P3 1 P4 7 ☛Diagram Gantta P1 0 P2 6 P3 9 P4 10 ☛Średni czas cyklu przetwarzania ☛(6+9+10+17)/4=42/4=10,5 P4 16 17 RR - średni czas cyklu przetwarzania z kwantem = 5 Proces Czas trwania fazy P1 6 P2 3 P3 1 P4 7 ☛Diagram Gantta P1 0 P2 5 P3 8 P4 9 P1 14 ☛Średni czas cyklu przetwarzania ☛(15+8+9+17)/4=49/4=12,25 15 P4 17 Wielopoziomowe planowanie kolejek ☛Wielopoziomowe planowanie kolejek (ang. mulitilevel queue scheduling ) polega na tym, że kolejka procesów gotowych zostaje podzielona na oddzielne (pod)kolejki ☛procesy pierwszoplanowe (ang. foreground) - interakcyjne ☛procesy drugoplanowe (ang. background) - wsadowe ☛Każda z kolejek ma swój własny algorytm szeregujący ☛ pierwszoplanowa - RR ☛ drugoplanowa - FCFS Wielopoziomowe planowanie kolejek (c.d.) ☛Między kolejkami także należy dokonać wyboru algorytmu planowania ☛planowanie priorytetowe tzn. obsłuż najpierw wszystkie procesy pierwszoplanowe potem drugoplanowe możliwość zagłodzenia procesu drugoplanowego ☛porcjowanie czasu (ang. time slice) - każda kolejka otrzymuje pewną porcję czasu procesora, który przydzielany jest każdej z kolejek np. ☛80% kolejka pierwszoplanowa z algorytmem RR ☛20% kolejka drugoplanowa z algorytmem FCFS Wielopoziomowe planowanie kolejek (c.d.) najwyższy priorytet procesy systemowe procesy interakcyjne procesy redagowania interakcyjnego procesy wsadowe procesy studenckie najniższy priorytet Kolejki wielopoziomowe ze sprzężeniem zwrotnym ☛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 Kolejeki wielopoziomowe ze sprzężeniem zwrotnym (c.d.) kwant=8 kwant=16 FCFS Kolejeki wielopoziomowe ze sprzężeniem zwrotnym (c.d.) ☛Trzy koleki: ☛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łaszone do kolejki Q2 Kolejki wielopoziomowe ze sprzężeniem zwrotnym (c.d.) ☛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 Kolejeki wielopoziomowe ze sprzężeniem zwrotnym (c.d.) ☛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 Planowanie wieloprocesorowe ☛Planowanie wieloprocesorowe (ang. multipleprocessor scheduling) komplikuje się wraz ze wzrostem liczby procesorów i ich architektury ☛Wypróbowano wiele metod planowania i nie znaleziono najlepszej ☛Procesory mogą być homogeniczne (identyczne) lub heterogeniczne (różne) ☛Planowanie wieloprocesorowe heterogeniczne na danym procesorze można wykonać programy, które zostały przetłumaczone na odpowiadający mu zbiór rozkazów; sieciowe systemy operacyjne Planowanie wieloprocesorowe (c.d.) ☛Planowanie wieloprocesorowe homogeniczne ☛dzielenie obciążeń (ang. load sharing) - wspólna kolejka dla wszystkich procesorów ☛każdy procesor sam planuje swoje działanie, oba operują na tej samej kolejce procesów gotowych (ryzykowne - wymaga bardzo starannego zaprogramowania) - wieloprzetwarzanie symetryczne ☛jeden procesor jest nadrzędny (ang. master), inne podporządkowane (ang. slave) - wieloprzetwarzanie asymetryczne (ang. asymmetric multiprocessing) Planowanie w czasie rzeczywistym ☛Rygorystyczne systemy czasu rzeczywistego wymóg zakończenia zadania krytycznego w gwarantowanym czasie ☛rezerwacja zasobów (ang. resource reservation) gwarantujących wykonanie zadania ☛planista odrzuca zadanie jeśli nie może ich zarezerwować ☛Łagodne systemy czasu rzeczywistego - procesy o decydującym znaczeniu mają priorytet nad słabiej sytuowanymi ☛priorytety procesów czasu rzeczywistego nie mogą maleć z upływem czasu ☛można np. zakazać dymisjonowania procesów czasu rzeczywistego Planowanie w czasie rzeczywistym (c.d.) ☛opóźnienie ekspediowania procesów do procesora musi być małe aby proces czasu rzeczywistego nie musiał czekać (Solaris: 100ms (z wywłaszczeniami 2ms)) ☛musimy zezwolić na wywłaszczanie funkcji systemowych ☛ poprzez wstawienie w długotrwałych funkcjach systemowych punktów wywłaszczeń (ang. preemption points) ☛wywłaszczanie całego jądra, struktury danych jądra muszą być chronione za pomocą mechanizmów synchronizacji (Solaris2) ☛wysokopriorytetowe procesy nie mogą czekać na zakończenie niskopriorytetowych; sytuacja gdy proces wysokopriorytetowy czeka na zakończenie procesu o niższym priorytetcie nosi nazwę odwrócenia priorytetów (ang. priority inversion) ☛protokół dziedziczenia priorytetów(ang. priority- inheritance) -w czasie użycia zasobów proces dziedziczy wysoki priorytetu Opóźnienie ekspedycji odpowiedź na zdarzenie zdarzenie czas do nadejścia odpowiedzi proces osiąga gotowość do przetwarzanie działania przerwania opóźnienie ekspedycji konflikty ekspedycja czas wykonanie procesu w czasie rzeczywistym Ocena algorytmów ☛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? Ocena algorytmów (c.d) ☛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 Zadanie - przykład Proces Czas trwania fazy P1 P2 P3 P4 P5 f1 f2 f3 f4 f5 ☛Zakładając, że wszystkie procesy przybyły w chwili 0, porównać algorytmy FCFS, SJF i RR (kwant = q ) metodą deterministyczną Ocena algorytmów (c.d.) ☛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 Ocena planistów przydziału procesora - symulacja ... CPU symulacja 10 we/wy 213 faktyczne dane o wykonaniu procesu CPU statystyka działania metodą FCFS FCFS 12 we/wy 112 CPU 2 symulacja SJF statystyka działania metodą SFJ we/wy 147 CPU 173 ... taśma za śladem symulacja RR (Q=14) statystyka działania metodą RR (Q=14) Przykład: Solaris 2 ☛4 klasy: real time, system, time sharing, interactive ☛Priorytet globalny i priorytety w obrębie klas ☛Proces potomny dziedziczy klasę i priorytet ☛Klasa domyślna time sharing ☛wielopoziomowe kolejki ze sprzężeniem zwrotnym ☛większy priorytet <-> mniejszy kwant czasu ☛Klasa interactive:większy priorytet dla aplikacji X-ów ☛Klasa system - procesy jądra ☛proces działa, aż zostanie zablokowany lub wywłaszczony ☛Wątki o tym samym priorytecie - planowanie RR Przykłady poleceń w Solaris 2 ☛vmstat licznik [przedział] ☛licznik - liczba raportów ☛przedział - przerwa między raportami (w sek.) ☛vmstat 5 4 ☛r - ilość działających procesów czekających na CPU ☛cs - ilość przełączeń kontekstu ☛us - procent cykli CPU w trybie użytkownika ☛sy - procent cykli CPU w trybie jądra ☛id - procent niewykorzystanych cykli CPU ☛ Przykłady poleceń w Solaris 2 (c.d.) ☛dispadmin -l ☛dispadmin -g -c TS ☛ts_quantum - kwant czasu ☛ts_tqexp - nowy priorytet po wykorzystaniu czasu ☛ts_slpret - nowy priorytet po wyjściu z uśpienia ☛ts_maxwait - maksymalny czas pozostawania gotowym ☛ts_lwait - nowy priorytet po przekroczeniu ts_maxwait ☛priocntl -d -i all Przykład: Windows 2000 ☛Planowanie priorytetowe z wywłaszczeniami ☛Wątek jest wykonywany aż zostanie wywłaszczony przez proces o wyższym priorytecie, zakończy, zużyje kwant czasu, wykona blokujące wywołanie systemowe (np. we/wy) ☛32 priorytety(kolejki procesów), 6 klas priorytetów, 7 relatywnych priorytetów w obrębie klas (API) ☛NORMAL - priorytet domyślny w klasie ☛Proces wybrany na ekranie ma zwiększany trzy razy kwant czasu Podsumowanie (1) ☛Planowanie przydziału procesora polega na podjęciu decyzji co do wyboru procesu z kolejki procesów gotowych ☛Przydziału procesora do wybranego procesu dokonuje ekspedytor ☛Najprostszy algorytm to „pierwszy lepszy” FCFS ☛Optymalny algorytm (tj. dający najkrótszy średni czas oczekiwania) to „najkrótszy najlepszy” SJF Podsumowanie (2) ☛W systemach z podziałem czasu najodpowiedniejsze jest planowanie rotacyjne, które każdemu z procesów w kolejce procesów gotowych przydziela jednakowy kwant czasu ☛problem: wybór kwantu czasu ☛kwant za duży mamy FCFS ☛kwant za mały wtedy zbyt częste przełączanie kontekstu ☛Algorytm RR jest wywłaszczający, FCFS nie jest, SJF może być taki i taki Podsumowanie (3) ☛Algorytmy wielopoziomowego planowania kolejek pozwalają na używanie różnych algorytmów dla różnych klas kolejek ☛pierwszoplanowa kolejka procesów interakcyjnych (RR) ☛drugoplanowa kolejka wsadowa (FCFS) ☛przemieszczanie procesów w kolejkach ze sprzężniem ☛Metody pomagające wybierać właściwe algorytmy planowania kolejek ☛analityczne do określania wydajności algorytmu ☛symulacyjne pozwalające określić zachowanie procesu na reprezentatywnych próbkach procesów ☛implementacja (kosztowna)