( ( (. 0 ( ( A D?A A @? C C A @ L K @ A? G C G 6NáDGQLNLV\VWHPXRSHUDF\MQHJR ]DU]iG]DQLHSURFHVDPL s.o.? tworzenie/usuwanie procesów mamy procesor i wiele procesów 6 0.0. ( ( 0 ( /. (. =. < 0 C B synchronizacja procesów (wstrzymywanie gdy to jest potrzebne E (. 0 E F ( ( E< ]DU]iG]DQLHSDPL FLiRSHUDF\MQi C H??IH G przechowywania kodu programu i danych? @ J M A LD T P P QSR OP G ON K
6NáDGQLNLV\VWHPXRSHUDF\MQHJR ]DU]iG]DQLHSOLNDPLLNDWDORJDPL operacje na plikach i katalogach ]DU]iG]DQLHSDPL FLiSRPRFQLF]i czyli implementacja systemu plików ]DU]iG]DQLHZHM FLHPZ\M FLHP praca sieciowa system ochrony ych osoby uprawnione LQWHUSUHWHUSROHFHr DOS/ Win command.com cmd.exe Unix sh csh ksh bash ko
. 0 FE @AB C? FE D CL def procesu = uruchomiony program któremu przydzielono pewne i dane czas procesora oraz inne... ( proces program VNáDGQLNLSURFHVX sekcja kodu / IP 6 (w tym licznik rozkazów HI G? D<? =< sekcja stosu zmienne lokalne procedur (j. programowania adresy powrotne procedur sekcja danych HI G? D< @AB C? KGJC? E zmienne globalne call/ret i iret JP? @ON M@<... specjalne rozkazy procesora 06 do operowania na stosie push
/ 0 / / F?< < A =?<@ <= A =< IAH @?A @H A <= HAI C A@ A? < AW V IH C QA?< AID @ D D / Y F U@ C A U@ d\ ^ \] CU? = C A IH C?A @ OOO stany procesu stanów ( ( 0 / (/ / (/ / /. ( 6 diagramu stanów procesu decyzja planisty (przerwanie zegarowe? Nowy exit( mumia Gotowy Aktywny fork( BCED KD JCD G= B@ decyzja planisty KD JCD CN G= B@< np od dysku S@D LHI fun. sys. M< CEN? LH@ w danej chwili aktywny P ZA HI@ = AQ XB@ S [D XA HI@=A Q FD P ZA _R` arb \c S<? N Q<? T? J< BD MA < SI BRQ P@ lub gotowych
/ / 0 / 6 / 0 /. G Z M[ XYZK U J PQ LR d [g ZU J J MU Z k G F ZJ `g ]LW g X Jg a RJ Z K` nrb LW b R W ` R J R Blok Kontrolny Procesu (BKP (ang. PCB = Process Control Block BKP BKP zawiera stan procesu (patrz diagram stanów procesu ( @A? =<. E F D E D ( B C EI ( G G H C F D E ( B C Zd Z^c` alnb K K [ ] MLW_ \^] K Ǹ VKW ML SR T MON KLJ Sj ZR i Uhb MN ] \N [ VYZ`RT R f [Rb VMK XYe MLNb VYZ`RT MK D ( B C l k D ( B C wykaz otwartych plików (Unix tablica deskryptorów procesu a] L Ǹ RTN YNb ow ZR ow SR N e L[K` mn Zb Sd Mg [Kfb P [g pmk ZSK ]LW \b ] i
@ @ SU]HáiF]DQLHSURFHVRUD P0 na proces P wymaga P0 w BKP0 odtworzenia stanu P z BKP ( ów 6 6./ 0 C B @ A??@ <=
( SODQRZDQLHSU]\G]LDáXSURFHVRUD mamy wiele procesów gotowych GRG]LDáDQLD SODQLVWDSU]\G]LDáXSURFHVRUD to procedura która przydziela mu procesor gotowy aktywny diagramem planista jest uruchamiany przez przerwanie fun. sys. (przerwanie programowe przerwanie zegarowe jak to wszystko jest zaimplementowane? Odp kolejki procesów (Uwaga ( (.0/ FIFO...
kolejki procesów BKP przeskakiwanie powoduje planista uaktywniany przez przerwania planowaniu (który GA? który CzG? itp... wizja s.o. jako zbioru BKP na przerwania/zdarzenia (s.o. jest sterowany przerwaniami/zdarzeniami proces aktywny BKP (to nie kolejka tylko proces kolejka procesów gotowych BKP BKP kolejka procesów BKP BKP BKP kolejka do dysku (proc. ( BKP zamówienie na blok nr 0 BKP zamówienie na blok nr
przemieszczanie BKP diagramy kolejkowe tzw diagramy kolejkowe kolejka procesów gotowych procesor zdarzenie przerwanie zegarowe kolejka procesów zdarzenie oznacza BKP procesu potomnego fork( wait( przerwanie od dysku do dysku
0 6 6. 0 @ D 6 6 EB 6 B.. F? 6 S L 6. 6 6 6..? 6 D. B planowanie ogólnie planista np procesów w kolejce procesów. / / /. ( gotowych < ( czas cyklu przetwarzania procesu tj / ( A /?. 6 /? /= rodzaje planistów planista krótkoterminowy. 6 < C 6 B /. BB. a C 6 /. ( = D <H E G E terminowy MT PQ R O MN JK L K I. < 6 B.. B= nio B /. /= /=. 6 @ 0 /. CB E 6 B G dysku jest to tzw wymiana procesów (ang. swapping
6. ( < B F @? P K B? planowanie c.d. terminowy c.d. uwaga miejsce w tzw terminowego / 0 = < < term T QCRS kolejka procesów zapisanych na dysku planista planista term T QCRS kolejka procesów gotowych planista procesor krótkoterm kolejka procesów GCH ACB DCE zdarzenie zdarzenie przerwanie zegarowe O@ LNM DJ@ ACB ACI do dysku przerwanie od dysku
6 C 0 planowanie c.d. terminowy / 0 /. ( jest to e w / 0 / / < / operac AB?@ < / = tj / < /
(.. / (. 6 SODQRZDQLHSU]\G]LDáXSURFHVRUD... czyli planista krótkoterminowy rodzaje planowania procesora nie y fun. sys. ( / 0. / ( ekspedytor (ang. dispatcher a 6 skok do odpowiedniego rozkazu (? kryteria planowania procesora czas oczekiwania procesów w kolejce procesów gotowych (precyzyjniej
E BE B 0 J? = E? G LE MNE G planowanie procesora c.d. fun. sys. FG C CD = A @? = < faza procesora okres gdy procesor wykonuje kodu procesu faza we/wy okres gdy proces czeka ( /. f_proc( f_wewy( f_proc( f_wewy(... czas (z pkt widzenia procesu czas trwania fazy we/wy (faza nr czas trwania fazy procesora (faza nr CD K? @I CJ HG OC? I< IL A G A G A Cz czas (z pkt widzenia s.o. proces P 6 = f_proc( = f_wewy(
( (. 0 6 algorytm SJF SJF = Shortest Job First planista SJF SUHIHUXMHSURFHV\]NUyWNiSU]\V]áiID]i procesora Z\GDMHVL HZWHG\ UHGQLF]DVJRWRZR FL E G]LHQDMPQLHMV]\ rozpatrujemy procesu. ( CzG 0 / Odp 0 / ( jest nieprzewidywalny... SJF? Odp raczej systemy wsadowe/ wieloprog. 0 SJF SJF wysoki priorytet procesu krótka (przysz a faza procesora mo na inaczej definiowa priorytety procesu... np. aktywno procesu mo e obni a jego priorytet (wtedy trzeba cz ciej wywo ywa planist
symulacja SJF]Z\ZáDV]F]DQLHP czas trwania fazy procesora czas (pkt widzenia s.o. proces P czas przybycia procesu 0 ms f_proc( ms 0 P P P chwile w których P czas przybycia do kolejki procesów gotowych Proces P P P P 0
symulacja SJF]Z\ZáDV]F]DQLHP czas (pkt widzenia s.o. proces P czas przybycia procesu 0 ms f_proc( ms 0 P P P P P Proces P P P P 0
symulacja SJF]Z\ZáDV]F]DQLHP czas (pkt widzenia s.o. proces P czas przybycia procesu 0 ms f_proc( ms 0 P P P P P P Proces 0 P P P P
symulacja SJF]Z\ZáDV]F]DQLHP czas (pkt widzenia s.o. proces P czas przybycia procesu 0 ms f_proc( ms 0 P P P P P P P Proces 0 P P P P
symulacja SJF]Z\ZáDV]F]DQLHP czas (pkt widzenia s.o. proces P czas przybycia procesu 0 ms f_proc( ms 0 P P P P P P P P P P Suma= Proces 0 P P P P 0 aden nowy proces
( symulacja SJF]Z\ZáDV]F]DQLHP czas (pkt widzenia s.o. proces P czas przybycia procesu 0 ms f_proc( ms 0 P P P P P P P P P P Suma= redni czas oczekiwania w kolejce procesów gotowych (czyli = P P P P =./0. ( (
0. = < < A?@ =AB?@ AC? B A?? =A 6 algorytm RR RR = Round Robin = planowanie rotacyjne FCSC Unixie s.o RR (dlaczego??? czas (pkt widzenia s.o. kwant czasu = ms f_proc( proces ms P 0 6 P P P P P P P P wszystkie procesy 6 ( 0 / redni czas oczekiwania w kolejce procesów gotowych P P P = =
. ( 6 ON FG < = 6 < < = = = 6 6 < = 6 < 6 algorytm wielopoziomowy ( 0 0 / pierwszoplanowe drugoplanowe. ( kiedy ta kolejka S PRQ LM JK HI RR kolejka procesów gotowych/ pierwszoplanowych FCFS kolejka procesów gotowych/ drugoplanowych 6 zasada ce B?= A@ = = = C anie? = 6 E = = D
60 6 0 ZiWNL F]DVDPLMHVWZ\JRGQHDE\NRGSURFHVXE\áZ\NRQ\ZDQ\ UyZQRF]H QLHZVSyáELH QLHNLONDUD]\ GRWHJRVáX iziwnl klient klient klient TCP ( zapytanie (SQL < /. serwer baz danych serwer z procesami potomnymi procesy procesy potomne serwera klient klient ( TCP zapytanie (SQL < /. serwer baz danych serwer A =? @ < klient procesy
( ( DEF G G Y Z U S Y X WO mq i mj lk j c 6. ` g ZiWNLFG proces zy to = = <.6 6 /0. otwartych plików HE B?@ ABC @ i te same otwarte pliki I IJC K DB Y ] O UQ L Y\[ O Q UV STL NPO Q R L M L wspólne sekcja danych (zmienne globalne sekcja kodu inne zasoby przydzielone procesowi (m.in. otwarte pliki ^ _ kut n rs npo hij BKW ` ` `< f. ed.0 6 ` a = 0 b a. sekcja stosu (zmienne lokalne procedur adr. powrotne [dlaczego?]
0./ KJN JV? B?DS QJR DN / 6 D @A CB < 0 / _ 0 0 0 b. /.6 i h o j q yq vu q ~ z }~ { z j }~ { z ZiWNLFG / / 0 0. ( ] M?A U H TL =PO M?B KLA JB EF FGIH =? 0/. BKP / P^ ] [. \. Z[. WYX BKW ^. a. 0 0 06 ` WI` procesów.6 6 / / 0 c6 b6 6. d e d balne g jl kj d f g n m f d d n m pqr pq Ž œ œ Žž Ÿ š (patrz Solaris m linux/unix pthread WinTN s x vw p tr tur i }ˆ } ~ ƒƒ s.o (np. niektóre wersje biblioteki pthread (np. WinNT s.o. m Œˆ Š{ ~ ƒ