Informatyka, systemy, sieci komputerowe Systemy operacyjne wykład 2 Procesy i wątki issk 1
SO koncepcja procesu i zasobu Proces jest elementarną jednostką pracy zarządzaną przez system operacyjny, wykonującym się programem, który ubiega się o zasoby systemu komputerowego w celu wykonania Proces jest obiektem aktywnym, w przeciwieństwie do programu Proces stanowią: program (definiuje czynności wykonywane przez proces) Dane (przetwarzane oraz wyniki) zbiór zasobów tworzących środowisko wykonawcze blok kontrolny procesu (PCB, deskryptor) ( opis bieżącego stanu procesu). Zasobem jest element sprzętowy lub programowy systemu komputerowego, konieczny do wykonywanie programu (przetwarzania), np. procesor, pamięć, plik, urządzenie itp Funkcje jądra SO w zarządzaniu procesami Operacje tworzenia i usuwania procesów oraz elementarna komunikacja międzyprocesowa Proces tworzony jest przez inny proces Proces może być usunięty z powodu zakończenia lub ingerencji innego procesu Operacje przydziału i zwalniania jednostek zasobów Zasoby są dostarczane przez system zwykle jako wirtualne Elementarne operacje wejścia-wyjścia Zastrzeżone dla jądra Procedury obsługi przerwań issk 2
Zarządzanie procesami Zarządzanie procesami i zasobami jest w gestii process managera i resource managera Służące do tego celu struktury danych to PCB i deskryptor zasobu Identyfikator procesu PCB-Blok kontrolny procesu Stan procesu (nowy, gotowy, oczekujący, itd.) Identyfikator właściciela Identyfikator przodka Lista przydzielonych zasobów Zawartość rejestrów procesora Prawa dostępu (domena ochrony) Informacje na potrzeby zarządzania pamięcią Informacje na potrzeby planowania (np. priorytet) Informacje do rozliczeń Wskaźniki do kolejek porządkujących issk 3
Stany procesu Nowy (ang. new) po utworzeniu Wykonywany (ang. running) wykonywane są instrukcje programu. Oczekujący (ang. waiting) oczekuje na zdarzenie, np. na zakończenie operacji wejścia-wyjścia, na przydział dodatkowego zasobu itp.. Gotowy (ang. ready) proces czeka na przydział procesora. Zakończony (ang. terminated) proces zakończył działanie i zwalnia zasoby. Działania na procesach Drzewo procesów w typowym systemie Unix Proces może utworzyć nowy proces używając wywołania systemowego. Proces tworzacy jest Procesem macierzystym (parent), utworzony Potomnym (child) issk 4
Operacje na procesach Proces może być zakończony po zakończeniu przetwarzania lub przez proces macierzysty. Inne operacje na procesach : Zawieszanie i aktywacja procesu Wstrzymywanie i wznawianie procesu Zmiana priorytetu procesu Przejście do oczekiwania np. na zakończenie innego procesu Procesy - współbieżność Proces jest niezależny, jeżeli nie dzieli żadnych danych z innymi procesami. Współbieżność to wykonanie równoczesne kilku procesów Współbieżność z punktu widzenia procesów użytkowych nazywana jest przetwarzaniem równoległym. Współbieżność oznacza współpracę. Konieczna jest organizacja Synchronizacji procesów Komunikacji pomiędzy procesami issk 5
wątki Wątek (lekki proces, ang. lightweight process LWP)jest obiektem w obrębie procesu ciężkiego posiadającym własne sterowanie i współdzielącym z innymi wątkami tego procesu zasoby przydzielone procesowi (pamięć, pliki itp.) wątki W jądrze systemu Linux nie odróżnia się pojęcia wątku od procesu. Procesy w Linuxie mogą współdzielić takie zasoby, jak: przestrzeń adresowa, otwarte pliki, informacje o systemie plików, procedury obsługi sygnałów. Rozróżnienie, czy mamy do czynienia z procesem czy wątkiem może być przeprowadzone w oparciu o zakres współdzielenia zasobów. issk 6
Planowanie Procesy - planowanie Proces w systemie albo jest w stanie wykonywania albo czeka w którejś kolejce. Przydziałem czasu procesora zarządza planista. Planista długoterminowy, planista zadań (job cheduler) ładowanie nowych programów do pamięci i kontrola liczby zadań w systemie (stopień wieloprogramowości) oraz ich odpowiedni dobór w celu zrównoważenia wykorzystania zasobów. Planista krótkoterminowy, planista przydziału procesora ( CPU scheduler) przydział czasu procesora do procesów gotowych. Uruchamiany często, przy każdym przełączeniu procesów Planista średnioterminowy (medium-term scheduler) wymianą procesów pomiędzy pamięcią główną a pamięcią zewnętrzną (np. dyskiem) np.. W sytuacji, gdy brakuje pamięci operajnej. W systemach interaktywnych zmniejsza się (lub zupełnie znika) rola planisty długoterminowego, a rośnie rola planisty krótkoterminowego. W systemach wsadowych jest dokładnie odwrotnie. issk 7
planowanie Procesy - planowanie Kolejki: Kolejka procesów gotowych (ang. ready queue) procesy gotowe do działania, przebywające w pamięci głównej. Kolejka do urządzenia (ang. I/O queue) procesy czekające na zakończenie operacji wejścia-wyjścia. Kolejka procesów oczekujących na sygnał synchronizacji od innych procesami (np. kolejka procesów na semaforze, oczekujące na zakończenie procesu potomnego). issk 8
Planowanie Planowanie Wybór procesu do wykonania dokonuje scheduler Przekazanie sterowania (przełączenie konteksu) dispatcher Planowanie przydziału procesora obejmuje Tryb decyzji (okoliczności) Algorytm wyznaczania priorytetu procesu algorytm rozstrzygania konfliktu, w przypadku równych priorytetów Okoliczności Utworzenie procesu Proces przeszedł ze stanu aktywności do stanu oczekiwania Proces przeszedł ze stanu aktywności do stanu gotowości (np. Upłynął kwant czasu) Proces przeszedł ze stanu oczekiwania do stanu gotowości (obudzenie procesu) Zmiana priorytetu procesu wykonywanego lub w stanie gotowości ( w systemach ze zmiennymi priorytetami) Proces zakończył działanie issk 9
planowanie Algorytm szeregowania może być niewywłaszczeniowy (ang. nonpreemptive) - proces po uzyskaniu dostępu do procesora wykonywany jest do momentu zakończenie lub zgłoszenia żądania obsługi do systemu. wywłaszczeniowy (ang. preemptive) proces może zostać przerwany i odesłany do kolejki procesów w stanie gotowości, procesor zostaje przydzielony innemu procesowi. Planowanie - przykład rdy ex wait ex P1 P2 P3 Czas obsługi 4 4 4 Czas oczekiwania Czas przetwarzania 4 6 2 10 12 13 issk 10
Planowanie bez wywłaszczania Algorytmy szeregowania bez wywłaszczania FCFS (First Come First Served) pierwszy zgłoszony, pierwszy obsłużony LCFS (Last Come First Served) ostatni zgłoszony, pierwszy obsłużony Planowanie bez wywłaszczania SJF (SJN, SPF, SPN, Shortest Job/Process First/Next) - najpierw najkrótsze zadanie issk 11
Planowanie bez wywłaszczania FCFS SJF Planowanie bez wywłaszczania P1 FCFS P2 P3 SJF FCFS CZAS OCZEKIWANIA CZAS PRZEBYWANIA W SYSTEMIE p1 0 5 1 P2 4 8 0,5 P3 7 9 0,22 ŚREDNI 3,67 CZAS PRZETWARZA NIA/CZAS PRZEBYWANIA W SYSTEMIE issk 12
Planowanie bez wywłaszczania P1 FCFS P2 P3 SJF SJF CZAS OCZEKIWANIA CZAS PRZEBYWANIA W SYSTEMIE p1 0 5 1 P2 6 10 0,4 P3 3 5 0,4 ŚREDNI 3 CZAS PRZETWARZA NIA/CZAS PRZEBYWANIA W SYSTEMIE Planowanie z wywłaszczaniem Planowanie rotacyjne (ang. Round Robin, RR) po ustalonym kwancie czasu proces wykonywany jest przerywany i trafia do kolejki procesów gotowych. SRT (Shortest Remaining Time) najpierw zadanie, które ma najkrótszy czas do zakończenia. issk 13
Planowanie z wywłaszczaniem SRT RR planowanie W algorytmach z wywłaszczaniem przydzielany kwant czasu nie powinien być zbyt krótki, ze względu na koszt przełączania procesów W systemach interaktywnych powinien być trochę dłuższy niż czas odpowiedzi programu. Kwant czasu Kwant czasu issk 14
Planowanie kryteria efektywności Efektywność z punktu widzenia systemu wykorzystanie procesora (processor utilization) procent czasu, przez który procesor jest zajęty pracą przepustowość (throughput) liczba procesów kończonych w jednostce czasu sprawiedliwość (fairness) równe traktowanie procesów respektowanie zewnętrznych priorytetów procesów równoważenie obciążenia wykorzystania zasobów Planowanie kryteria efektywności Efektywność z punktu widzenia użytkownika czas cyklu przetwarzania (turnaround time) czas pomiędzy przedłożeniem zadania, a zakończeniem jego wykonywania (rzeczywisty czas przebywania w systemie do momentu zakończenie procesu), czas odpowiedzi ( response time) czas pomiędzy przedłożeniem żądania, a rozpoczęciem przekazywania odpowiedzi. przewidywalność realizacja przetwarzania w zbliżonym czasie niezależnie od obciążenia systemu. Kryteria mogą zależeć od rodzaju systemu (inaczej będzie w systemie interakcyjnym, istotny jest czas odpowiedzi, inaczej w systemach przetwarzania wsadowego optymalizowanych ze względu na wykorzystanie zasobów) issk 15
Planowanie kryteria efektywności Czas odpowiedzi czas odpowiedzi systemu (wg. Martina 1998) >15 s wyklucza działanie konwersacyjne >4 s zbyt długi. Spowalnia rozwiązywanie problemów i utrudnia wprowadzanie danych (problemy z pamięcią krótkoterminową) >2 s utrudnia wykonywanie operacji wymagających koncentracji >1 s wystarczający dla operacji wymagających dokładności >0.1 s wystarczający dla prac graficznych <0.1 s konieczny przy interakcji z użyciem myszy Implementacja przełączanie kontekstu jest marnotrawstwem czasu procesora. Algorytm szeregowania powinien działać szybko. Struktury danych muszą być tak zaprojektowane, żeby ułatwić dokonanie szybkiego wyboru procesu Np.. Przez utrzymywanie kolejki procesów gotowych posortowanych zgodnie z priorytetem jako wielopoziomowej kolejki ze sprzężeniem zwrotnym z poziomami odpowiadającymi priorytetom. Wybór procesu o najwyższym priorytecie sprowadza się do zlokalizowania pierwszej kolejki niepustej w kolejności malejących priorytetów i wybrania pierwszego procesu z tej kolejki. issk 16
Zarządzanie zasobami Zasoby -klasyfikacja sposób wykorzystania zasoby odzyskiwalne (zwrotne, ang. reusable),np. pamięć zasoby nieodzyskiwalne (niezwrotne, zużywalne, ang. consumable). sposób odzyskiwania zasoby wywłaszczalne, zasoby niewywłaszczalne (trzeba poczekać na zwrot, np. drukarki po zakończeniu wydruku) tryb dostępu Współdzielone wyłączne issk 17
Deskryptor zasobu Identyfikator zasobu Rodzaj zasobu Identyfikator twórcy zasobu Lista i liczba dostępnych jednostek zasobu Lista (kolejka) procesów oczekujących na jednostki danego zasobu Procedura przydziału zasoby Elementarne operacje na zasobach: Tworzenie deskryptora zasobu Usuwanie deskryptora zasobu Realizacja żądania przydziału jednostek zasobu Zwolnienie i odzyskiwanie zasobu issk 18
Przykład Szeregowanie w systemie Windows 2000/XP Szeregowanie w systemie Windows 2000/XP Szeregowaniu podlegają wątki, stanowiące obiekty w obrębie procesu. Stosowany jest algorytm rotacyjny z wywłaszczaniem, oparty na priorytetach dynamicznych. 32 poziomy priorytetu od 0 do 31 (najwyższy) 0 systemowy wątek bezczynności (zarezerwowany), 1 do 15 priorytety dynamiczne (zmienne) 16 do 31 priorytety czasu rzeczywistego issk 19
Szeregowanie w systemie Windows 2000/XP Każda klasa reprezentowana jest przez pewną wartość priorytetu, która ustalana jest dla procesu. Wartość ta dziedziczona jest przez wątek procesu, ale jego priorytet bazowy może zostać w stosunku do klasy procesu skorygowany Szeregowanie w systemie Windows 2000/XP przykładowa zawartość i organizacja kolejek wątków gotowych Dwa wątki procesu P1 (TA i TB) mają priorytet na poziomie 3 a 2 wątki procesu P2 (TD i TE) oraz jeden wątek procesu P1 (TC) mają priorytet na poziomie 2. issk 20
Szeregowanie w systemie Windows 2000/XP Kwant wyrażanych jest jednostkach kwantu czasu. Liczba jednostek do dyspozycji wątku wynosi: 6 w wersjach dla komputerów osobistych i stacji 36 w wersjach dla serwerów. Z każdym taktem zegara odejmowane są 3 jednostki. Upłynięcie kwantu czasu (zredukowanie liczby jednostek do 0) powoduje wywłaszczenie z procesora pod warunkiem, że jest gotowy inny wątek o takim samym (lub wyższym) priorytecie. Jeśli dotychczas działający wątek jest jedynym o tak wysokim priorytecie, przydzielony zostaje mu kolejny kwant. Szeregowanie w systemie Windows 2000/XP modyfikacje przydziału czasu (niektóre) Wątki procesu pierwszoplanowego mogą uzyskać 3-krotnie dłuższy kwant czasu, zależnie od ustawienia rejestru HKLM\SYSTEM\CurrentControlSet\Control\PriorityControl\ Win32PrioritySeparation Wydłużenie kwantu ma na celu zwiększenie preferencji dla wątków związanych z oknem pierwszoplanowym przy jednoczesnym uniknięciu zagłodzenia wątków drugoplanowych. W ramach przeciwdziałania głodzeniu wydłużany jest również 2-krotnie czas dla wątków oczekujących długo (ponad 300 taktów) na procesor. issk 21
Szeregowanie w systemie Windows 2000/XP zmiany dynamicznych priorytetów wątków Priorytet wątku wchodzącego w stan gotowości jest zwiększany (max do 15) w zależności od zdarzenia, które spowodowało przejście wątku w stan oczekiwania: zakończenie operacji wejścia-wyjścia, Operacja związana z dyskiem, CD, portem równoległym lub kartą video wzrost o 1 Operacja związana z siecią, portem szeregowym, potokiem, usługą pocztową wzrost o 2 Operacja związana z klawiaturą lub myszą wzrost o 6 Operacja związana z kartą dźwiękową wzrost o 8 oczekiwanie na zdarzenie lub semafor wzrost o 1 zakończenie oczekiwania przez wątek pierwszoplanowy Priorytet zwiększany jest o wartość zmiennej jądra PsPrioritySeparation, dostępnej jako jedno z pól w rejestrze pod nazwą HKLM\SYSTEM\CurrentControlSet\Control\PriorityControl\Win32PrioritySeparation przebudzenie wątku GUI - wzrost o 2 zbyt długie oczekiwanie w stanie gotowości patrz kolejny slajd Podwyższony priorytet jest obniżany sukcesywnie o 1 po upływie kwantu czasu, aż wróci do wartości bazowej Szeregowanie w systemie Windows 2000/XP zmiany dynamicznych priorytetów wątków (2) Priorytet wątku, wchodzącego w stan gotowości, jest odpowiednio zwiększany (max do 15) w zależności od zdarzenia, które spowodowało przejście wątku w stan oczekiwania: zbyt długie oczekiwanie w stanie gotowości. Co sekundę uruchamiany jest wątek balance set manager, którego jednym z zadań jest sprawdzanie czasu bieżącego oczekiwania wątków gotowych. Jeśli wątek oczekuje dłużej niż 300 taktów zegara (około 3 4 sekundy), jego priorytet uzyskuje wartość 15, a kwant czasu zwiększa się dwukrotnie (w wersjach serwerowych czterokrotnie.) Po upływie przyznanego kwantu, priorytet wątku wraca do poziomu bazowego issk 22