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 ProgramProces Pliki wykonywalne (na dysku) ze zdefiniowanym algorytmem (rozkazy) i danymi Wykonywany program, umieszczony w pamięci Pojęcie statycznePoję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 NowyGotowyDziałającyZakończony ZawieszonyZablokowany 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 NowyGotowyDziałającyZakończony ZawieszonyZablokowany 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ą) NowyGotowy Działający Proces otrzymuje przydział procesora; planista - algorytm szeregowania (scheduler), priorytety; wywłaszczenie DziałającyGotowy 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ącyZablokowany Gotowy Wystąpiło oczekiwane zdarzenie, proces może być kontynuowany ZablokowanyZawieszony 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 ZawieszonyGotowyDziałającyZakoń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 Proces Przestrzeń adresowa, pliki, zmienne globalne Wątek 1Wątek 2Wą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