Systemy operacyjne

Transkrypt

Systemy operacyjne
T. F.
Systemy operacyjne
literatura:
Sibersatz, Galvin „Podstawy systemów operacyjnych „
WYKŁAD 1
System operacyjny-program, który działa jako po rednik mi dzy u ytkownikiem komputera, a sprz tem
komputerowym. Zadaniem systemu operacyjnego jest tworzenie rodowiska, w którym u ytkownik mo e
uruchamia programy wygodnie (np. bez r cznego wprowadzenia danych przy ka dym uruchomieniu programu)
i szybko(wykorzystuj c wszystkie zasoby sprz tu).
pami
operacyjna
sterownik
pami
masowa
mysz
klawiatura
sterownik
sterownik
sterownik
system operacyjny
API systemu operacyjnego
Ka dy sterownik ma 2 interfejsy . Pierwszy tworzony przez producenta sprz tu , drugi przez twórców S.O.
Zadaniem sterownika jest zamiana danych dostarczanych przez sprz t na wymagane przez S.O. Umo liwia to
uniezale nienie sprz tu od systemu operacyjnego, dzi ki czemu S.O. pracuje z ka dym modelem urz dzenia.
Czasem prowadzi to do zb dnych operacji ( np. gdy sterownik i program u ytkowy operuj na tym samym typie
danych, a S.O. na innym wtedy dane (z wej cia) s zamieniane na form akceptowan przez S.O., a nast pnie
przed u yciem w programie musz by znowu zamienione).
API systemu operacyjnego – zbiór funkcji ,które mog by wywoływane z programów u ytkowych, aby
zutylizowa sprz t (uzyska bezpo redni dost p do sprz tu).
API opisuje S.O, dwa S.O. s takie same gdy ich API jest identyczne(niezale nie od reszty tych systemów).St d
porównuj c systemy operacyjne porównuje si ich API.
W systemach UNIX-owych d y si do minimalizacji ilo ci funkcji API (np. mo e by 1 funkcja do obsługi
urz dze pozycjonuj cych pobieraj ca jako parametry tylko ródło danych i gdzie je przekaza ).
Programy mog z pomini ciem S.O. odwoływa si do sprz tu, ale zmniejsza to stabilno systemu, gdy
pomija to procedury, które sprawdzaj czy wywołana te s bezpieczne (w grach dzi ki temu grafika jest lepsza;
directX).
JCL (Job control language ) – pierwszy system operacyjny.
offline processing - praca po rednia
działanie programu
we
obliczenia
wy
we
obliczenia
wy
we
obliczenia
wy
Czas na obliczenia jest ”dro szy” ni we/wy, gdy sprz t we/wy jest ta szy ni np. procesor .Wraz ze wzrostem
wydajno ci procesorów czas oblicze maleje szybciej ni czas przeznaczany na we/wy (szybciej ro nie
wydajno CPU ni urz dze we/wy) dlatego maleje utylizacja (wykorzystanie) u ytkowa sprz tu.
Aby zwi kszy rentowno systemu wprowadzono model satelitarny.
Schemat satelitarny:
urz dzenie
we/wy
komp.
satelitarny
komputer
główny
komp.
satelitarny
we/wy
np. drukarka
1
T. F.
Transfer danych mi dzy komp. głównym, a satelit jest szybka. Dane wprowadzane s do komp. satelitarnego i
st d hurtem przekazywane do komp. głównego, oraz odwrotnie dane wy s przekazywane do satelity i ta wolno
wykonuje te zlecenia (np. drukowanie).
we
obl.
we
wy
we/wy - satelity
obl. komp. główny
obl.
wy
we
wy
obl.
Zag szczaj si obliczenia, ro nie utylizacja u ytkowa. Gdy ten diagram przeci pionow prost to powinna
ona przechodzi przez dokładnie 1 wy, 1 we, 1 obl.. Aby schemat ten był jeszcze wydajniejszy mo na doł czy
nast pne satelity.
Ten model jest charakterystyczny dla dzisiejszych komputerów.
Synchroniczne urz dzenie we/wy – zamawiamy wykonanie operacji i czekamy na jej zako czenie próbkuj c
stan jej wykonania.
$ polecenie
wykonanie
$
(mo na wydawa dalsze polecenia)
Asynchroniczne urz dzenie we/wy zamawiamy operacj , robimy co innego, gdy zostanie ona zrealizowana
zostajemy powiadomieni o jej zako czeniu.
$polecenie1&
wykonanie polecenia1
$ (mo na wyda nast pne)
Satelity to asynchroniczne urz dzenia we/wy. Komputer główny wykorzystuje ten czas na inne obliczenia
(np. innych programów).
Technologia kolejkowania ( spooling) pojawiła si gdy powstały tanie i szybkie pami ci masowe. Dane wy
zamiast wysyłania do satelity, czy wykonywania z komp. głównego składowane s na dysku twardym komp.
głównego. Organizowana jest tu kolejka zada , które wyjmowane s st d przez proces komp. głównego (np.
serwer wydruku (działaj cy współbie nie ??? )).
Wieloprogramowo (multiprogramming)
W koncepcji wieloprogramowo ci zakłada si :
(1) jednocze nie w pami ci operacyjnej rezyduje wiele elementów aktywnych;
(2) ka dy rezyduj cy w pami ci program wykonuje si w naprzemiennym cyklu:
( i ) faza oblicze (faza procesowa);
( ii ) faza oczekiwania na realizacj instrukcji we/wy;
(3) w chwili przej cia programu z fazy oblicze do fazy oczekiwania sterowanie (czyli procesor) mo e by
przekazane do innego programu.
Schemat tego na przykładzie edytora tekstu:
(d)
(d)
(c)
(d)
(c)
obci enie
systemu
(procesora)
(a)
(b)
(a)
(b)
(a)
(b)
(a) instrukcja we
(b) pocz tek oczekiwania na nast pn instrukcj we (c) czas oczekiwania na we (sterowanie mo e by
przekazane wtedy gdzie indziej)
(d) obliczenia zwi zane z analiz we (np. pobranej litery).
2
T. F.
WYKŁAD 2
Aby zrealizowa wieloprogramowo musiano rozwi za problemy:
(1) Współistnienie w pami ci operacyjnej wielu programów wymaga mechanizmów zarz dzania
pami ci operacyjn .
Maj c system jednoprogramowy mo na upro ci zarz dzanie pami ci , np.: programy mog by ładowane od
pewnego okre lonego miejsca w pami ci (np.: za systemem operacyjnym);w systemach wieloprogramowych,
nie mo na tego zrobi , bo w tym miejscu mo e rezydowa w tym czasie inny program, tak e podział pami ci na
bloki o okre lone wielko ci do których kierowany byłby program nie jest dobrym rozwi zaniem, gdy
narzucałoby to maksymaln wielko programowi uruchamianemu przez system. Przystosowano wi c S.O., do
tego, e programy pracuj w ró nych miejscach pami ci operacyjnej. (Nawet DOS dynamicznie ł czy program
z pami ci . )
(2) Gdy do wykonania gotowych jest kilka programów nale y optymalnie wybra jeden z nich.
(Trzeba wybra 1 z gotowych programów, aby nie doszło do głodzenia procesu w kolejce (nie wybieranie przez
algorytm steruj cy wyborem tego procesu przez długi czas.)
(3) Programy mog wywoływa mi dzy sob niekorzystne interakcje.
np.: jeden z nich mo e uszkodzi dane drugiego z nich, tak e przestaje on działa .
Wieloprogramowo ma powa n wad . Mianowicie program w re imie wieloprogramowym mo e odda
sterowanie tylko dobrowolnie gdy przeprowadza operacje we/wy. Problem pojawia si gdy nie wywołuje tych
operacji, gdy wtedy nie oddaje procesora. Mo e to by celowe bo zacz ł on długie obliczenia, lub zawiesi si
obliczeniowo. W takim przypadku zawłaszcz on procesor a do zako czenia oblicze (które w drugim przypadku
mog trwa w niesko czono ).Przykładem systemu wieloprogramowego jest Windows 3.11, który w takich
przypadkach zawieszał si .
Rozwini ciem wieloprogramowo ci jest wielozadaniowo (podział czasu).
Wielozadaniowo polega na tym, e oddaj c sterowanie programowi S.O. ustala te czas w którym program ten
ma zako czy faz obliczeniow . Wielko tego limitu powinna by ustalona tak, aby była ona niezauwa alna
dla u ytkownika (np.: 10 milisekund). Gdy program zako czy obliczenia w czasie to system działa jak
wieloprogramowy, ale gdy przekroczy limit to S.O. wywłaszcza ten proces z procesora i zaczyna wykonanie
innego czekaj cego procesu. Oznacz to, e system z podziałem czasu mo e by zawłaszczony tylko na krótki
okres czasu, pó niej sam si uwalnia od tego. Sterowanie powraca do przerwanego procesu dopiero gdy
wszystkie inne czekaj ce procesy otrzymaj swój okres czasu na działanie.
Przykład:
1 procesor, czas 100ms. Uruchamiamy 2 programy. Sterowanie oddawane jest na 100ms do pierwszego, pó niej
100ms drugiemu, znów 100ms pierwszemu itd.. U ytkownik widzi to tak jakby ka dy z tych programów działał
z połow swojej szybko ci. Gdyby uruchomi trzeci program ka dy z nich pracuje z 1/3 mo liwo ci (w
porównaniu z tym jakby był sam).
Od Windows 95 wielozadaniowo stała si obecna w prawie wszystkich systemach.
MULTIC prekursor Unix-a ( lata 60/70).
Gdy system jest silnie utylizowany obliczeniowo nie znaczy to, e nie reaguje na bod ce zewn. ale reakcja mo e
trwa bardzo długo.
System czasu rzeczywistego (RTS) jest to system, którego reakcja na bodziec jest ci le ograniczona. RTS jest
stosowany automatyce do sterowania urz dzeniami w których limity czasowe s wa ne.
Wielozadaniowo sprzeczna jest z RTS, gdy w wielozadaniowo ci nie mo na z góry okre li czasu reakcji
(wraz ze wzrostem utylizacji systemu czas wykonania mo e rosn w niesko czono ).
Niektóre systemy wielozadaniowe spełni re imy systemów RTS np.: Windows NT. Jest tu zastosowane
priorytetowanie procesów (s 32 priorytety 0-31 im wy sza liczba tym wi kszy priorytet). Czas przekazywany
jest najwa niejszemu priorytetowi (te sobie przekazuj czas). System korzysta z priorytetów 0-15, 16-31
zarezerwowane s dla RTS. W czasie wykonywania procesu RTS system przestaje by wielozadaniowy, nie
priorytetuje procesów.
W Windows 98 nie ma rzeczywistego priorytetowania.
3
T. F.
Wsparcie sprz towa dla systemów wielozadaniowych i wieloprogramowych I.
wykonanie kodu w systemie jednoprogramowym:
realizacja we/wy
obliczenia
zamówienie we/wy
aktywne czekanie
obliczenia(konsumpcja wyników)
stan wstrzymania (u pienia) stan gotowo ci
W czasie wstrzymania system nie robi nic oprócz ci głego próbkowania czy urz dzenie we/wy sko czyło
zadanie (jest to aktywne czekanie), aby po zako czeniu we/wy skonsumowa (zrealizowa ) wyniki. Gdyby
rzadziej próbkował dochodziłoby do strat czasu (mi dzy zako czeniem we/wy, a wysłaniem sygnału aby to
sprawdzi ).
we/wy
pami
bufor i/o
procesor
Procesor ma dost p do całej pami ci, we/wy tylko do fragmentu (bufor i/o). Gdy bufor i/o da znak w czasie
aktywnego czekania system przechodzi do dalszego działania.(while(!koniec_wewy()); - aktywne czekanie).
W systemach wieloprogramowych w czasie wstrzymania procesu wpuszcza si inny proces. Po zako czeniu
we/wy musi by sygnał e urz dzenie we/wy zako czyło prac . Inaczej proces nigdy by si nie aktywował. Jest
to mo liwe dzi ki asynchronicznym urz dzeniom we/wy, które informuj przerwaniem e zako czyły prac .
sterowanie jest przekazywane gdzie indziej
obliczenia
zamówienie we/wy
samou pienie
czas
realizacji we/wy
tu musi nast pi przerwanie
Przerwanie – gdy sygnał elektryczny dotrze do nó ki procesora (przypisanej danemu urz dzeniu), to zaprzestaje
on wykonania kodu i przechodzi do realizacji instrukcji od ustalonego miejsca w pami ci operacyjnej (S.O.
ustala je na pocz tku pracy komputera).Ka de przerwanie zostaje przez system zapami tane. W
asynchronicznych urz dzeniach we/wy celem przerwania jest aktywowanie programu który ten impuls wysłał do
procesora. Program jest aktywowany (zmieniona jest flaga w jego kontek cie), a reszta zale y ju od systemu
szeregowania procesów S.O., gdy otrzyma procesor skonsumuje wyniki. Ka demu urz dzeniu we/wy odpowiada
nó ka dlatego system jest w stanie rozpozna , które urz dzenie si z nim komunikuje.
Dzi ki temu zamiast aktywnego czekania system wykonuje w czasie realizacji we/wy inne zadania.
System wielozadaniowy wymaga asynchronicznych urz dze we/wy kierowanego przerwaniami, a system
wielozadaniowy wymaga czasomierza systemowego (wprowadza si do niego jako argument czas, po którego
upływie czasomierz generuje wysokopriorytetowe przerwanie po którym S.O. zmienia stan tego procesy z
aktywnego na gotowy, po czym sterowanie przekazywane jest gdzie indziej.
4
T. F.
pami
operacyjna
bufor i/o
we/wy z DMA
DMA (Direct Memory Access) – przyspiesza kontakt a urz dzeniami we/wy które przesyłaj du o danych (np.:
dyski). Zwykłe urz dzenia we/wy potrafi współpracowa tylko z buforem i/o, te z DMA podaj te miejsce w
pami ci gdzie te dane maj by zapisane. Dzi ki temu system nie musi przepisywa tych danych z bufora i/o do
innych miejsc pami ci.
Współpraca DMA z pami ci wirtualn jest trudna gdy oba operuj na całej pami ci i mog si wzajemnie
zamazywa .
Wspomaganie sprz towe wieloprogramowo ci i wielozadaniowo ci II.
Dualny tryb pracy (DTP) (przerwania programowe).
Ka dy procesor ma na swojej li cie rozkazów polecenia niebezpieczne w Intelu np.:
halt – zatrzymanie procesora (a do ponownego uruchomienia systemu). Przy systemach jednoprogramowych
nie ma to wi kszych konsekwencji (po prostu nietypowy sposób zako czenia pracy systemu), ale w
wieloprogramowych u ycie tej instrukcji jest typowym przykładem niekorzystnej interakcji mi dzy programami.
Po prostu jeden wywołuje, a padaj wszyscy.
Cli – program wył cza wszystkie przerwania (nawet on nie mo e tego odblokowa ), w konsekwencji
doprowadza to podobnie jak halt do zatrzymania pracy systemu.
Aby te instrukcje nie mogły by uruchamiane sprz t powinien by wyposa ony w DTP.
W S.O. powinny by dwa tryby pracy:
(1) tryb nieuprzywilejowany (u ytkownika) – tryb procesora z ograniczon liczb rozkazów.
Aktywowanie przez program rozkazów typu halt ko czy si tak jak próba wykonania rozkazu
nieistniej cego(zako czenie programu).
(2) tryb uprzywilejowany (j dra) – mog by tu wykonywane wszystkie rozkazy.
Problem pojawia si ze zmian tych trybów, gdy gdyby nie była ona kontrolowana nic by to nie dawało.
Przej cie z (1) do (2) wywoływane jest przerwaniem programowym. Specjalny rozkaz procesora (np.: w intelu
int) powoduj ce to, e procesor wysyła przerwanie do samego siebie. Reakcja na nie jest taka sama jak w
przerwaniu sprz towym: sterowanie przekazywane jest pod specjalny adres w pami ci przypisany temu
przerwaniu. Tu kod systemu jest ju w trybie uprzywilejowanym.
Ka dy u ytkownik (nawet administrator) wydaje polecenia z trybu nieuprzywilejowanego, np.: program halt w
UNIX (zaka cza wszystkie procesy, odł cza dyski i procesor) nie ma w swoim kodzie odwołania do halt
procesora, tylko do miejsca w systemie gdzie to odwołanie jest mo liwe to sprawdza si czy zlecenie pochodzi
od administratora, a je li tak to jest realizowane. Wynika st d, e administrator pracuje w trybie u ytkownika
przechodzi tylko przez wst pne fazy autoryzacji w trybie uprzywilejowanym.
Wspomaganie sprz towe wieloprogramowo ci i wielozadaniowo ci III.
Sprz towa ochrona pami ci.
U ytkownik nie mo e mie prawa do skoków, i modyfikacji kodu w pami ci (np.: to pierwsze dawałoby mu
mo liwo skoku do instrukcji wykonywanych przez innych i widziałby ich wyniki, dz ki temu drugiemu
mógłby zmieni np.: bajt (if u ytkownik = administrator) na (if u ytkownik administrator) co daje mu
mo liwo wykonania rozkazów do których nie ma uprawnie ).
Z ka dym wykonuj cym si procesom zwi zana jest para rejestrów okre laj ca zakres dopuszczalnej przestrzeni
adresowej. Rejestry te s niemodyfikowalne w trybie u ytkownika. Próba programu odwołania si do pami ci
nie nale cej do jego zakresu ko czy si przerwaniem, na które S.O. odpowiada zazwyczaj ko cz c program z
komunikatem bł du (np.: bł d ochrony pami ci).
5
T. F.
WYKŁAD 3
W klasycznych systemach w tek sterowania mo e by w jednym z czterech stanów:
Nieustalony
(proces nie
istnieje)
start
procesu
koniec procesu
zaszeregowanie
(wielozad)
wywłaszczenie
gotowy
(ready)
zako czenie operacji we/wy
Aktywny\
wykonywany\
(active\ running)
zamówienie
operacji we/wy
wstrzymany\
czekaj cy\ u piony\
awaiting
stan nieustalony – stan przed rozpocz ciem i po zako czeniu zadania (po prostu nie istnieje);
stan aktywno ci – proces znajduje si tu gdy ma wszystkie zasoby potrzebne mu do pracy i jest
procesor, który wykonuje jego kod;
iii.
stan gotowo ci – ma zasoby potrzebne do pracy, ale wszystkie procesory s zaj te wykonywaniem
innych zada .(Nie ma procesora, który mógłby wykonywa jego kod);
iv.
stan wstrzymany – proces oczekuje na koniec realizacji we/wy.
Proces gotowy i aktywny ma e wykonywa operacje obliczeniowe.
i.
ii.
Zmiany stanu procesu
ycie procesu:
start procesu – pocz tek działania (inicjalizacja zmiennych globalnych, skonstruowanie (przygotowanie do)
operacji we/wy. Program mo e si przenie od razu w stan aktywny (gdy procesor wolny), ale zazwyczaj
kierowany jest do kolejki procesów gotowych. Po operacji zaszeregowania zaczyna si wykonanie procesu.
Zaczyna obliczenia po pewnym czasie mo e potrzebowa we/wy. Realizacja tego przeprowadza proces w stan
wstrzymania (proces sam to wykonuje) i wychodzi z kolejki zada gotowych. Po zako czeniu we/wy nast puje
przerwanie i proces przechodzi do stanu gotowego (doł cza go S.O.). Po zako czeniu ostatniej instrukcji
nast puje koniec procesu.
W systemach wielozadaniowych wyst puje jeszcze wywłaszczenie procesu (jego ródłem jest czasomierz).
Wywłaszczenie(tzw.: wysokopriorytetowe) mo e by spowodowane priorytetowaniem procesów (gdy proces
aktywny ma ni szy priorytet ni proces, który si budzi to mo e by sterowanie przekazane do tego budzonego).
Systemy tak funkcjonuj ce s stabilniejsze, ale nadzorowanie wywłaszcze wymaga te procesora wi c cz
zasobów jest marnowana przez S.O.
Liczba procesów w tych stanach:
aktywne – jest ograniczona przez liczb procesorów w systemie. Mo e by od niej mniejsza, ale nie mo e by
wi ksza. (Teoretycznie mo e by 0, ale nie da si tego sprawdzi , gdy programy sprawdzaj ce to te s
procesami i s przy sprawdzaniu aktywne). Co jak w zasadzie nieoznaczono ci Heisenberga (nie da si
zmierzy wszystkich parametrów elektronu np.: jego energii gdy aby to zrobi trzeba wysła jak energi
której cz
jest absorbowana przez badany obiekt wi c, a otrzymane wyniki tego nie uwzgl dniaj (to była
dygresja Jarockigo)).
Zazwyczaj system co robi. Gdy nie ma co robi wykonuje idle loop (pracuje na luzie) jest to p tla o tak niskim
priorytecie, e ka de inne zadanie ma wy szy wi c j przerywa.
gotowe - nie ma ogranicze ilo ciowych. Gdy w systemie jest bardzo du o procesów obci enie procesora
mo e przewy szy zasoby sprz tu co prowadzi do spadku wydajno ci , który mo e spowodowa du y wzrost
czasu reakcji systemu na polecenia. zadania ci gle s wykonywane chocia wolniej. Mo e to doprowadzi
(po rednio) do bł dów (np.: przy przesyłaniu zaszyfrowanych danych przez sie s limity czasu na odpowied
po przekroczeniu których transfer zostaje przerwany).
6
T. F.
Przy zbyt du ym obci eniu trzeba zwi kszy wydajno systemu przez doło enie procesorów lub zwi kszenie
mocy CPU.
System wyposa ony w procesor dwa razy szybszy zwi ksza wydajno dwukrotnie. Po doło eniu drugiego
takiego samego procesora szybko systemu nie wzrasta, ale gdy jeden jest zaj ty to drugi mo e wykonywa
szybko reakcj (chyba, e oba s mocno obci one). Dlatego gdy wielu u ytkowników pracuje na jednym
systemie lepiej doło y procesorów gdy zadania jednego korzystaj cego nie wpływaj na spowolnienie zada
innych.
Du a liczba procesów wstrzymanych nie wpływa na pr dko przetwarzania (bo nie czekaj na procesor),gdy
system jest dobrze skonfigurowany do obsługi wielu zada .
Nie da si z zewn trz sprawdzi stanu procesu (nie da si odró ni procesu aktywnego od gotowego). Dopiero
na poziomie programu szereguj cego procesy byłoby to mo liwe, ale do niego zazwyczaj nie mamy dost pu
(mo na modyfikowa mechanizm szeregowania, ale nie mo na sprawdzi aktualnego stanu).
Przykład.
Rozwa my system, który diagnozuje stan pacjenta (bada i w czasie mo liwie najkrótszym daje wynik badania).
Pacjent ma zamocowane 3 trzy elektrody (serce, głowa, kolano) .Podł czone s one do collectora ten umieszcza
je w buforze pami ci wspólnym z dwoma innymi cz ciami systemu: loggerem (dwa dyski na których zapisuje
(z bufora) wskazania elektrod), i Statistics (program czysto obliczeniowy), który dane z bufora analizuje, i
wyniki zapisuje do innego bufora z którego czyta reporter(program wizualizuj cy stan pacjenta).
Wszystko to obsługuje system jednoprocesorowy.
Collector
elektrody
logger
Reporter
Statistics
Wykonanie zadania w systemie jednoprogramowym:
C – zbieranie danych (Collector);
L – zapisywanie na dysk(Collector);
S – obliczenia (Statistics);
R – wy wietlanie wyników (reporter).
czas pracy
w tym CPU
C
3 TU
0,75 TU
L
4 TU
1 TU
S
2 TU
2 TU
3 TU
0,5 TU
12 TU
4,25 TU
R
+
C
L
S
1 TU
time unit
7
T. F.
Collector wysyła sygnał do elektrody ¼ czasu liczy ¾ czeka na odpowied i tak 3 razy.
Całe wykonanie zajmuje 12 TU w tym obliczenia zajmuj 4,25 TU. St d utylizacja systemu wynosi
4.25/12=35%.
Czas próbkowania 12 TU, czas realizacji we/wy 12 TU.
To samo wykonywane przez system wieloprogramowy:
L i S mo na zamieni miejscami bo korzystaj z tego samego bufora i nie modyfikuj jego zawarto ci (b d
wi c wykonywane współbie nie). Tak e działanie reportera i collectora mog by wykonywane razem bo nie
korzystaj z tych samych buforów. Musi by wprowadzona synchronizacja mi dzy zadaniami (np.: S nie mo e
zacz nowych oblicze dopóki R nie wyprowadzi poprzednich danych, ponowny start C musi nast pi gdy
dane z bufora nie s ju potrzebne, czyli po zako czeniu L i S.).
Takie wykonanie tego zadania komplikuje program, a tak e S.O.
Diagram synchronizacji elementów systemu:
C1
L1
S1
C2
C1
C2
R1
L2
S2
C3
R2
synchronizacja
wykonania
C3
L1
S1
9TU
R1
7TU
Przy wieloprogramowo ci musi zdecydowa komu odda procesor po zako czeniu C1 (S1 czy L1), czyli ustali
im priorytety. L jest ograniczony przez instrukcje we/wy (ma ich wi cej), a S przez obliczenia. Gdyby pierwszy
działał S to nie byłoby adnego po ytku z wielozadaniowo ci, bo L czekałby na zako czenie pracy S, pó niej
cały system i tak musiałby by wstrzymany a L zako czy we/wy. Odwrotnie za we/wy z L s wykorzystywane
przez S (dlatego systemy daj wi kszy priorytet procesom z wi ksz ilo ci we/wy).Dlatego zakładamy:
L ma wy szy priorytet ni S, działa mechanizm wywłaszcze wysokopriorytetowych.
C1 ko czy pobieranie
sterowanie do L1
L1 ma we/wy aktywuje si S1
gdy L we/wy sterowanie
odbiera si S i Przekazuje L znów ma we/wy wtedy S ko czy prac
sterowanie do R jednocze nie
mo na zacz C2
itd.(nie ma problemu bo obliczenia L i R nie nachodz na siebie, gdyby było inaczej to
wy szy priorytet miałby R bo ma mniej oblicze ).
Czas mi dzy próbkowaniem wynosi 9 UT Wynik te po 9 TU (przy pierwszym obrocie). Od 2 cyklu czasy
malej do 7 TU.
miara utylizacji: 0,75(z C1)+1 (z L1) +2(z S1) +0,5(z R1)+0,5 (z C2)=4,75
Wynik byłby jeszcze lepszy gdyby zastosowa ten drugi czas (7 TU).
(4,75/9)>50%
8
T. F.
System ten mo na jeszcze bardziej ulepszy przez utworzenie 2 buforów działaj cych w zale no ci czy cykl jest
parzysty, czy nie. (Gdy parzysty zapisuje do jednego bufora gdy nieparzysty do drugiego). Dzi ki temu nie
trzeba czeka aby nie uszkodzi danych w buforze.
C1
L1
S1
C3
R1
L3
S3
C5
C2
R3
L2
S2
C4
R2
L4
S4
Po rozpocz ciu C1 rozpoczyna si tak e nast pny cykl (dane do 2 bufora), przez co oba cykle nie
przeszkadzaj sobie wzajemnie (wa ne, eby po cyklu parzystym zaczynany był znów cykl parzysty(odpowiedni
bufor) i odwrotnie). Cykle te prawdopodobnie wykonuj si niezale nie, chocia istnieje mo liwo , e tak nie
jest (potrzebna jest synchronizacja mi dzy cyklami parzystymi, a nieparzystymi). Wzrost wydajno ci nie jest ju
tak du y jak przy przej ciu z jednoprogramowo ci do wieloprogramowo ci.
WYKŁAD 4
Kryteria oceny algorytmów szeregowania:
1. wykorzystanie procesora – utylizacja;
2. przepustowo – liczba procesów zako czonych w jednostce czasu (max);
3. czas cyklu przetwarzania ( rednia długo
ycia procesu) - min;
4. redni czas oczekiwania (u redniona suma czasów sp dzonych przez procesy w kolejce procesów
gotowych) – min.
Algorytmy szeregowania zada :
FCFS (FIFO) – first come first served (first in first out)
W tym algorytmie proces, który pierwszy zamówił procesor pierwszy go dostaje (np.: kolejka procesów
gotowych jest list do której nowe procesy s dokładane na koniec, a usuwa si z pocz tku).
zalety:
1. prostota – szybko szereguje nowe procesy, wykonuje mało oblicze (gdy za długo liczy samo
szeregowanie mo e zaj wi cej czasu ni wykonanie go).
2. brak niesko czonego blokowania procesu ( w niektórych algorytmach gdy dochodzi proces o wy szym
priorytecie sterowanie zabierane jest temu o ni szym i przekazywane nowemu (problem głodzenia),
tutaj wszystkie s tak samo uprzywilejowane i wykonuj si kolejno).
wady:
1. długi redni czas oczekiwania.
Niech procesy potrzebuj na wykonanie odpowiednio P1 – 24 TU, P2 – 3 TU, P3 – 3TU i przychodz
do wykonania w kolejno ci indeksów.
9
T. F.
P1
24 TU
P2
27 TU
P3
30 TU
P1 nie czeka w kolejce procesów gotowych, P2 24 TU czeka, P3 27 TU.
redni czas oczekiwania: (0+24+27)/3=17;
Gdyby P2, P3 były wykonane na pocz tku zwi kszy si ilo zako czonych procesów w jednostce czasu.
redni czas oczekiwania (3+0+6)/3=3.
Główn wad strategii FIFO jest efekt konwoju –krótkie procesy czekaj na zako czenie czasochłonnych.
Algorytm SJF (shortest job first).
Przed wykonaniem zadania analizuje si wszystkie gotowe wybieraj c na pocz tek najkrótsze (te które maj
najkrótsz faz oblicze ).
zaleta:
Algorytm optymalny ze wzgl du na redni czas oczekiwania.
wada:
Sprawdzenie ile b dzie trwało nast pne wej cie procesu długo trwa (sprawdza ile trwa 1-sza instrukcja, potem
ile druga, ...,n-ta dodaje ten czas i wie zna czas wej cia procesu.
Nie mo na w aden sensowny sposób wdro y tego algorytmu gdy szeregowanie by trwało kilka razy dłu ej
ni wykonanie procesu.
Przybli enie SJF wykorzystywane w systemach wielozadaniowych.
Przewidywany czas nast pnych oblicze wyznacza si ze wzoru:
Tn+1=a *tn +(1-a)Tn
Tn+1 – przewidywany czas wykonania najbli szej fazy oblicze procesu.
Tn – przewidywany poprzednie czas trwania j fazy oblicze .
tn – rzeczywisty czas trwania poprzedniej fazy oblicze procesu.
a - stała z przedziału [0,1]
(stał a mo na zmienia aby zoptymalizowa wykonanie procesu).
rekurencyjnie otrzymujemy:
Tn+1=atn+(1-a)tn-1+(1-a)2atn-2+(1-a)3atn-3+…+(1-a)katn-k+…
Wszystkie współczynniki s coraz mniejsze, st d Tn+1 zale y najbardziej od długo ci poprzedniej fazy oblicze ,
mniej od poprzedniej, itd.
(1)
(2)
(3)
przewidywana nast pna faza oblicze
Gdy proces (3) wróci do normy to przez t dłu sz faz oblicze b dzie musiał odpokutowa (przez długi czas
jego priorytet b dzie obni ony).
W tym szeregowaniu S.O. sam wybiera zadania o najkrótszych obliczeniach, i umie si uczy analizuj c ich
prac .
Gdy a=1 wtedy system pami ta tylko ostatnie obliczenia procesu. Ten współczynnik jest ustalany przez twórców
S.O.
Istniej dwie wersje algorytmu SJF:
a. nie wywłaszczaj ca – proces, który dostaje procesor jest wykonywany do ko ca fazy obliczeniowej.
b. wywłaszczaj ca – gdy do kolejki procesów gotowych dochodzi proces o krótszej fazie oblicze ni
czas, który pozostał aktywnemu ten drugi zostaje wywłaszczony.
10
T. F.
proces
czas przybycia
długo
fazy CPU
P1
0
8
P2
1
4
P3
2
9
P4
3
5
Działanie SJF niewywłaszczaj cego.
0
2
4
6
8
10 12 14 16 18 20
P1
P2
P3
P4
26
P2 musi czeka bo gdy przybywa wykonuje si P1, tak samo czekaj P3, P4. Wybór nast pnego do wykonania
nast puje w chwili 8. Wybrany zostaje P2 bo ma najkrótsz faz oblicze . Nast pnie w chwili 12 wybrany
zostaje proces P4.
redni czas oczekiwania wynosi:
(0+7+15+9)/4=7,75
Działanie SJF wywłaszczaj cego:
0 2 4 6 8 10 12 14 16 18 20 22 24 26
Zaczyna P1 w chwili 1 dochodzi P2 i sprawdza który ma wi cej oblicze . P1 zostało 8-1=7 P2 – 5 wygrywa
wi c P2 i jemu przekazywane sterowanie. Dochodzi P3, ale znów wygrywa P2, tak samo gdy dojdzie P4.
W tym algorytmie po doj ciu ka dego procesu wymagane jest kolejne szeregowanie st d wykonuje t operacj
wi cej razy ni w 1 przypadku.
redni czas oczekiwania:
(9+0+15+2)/4=6,5
Czas jest lepszy ale przez wi ksz liczb przeszeregowa ł czny czas wykonania jest dłu szy.
Planowanie priorytetowe.
Ka dy proces posiada priorytet. Procesor przydziela si temu zadaniu, które ma najwy szy priorytet. Procesy o
równym priorytecie wykonuje si w porz dku FIFO.
zalety:
i.
mo liwo uprzywilejowania procesu w dost pie do procesora(np.: wa ne procesy systemowe mog
by wykonywane przed procesami u ytkownika).
ii.
prostota – łatwo wybra proces o najwy szym priorytecie(wystarczy porówna najwi ksz z liczb).
wada:
głodzenie procesu
Głodzenie mo na usun dzi ki postarzaniu procesu - co jaki czas system przegl da list czekaj cych
procesów, gdy znajdzie głodzony (z powodu priorytetu) sztucznie podnosi mu priorytet. Przy nast pnym
sprawdzeniu gdy to nie pomogło znów podnosi priorytet, i tak dalej a do momentu gdy przestanie by
głodzony. Po obliczeniach stopniowo opuszcza si priorytet temu procesowi. Przegl danie nie mo e by zbyt
cz ste gdy spowalnia ono prac (zajmuje czas, oraz sztucznie podnosi znaczenie mało wa nych procesów)
.Podobny mechanizm mo na zastosowa w drug stron : gdy proces o wysokim priorytecie zbyt bardzo obci a
procesor obni a mu si priorytet (np.: tak działa SJF wywłaszczaj cy).
planowanie rotacyjne (round-robin)
Kolejka procesów gotowych jest kolejk FIFO. Proces z czoła kolejki dostaje kwant czasu na wykonanie swojej
fazy procesora, je eli nie zd y zako czy oblicze jest wywłaszczany i kierowany na koniec kolejki.
11
T. F.
zaleta:
Brak głodzenia i efektów konwoju (nie puszcza bez kolejki).
wady:
długi redni czas oczekiwania
Niech: P1 – 24 TU, P2 – 3TU, P3 – 3TU, kwant czasu 4TU (przykład z FIFO)
P1
0
P2
4
P1
P1
P1
P1
P1
P3
7
10
14
18
22
26
30
redni czas czekania:
(6+4+7)/3=5,67
czas ten jest krótszy ni w FIFO (tam 17).
Kwant czasu musi by odpowiednio dobrany:
• gdy jest za mały mo na w nim wykona mało instrukcji, i odsyłany jest proces do kolejki przez to
wywłaszczenia s cz ste i zajmuj du o czasu.
• gdy kwant jest zbyt du y algorytm upodabnia si do algorytmu FIFO a wi c pojawia si efekt konwoju.
Optymalny kwant czasu zale y min: od procesora, w jednym okresie musi by wykonanych du o instrukcji
procesora (kilka rz dów wi cej ni fragment kodu szereguj cego np.: gdy ten fragment wynosi 200 instrukcji to
kwant powinien pozwala na wykonanie kilkunastu tysi cy instrukcji procesu). W starszych systemach czas ten
wynosił 100 milisekund teraz przechodzi si do 10 ms (wynik wzrostu wydajno ci procesorów).
system kolejek wielopoziomowych (poł czenie innych algorytmów).
Procesy dzieli si na klasy o ró nym priorytecie. System wybiera zadania z kolejki o najwy szym priorytecie,
chyba e jest ona pusta. Wtedy zajmuje si innymi kolejkami. Wewn trz ka dej kolejki obowi zuje osobny
algorytm szeregowania. Aby unikn głodzenia stosuje si mechanizm promocji i dymisji (postarzanie procesu i
jego przeciwie stwo (odpowiednio)).
Przykład:
kolejka o najwy szym priorytecie
faza CPU<=8
round-robin 8
faza CPU >8
faza CPU<=16
round-robin 16
faza CPU>16
FIFO
Nowe zadania dodawane s do kolejki o najwy szym priorytecie (RR8), zostaj zaszeregowane i po pewnym
czasie dostaj procesor. Gdy sko czy zadanie w czasie (8TU) (zako czy si proces) to wykonuje nast pny, gdy
nie odbiera mu sterowanie i proces ten kierowany jest na koniec kolejki o ni szym priorytecie. Teraz proces
musi czeka na wykonanie, a opró ni si kolejka RR8. Gdy to nast pi to analogiczna jak poprzednio je li
proces si wyrobi w czasie 16TU to dobrze inaczej kierowany do kolejki o najni szym priorytecie. Tutaj musi
czeka na wykonanie a opró ni si kolejki RR8, RR16, oraz wszystkie procesy b d ce przed nim w kolejce
(bo obowi zuje tu strategia FIFO).
Algorytm ten jest sprawny i sprawiedliwy (jak twierdzi Jarocki).
Procesy maj ce mało oblicze wykonaj si szybko przez to reakcja min. na czytanie z dysku, klawiatury, czy
zdarzenie w sieci jest szybka. Procesy obliczeniowe wykonywane s w strategii FIFO gdy nic si w systemie nie
dzieje.
Takie algorytmy s powszechnie stosowane w systemach wielodost pnych (np.: serwery, WINDOWS NT
bazuje na tej strategii). Zazwyczaj w kolejce o najni szym priorytecie nie obowi zuje FIFO tylko round-robin z
du ym kwantem czasu.
12