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



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

Planowanie przydziału procesora

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

Planowanie przydziału procesora

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

Planowanie przydziału procesora

Planowanie przydziału procesora

Zbigniew S. Szewczak Podstawy Systemów Operacyjnych

Planowanie przydziału procesora

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

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

Zarządzanie procesami i wątkami

Zarządzanie procesorem

Informatyka, systemy, sieci komputerowe

Systemy Operacyjne - zarządzanie procesami

Materiały pomocnicze 1

Planowanie przydziału procesora

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

Planowanie przydziału procesora

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

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

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.

SYSTEMY OPERACYJNE WYKLAD 6 - wątki

1. Szeregowanie w systemach czasu rzeczywistego

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

Prezentacja systemu RTLinux

Systemy operacyjne III

KOMPONENTY SYSTEMÓW OPERACYJNYCH

Technika mikroprocesorowa. Systemy operacyjne czasu rzeczywistego

Procesy. W sk³ad procesu wchodzi:

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. Systemy operacyjne. Systemy operacyjne. Zadania systemu operacyjnego. Abstrakcyjne składniki systemu. System komputerowy

Procesy, wątki i zasoby

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

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

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

SYSTEMY OPERACYJNE LABORATORIUM 2014/2015

Mariusz Rudnicki PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO CZ.3

Materiały pomocnicze 1

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

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

projektowanie systemu

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

4. Procesy pojęcia podstawowe

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

4. Procesy pojęcia podstawowe

Procesy, zasoby i wątki

Procesy, zasoby i wątki

Procesy, zasoby i wątki

Systemy Czasu Rzeczywistego (SCR)

Pytania do treści wykładów:

Wprowadzenie do systemów operacyjnych

PROGRAMOWANIE SYSTEMÓW WBUDOWANYCH

Zarządzanie procesami (omawiane zagadnienia)

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

Projektowanie oprogramowania systemów PROCESY I ZARZĄDZANIE PROCESAMI

Systemy operacyjne, architektura komputerów

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

Systemy wbudowane - wykład 9. Systemy czasu rzeczywistego Notes. Systemy czasu rzeczywistego Notes. Systemy czasu rzeczywistego Notes.

Podstawowe zagadnienia

1. Działania na procesach

SYSTEMY CZASU RZECZYWISTEGO - VxWorks

7. Szeregowanie procesów w systemie QNX6 Neutrino

Zarządzanie w systemach i sieciach komputerowych. Dr inż. Robert Wójcik. Wykład 2. Zasoby i procesy w systemach i sieciach komputerowych

4. Procesy pojęcia podstawowe

Podstawy Informatyki Systemy operacyjne

Szeregowanie pakietów

Systemy czasu rzeczywistego. Systemy czasu rzeczywistego. Systemy czasu rzeczywistego. Systemy czasu rzeczywistego - przykłady

Systemy operacyjne. Paweł Pełczyński

Simulator of Operating System

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

Wprowadzenie do systemów operacyjnych

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

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

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

Proces y i y w i ąt ą ki

dr Adam Sojda Wykład Politechnika Śląska Badania Operacyjne Teoria kolejek

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

Program jest więc strukturą statyczną zapisaną na jakimś nośniku. Natomiast proces jest wykonującym się programem.

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

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

SOE Systemy Operacyjne Wykład 8 Pamięć wirtualna dr inż. Andrzej Wielgus

Systemy czasu rzeczywistego. Systemy czasu rzeczywistego. Systemy czasu rzeczywistego. Systemy czasu rzeczywistego - przykłady

Systemy operacyjne. Zadania systemu operacyjnego. System komputerowy. Wprowadzenie. Dr inż. Ignacy Pardyka

Systemy wbudowane. Systemy operacyjne czasu rzeczywistego

Systemy Operacyjne. informacje dodatkowe

Analiza ilościowa w przetwarzaniu równoległym

Elementy Modelowania Matematycznego

Modelowanie procesów współbieżnych

Struktury systemów operacyjnych

Jądro systemu operacyjnego

REAL-TIME LINUX. ZGODNOŚĆ Z POSIX ( PSE51 (minimal realtime system profile)

SYSTEMY OPERACYJNE WYKLAD 6 - procesy

Systemy Operacyjne i Sieci Komputerowe

Szeregowanie zadań. Wykład nr 3. dr Hanna Furmańczyk

procesów Współbieżność i synchronizacja procesów Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

Transkrypt:

Planowanie przydziału procesora CPU scheduling Koncepcja szeregowania Koncepcja szeregowania (Basic Concepts) Kryteria szeregowania (Scheduling Criteria) Algorytmy szeregowania (Scheduling Algorithms) Szeregowanie w przypadku wieloprocesorowym (Multiple-Processor Scheduling) Szeregowanie w czasie rzeczywistym (Real-Time Scheduling) Ocena algorytmu (Algorithm Evaluation) Wieloprogramowość umożliwia zwiększenie wykorzystania CPU. Wykonanie procesu przebiega cyklicznie: fazy zapotrzebowania na CPU przeplatają się zfazami zapotrzebowania na we/wy. Rozkład faz zapotrzebowania na CPU powinien mieć wpływ na dobór algorytmu szeregowania procesów. 6.1 6.2 Cykl zatrudnień CPU i urządzeń Program ograniczony przez CPU fazy procesora długie (ale rzadko występują), operacje we/wy krótkotrwałe. Program ograniczony przez we/wy fazy procesora krótkie (ale częste), większość czasu zajmują operacje we/wy. Planista przydziału procesora (planista krótkoterminowy) CPU Scheduler Wybiera jeden proces spośród procesów rezydujących w pamięci, które są gotowe go wykonania i przydziela mu CPU. Decyzje o przydziale CPU zapadają gdy proces: 1. przeszedł ze stanu wykonywania do czekania, 2. przeszedł ze stanu wykonywania do gotowości, 3. przeszedł ze stanu czekania do gotowości. 4. Zakończył się. Planowanie w sytuacjach 1 i 4 nazywa się planowaniem bez wywłaszczania (nonpreemptive). W pozostałych przypadkach mamy do czynienia z planowaniem wywłaszczeniowym (preemptive). 6.3 6.4 Program koordynujący (egzekutor, dyspozytor) dispatcher Program koordynujący (egzekutor, dyspozytor) dispatcher Egzekutor przekazuje sterowanie procesora do procesu wybranego przez planistę krótkoterminowego. Do jego obowiązków należy: Przełączanie kontekstu (switching context) Przełączanie do trybu użytkownika (switching to user mode) Wykonanie instrukcji skoku do właściwego miejsca w programie aby wznowić jego działanie. Opóźnienie egzekucji (dispatch latency) czas potrzebny egzekutorowi na zatrzymanie jednego procesu i wznowienie następnego. 6.5 6.6 1

Kryteria szeregowania Scheduling Criteria Wykorzystanie CPU na maksimum zajętości CPU Przepustowość (throughput) liczba procesów wykonanych w jednostce czasu Czas obrotu (turnaround time) czas potrzebny na wykonanie pojedynczego procesu Czas oczekiwania (waiting time) czas spędzony przez proces w kolejce procesów gotowych. Czas reakcji (response time) czas liczony od chwili dostarczenia żądania do uzyskania odpowiedzi (w systemie z podziałem czasu). Kryteria optymalizacji Max wykorzystania CPU (utilization) Max przepustowość (throughput) Min czas obrotu (turnaround time) Min czas oczekiwania (waiting time) Min czas reakcji (response time) 6.7 6.8 Alg. pierwszy nadszedł-pierwszy obsłużony First-Come, First-Served (FCFS) Scheduling Process Burst Time P 1 24 P 2 3 P 3 3 Załóżmy, że procesy nadeszły w porządku: P 1, P 2, P 3 Wykres Gantta: 0 P 1 P 2 P 3 24 27 30 Czasy oczekiwania: P 1 =0;P 2 = 24; P 3 =27 Średni czas oczekiwania: (0 + 24 + 27)/3 = 17 Algorytm FCFS (cd.) Załóżmy, że procesy nadeszły w porządku: P 2, P 3, P 1. Wykres Gantta: P 2 P 3 0 3 6 30 Czasy oczekiwania: P 1 = 6;P 2 =0 ; P 3 = 3 Średni czas oczekiwania: (6 + 0 + 3)/3 = 3 Znacznie krótszy niż w poprzednim przypadku. Efekt konwoju krótkie procesy wstrzymywane przez długie (convoy effect). P 1 6.9 6.10 Alg. najpierw krótsze zadanie Shortest-Job-First (SJF) Scheduling Dla każdego procesu przypisz zapotrzebowanie na czas fazy CPU. Uszereguj procesy wg rosnących czasów. Dwa schematy: Bez wywłaszczeń (nonpreemptive) gdy CPU jest przydzielona procesowi, to proces nie może być wywłaszczony aż do upływu przypisanego mu czasu. Z wywłaszczeniem (preemptive) gdy nadejdzie proces o krótszej fazie CPU, niż pozostało do zakończenia bieżącego procesu, tenże zostanie wywłaszczony. Schemat ten nosi nazwę Shortest-Remaining-Time-First (SRTF). SJF jest optymalny minimalny średni czas oczekiwania procesów z danego zbioru. Process Arrival Time Burst Time P 1 0.0 7 P 2 2.0 4 P 3 4.0 1 P 4 5.0 4 SJF (non-preemptive) 0 Przykład SJF (bez wywłaszczania) P 1 P 3 P 2 Średni czas oczekiwania = (0 + 6 + 3 + 7)/4 = 4 P 4 3 7 8 12 16 6.11 6.12 2

SRTF (SJF z wywłaszczaniem) Process Arrival Time Burst Time P 1 0.0 7 P 2 2.0 4 P 3 4.0 1 P 4 5.0 4 SJF (preemptive) Sposób określania zapotrzebowania na czas fazy CPU (burst) Można jedynie estymować ten czas. Można to zrobić biorąc pod uwagę poprzednie długości faz CPU dla danego procesu, a następnie zastosować uśrednianie wykładnicze, tj.: P 1 P 2 P 3 P 2 P 4 P 1 0 2 4 5 7 11 Średni czas oczekiwania = (9 + 1 + 0 +2)/4 = 3 16 6.13 6.14 Estymacja fazy CPU Przykład uśredniania wykładniczego α =0 τ n+1 = τ n Historia nie jest brana pod uwagę. α =1 τ n+1 = t n Uwzględniamy jedynie długość ostatniej fazy CPU. Rozwijając wzór otrzymujemy: τ n+1 = α t n +(1 -α) α t n -1 + +(1 - α ) j α t n -1 + +(1 - α ) n=1 t n τ 0 Ponieważ zarówno α jak (1 - α) są nie większe od 1, każdy następny wyraz ma mniejszą wagę niż jego poprzednik. 6.15 6.16 Szeregowanie priorytetowe Każdemu procesowi przypisuje się liczbę całkowitą określającą jego priorytet CPU jest przydzielana procesowi o najwyższym priorytecie (mniejsza liczb = wyższy priorytet): Z wywłaszczaniem (preemptive) Bez wywłaszczania (nonpreemptive) Zauważmy, że SJF jest szeregowaniem priorytetowym, gdzie priorytetem jest przewidywany czas fazy CPU. Problem zagłodzenia : może pojawić się nieskończone blokowanie (starvation) procesy o niskich priorytetach mogą nigdy nie być wykonane. Rozwiązaniem jest postarzanie procesów (aging) w miarę upływu czasu zwiększanie priorytetu procesu. Planowanie rotacyjne (karuzelowe) Round Robin (RR) Każdy proces otrzymuje mały kwant czasu CPU (time quantum), np. 10-100 ms. Po upływie tego czasu proces jest wywłaszczany i dodawany do kolejki procesów gotowych do wykonania. Jeśli jest n procesów w kolejce gotowości, a kwant czasu wynosi q, to każdy proces otrzyma 1/n czasu CPU porcjami, których wielkość nie przekracza q jednostek czasu. Żaden proces nie czeka dłużej niż (n-1)q jednostek czasu. Osiągi: q duże FCFS / FIFO q małe q musi być duże w porównaniu do czasu przełączania kontekstu, w przeciwnym razie pojawia się nadmierne przeciążenie. 6.17 6.18 3

Przykład RR q = 20 Kwant czasu, a czas przełączania kontekstu Process Burst Time P 1 53 P 2 17 P 3 68 P 4 24 Wykres Gantta: P 1 P 2 P 3 P 4 P 1 P 3 P 4 P 1 P 3 P 3 0 20 37 57 77 97 117 121 134 154 162 Średni czas cyklu jest większy niż przy SJF, ale krótszy czas reakcji. 6.19 6.20 Zależność czasu cyklu od kwantu czasu Kolejka wielopoziomowa Kolejka gotowości jest dzielona na osobne kolejki: pierwszoplanowa - foreground (interactive) drugoplanowa - background (batch) Każda kolejka ma swój algorytm szeregowania, Pierwszoplanowa: RR Drugoplanowa: FCFS Planowanie pomiędzy kolejkami: Stałopriorytetowe (fixed priority scheduling); (tj. obsługiwanie najpierw pierwszoplanową potem drugoplanową). Możliwość zagłodzenia. Odcinek czasu (time slice) każda kolejka dostaje pewną ilość czasu CPU, który może rozdysponować między swoje procesy, np. 80% dla pierwszoplanowej szeregującej wg. RR. 20% dla drugoplanowej szeregującej wg. FCFS 6.21 6.22 Szeregowanie w kolejkach wielopoziomowych Kolejka wielopoziomowa ze sprzężeniem zwrotnym Proces może być przesuwany do różnych kolejek; w ten sposób można realizować postarzanie. Planista wielopoziomowych kolejek ze sprzężeniem zwrotnym jest określany za pomocą następujących parametrów: Liczba kolejek Algorytm planowania dla każdej kolejki Metoda użyta do decydowania o awansowaniu procesu do kolejki o wyższym priorytecie Metoda używana do decydowania o zdymisjowaniu procesu do kolejki o niższym priorytecie Metoda określająca kolejkę, do której trafia proces potrzebujący obsługi. 6.23 6.24 4

Przykład wielopoziomowej kolejki ze sprzężeniem zwrotnym Kolejki wielopoziomowe ze sprzężeniem zwrotnym Trzy kolejki: Q 0 kwant czasu 8 ms Q 1 kwantczasu16ms Q 2 FCFS Szeregowanie Nowe zadanie trafia do kolejki Q 0 która jest obsługiwana wg. algorytmu FCFS. Po przydzieleniu CPU, zadanie otrzymuje kwant 8 ms. Jeśli nie zakończy się przez 8 ms, zadanie jest przemieszczane do kolejki Q 1. W kolejce Q 1 zadanie jest obsługiwane wg. FCFS i otrzyma dodatkowo 16 ms. Jeśli w tym czasie nie zakończy się, jest wywłaszczane i przemieszczone do kolejki Q 2. 6.25 6.26 Planowanie wieloprocesorowe Gdy wiele procesorów szeregowanie staje się bardziej złożone. Procesory mogą być jednakowe (system homogeniczny) lub różne (system heterogeniczny). Ładowanie dzielone (Load sharing). Wieloprzetwarzanie asymetryczne (asymmetric multiprocessing) tylko jeden procesor ma dostęp do systemowych struktur danych, łagodząc potrzebę dzielenia danych. Szeregowanie w systemach czasu rzeczywistego Hard real-time systems wymagają wypełnienia krytycznego zadania w określonym przedziale czasu. Soft real-time computing wymagają aby procesy krytyczne miały wyższy priorytet nad pozostałymi. 6.27 6.28 Opóźnienie egzekucji Ocena algorytmu Modelowanie deterministyczne (deterministic modeling) dla zadanego planu obciążenia ocenia się jakość poszczególnych algorytmów. Modele kolejkowe. Implementacja. 6.29 6.30 5

Ocena algorytmów drogą symulacji Solaris2Scheduling 6.31 6.32 Windows 2000 Priorities 6.33 6