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