2017-05-13 1

Download (0)

Full text

(1)

4.1

Wykład 5: Procesy i planowanie

 Podstawowe pojęcia

 Koncepcja procesu

 Kryteria planowania

 Algorytmy planowania

 Planowanie wieloprocesorowe

 Planowanie w systemach czasu rzeczywistego

 Ocena algorytmów

Wykład 5, Systemy operacyjne (studia zaoczne) PJWSTK, Adam Smyk, 2016/17

4.2

Ogólne składowe systemu

Istnieje kilka dogodnych sposobów patrzenia na SO:

poprzez przegląd świadczonych przez system usług

Interfejs, który system udostępnia użytkownikom i programistom

poszczególne części systemu i ich wzajemne powiązania

Współczesne SO zawierają następujące części składowe:

 zarządzanie procesami

 zarządzanie pamięcią operacyjną

 zarządzanie plikami

 zarządzanie systemem we/wy

 zarządzanie pamięcią pomocniczą

 praca sieciowa

 system ochrony

 system interpretacji poleceń

4.3

Ogólne składowe systemu

Współczesne SO zawierają następujące części składowe:

zarządzanie procesami

….

Nośnikiem każdego procesu jest zawsze w efekcie jakiś system fizyczny.

Każdy kolejny stan/zmiana systemu spowodowana jest przez stan/zmianę poprzednią albo przez oddziaływanie zewnętrzne na system.

Z punktu widzenia najbardziej ogólnego, tzn. systemowego, rozróżniamy procesy ciągłe i dyskretne.

Zgodnie z pl.wikipedia.org:

Proces to uporządkowany w czasie ciąg zmian i stanów zachodzących po sobie.

4.4

Ogólne składowe systemu

Współczesne SO zawierają następujące części składowe:

 zarządzanie procesami

 ….

Wyróżniamy też procesy naturalne i sztuczne.

Procesami naturalnymi zajmują się nauki przyrodnicze (fizyka, chemia, biologia, itd.)

Procesami sztucznymi zajmuje się inżynieria i nauki społeczne.

Zgodnie z pl.wikipedia.org:

Procesy ciągłe to takie gdzie na dowolnym skończonym odcinku czas możemy wyróżnić nieskończoną liczbę zmian a różnice między nimi są dowolnie małe.

Takie procesy opisują wiele podstawowych zjawisk fizycznych.

Procesy dyskretne to takie w których możemy wyróżnić skończoną liczbę zdarzeń/stanów.

4.5

Składowe systemu

Zarządzanie procesami

Program jest pasywną reprezentacją procesu - jeden wykonywany program rodzi wiele procesów

Proces to program, który jest wykonywany w sposób sekwencyjny, a podczas jego wykonywania licznik rozkazów określa następną instrukcję wykonania

Proces wymaga określonych zasobów, w tym czasu procesora, pamięci, plików, urządzeń WE/WY

4.6

Zarządzanie procesami

W odniesieniu do zarządzania procesami SO odpowiada za:

tworzenie i usuwanie zarówno procesów użytkowych, jak systemowych

wstrzymywanie i wznawianie procesów

dostarczanie mechanizmów

synchronizacji procesów

komunikacji procesów

obsługi zakleszczeń

(2)

4.7

Koncepcja procesu

 System operacyjny wykonuje różnorodne programy :

System wsadowy – zadania (jobs)

Systemy z podziałem czasu – bieżące programy użytkownika (tasks)

 Terminy zadanie i proces są stosowane prawie zamiennie,

 Proces – program w trakcie wykonywania; jego wykonanie musi przebiegać sekwencyjnie.

 Proces zawiera:

Licznik rozkazów (adres ostatnio wykonywanej instrukcji)

Zawartość rejestrów procesu

Wskaźnik stosu

Przestrzeń adresową:

Kod procesu – sekcja tekstu

Dane zainicjalizowane – sekcja danych

Dane niezainicjalizowane

Stos procesu – przechowuje dane tymczasowe (parametry procedur, adresy powrotne, zmienne tymczasowe)

4.8

Stan procesu

 Wykonujący się proces zmienia swój stan, wyróżniamy stany

nowy : proces zostaje utworzony.

aktywny : instrukcje są wykonywane.

oczekujący : proces czeka na wystąpienie jakiegoś zdarzenia (np. zakończenie operacji WE/WY).

gotowy : proces czeka na przydział procesora.

zakończony : proces zakończył działanie.

 Diagram stanów procesu nowy

gotowy aktywny

zakończony

oczekujący

Przyjęcie Przerwanie Wyjście

Decyzja planista

Oczekiwanie na zdarzenie lub na wykonanie Operacji we/wy Zakończenie obsługi zdarzenia

lub operacji we/wy

4.9

Blok kontrolny procesu

(ang. process control block PCB) Informacje związane z każdym procesem zawarte są

w bloku kontrolnym procesu:

 Stan procesu – gotowy …..

 Licznik rozkazów - Licznik ten wskazuje adres następnego rozkazu do wykonania w procesie

 Rejestry procesora - Liczba i typy rejestrów zależą od architektury komputera; są tu akumulatory, rejestry indeksowe, wskaźniki stosu, rejestry ogólnego przeznaczenia oraz rejestry warunków. Informacje dotyczące tych rejestrów i licznika rozkazów muszą być przechowywane podczas przerwań, aby proces mógł być później poprawnie kontynuowany.

 Informacje o planowaniu przydziału procesora - Należą do nich: priorytet procesu, wskaźniki do kolejek przyporządkowujących zamówienia, a także inne parametry planowania.

wskaźnik stan procesu

numer procesu licznik rozkazów

rejestry

ograniczenia pamięci lista otwartych plików

. . .

4.10

Blok kontrolny procesu (PCB)

 Informacje o zarządzaniu pamięcią - Mogą to być informacje takie, jak zawartości rejestrów granicznych, tablice stron, lub tablice segmentów - zależnie od systemu pamięci używanej przez SO.

 Informacje do rozliczeń - Do tej kategorii informacji należy ilość zużytego czasu procesora i czasu rzeczywistego, ograniczenia czasowe, numery zadań lub procesów itp.

 Informacje o stanie WE/WY - Mieszczą się tu informacje o urządzeniach WE/WY (np. o jednostkach dyskowych) przydzielonych do procesu, wykaz otwartych plików itd.

wskaźnik stan procesu

numer procesu licznik rozkazów

rejestry

ograniczenia pamięci lista otwartych plików

. . .

wskaźnik stan procesu numer procesu licznik rozkazów

rejestry

ograniczenia pamięci lista otwartych plików . . .

wskaźnik stan procesu numer procesu licznik rozkazów

rejestry

ograniczenia pamięci lista otwartych plików . . . wskaźnik stan

procesu numer procesu licznik rozkazów

rejestry

ograniczenia pamięci lista otwartych plików . . . wskaźnik stan

procesu numer procesu licznik rozkazów

rejestry

ograniczenia pamięci lista otwartych plików . . .

wskaźnik stan procesu numer procesu licznik rozkazów

rejestry

ograniczenia pamięci lista otwartych plików . . . wskaźnik stan

procesu numer procesu licznik rozkazów

rejestry

ograniczenia pamięci lista otwartych plików . . .

Przełączanie kontekstu

Gdy CPU przełącza się do innego procesu, system musi przechować stan starego procesu i załadować przechowywany stan nowego procesu – nazywa się to przełączaniem kontekstu.

 Czas przełączania kontekstu jest obciążeniem dla systemu, które nie jest związane z żadną użyteczną pracą.

 Czas ten zależy w dużym stopniu od możliwości sprzętu.

Przełączanie kontekstu

Proces P0 system operacyjny Proces P1

zapisz stan do PCB0

załaduj stan z PCB1

zapisz stan do PCB1

załaduj stan z PCB0 przerwanie albo funkcja systemowa przerwanie albo funkcja systemowa

wykonywanie

wykonywanie wykonywanie

bezczynny

bezczynny

bezczynny

(3)

4.13

Wykład 9: Planowanie procesów

 Podstawowe pojęcia

 Kryteria planowania

 Algorytmy planowania

 Planowanie wieloprocesorowe

 Planowanie w czasie rzeczywistym

 Ocena algorytmów

Wykład 5, Systemy operacyjne (studia zaoczne) PJWSTK, Adam Smyk, 2014/15

4.14

Pojęcia podstawowe

Wieloprogramowość – wieloprocesowość –

wiele programów (procesów) może być wykonanych w systemie z podziałem czasu

Maksymalne wykorzystanie procesora

– ma wielkie znaczenie (głównie ze względów ekonomicznych), a może być osiągnięte dzięki stałemu utrzymywaniu w gotowości/działaniu kilku/kilkunastu/kilkudziesięciu procesów.

4.15

Naprzemienny ciąg faz procesora i operacji wejścia/wyjścia

 Cykle faz procesora i cykle faz we/wy

– Wykonanie procesu składa się z cykli faz procesora i oczekiwania na we/wy.

 Zarządzanie fazami procesora

– taki rozkład wykonania procesów, aby każdy z nich był uzyskał „sprawiedliwy”

dostęp do jednostki wykonawczej, albo do innych zasobów.

4.16

Histogram czasów faz procesora

(przypadek 1)

0 20 40 60 80 100 120 140 160

1 9 17 25 33 41

Częstość występowania fazy

Czas trwania fazy [ms]

4.17 0

50 100 150 200 250

1 9 17 25 33 41 49 57 65 73 81 89 97 105 113 121 129 137 145 153 161 169 177 185 193 201

Częstość występowania fazy

Czas trwania fazy [ms]

Histogram czasów faz procesora

(przypadek 2)

4.18

Planista procesora (krótkoterminowy)

 Wybiera jeden proces spośród przebywających w pamięci (w kolejkach) procesów gotowych do wykonania i przydziela mu procesor.

 Jak może wyglądać kolejka?

p1

p2 p3 p4

p5

p1

p2

p3

p4

p5

p1

p2 p3 p4 p5 p6

p1 p2 p3 p4 p5

(4)

4.19

Planista procesora (krótkoterminowy)

 Decyzje o przydziale procesora mogą zapaść gdy proces:

1. Przeszedł ze stanu aktywności do stanu oczekiwania.

2. Przeszedł ze stanu aktywności do gotowości.

3. Przeszedł od stanu oczekiwania do gotowości.

4. Kończy się.

 Jeśli planowanie odbywa się tylko w sytuacjach 1 i 4 to mówimy o planowaniu niewywłaszczeniowym.

 Wszystkie inne przypadki przedstawiają planowanie wywłaszczeniowe.

nowy

gotowy aktywny

zakończony

oczekujący

Przyjęcie Przerwanie Wyjście

Decyzja planista

Oczekiwanie na zdarzenie lub na wykonanie

Operacji we/wy Zakończenie obsługi zdarzenia

lub operacji we/wy

4.20

Planista procesora (krótkoterminowy)

 Planowanie bez wywłaszczania nie wymaga zastosowania żadnego dodatkowego sprzętu (typu timer) przy obsłudze zmiany kontekstu

 Przy planowaniu wywłaszczeniowym ponosimy dodatkowe koszty związane ze sprzętem, z być może konieczną modyfikacją jądra, z

„droższymi” operacjami w zmodyfikowanym jądrze, z wprowadzeniem operacji synchronizacji.

nowy

gotowy aktywny

zakończony

oczekujący

Przyjęcie Przerwanie Wyjście

Decyzja planista

Oczekiwanie na zdarzenie lub na wykonanie

Operacji we/wy Zakończenie obsługi zdarzenia

lub operacji we/wy

4.21

Ekspedytor

(ang. dispatcher)

 Moduł ekspediujący przekazuje kontrolę procesora do dyspozycji procesu wybranego przez planistę krótkoterminowego

 Do jego obowiązków należy:

Przełączanie kontekstu

Przełączanie do trybu użytkownika

Przeskok do właściwej komórki w programie użytkownika w celu wznowienia działania programu

 Opóźnianie ekspedycji (ang.

dispatch latency) – czas zużyty przez ekspedytora na wstrzymanie jednego procesu i uaktywnienie innego.

4.22

Kryteria planowania

Wykorzystanie procesora – Dąży się do tego, aby procesor był nieustannie zajęły pracą. Wykorzystanie procesora może się wahać w granicach od 0 do 100%. W rzeczywistym systemie powinno się ono mieścić w przedziale od 40% (słabe obciążenie systemu) do 90% (intensywna eksploatacja systemu).

Przepustowość – jeśli procesor jest zajęty wykonywaniem procesów, to praca postępuje naprzód. Jedną z miar pracy jest liczba procesów kończonych w jednostce czasu zwana przepustowością (ang. throughput). Dla długich procesów wartość ta może wynosić jeden proces na godzinę. Dla krótkich transakcji przepustowość może się kształtować na poziomie 10 procesów na sekundę

Kryteria planowania c.d.

Czas cyklu przetwarzania – Ważnym kryterium dla konkretnego procesu jest czas potrzebny na jego wykonanie. Czas upływający między chwilą nadejścia procesu do systemu a chwilą zakończenia procesu nazywa się czasem cyklu przetwarzania (ang. turnaround time). Jest to suma okresów spędzonych na czekaniu na wejście do pamięci, czekaniu w kolejce, procesów gotowych do wykonania, wykonywaniu procesu przez procesor i wykonywaniu operacji wejścia-wyjścia.

Czas oczekiwania – Algorytm planowania przydziału procesora nie ma faktycznie wpływu na czas, w którym proces działa lub wykonuje operacje wejścia-wyjścia: dotyczy on tylko czasu, który proces spędza w kolejce procesów gotowych do wykonania. Czas oczekiwania jest sumą okresów, w których proces czeka w kolejce procesów gotowych do działania.

Kryteria planowania c.d.

Czas odpowiedzi – W systemach interakcyjnych czas cyklu przetwarzania może nie być najlepszym kryterium. Często bywa tak, że proces produkuje pewne wyniki dość wcześnie i wykonuje następne obliczenia, podczas gdy poprzednie rezultaty są prezentowane użytkownikowi. Toteż kolejną miarą jest czas upływający między wysłaniem żądania (przedłożeniem zamówienia) a pojawieniem się pierwszej odpowiedzi. Ta miara, nosząca nazwę czasu odpowiedzi (ang.

response time), określa, ile czasu upływa do rozpoczęcia odpowiedzi, ale nie obejmuje czasu potrzebnego na wyprowadzenie tej odpowiedzi. Czas odpowiedzi jest na ogół uzależniony od szybkości działania urządzenia wyjściowego.

(5)

4.25

Kryteria optymalizacji

Maksymalne wykorzystanie procesora

Maksymalna przepustowość

Minimalny czas cyklu przetwarzania

Minimalny czas oczekiwania

Minimalny czas odpowiedzi

 W większości przypadków kryterium może być średnia (wariancja – miara zmienności) ze wszystkich lub z wybranych kryteriów

 Im więcej kryteriów tym, zazwyczaj, dokładniejsze dopasowanie charakteru procesów do charakteru systemu wykonawczego

 W systemach interaktywnych istotniejszy może być czas odpowiedzi:

lepszy: wolniejszy, ale przewidywalny

nieprzewidywalne czasowo odpowiedzi systemu obniżają komfort pracy i utrudniają zapanowanie nad systemem

4.26

Algorytmy planowania dostępu do procesora

Założenia:

1. Przy omawianiu konkretnych algorytmów, rozpatrujemy wyłącznie 1 fazę pracy procesora – cel:

ułatwienie analizy

2. Miarą stosowaną w porównaniach jest średni czas oczekiwania 3. Zależności czasowe między

procesami przedstawiane będą na wykresach Gantta.

4.27

Algorytm planowania:

Pierwszy przyszedł, Pierwszy obsłużony

(FCFS – FIFO)

 Przypuśćmy, że procesy przychodzą w kolejności: P1 , P2 , P3

 Diagram Gantta dla algorytmu planowania:

 Czas oczekiwania dla procesów: P1 = 0; P2 = 24; P3 = 27

 Średni czas oczekiwania: (0 + 24 + 27)/3 = 17

P1 P2 P3

24 27 30

0

Proces Czas trwania fazy

P1 24

P2 3

P3 3

4.28

Algorytm planowania:

Pierwszy przyszedł, Pierwszy obsłużony

(FCFS – FIFO)

 Załóżmy, że procesy nadeszły w kolejności:

P2 , P3 , P1 .

 Diagram Gantta dla algorytmu szeregowania :

 Czas oczekiwania dla P1 = 6;P2 = 0; P3 = 3

 Średni czas oczekiwania : (6 + 0 + 3)/3 = 3

 Wynik: dużo krótsze czasy oczekiwania niż w poprzednim przypadku.

P1 P3

P2

6

3 30

0

4.29

Algorytm planowania:

Pierwszy przyszedł, Pierwszy obsłużony

(FCFS – FIFO)

 Algorytm FCFS jest algorytmem bez wywłaszczania – kłopot w systemach z podziałem czasu

 Możliwy efekt konwoju: krótkie procesy czekają na zakończenie długiego procesu

P5 P2

P3 P4

Procesy o długich fazach wykonania (zależne od procesora)

Zbiór procesów o krótkich fazach wykonania (zależne od We/Wy)

TIR P1 P1

TIR P1

TIR P1

TIR

4.30

Planowanie metodą "najpierw najkrótsze zadanie” (ShortestJobFirst)

 Algorytm wiąże z każdym procesem długość jego najbliższej z przyszłych faz procesora;

Podstawowe założenie SJF: dostępny procesor zostaje przydzielony procesowi z najkrótszą następną fazą.

 Dwa warianty :

bez wywłaszczania - proces, któremu przydzielono procesor nie może być wywłaszczony dopóki nie zakończy się bieżąca faza.

z wywłaszczaniem - jeżeli przybywa nowy proces z czasem trwania fazy mniejszym aniżeli czas pozostały do zakończenia bieżącego procesu. Ten schemat nazywany jest planowaniem metodą "najpierw najkrótszy pozostały czas”.

 Jak można wykazać SJF jest algorytmem optymalnym: daje minimalny średni czas oczekiwania dla danego zbioru procesów.

(6)

4.31

 Diagram Gantta dla algorytmu SJF

 Średni czas oczekiwania = (0 + 6 + 3 + 7)/4 = 4

Przykład SJF – bez wywłaszczania

P1 P3 P2

7

3 16

0

P4

8 12

Proces Czas przybycia Czas trwania fazy

P1 0 7

P2 2 4

P3 4 1

P4 5 4

4.32

Przykład SRTF (ShortestRemainingTimeFirst)

SJF z wywłaszczaniem

 Diagram Gantta (SRTF)

 Średni czas oczekiwania = (9 + 1 + 0 +2)/4 = 3 P1 P2 P3

4

2 11

0

P4

5 7

P2 P1

16 Proces Czas przybycia Czas trwania fazy

P1 0 7

P2 2 4

P3 4 1

P4 5 4

4.33

Jak określić długość następującego zapotrzebowania procesu na procesor?

 Można tylko oszacować długość następnej fazy procesora

 Można to zrobić na podstawie znanych już poprzednich faz procesora, używając średniej wykładniczej pomiarów poprzednich faz

1. tn = aktualna długość n-tej fazy procesora

2. n+1 = przewidywana wartość długości fazy procesora w każdej chwili n+1

3. , 0  1

4. Zdefiniujemy: n+1= tn+(1- ) n

4.34

Przewidywanie następnych faz procesora na podstawie średniej wykładniczej

Faza procesora (tj) 6 6 4 6 4 13 13 13 ….

Wartość "odgadnięta" (Tj) 10 8 6 6 5 9 11 12 ….

n +1 =  t n + (1 -  )  n

Przewidywanie następnych faz procesora na podstawie średniej wykładniczej

n +1 =  t n + (1 -  )  n

0 2 4 6 8 10 12 14 16 18

1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 41 43 45 47 49

Długość fazy

Czas

Przykłady średniej wykładniczej

 Jeżeli  =0

n+1 = n

niedawna historia nie ma wpływu na wynik .

 Jeżeli  =1

 n+1 = tn

liczy się tylko ostatnia wartość pomiaru fazy procesora .

 Można rozwinąć wzór :

n+1 =  tn+(1 - )  tn-1 + … +(1 -  )j  tn-j + … +(1 -  )n+1 0

 Ponieważ zarówno () jak i (1- ) są mniejsze lub równe 1, to każdy następny człon ma mniejszą wagę niż jego poprzednik .

(7)

4.37

Planowanie priorytetowe

 Algorytm SJF jest jednym z algorytmem planowania priorytetowego, w którym priorytetem jest odwrotność oczekiwanego (przewidywalnego) czasu trwania fazy procesora

 Każdemu procesowi przypisuje się priorytet (liczbę całkowitą z zadanego zakresu np.:0..127, -20..19)

 Procesor przydziela się procesowi, którego priorytet jest najwyższy (nice, renice)

 Im mniejsza liczba tym większy priorytet (lub odwrotnie)

Priorytety wewnętrzne Priorytety zewnętrzne Mierzalne własności procesu:

Limit czasu, wielkość potrzebnej pamięci, liczba otwartych plików

…..

Mierzalne własności wobec SO:

ważność procesu, rodzaj i wielkość opłat, instytucja zlecająca wykonanie ……..

4.38

Planowanie priorytetowe

 Rodzaje planowania priorytetowego

Z wywłaszczeniem – idea: jak w kolejce procesów gotowych pojawia się proces o wyższym priorytecie to proces aktywny zostaje wywłaszczony

Bez wywłaszczania

 Problem:

zagłodzenie procesu - procesy z niskim priorytetem mogą nigdy nie doczekać się procesora (IBM 7094)

 Rozwiązanie:

postarzanie procesów - stopniowe (co jakiś z góry ustalony czas) podwyższanie priorytetu długo oczekującego procesu, tak aby miał szanse się wykonać

4.39

Planowanie rotacyjne (Round Robin (RR))

Zaprojektowany specjalnie dla systemów z podziałem czasu.

Każdy proces otrzymuje mała jednostkę czasu procesora (kwant), zwykle 10-100 milisekund. Po tym czasie proces jest wywłaszczany i przekierowywany na koniec kolejki .

Jeśli jest n procesów w kolejce (FIFO) i kwant czasu wynosi q, wtedy każdy proces otrzymuje 1/n czasu procesora w kawałkach o maksymalnej długości q.

Żaden proces nie czeka dłużej niż (n-1)q kwantów czasu .

Jak można się spodziewać średni czas oczekiwania w RR jest dość długi.

Wydajność:

Duży kwant czasu – algorytm sprowadza się do FIFO, FCFS

Mały kwant czasu – algorytm sprowadza się do ciągłe przełączenia kontekstu (duża strata czasu) i dużej rotacji procesów między kolejkami

4.40

Przykład RR z kwantem czasu q=20

 Czas przyjścia wszystkich procesów wynosi 0

 Wykres Gantt'a :

 Typowo, wyższy czas wykonania niż SJF, ale dużo lepszy (krótszy) czas odpowiedzi.

P1 P2 P3 P4 P1 P3 P4 P1 P3 P3

0 20 37 57 77 97 117 121 134 154 162 Procesy Czas trwania procesów

P1 53

P2 17

P3 68

P4 24

4.41

Kwant czasu i czas zmiany kontekstu

0 10

0 6 10

0 1 2 3 4 5 6 7 8 9 10 Całkowity czas wykonania procesu = 10

Mniejszy kwant czasu zwiększa częstotliwość przełączania kontekstu Wniosek:

Kwant czasu musi być długi w porównaniu z czasem zmiany kontekstu Kwant Przełączanie

kontekstu

12 0

6 1

1 9

4.42

Średni czas cyklu przetwarzania zależy od kwantu czasu

9,5 10 10,5 11 11,5 12 12,5

1 2 3 4 5 6 7 8

Średni czas cyklu przetwarzania

Kwant czasu

Procesy Czas

P1 6

P2 3

P3 1

P4 7

Suma ostatnich cykli wykonywania się wszystkich procesów Ilość procesów

(8)

4.43

Średni czas cyklu przetwarzania zależy od kwantu czasu Przykład:

 Mamy 3 procesy o 10 jednostek czasu każdy

 Dla kwantu czasu o długości 1 mamy średni czas obiegu 29

 Dla kwantu czasu o długości 10 mamy średni czas obiegu 20

 A trzeba jeszcze uwzględnić czas potrzebny na zmianę kontekstu :–(

Średni czas cyklu poprawia się gdy większość procesów kończy swoje kolejne fazy procesora w pojedynczych kwantach czasu.

4.44

Kolejki wielopoziomowe

 Mamy kilka typów procesów

 Kolejka zadań gotowych jest podzielona na oddzielne kolejki :

przód(interaktywny)

tło(wsad)

 Każda kolejka ma własny algorytm planowania,

przód – RR

tło - FCFS

 Planowanie musi dokonywać się pomiędzy kolejkami .

Planowanie ze stałym priorytetem (np.

najpierw cały przód, potem cale tło).

Istnieje możliwość zagłodzenia procesów .

Podział czasu - każda kolejka otrzymuje określoną ilość czasu procesora którą może rozdzielić miedzy swoje procesy, np. 80% na przód i 20% na tło

… Procesy systemowe

Procesy redagowania … interakcyjnego

… Procesy interakcyjne

… Procesy wsadowe

… Procesy użytkownika

Najwyższy priorytet

Najniższy priorytet

4.45

Wielopoziomowe kolejki ze sprzężeniem zwrotnym

 Proces może poruszać się miedzy rożnymi kolejkami; w ten sposób można wprowadzić starzenie się procesów .

 Planowanie zadań wielopoziomowych kolejek ze sprzężeniem zwrotnym podlega następującym parametrom:

ilość kolejek

algorytm planowania dla poszczególnych kolejek

metody używane do stwierdzania kiedy promować proces

metody używane do stwierdzania kiedy degradować proces

metody używane do stwierdzania do której kolejki wejdzie proces kiedy zajdzie potrzeba jego obsługi.

4.46

Przykład wielopoziomowej kolejki ze sprzężeniem zwrotnym

 Trzy kolejki :

Q0 – kwant czasu 8 milisekund

Q1 – kwant czasu 16 milisekund

Q2 – kolejka pierwszy przybyły - pierwszy obsłużony(FCFS)

 Planowanie zadań

Nowy proces przychodzi do kolejki Q0 typu FCFS. Kiedy kolejka 'zdobywa' procesor, proces otrzymuje 8 milisekund. Jeśli nie skończy działania w trakcie 8 milisekund proces jest przenoszony do kolejki Q1.

W kolejce Q1 (znów FCFS) proces otrzymuje 16 dodatkowych milisekund. Jeśli i teraz nie zdąży się wykonać, jest wywłaszczany i przenoszony do kolejki Q2 .

Kwant = 8

Kwant = 16

FCFS Kolejka 0

Kolejka 1

Kolejka 2

Planowanie zadań dla wielu procesorów

Planowanie zadań staje się bardziej złożone jeśli jest dostępny więcej niż jeden procesor.

Procesory w systemie wieloprocesorowym: identyczne (homogeniczne) lub różnorodne (heterogeniczne)

Dzielenie i równoważenie obciążeń (ang. load sharing i load balancing).

 Każdy procesor może mieć niezależną kolejkę, lub może być jedna (wspólna) kolejka do wszystkich procesorów

Wieloprocesorowość asymetryczna – tylko jeden procesor (master) podejmuje decyzje planistyczne, pozostałe procesory (slaves) wykonują zlecone im zadania.

Wieloprocesorowość symetryczna – każdy procesor sam sobie wybiera proces do wykonania, byleby dwa procesory nie wybrały tego samego.

Planowanie zadań w systemach czasu rzeczywistego

Twarde (hard) systemy czasu rzeczywistego - musza zakończyć ważne zadania w gwarantowanej jednostce czasu:

Wymagają dokładnych informacji o czasie wykonania procesów lub operacji I/O

Wymagają (wcześniejszej) rezerwacji zasobów

Raczej wykluczone z pamięcią wirtualną – nieoczekiwane

„wahania” czasowe

Łagodne (soft) systemy czasu rzeczywistego - ważnym procesom nadaje się wyższe priorytety:

 Łagodne systemy czasu rzeczywistego mogą być implementowane w systemach z podziałem czasu:

Możliwe są zagłodzenia

Możliwy jest niesprawiedliwy przydział zasobów

Procesy czasu rzeczywistego mają najwyższy możliwy priorytet, nie ulegają degradacji, a czas ich ekspedycji do procesora musi być minimalny.

(9)

4.49

Ocena algorytmów

 Model deterministyczny – bierze konkretny zdefiniowany i zapamiętany nakład pracy (urządzeń, procesów) i bada wydajność każdego algorytmu dla tego nakładu.

 Modele kolejek – wzór Little’a n = *W

 Symulacje – możliwa duża dokładność dużym kosztem pracy.

 Implementacje – rozwiązanie prawie idealne, ale prawie robi różnicę Długość kolejki = tempo przybywania nowych procesów * śr.czas oczekiwania w kolejce

Ocena planowania zadań procesora przez symulacje

Dane z wykorzystania konkretnych urządzeń

4.50

 Jeden proces wykonuje się (może być wykonywany) w wielu współbieżnych wątkach (ang. threads, lightweight process).

 Wątki

Mają swój własny stan (Aktywny, Gotowy, Zablokowany, ... )

Mają swoje wartości rejestrów i licznika rozkazów.

Mają swój własny stos (zmienne lokalne funkcji !!!).

Mają dostęp do wspólnej przestrzeni adresowej, plików i innych zasobów procesu

 Operacje zakończenia, zawieszenia procesu dotyczą wszystkich wątków.

 Procesy są od siebie izolowane, a wątki nie !

Procesy, a wątki

Proces Przestrzeń adresowa, Otwarte pliki Procesy potomne, Obsługa sygnałów Sprawozdawczość, Zmienne globalne

Wątek 1 Licznik rozkazów, Rejestry, Stos i wskaźnik stosu, Stan

Wątek 2 Licznik rozkazów, Rejestry, Stos i wskaźnik stosu, Stan

4.51

Procesy jedno i wielowątkowe

Proces KOD DANE PLIKI

Wątek1 Rejestry, stos

Wątek2 Rejestry,

stos Wątek3 Rejestry,

stos Proces

KOD DANE PLIKI

Wątek1 Rejestry, stos

Przykłady:

Standardowy Unix

MS-DOS

Przykłady:

Linux

MS-Windows

OS/2

Solaris

Przykład na poziomie użytkownika:

Serwer www

4.52

 Zalety

Utworzenie, start i zakończenie wątku zajmuje znacznie mniej czasu niż te same operacje w przypadku procesu

Tanie przełączanie kontekstu pomiędzy wątkami tego samego procesu

Możliwość komunikacji wątków bez pośrednictwa systemu operacyjnego

Możliwość wykorzystania maszyn wieloprocesorowych SMP

Możliwość tworzenia wątków na poziomie użytkownika i/lub poziomie jądra

 Wady

“Źle zachowujący się wątek” może zakłócić pracę innych wątków tego samego procesu – wymaga ścisłej kontroli i synchronizacji (sekcja krytyczna) – co może być kosztowne

Kilka wątków próbuje rezerwować/zwalniać sobie pamięć – możliwe uszkodzenie struktur zarządzania pamięcią dla danego procesu - w przypadku dwóch procesów o odrębnych przestrzeniach adresowych nie jest to możliwe

Zalety i wady wątków

4.53

 Proces otrzymuje przerwanie (sygnał):

Wszystkie wątki otrzymują przerwanie

Wybrany wątek otrzymuje przerwanie

Wątek aktualnie aktywny otrzymuje przerwanie

 Proces wykonuje fork.

Czy duplikować jedynie działający wątek, czy też wszystkie wątki ?

 Proces wywołuje exit.

Zakończyć proces czy też jedynie aktywny wątek ?

 Anulowanie wątku (ang. cancellation).

Wykonać natychmiast .

Wątek co jakiś czas sprawdza czy nie został anulowany.

 Standardy bibliotek wielowątkowych (np. POSIX, Windows Thread, Java Thread) zawierają odpowiedzi na powyższe problemy

Problemy

Figure

Updating...

References

Related subjects :