Wykład 6. Planowanie (szeregowanie) procesów (ang. process scheduling) Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB

Podobne dokumenty
Planowanie przydziału procesora CPU scheduling. Koncepcja szeregowania. Planista przydziału procesora (planista krótkoterminowy) CPU Scheduler

Planowanie przydziału procesora

Planowanie przydziału procesora

Przełączanie kontekstu. Planista średnioterminowy. Diagram kolejek. Kolejki planowania procesów. Planiści

Zarządzanie procesorem

Fazy procesora i wejścia-wyjścia. Planowanie przydziału procesora. Czasy faz procesora. Planowanie przydziału procesora

Planowanie przydziału procesora

Zarządzanie procesami i wątkami

Informatyka, systemy, sieci komputerowe

Planowanie przydziału procesora

Zbigniew S. Szewczak Podstawy Systemów Operacyjnych

Ogólna koncepcja planowania. Planowanie przydziału procesora. Komponenty jądra w planowaniu. Tryb decyzji. Podejmowanie decyzji o wywłaszczeniu

Systemy operacyjne III

Systemy Operacyjne - zarządzanie procesami

Materiały pomocnicze 1

Planowanie przydziału procesora

Pytania do treści wykładów:

Planowanie przydziału procesora

Zarządzanie w systemach i sieciach komputerowych. Dr inż. Robert Wójcik. Wykład 3. Zarządzanie przydziałami procesora w systemach komputerowych

Planowanie przydziału procesora

Systemy operacyjne. Studia podyplomowe Wydział Informatyki PB

Planowanie przydziału procesora

KOMPONENTY SYSTEMÓW OPERACYJNYCH

2.1 Wstęp Kryteria planowania Algorytmy planowania Systemy wieloprocesorowe i czasu rzeczywistego...

Przykłady implementacji planowania przydziału procesora

przydziału procesora Przykłady implementacji planowania przydziału procesora Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

Celem wykładu jest przedstawienie zagadnień planowania przydziału procesora, czyli szeregowania procesów w dostępie do procesora.

Procesy, wątki i zasoby

Procesy, zasoby i wątki

projektowanie systemu

Procesy, zasoby i wątki

Zarządzanie w systemach i sieciach komputerowych. Dr inż. Robert Wójcik. Wykład 3. Zarządzanie przydziałami procesora w systemach komputerowych

Systemy operacyjne Procesy i wątki

SYSTEMY OPERACYJNE WYKLAD 6 - wątki

Procesy, zasoby i wątki

J. Ułasiewicz Programowanie aplikacji współbieżnych 1

Wieloprogramowanie. Systemy operacyjne / Procesy i wątki str.4/32. Proces w systemie operacyjnym. Tworzenie i kończenie procesów

Zarządzanie procesami (omawiane zagadnienia)

Stan procesu. Procesy i zarządzanie procesorem. Koncepcja procesu. Diagram stanów procesu

Wykład 3. Procesy i wątki. Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB

Szeregowanie zadań w Linux Kernel 2.6. Daniel Górski Przemysław Jakubowski

Mariusz Rudnicki PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO CZ.3

Mariusz Rudnicki PROGRAMOWANIE WSPÓŁBIEŻNE I SYSTEMY CZASU RZECZYWISTEGO CZ.3

Fazy procesora i wejścia-wyjścia. Planowanie przydziału procesora. Czasy faz procesora. Planowanie przydziału procesora

PROGRAMOWANIE SYSTEMÓW WBUDOWANYCH

Struktura i funkcjonowanie komputera pamięć komputerowa, hierarchia pamięci pamięć podręczna. System operacyjny. Zarządzanie procesami

Przykłady implementacji planowania przydziału procesora. Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

Wykład 8. Pamięć wirtualna. Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB

Systemy operacyjne. Paweł Pełczyński

Wykład 6 Planista procesora funkcja schedule. Wojciech Kwedlo, Systemy Operacyjne II -1- Wydział Informatyki PB

Stronicowanie w systemie pamięci wirtualnej

Procesy i wątki. Blok kontrolny procesu. Proces. Proces - elementy. Stan procesu

Procesy. W sk³ad procesu wchodzi:

Proces y i y w i ąt ą ki

Materiały pomocnicze 1

4. Procesy pojęcia podstawowe

Programowanie współbieżne Wykład 2. Iwona Kochańska

Systemy operacyjne, architektura komputerów

Jadro Linux 2.6. a zadania czasu rzeczywistego. Artur Lewandowski. Jądro Linux 2.6 p.1/14

Architektura komputerów

Prezentacja systemu RTLinux

1. Szeregowanie w systemach czasu rzeczywistego

tworzenie/usuwanie procesów przechowywania kodu programu i danych s.o.? mamy 1 procesor i wiele procesów

Celem wykładu jest wprowadzenie fundamentalnych pojęć, integralnie związanych z systemem operacyjnym, na których opiera się przetwarzanie we

Systemy operacyjne. wykład 11- Zakleszczenia. dr Marcin Ziółkowski. Instytut Matematyki i Informatyki Akademia im. Jana Długosza w Częstochowie

Podstawy Informatyki Systemy operacyjne

Podstawowe zagadnienia

Porządek dostępu do zasobu: procesory obszary pamięci cykle procesora pliki urządzenia we/wy

Uniwersytet w Białymstoku Wydział Ekonomiczno-Informatyczny w Wilnie SYLLABUS na rok akademicki 2010/2011

Szeregowanie zadań we współczesnych systemach operacyjnych. Szeregowanie zadań w Linux Kernel 2.6

Projektowanie oprogramowania systemów PROCESY I ZARZĄDZANIE PROCESAMI

SYSTEMY OPERACYJNE LABORATORIUM 2014/2015

Przeplot. Synchronizacja procesów. Cel i metody synchronizacji procesów. Wątki współbieżne

Pamięć wirtualna. A gdyby tak w pamięci przebywała tylko ta część programu, która jest aktualnie wykonywana?

Systemy plików i zarządzanie pamięcią pomocniczą. Struktura pliku. Koncepcja pliku. Atrybuty pliku

Wykład 14. Systemy rozproszone, Systemy czasu-rzeczywistego i multimedialne

4. Procesy pojęcia podstawowe

Procesy, zasoby i wątki

BSD - alternatywa dla Linuksa

Pamięć wirtualna. Jan Tuziemski Źródło części materiałów: os-book.com

Systemy operacyjne. Wojciech Kwedlo Wydział Informatyki PB, p. 127 aragorn.pb.bialystok.pl/~wkwedlo

Wykład 4. Synchronizacja procesów (i wątków) cześć I. Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB

System wejścia-wyjścia

SYSTEMY CZASU RZECZYWISTEGO - VxWorks

4. Procesy pojęcia podstawowe

Szeregowanie w systemach czasu rzeczywistego

Współczesne aplikacje sterowania i akwizycji danych są zbiorem komunikujących się wątków lub procesów współbieżnych.

ZARZĄDZANIE PAMIĘCIĄ OPERACYJNĄ

Analiza ilościowa w przetwarzaniu równoległym

Technika mikroprocesorowa. Systemy operacyjne czasu rzeczywistego

Programowanie współbieżne i równoległe. dr inż. Marcin Wilczewski 2013

SYSTEMY OPERACYJNE WYKLAD 6 - procesy

System plików i zarządzanie pamięcią pomocniczą. Koncepcja pliku. Atrybuty pliku. Struktura pliku. Typ pliku nazwa, rozszerzenie (extension)

Podstawy informatyki. System operacyjny. dr inż. Adam Klimowicz

Wykład 2 Proces, stany procesu i przejścia pomiędzy nimi. Wojciech Kwedlo, Systemy Operacyjne II -1- Wydział Informatyki PB

Systemy Operacyjne. Dr inż. Sławomir Samolej WWW: ssamolej.prz-rzeszow.pl

Systemy Operacyjne. Dr inż. Sławomir Samolej WWW: ssamolej.prz-rzeszow.pl

Księgarnia PWN: Włodzimierz Stanisławski, Damian Raczyński - Programowanie systemowe mikroprocesorów rodziny x86

Systemy wbudowane. Systemy operacyjne czasu rzeczywistego

SYSTEMY OPERACYJNE PROCESORÓW SYGNAŁOWYCH

Transkrypt:

Wykład 6 Planowanie (szeregowanie) procesów (ang. process scheduling) Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB

Rodzaje planowania Planowanie długoterminowe. Decyzja o dodaniu procesu do puli procesów wykonywanych (systemy wsadowe). Określa stopień wieloprogramowości. Planowanie średnioterminowe. Decyzja o dodaniu (usunięciu) procesu do puli procesów częściowo lub całkowicie obecnych w pamięci. Związane z wymianą i zarządzaniem pamięcią. Planowanie krótkoterminowe. Decyzja o przyznaniu procesowi (w stanie Gotowy) procesora. (dzisiejszy wykład) Planowanie dysku. Decyzja o wyborze żądania we-wy spośród żądań zgłoszonych przez procesy. W interakcyjnych systemach z podziałem czasu planowanie długoterminowe (często również planowanie średnioterminowe) może nie występować. Przykład: Linux. Wojciech Kwedlo, Wykład z Systemów Operacyjnych -2- Wydział Informatyki PB

Kryteria planowania Systemy wsadowe Stopień wykorzystania procesora Przepustowość (ang. throughput) liczba procesów wykonanych w ciągu jednostki czasu. Systemy interakcyjne. Czas reakcji na zdarzenie (ang. response time) Systemy czasu rzeczywistego Zaspokojenie terminów. (Niespełniony termin == awaria systemu) Przewidywalność. Wojciech Kwedlo, Wykład z Systemów Operacyjnych -3- Wydział Informatyki PB

Poziomy planowania a stany procesu Wojciech Kwedlo, Wykład z Systemów Operacyjnych -4- Wydział Informatyki PB

Planowanie a kolejki procesów w systemie (Stallings) Kolejki procesów oczekujących na procesor (ang. Ready), uśpionych (ang. Blocked) i zawieszonych (ang. suspended). Wojciech Kwedlo, Wykład z Systemów Operacyjnych -5- Wydział Informatyki PB

Dwa typy zachowań procesów Proces zorientowany na obliczenia Całkowite wykorzystanie CPU Fazy procesora Fazy we-wy Proces zorientowany na we-wy Całkowite wykorzystanie CPU Faza procesora Faza we-wy Wojciech Kwedlo, Wykład z Systemów Operacyjnych -6- Wydział Informatyki PB

Planowanie z wywłaszczaniem (ang. preemption) oraz bez wywłaszczania Planowanie możemy wykonywać gdy proces: 1. Przeszedł do stanu aktywnego do stanu oczekiwania (uśpienia) n.p. z powodu zgłoszenia zamówienia we-wy. 2. Proces przeszedł ze stanu aktywnego do stanu gotowego n.p. z powodu przerwania 3. Proces przeszedł od stanu oczekiwania do stanu gotowego. 4. Proces zakończył pracę. Jeżeli planowania dokonujemy wyłącznie w sytuacjach 1. oraz 4. to mówimy o planowaniu bez wywłaszczania. Procesowi nigdy nie zostanie odebrany procesor, chyba że proces sam zrzeknie się procesora. Jeżeli planowania dokonujemy dodatkowo w sytuacjach 2. i 3. to mówimy o planowaniu z wywłaszczaniem. Wojciech Kwedlo, Wykład z Systemów Operacyjnych -7- Wydział Informatyki PB

First Come First Served (FCFS) Przyjmijmy, że procesy nadchodzą w kolejności, P 2, Diagram Gannt'a: P 2 0 24 27 30 Średni czas oczekiwania: (0+24+27)/3=17. Przyjmijmy, że procesy nadchodzą w kolejności P 2,, Diagram Gannt'a: P 2 0 3 6 30 Średni czas oczekiwania: (0+3+6)/3=3 Wojciech Kwedlo, Wykład z Systemów Operacyjnych -8- Wydział Informatyki PB

First Come First Served (FCFS) Proces, który pierwszy został dodany do kolejki procesów gotowych, jest wykonywany jako pierwszy. Procesy otrzymują procesor na zasadzie FIFO. Nie ma wywłaszczania Przykład: Proces Czas procesora 24 P 2 3 3 Problem: Proces o dużym zapotrzebowaniu na procesor opóźnia wszystkie procesy czekające za nim w kolejce. Wojciech Kwedlo, Wykład z Systemów Operacyjnych -9- Wydział Informatyki PB

Shortet Job First (SJF) Proces o najkrótszej kolejnej fazie procesora wykonują się jako pierwsze Dwie wersje: SJF bez wywłaszczania. SJF z wywłaszczaniem (zwany także Shortest Remaining Time First, w skrócie SRTF). SJF jest optymalny. Minimalizuje średni czas oczekiwania. Wojciech Kwedlo, Wykład z Systemów Operacyjnych -10- Wydział Informatyki PB

Przykład: SJF bez wywłaszczania Proces Czas nadejścia Czas cyklu CPU 0.0 7 P 2 2.0 4 4.0 1 P 4 5.0 4 Diagram Gannt'a P 2 P 4 0 3 7 8 12 16 Średni czas oczekiwania: (0+6+3+7)/4=4 Wojciech Kwedlo, Wykład z Systemów Operacyjnych -11- Wydział Informatyki PB

Przykład: SJF z wywłaszczaniem Proces Czas nadejścia Czas cyklu CPU 0.0 7 P 2 2.0 4 4.0 1 P 4 5.0 4 Diagram Gannt'a P 2 P 2 P 4 0 2 4 5 7 11 16 Wojciech Kwedlo, Wykład z Systemów Operacyjnych -12- Wydział Informatyki PB

Prognozowanie długości cyklu procesora (uśrednianie wykładnicze) t n n Aktualny czas n-tego cyklu. Prognozowany czas n-tego cyklu. Stała z przedziału [0,1]. n 1 = t n 1 n Wojciech Kwedlo, Wykład z Systemów Operacyjnych -13- Wydział Informatyki PB

Planowanie z wykorzystaniem priorytetów Każdy proces otrzymuje liczbę zwaną piorytetem. Proces o najwyższym priorytecie otrzymuje procesor. Często najwyższy priorytet = najmniejsza liczba. SJF jest przykładem planowania z wykorzystaniem priorytetów. W tym przypadku priorytetem jest długość fazy procesora. Zagłodzenie: Procesy o niewielkim priorytecie mogą oczekiwać w nieskończoność. W MIT w 1973 przy złomowaniu komputera wykryto niskopriorytetowy proces zgłoszony do wykonania w 1967. Postarzanie (ang aging): Zwiększaj priorytet procesu długo oczekującego na procesor. Wojciech Kwedlo, Wykład z Systemów Operacyjnych -14- Wydział Informatyki PB

Planowanie rotacyjne (ang. round robin) Algorytm wykorzystuje wywłaszczanie przy pomocy przerwania zegara. Proces otrzymuje kwant czasu procesora. Jeżeli po upływie kwantu czasu proces nie zakończy cyklu procesora. Proces jest wywłaszczany i dodawany na koniec kolejki procesów gotowych. Kolejny proces z kolejki procesów gotowych otrzymuje kwant czasu. Algorytm stosowany powszechnie w systemach z podziałem czasu. Jak dobierać długość kwantu czasu. Typowa wartość: 10ms. Bardzo duży kwant czasu => algorytm degeneruje się do FCFS, duży średni czas oczekiwania Bardzo mały kwant czasu => straty wydajności związane z przełączeniam kontekstu. Wojciech Kwedlo, Wykład z Systemów Operacyjnych -15- Wydział Informatyki PB

Przykład planowania rotacyjnego Zakładamy kwant czasu 20ms. Process Czas cyklu procesora 53 P 2 17 68 P 4 24 Diagram Gannt'a P 2 P 4 P 4 0 20 37 57 77 97 117 121 134 154 162 Wojciech Kwedlo, Wykład z Systemów Operacyjnych -16- Wydział Informatyki PB

Wpływ długości kwantu czasu na liczbę przełączeń kontekstu Wojciech Kwedlo, Wykład z Systemów Operacyjnych -17- Wydział Informatyki PB

Przykładowe zadanie na egzamin Proces : 10ms CPU, 20 ms I/O, 20 ms CPU, 10 ms I/O Proces P 2 : 40 ms I/O, 20 ms CPU. Proces : 50 ms CPU, 10 ms I/O, 20 ms CPU. Narysuj diagramy Gannt'a obrazujące planowanie procesora przy pomocy algorytmów: FCFS, SJF, SJF z wywłaszczaniem, i rotacyjnego z kwantem czasu 10ms. Wojciech Kwedlo, Wykład z Systemów Operacyjnych -18- Wydział Informatyki PB

Planowanie z wykorzystaniem kolejek wielopoziomowych (ang. multilevel quee) 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% Wojciech Kwedlo, Wykład z Systemów Operacyjnych -19- Wydział Informatyki PB

Kolejki wielopoziomwe Wojciech Kwedlo, Wykład z Systemów Operacyjnych -20- Wydział Informatyki PB

Wielopoziomowe kolejki ze sprzężeniem zwrotnym (ang. multilevel feedback queue) 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. Generalnie musimy podać. Liczbę kolejek. Algorytm planowania dla każdej kolejki. Metoda użyta do awansowania procesu do kolejki o wyższym priorytecie Metoda użyta do degradowania procesu do kolejki o niższym priorytecie. Wojciech Kwedlo, Wykład z Systemów Operacyjnych -21- Wydział Informatyki PB

Wielopoziomowe kolejki ze sprzężeniem zwrotnym Trzy kolejki o malejącym priorytecie. Kolejka 1: planowanie rotacyjne z kwantem 8ms. Kolejka 2: planowanie rotacyjne z kwantem 16 Kolejka 3: FCFS Wojciech Kwedlo, Wykład z Systemów Operacyjnych -22- Wydział Informatyki PB

Szeregowanie wątków zakres rywalizacji Process Contention Scope (PTHREAD_SCOPE_PROCESS) wątki jednego procesu o tym atrybucie grupowane są razem i grupa rywalizuje o procesor. System Contention Scope (PTHREAD_SCOPE_SYSTEM) wątek współzawodniczy o procesor także z wątkami innych procesów. Zmieniane funkcją pthread_attr_setscope Przykład 1 Przykład 2 Proces P1 10 wątków PTHREAD_SCOPE_PROCESS Proces P2 jeden wątek (nieważne jaki) Każdy z wątków otrzyma 1/11 czasu procesora (zakładając równe priorytety). Jeden proces a w nim 4 wątki PTHREAD_SCOPE_PROCESS i 4 wątki PTHREAD_SCOPE_SYSTEM Każdy z wątków PTHREAD_SCOPE_SYSTEM otrzyma 1/5 czasu procesora, wszystkie wątki PTHREAD_SCOPE_PROCESS otrzymują razem 1/5 czasu procesora Wojciech Kwedlo, Wykład z Systemów Operacyjnych -23- Wydział Informatyki PB