1 ZARZĄDZANIE PROCESAMIDr Anna Kwiatkowska Instytut Informatyki
2 Procesy Procesem jest program umieszczony w pamięci komputera i wykonywany pod nadzorem systemu operacyjnego Proces jest ciągiem czynności, zaś program jest ciągiem instrukcji Sam program nie jest procesem, gdyż jest obiektem pasywnym Proces jest obiektem aktywnym z licznikiem rozkazów wskazującym następny rozkaz do wykonania oraz ze zbiorem przydzielonych mu zasobów
3 Zarządzanie procesamiDo wypełnienia swojego zadania proces potrzebuje pewnych zasobów, takich, jak czas procesora, pamięć, pliki i urządzenia we/wy Zasoby są przydzielane procesowi w chwili jego tworzenia lub podczas późniejszego działania Wykonanie procesu musi przebiegać w sposób sekwencyjny, co oznacza, że w dowolnej chwili na zamówienie danego procesu może być wykonywany co najwyżej jeden rozkaz kodu programu
4 Zarządzanie procesamiSystem operacyjny odpowiada za następujące działania dotyczące zarządzania procesami: tworzenie i usuwanie zarówno procesów użytkownika, jak i procesów systemowych planowanie porządku wykonywania procesów mechanizmy synchronizacji komunikacji usuwanie zakleszczeń procesów
5 Stany procesów Wykonujący się proces zmienia swój stanKażdy proces może znajdować się w jednym z następujących stanów: nowy (proces został utworzony) aktywny (są wykonywane instrukcje programu) oczekiwanie (proces czeka na jakieś zdarzenie) gotowy (proces czeka na przydział procesora) zakończony (proces zakończył działanie)
6 Blok kontrolny procesuKażdy proces jest reprezentowany w systemie operacyjnym przez blok kontrolny procesu (Process Control Block – PCB), nazywany również blokiem kontrolnym zadania Zawiera on wiele informacji związanych z danym procesem Blok kontrolny procesu służy po prostu jako magazyn przechowujący wszelkie informacje dla systemu umożliwiające zarządzanie procesem
7 PCB stan procesu licznik rozkazów ( wskazuje adres następnego rozkazu do wykonania w procesie) rejestry procesora – informacje dotyczące tych rejestrów i licznika rozkazów muszą być przechowywane podczas przerwań, aby proces mógł być później kontynuowany informacje o planowaniu przydziału procesora (np. priorytet procesu) informacje o zarządzaniu pamięcią informacje do rozliczeń (np. ilość zużytego czasu procesora) informacje o stanie we/wy ( np. o urządzeniach we/wy przydzielonych do procesu, wykaz otwartych plików).
8 Przydział czasu procesoraPlanowanie przydziału czasu procesora jest podstawą działania wieloprogramowych systemów operacyjnych Celem wieloprogramowania jest stałe utrzymywanie w działaniu pewnej liczby procesów
9 Przydział czasu procesoraPrzydział procesora może odbywać się w następujących sytuacjach: proces przeszedł od stanu aktywności do stanu czekania (np. na we/wy), proces przeszedł od stanu aktywności do stanu gotowości (np. wskutek przerwania), proces przeszedł od stanu czekania do stanu gotowości (np. po zakończeniu operacji we/wy), proces kończy działanie
10 Przydział czasu procesoraJeżeli planowanie odbywa się tylko w sytuacjach a) i d), to mówimy o planowaniu bez wywłaszczeń W tych sytuacjach proces, który otrzyma procesor zachowuje go aż do swojego zakończenia lub przejścia do stanu czekania Ta metoda planowania jest używana w środowisku Microsoft Windows W przypadku, gdy planowanie odbywa się w sytuacjach b) i c), mówimy o planowaniu wywłaszczającym
11 Metody szeregowania i przydziału zasobówMetoda FCFS „pierwszy zgłoszony, pierwszy obsłużony” (First Come, First Served) W metodzie tej procesy wykonywane są w kolejności przybywania Łatwą implementację tego algorytmu uzyskuje się za pomocą kolejki FIFO (First Input First Output)
12 Przykład Metoda FCFS Kolejność przybycia procesów: proces P1 24 P2 3zapotrzebowanie na CPU P1 24 P2 3 P3
13 P1 P2 P3 PROCESOR
14 1 2 3 CZAS OCZEKIWANIA PROCESOR
15 1 2 3 CZAS OCZEKIWANIA 24 PROCESOR
16 1 2 3 CZAS OCZEKIWANIA 27 PROCESOR
17 Średni czas oczekiwaniadla P1 czas oczekiwania =0 dla P2 czas oczekiwania =24 dla P3 czas oczekiwania =24+3=27 średni czas oczekiwania = (24+27)/3=17
18 Przykład Metoda FCFS Kolejność przybycia procesów: proces P2 3 P3 P1zapotrzebowanie na CPU P2 3 P3 P1 24
19 P2 P3 P1 PROCESOR
20 2 3 1 CZAS OCZEKIWANIA PROCESOR
21 2 3 1 CZAS OCZEKIWANIA 3 PROCESOR
22 2 3 1 CZAS OCZEKIWANIA 6 PROCESOR
23 Średni czas oczekiwaniadla P1 czas oczekiwania =0 dla P2 czas oczekiwania =3 dla P3 czas oczekiwania =3+3=6 średni czas oczekiwania = (3+6)/3=3 Podsumowując można stwierdzić, że w tym algorytmie procesy krótkie są wstrzymywane przez długie, zatem średni czas oczekiwania może być długi
24 Metody szeregowania i przydziału zasobówMetoda SJF „najkrótsze zadanie najpierw” (Shortest Job First) Realizując tą metodę procesor przydziela sie temu procesowi, który ma najkrótszą fazę zapotrzebowania W przypadku, gdy fazy są równe, stosuje się metodę FCFS
25 Przykład Kolejność przybycia procesów: proces P1 24 P2 3 P3zapotrzebowanie na CPU P1 24 P2 3 P3
26 24 3 3 P1 P2 P3 2 PROCESOR
27 3 1 2 3 CZAS OCZEKIWANIA PROCESOR
28 3 1 2 3 CZAS OCZEKIWANIA 3 PROCESOR
29 24 1 2 3 CZAS OCZEKIWANIA 6 PROCESOR
30 Średni czas oczekiwaniadla P2 czas oczekiwania =0 dla P3 czas oczekiwania =3 dla P1 czas oczekiwania =3+3=6 średni czas oczekiwania = (3+6)/3=3 Algorytm ten zapewnia minimalny średni czas wykonania, ale wadą jest konieczność znajomości czasów wykonania poszczególnych procesów
31 Metody szeregowania i przydziału zasobówSzeregowanie priorytetowe Z każdym procesem jest związany priorytet, który jest liczbą naturalną W tej metodzie procesor przydziela się w pierwszej kolejności procesowi z najwyższym priorytetem
32 Metody szeregowania i przydziału zasobówMetoda szeregowania karuzelowego (Round Robin ) zaprojektowano go specjalnie dla systemów z podziałem czasu istotą tej metody jest podzielenie czasu procesora na kwanty (ang. time quantum)
33 Round Robin kwant czasu wynosi zwykle od 10 do 100 milisekundjeżeli po zakończeniu kwantu czasu wykonywanego procesu nie zakończono, to jest on przerywany i ustawiany na koniec kolejki a do wykonania jest pobierany następny proces według algorytmu FCFS
34 Kwant czasu jest równy 4 msPrzykład Kwant czasu jest równy 4 ms Kolejność przybycia procesów: proces zapotrzebowanie na CPU P1 24 P2 3 P3
35 P1 P2 P3 4 ms 24 3 3 PROCESOR
36 24 3 3 1 2 3 4 ms PROCESOR CZAS OCZEKIWANIA
37 20 3 3 1 2 3 4 ms PROCESOR 4 CZAS OCZEKIWANIA
38 20 2 3 1 3 4 ms PROCESOR 7 CZAS OCZEKIWANIA
39 20 3 1 4 ms PROCESOR 10 CZAS OCZEKIWANIA
40 16 1 4 ms PROCESOR
41 12 1 4 ms PROCESOR
42 8 1 4 ms PROCESOR
43 4 1 4 ms PROCESOR
44 1 4 ms PROCESOR
45 Średni czas oczekiwaniadla P1 czas oczekiwania =10 dla P2 czas oczekiwania =4 dla P3 czas oczekiwania =7 średni czas oczekiwania = (10+4+7)/3=7 średni czas oczekiwania w metodzie rotacyjnej bywa dość długi