Procesy, wątki
description
Transcript of Procesy, wątki
Procesy, wątki
Program a proces
Proces:
• Przestrzeń adresowa, kod, dane, stos (część pamięci do
przechowania zmiennych lokalnych i niektórych adresów)
• Otwarte pliki
• urządzenia
Program Proces
Pliki wykonywalne (na dysku) ze zdefiniowanym algorytmem
(rozkazy) i danymi
Wykonywany program, umieszczony w pamięci
Pojęcie statyczne Pojęcie dynamiczne (zmiana np. licznika rozkazów)
Procesy, wątki
Stany procesu, model sześciostanowy
Stan nowo utworzonego procesu przed dołączeniem do zadań
gotowych do uruchomienia
Nowy Gotowy Działający Zakończony
Zawieszony Zablokowany
Nowy
Gotowy Może być natychmiast uruchomiony
Działający Aktywny; na jednym procesorze w danej chwili działać może
tylko jeden proces
Procesy, wątki
Stany procesu, model sześciostanowy
oczekujący, będzie można go uruchomić dopiero po wystąpieniu
zdarzenia, np. zakończeniu operacji WE / WY
Nowy Gotowy Działający Zakończony
Zawieszony Zablokowany
Zablokowany
Zakończony Ukończył zadania, bądź został wyłączony (bo np. błąd)
Zawieszony Przeniesiony do pamięci niższego rzędu, długo oczekuje na
zdarzenie (np. zwolnienie WE/WY przez inny proces)
Procesy, wątki
Przejścia pomiędzy stanami procesu
System przekazuje proces do kolejki procesów gotowych, umieszczenie w
pamięci. Ograniczenie liczby procesów gotowych (nowe czekają)
Nowy Gotowy
Gotowy Działający
Proces otrzymuje przydział procesora; planista - algorytm szeregowania
(scheduler), priorytety; wywłaszczenie
Działający Gotowy
koniec limitu czasu; wywłaszczenie przez proces o wyższym priorytecie, który
skończył czekanie, w systemach bez wywłaszczania – proces „sam” może
oddać procesor; trzeba zapamiętać stan rejestrów – kontekst procesu
Procesy, wątki
Przejścia pomiędzy stanami procesu
Proces oczekuje np. na operację WE/WY, na dane od innego procesu (lub
wątku), dane z chwilowo niedostępnego obszaru pamięci
Działający Zablokowany
Zablokowany Gotowy
Wystąpiło oczekiwane zdarzenie, proces może być
kontynuowany
Zablokowany Zawieszony
Oczekuje na jakieś zdarzenie, przeniesiony do pamięci niższego poziomu
(dysk) w celu zwolnienia pamięci na inne procesy
Procesy, wątki
Przejścia pomiędzy stanami procesu
Nastąpiło oczekiwane zdarzenie, jest dość wolnej pamięci
Zawieszony Gotowy
Działający Zakończony
Zadanie zostało ukończone, lub w trakcie wykonywania pojawił się błąd uniemożliwiający dalszą pracę (np. naruszenie ochrony pamięci)
Na danej jednostce (procesorze jednordzeniowym lub rdzeniu procesora wielordzeniowego) w danym
momencie tylko jeden proces może być w stanie „działający”!
Procesy, wątki
Wielowątkowość
Proces:
• Jednowątkowy – poszczególne zadania przetwarzane są
sekwencyjnie, jedno po drugim
• Wielowątkowy – proces zawiera niezależne od siebie zadania,
które mogą być wykonywane jednocześnie
ProcesPrzestrzeń adresowa, pliki, zmienne globalne
Wątek 1 Wątek 2 Wątek 3
• Licznik rozkazów• Rejestry• Stos • stan
• Licznik rozkazów• Rejestry• Stos • stan
• Licznik rozkazów• Rejestry• Stos • stan
Procesy, wątki
Wielowątkowość
Wątki:
• Wymagają mniej zasobów niż procesy, krótszy jest ich czas
tworzenia
• Wątki należą do przestrzeni adresowej jednego procesu, mogą
szybko się komunikować (wymiana danych pomiędzy wątkami
szybsza niż pomiędzy procesami, procesy są od siebie izolowane –
ochrona pamięci)
• Wielowątkowość, wieloprocesorowość: przyspieszenie wykonywania
programów
Procesy, wątki
Wielowątkowość
System operacyjny
• Przechowuje informacje (ślady) o działaniu różnych procesów
• Przydziela i odbiera zasoby: czas procesora, pamięć, pliki,
urządzenia WE / WY
• Chroni dane i zasoby każdego procesu przed działaniem innych
procesów (pamięć, pliki, WE / WY)
• Wynik działania procesu nie może zależeć od tempa przetwarzania
innych procesów
Procesy, wątki
Współbieżność procesów lub wątków
Wielozadaniowy system operacyjny posiada narzędzia dotyczące pojęć:
• Wykluczanie wzajemne: w danym czasie tylko jedno zadanie ma dostęp
do wspólnych zasobów; sekcja krytyczna: fragment procesu, w którym
wykorzystywane są wspólne zmienne, pliki itd.
• Synchronizacja: koordynacja działania różnych procesów, zapewniająca
właściwą wymianę informacji między nimi
• Zakleszczenie: wzajemne blokowanie się procesów, Proces A czeka na
efekty procesu B, B na C, a C nie może zacząć, bo czeka na informację
od A. Metody zapobiegania, unikania i wykrywania
• Zagłodzenie: proces ma niski priorytet i może nigdy nie doczekać się
dostępu do zasobów; może być efektem unikania zakleszczeń,
niewłaściwego algorytmu szeregowania, zbyt duże liczby zadań
Procesy, wątki
Współbieżność procesów lub wątków
Wielozadaniowy system operacyjny posiada narzędzia dotyczące pojęć:
• Algorytm szeregujący, planista,
Planista krótkoterminowy: ustalanie kolejności wykonywania zadań
gotowych, musi być szybki
długoterminowy: dołączanie procesów do listy gotowych
• Wywłaszczenie: wstrzymanie aktualnie wykonywanego zadania, by
mogło się przetwarzać inne (istnieją rozwiązania bez wywłaszczania –
zadania „same” oddają sterowanie)
Procesy, wątki
Współczesne systemy operacyjne
Wielozadaniowość, wielowątkowość z wywłaszczaniem (przerwania, planista)
Symetryczne przetwarzanie wieloprocesorowe