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 faza procesora faza we/wy przechowaj zwiększ indeks pisz do pliku faza procesora czekaj na we/wy załaduj przechowaj dodaj przechowaj czytaj z pliku czekaj na we/wy... 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 32 40 czas trwania fazy (milisekundach)
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 przyjęcie przerwanie wyjście zakończony gotowy aktywny obsłużenie zadrzenia lub operacja we/wy 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 P 1 24 P 2 3 P 3 3 Przypuśćmy, że procesy nadejdą w porządku: P 1, P 2, P 3
Planowanie metodą FCFS (c.d.) Diagram Gantta dla FCFS P 1 P 2 P 3 0 24 27 30 Czas oczekiwania dla P 1 = 0; P 2 = 24; P 3 = 27 Średni czas oczekiwania: (0 + 24 + 27)/3 = 17 milisekund
Planowanie metodą FCFS (c.d.) Przypuśćmy, że procesy nadejdą w porządku P 2, P 3, P 1 Diagram Gantta P 2 P 3 P 1 0 3 6 30 Czas oczekiwania dla P 1 = 6; P 2 = 0 ; P 3 = 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 P 1 6 P 2 8 P 3 7 P 4 3 SJF (niewywłaszczający) P 4 P 1 P 3 P 2 0 3 9 16 24 Średni czas oczekiwania: (3 + 16 + 9 + 0)/4 = 7
SJF wywłaszczający Proces Czas przybycia Czas trwania fazy P 1 0 8 P 1 2 4 P 3 2 9 P 4 3 5 SRTF P 1 P 2 P 4 P 1 P 3 0 1 5 10 17 26 Średni czas oczekiwania: ((10-1) + (1-1) + (17-2) + (5-3))/4 = 26/4=6.5
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 Priorytet P 1 10 3 P 1 2 1 P 3 2 4 P 4 1 5 P 5 5 2 P 2 P 5 P 1 P 3 P 4 0 1 6 16 18 19 średni czas oczekiwania: (6 + 0 + 16 + 18 + 1)/5 = 41/5 = 8.2
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 czas procesu = 10 kwant przełą czenia kontekstu 12 0 0 10 6 1 0 6 10 1 9 0 1 2 3 4 5 6 7 8 9 10
Czas cyklu przetwarzania zależy od kwantu czasu 12.5 proces czas średni czas cyklu przetwarzania 12.0 11.5 11.0 10.5 10.0 9.5 P 1 P 2 P 3 P 4 6 3 1 7 9.0 1 2 3 4 5 6 7 8 kwant czasu
RR - średni czas cyklu przetwarzania z kwantem = 6 Proces Czas trwania fazy P 6 1 P 3 2 P 1 3 P 7 4 Diagram Gantta P 1 P 2 P 3 P 4 P 4 0 6 9 10 16 17 Średni czas cyklu przetwarzania (6+9+10+17)/4=42/4=10,5
RR - średni czas cyklu przetwarzania z kwantem = 5 Proces Czas trwania fazy P 6 1 P 3 2 P 1 3 P 7 4 Diagram Gantta P 1 P 2 P 3 P 4 P 1 P 4 0 5 8 9 14 15 17 Średni czas cyklu przetwarzania (15+8+9+17)/4=49/4=12,25
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 najniższy priorytet procesy studenckie
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: Q 0 kwant czasu 8 milisekund Q 1 kwant czasu 16 milisekund Q 2 FCFS Planowanie nowe zadanie wchodzi do kolejki Q 0 obsługiwanej przez FCFS. Zadanie dostaje 8 milisekund i jeśli się nie zmieści w tym czasie zostaje przeniesione na koniec kolejki Q 1 W kolejce Q 1 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 Q 2
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 zdarzenie czas do nadejścia odpowiedzi odpowiedź na zdarzenie przetwarzanie przerwania proces osiąga gotowość do działania opóźnienie ekspedycji konflikty ekspedycja wykonanie procesu w czasie rzeczywistym czas
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 P 1 f 1 P 2 f 2 P 3 f 3 P 4 f 4 P 5 f 5 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 10 we/wy 213 symulacja FCFS statystyka działania metodą FCFS faktyczne dane o wykonaniu procesu CPU 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)