Procesy, wątki

12
Procesy, wątki Program a 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)

description

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. Procesy, wątki. Nowy. Gotowy. Działający. Zakończony. Zawieszony. Zablokowany. - PowerPoint PPT Presentation

Transcript of Procesy, wątki

Page 1: 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)

Page 2: Procesy, wątki

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

Page 3: Procesy, wątki

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)

Page 4: Procesy, wątki

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

Page 5: Procesy, wątki

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

Page 6: Procesy, wątki

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”!

Page 7: Procesy, wątki

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

Page 8: Procesy, wątki

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

Page 9: Procesy, wątki

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

Page 10: Procesy, wątki

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ń

Page 11: Procesy, wątki

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)

Page 12: Procesy, wątki

Procesy, wątki

Współczesne systemy operacyjne

Wielozadaniowość, wielowątkowość z wywłaszczaniem (przerwania, planista)

Symetryczne przetwarzanie wieloprocesorowe