1-1 - Instytut Mikroelektroniki i Optoelektroniki
Transkrypt
1-1 - Instytut Mikroelektroniki i Optoelektroniki
SOE - Systemy Operacyjne Wykład 4 Zarządzanie procesami i wątkami dr inŜ. Andrzej Wielgus Instytut Mikroelektroniki i Optoelektroniki WEiTI PW Pojęcie procesu (1) • Program zbiór instrukcji dla procesora przechowywany na dysku w postaci pliku obiekt pasywny • Wykonywany program zadanie proces Systemy operacyjne Andrzej Wielgus IMiO Pojęcie procesu (2) • Proces wykonujący się program środowisko wykonania programu, stworzone przez system operacyjny podstawowa jednostka pracy systemu operacyjnego obiekt aktywny Systemy operacyjne Andrzej Wielgus IMiO Obraz procesu w pamięci stos sterta dane kod Systemy operacyjne Andrzej Wielgus IMiO Stany procesu (1) • Dwustanowy model procesu przerwanie utworzenie zakończenie nie działa działa uruchomienie Systemy operacyjne Andrzej Wielgus IMiO Stany procesu (2) • Pięciostanowy model procesu przerwanie utworzenie procesu nowy zakończenie przydział procesu gotowy aktywny zakończony procesora wystąpienie zdarzenia oczekiwanie na zdarzenie czekający Systemy operacyjne Andrzej Wielgus IMiO Reprezentacja procesów w systemie • Blok kontrolny procesu (process control block PCB) struktura danych opisująca proces • Tablica procesów tablica wskaźników na bloki kontrolne procesów alokowana statycznie - ograniczona liczba procesów w systemie • Listy procesów alokowane dynamicznie - brak ograniczeń na liczbę procesów • Tablica list procesów Systemy operacyjne Andrzej Wielgus IMiO Blok kontrolny procesu • Atrybuty procesu identyfikatory – procesu, właściciela stan procesu licznik rozkazów rejestry procesora informacje o planowaniu przydziału procesora – priorytet informacje o zarządzaniu pamięcią informacje do rozliczeń – zuŜyty czas procesora i czas rzeczywisty informacje o stanie wejścia-wyjścia Systemy operacyjne Andrzej Wielgus IMiO Kontekst procesu • Obraz procesu zawartość logicznej przestrzeni adresowej procesu (kod, dane, stos) stan licznika rozkazów i rejestrów sprzętowych procesora struktury danych jądra, związane z procesem – blok kontrolny procesu • Zachowanie kontekstu zapisanie stanu licznika i rejestrów w bloku kontrolnym gdy nastąpi przerwanie wykonywania procesu • Odtwarzanie kontekstu Systemy operacyjne Andrzej Wielgus IMiO Podstawowe operacje na procesach • Tworzenie procesu • Kończenie procesu • Przełączanie procesów Systemy operacyjne Andrzej Wielgus IMiO Tworzenie procesu • Operacja jądra zamawiana poprzez funkcję systemową proces macierzysty, rodzicielski, rodzic proces potomny, potomek drzewo procesów • Współdzielenie zasobów rodzic i potomek dzielą wszystkie zasoby dzielą podzbiór zasobów nie dzielą zasobów Systemy operacyjne Andrzej Wielgus IMiO Tworzenie procesu c.d. • Przestrzeń adresowa proces potomny otrzymuje kopię przestrzeni adresowej procesu macierzystego system wpisuje nowy program do przestrzeni adresowej procesu potomnego • Wykonanie wykonują się współbieŜnie rodzic czeka na zakończenie potomka Systemy operacyjne Andrzej Wielgus IMiO Kończenie procesu • Zakończenie normalne proces wywołuje funkcję systemową (exit) po zakończeniu wykonywania kodu programu • Zakończenie przez system operacyjny błędy wykonania kodu błędy wejścia-wyjścia przekroczenie limitu czasu zakleszczenie procesów zakończenie kaskadowe - po zakończeniu procesu macierzystego (w niektórych systemach operacyjnych) inne • Zakończenie przez proces macierzysty Systemy operacyjne Andrzej Wielgus IMiO Przełączanie procesów • Przełączanie procesora pomiędzy procesami • Przerwanie wykonywania bieŜącego procesu przerwanie zegarowe przerwania od urządzeń pułapki wywołania funkcji systemowych • Przełączanie kontekstu zachowanie kontekstu przerwanego procesu odtworzenie kontekstu procesu wybranego do wykonania Systemy operacyjne Andrzej Wielgus IMiO Wykonywanie kodu jądra systemu (1) • Czy system operacyjny działa jak proces? • Wykonywanie kodu jądra niezaleŜnie od procesów • Wykonywanie kodu jądra w kontekście bieŜącego procesu tryb uŜytkownika -> tryb jądra • Wykonywanie kodu jądra jako odrębnych procesów/wątków Systemy operacyjne Andrzej Wielgus IMiO Wykonywanie kodu jądra systemu (2) • Kod jądra wykonywany niezaleŜnie od procesów proces proces proces proces tryb uŜytkownika tryb jądra Systemy operacyjne jądro Andrzej Wielgus IMiO Wykonywanie kodu jądra systemu (3) • Funkcje jądra w kontekście bieŜącego procesu tryb uŜytkownika tryb jądra proces proces proces proces funkcje jądra systemu funkcje jądra systemu funkcje jądra systemu funkcje jądra systemu jądro Systemy operacyjne Andrzej Wielgus IMiO Wykonywanie kodu jądra systemu (4) • Funkcje jądra jako odrębne procesy/wątki proces proces tryb uŜytkownika wątek jądra wątek jądra tryb jądra jądro Systemy operacyjne Andrzej Wielgus IMiO Planowanie procesów • Kolejki planowania procesów kolejka zadań (procesów) – lista wszystkich uruchomionych procesów kolejka procesów gotowych – lista wszystkich procesów w pamięci operacyjnej, gotowych do wykonania i czekających na procesor kolejki do urządzeń we-wy Systemy operacyjne Andrzej Wielgus IMiO Diagram kolejek Systemy operacyjne Andrzej Wielgus IMiO Zagadnienia planowania (1) • Planowanie długoterminowe planowanie zadań polega na wyborze procesów do wykonania i załadowaniu ich do pamięci nadzoruje stopień wieloprogramowości, głównie w systemach wsadowych planista długoterminowy jest wywoływany bardzo rzadko (sekundy, minuty) Systemy operacyjne Andrzej Wielgus IMiO Zagadnienia planowania (2) • Planowanie krótkoterminowe planowanie przydziału procesora, szeregowanie procesów polega na wyborze jednego procesu z kolejki procesów gotowych i przydzieleniu mu dostępu do procesora dominuje w systemach z podziałem czasu planista krótkoterminowy jest wywoływany bardzo często (milisekundy) Systemy operacyjne Andrzej Wielgus IMiO Zagadnienia planowania (3) • Planowanie średnioterminowe polega na okresowej wymianie procesów pomiędzy pamięcią operacyjną i pomocniczą umoŜliwia czasowe zmniejszenie stopnia wieloprogramowości pośredni etap w planowaniu procesów, często stosowany w systemach wielozadaniowych Systemy operacyjne Andrzej Wielgus IMiO Planowanie przydziału procesora (1) • Koncepcja wykonania procesu cykl faz procesora i faz wejścia-wyjścia • Planista (scheduler) wybiera jeden proces spośród procesów gotowych decyzje o przydziale procesora – aktywny -> gotowy – aktywny -> czekający – czekający -> gotowy – aktywny -> zakończony Systemy operacyjne Andrzej Wielgus IMiO Planowanie przydziału procesora (2) • Wywłaszczanie procesów przerwanie aktywnego procesu w celu dokonania wyboru innego procesu do wykonania • Ekspedytor procesów (dispatcher) przełączenie kontekstu – zachowanie kontekstu starego procesu i załadowanie do rejestrów kontekstu nowego procesu przełączanie do trybu uŜytkownika wznowienie wykonania programu opóźnienie ekspedycji powinno być jak najkrótsze Systemy operacyjne Andrzej Wielgus IMiO Algorytmy planowania • Kryteria planowania Systemy operacyjne wykorzystanie procesora przepustowość systemu czas cyklu przetwarzania czas oczekiwania czas odpowiedzi wariancja czasu odpowiedzi Andrzej Wielgus IMiO Algorytm FCFS • FCFS - First Come, First Served „pierwszy zgłoszony-pierwszy obsłuŜony” „kto pierwszy, ten lepszy” • Wybierany jest pierwszy proces z kolejki, czyli proces, który pierwszy zgłosił gotowość do wykonania • Algorytm niewywłaszczający • Efekt konwoju Systemy operacyjne Andrzej Wielgus IMiO Algorytm FCFS - przykład Proces P1 P2 P3 Priorytet 2 1 3 Czas nadejścia 0 1 0 P1 0 Czas fazy procesora 5 2 1 P3 5 P2 6 8 • Czas oczekiwania: P1 = 0, P2 = 6-1 = 5, P3 = 5 Tśr = (0+5+5)/3 = 3,33 Systemy operacyjne Andrzej Wielgus IMiO Algorytm SJF • SJF - Shortest Job First „najpierw najkrótsze zadanie” • KaŜdy proces ma określoną długość następnej fazy procesora • Wybierany jest proces, który ma najkrótszą następną fazę procesora • Dwie wersje niewywłaszczająca wywłaszczająca • Algorytm optymalny ze względu na minimalny średni czas oczekiwania procesów Systemy operacyjne Andrzej Wielgus IMiO Algorytm SJF - przykład Proces P1 P2 P3 Priorytet 2 1 3 P3 0 Czas nadejścia 0 1 0 P2 1 Czas fazy procesora 5 2 1 P1 3 8 Tśr = (0+0+3)/3 = 1 Systemy operacyjne Andrzej Wielgus IMiO Algorytm priorytetowy • KaŜdy proces ma przydzielony priorytet liczba całkowita z ustalonego przedziału • Wybierany jest proces o najwyŜszym priorytecie • Definiowanie priorytetu zewnętrzne wewnętrzne - np. zuŜycie czasu procesora • Wersje wywłaszczająca niewywłaszczająca Systemy operacyjne Andrzej Wielgus IMiO Algorytm priorytetowy - przykład Proces P1 P2 P3 Priorytet 2 1 3 Czas nadejścia 0 1 0 P3 0 Czas fazy procesora 5 2 1 P2 P1 1 6 8 Tśr = (1+5+0)/3 = 2 Systemy operacyjne Andrzej Wielgus IMiO Algorytm priorytetowy • Problem głodzenia nieskończone oczekiwanie procesu o niskim priorytecie • Postarzanie procesów stopniowe podwyŜszanie priorytetów procesów w miarę upływu czasu Systemy operacyjne Andrzej Wielgus IMiO Algorytm rotacyjny • RR - Round Robin • Wybierany jest pierwszy proces z kolejki procesów gotowych • Wybrany proces dostaje kwant czasu procesora • Po upłynięciu przydzielonego kwantu czasu proces jest przerywany i umieszczany na końcu kolejki • Podział czasu (wielozadaniowość) • Wybór kwantu czasu znacząco większy od czasu przełączania kontekstu zbyt duŜy => algorytm FCFS Systemy operacyjne Andrzej Wielgus IMiO Algorytm rotacyjny - przykład Proces P1 P2 P3 Priorytet 2 1 3 P1 0 P3 1 Czas nadejścia 0 1 0 P2 2 P1 3 P2 P1 Czas fazy procesora 5 2 1 P1 P1 8 Tśr = (3+2+1)/3 = 2 Systemy operacyjne Andrzej Wielgus IMiO Wielopoziomowe planowanie kolejek • Procesy przydzielane są do wielu kolejek metoda przydziału gotowego procesu do konkretnej kolejki • Szeregowanie procesów w kolejce kaŜda kolejka ma ustalony odrębny algorytm planowania procesów • Szeregowanie kolejek ustalone priorytety kolejek rotacja z kwantem czasu Systemy operacyjne Andrzej Wielgus IMiO Wielopoziomowe planowanie kolejek ze sprzęŜeniem zwrotnym • Procesy mogą się przemieszczać pomiędzy kolejkami • Wiele kolejek procesów gotowych Systemy operacyjne metoda przydziału procesu do kolejki metoda awansu procesu do „lepszej” kolejki metoda degradacji procesu do „gorszej” kolejki algorytm szeregowania procesów w kolejce Andrzej Wielgus IMiO Planowanie wieloprocesorowe • Wspólna kolejka procesów gotowych • Wieloprzetwarzanie symetryczne kaŜdy procesor sam planuje swoje działanie wiele procesorów korzysta ze wspólnych struktur danych systemu konieczna jest synchronizacja dostępu do sekcji krytycznej • Wieloprzetwarzanie asymetryczne wyróŜniony procesor pełni funkcję planisty dla pozostałych procesorów tylko jeden procesor korzysta ze struktur danych systemu Systemy operacyjne Andrzej Wielgus IMiO Planowanie w czasie rzeczywistym • System rygorystyczny zlecenie uruchomienia procesu wraz z wymaganiami czasowymi planista akceptuje proces i udziela gwarancji terminowego wykonania planista odrzuca zlecenie jako niewykonalne • System łagodny Systemy operacyjne planowanie priorytetowe procesy czasu rzeczywistego mają najwyŜszy priorytet brak postarzania procesów czasu rzeczywistego wymagane małe opóźnienie ekspediowania procesu do procesora Andrzej Wielgus IMiO Pojęcie wątku • Wątek – sekwencyjny przepływ sterowania w programie • Grupa wątków w procesie współdzieli kod programu dane zasoby systemu operacyjnego • Wątek licznik rozkazów rejestry procesora stos • Tradycyjny proces = proces jednowątkowy Systemy operacyjne Andrzej Wielgus IMiO Wielowątkowość Proces jednowątkowy kod dane pliki Proces wielowątkowy kod Systemy operacyjne rejestry pliki ... ... licznik rozkazów dane stos Wątek Wątek Wątek licznik rozkazów licznik rozkazów licznik rozkazów rejestry rejestry rejestry stos stos stos Andrzej Wielgus IMiO Wątki uŜytkownika a wątki jądra • Wątki uŜytkownika realizacja i zarządzanie przez bibliotekę funkcji na poziomie uŜytkownika nie są rozróŜniane przez jądro szybkie tworzenie i przełączanie moŜliwość zablokowania całego procesu przez jeden wątek brak moŜliwości wieloprzetwarzania • Wątki jądra realizacja i zarządzanie przez jądro wolniejsze tworzenie i przełączanie – konieczne przełączenie procesora w tryb jądra moŜliwość wieloprzetwarzania w systemie wieloprocesorowym Systemy operacyjne Andrzej Wielgus IMiO Modele implementacji wątków • Model m-1 • Model 1-1 • Model m-n Systemy operacyjne Andrzej Wielgus IMiO Model m-1 proces biblioteka jądro CPU • Wiele wątków uŜytkownika odwzorowanych na 1 wątek jądra Systemy operacyjne Andrzej Wielgus IMiO Model 1-1 proces jądro CPU CPU • KaŜdy wątek uŜytkownika odwzorowany na 1 wątek jądra Systemy operacyjne Andrzej Wielgus IMiO Model m–n proces biblioteka jądro CPU CPU • Wiele wątków uŜytkownika odwzorowanych na wiele wątków jądra Systemy operacyjne Andrzej Wielgus IMiO Model mieszany proces proces biblioteka jądro CPU CPU • Połączenie modeli m-n i 1-1 Systemy operacyjne Andrzej Wielgus IMiO