You are on page 1of 111

OPERACIJSKI SISTEMI

Skripta 2006/07 Prof. Robi :

Izvedba: Al ade e Jernej Modic Janez M i i [OS neuradna skripta 2006/07] Stran 1

I.) UVOD ........................................................................................................................................................... 5 1.1) KAJ JE OS?...................................................................................................................................................... 5 1.2) ZGODOVINSKI RAZVOJ OS .................................................................................................................................. 6 1.2.1) Zgodovinski razvoj ............................................................................................................................... 6 1.2.2) Enostavna paketna obdelava .............................................................................................................. 7 1.2.3) Rezidentni monitor .............................................................................................................................. 8 1.2.4) Prekrivanje operacij ............................................................................................................................. 9 1.2.5) Multiprogramska paketna obdelava ................................................................................................. 11 1.2.6) Interaktivnost za uporabnika ............................................................................................................. 12 1.2.7) Interaktivnost za lastnika .................................................................................................................. 13 1. 8)asovno dodelevanj ........................................................................................................................ 13 2. j e 1.2.9) Terminologija..................................................................................................................................... 14 1.2.10) Nove naloge OS ............................................................................................................................... 14 1.2.11) Prednosti in slabosti ........................................................................................................................ 15 1.3) NEKATERE VRSTE OS .................................................................................................................................. 15 1. 1)O sebniraunal k .............................................................................................................................. 15 3. ni 1.3.2) Vzporedni (paralelni) sistem .............................................................................................................. 16 1.3.3) Porazdeljeni sistemi ........................................................................................................................... 16 1.3.4) Sistemi za del v real o nem asu .......................................................................................................... 17 I. ELEM EN TIRAU N ALN I I) KEG A SI STEM A ..................................................................................................... 18 2.1) DELOVANJE RA.SISTEMA......................................................................................................................... 18 2.1.1) Zagon in delovanje ............................................................................................................................ 18 2.1.2) Vrste prekinitev.................................................................................................................................. 19 2.2) VHOD IN IZHOD.......................................................................................................................................... 21 2.2.1) Sinhroni V/I ........................................................................................................................................ 22 2.2.2) Asinhroni V/I ...................................................................................................................................... 22 2.2.3) Tabela stanj naprav ........................................................................................................................... 23 2. 4)Zaetek V/Ioperacie ......................................................................................................................... 24 2. j 2.2.5) Konec V/I operacije ............................................................................................................................ 24 2.2.6) DMA / motivacija............................................................................................................................... 25 2.2.7) DMA krmilnik ..................................................................................................................................... 27 2.2.8) DMA potek ......................................................................................................................................... 28 2.3) POMNILNIK ................................................................................................................................................... 28 2.4) ELEM EN TISTRO JN E ZAITE .............................................................................................................................. 30 2. 1)N ai del 4. ni ovanj ................................................................................................................................ 31 a 2. 2)Zai V/I.......................................................................................................................................... 31 4. ta 2. 3)Zai glpom nini / m oti j ..................................................................................................... 32 4. ta . l ka vacia 2. 4)Zai glpom nini ......................................................................................................................... 32 4. ta . l ka 2. 5)Zai CPE....................................................................................................................................... 33 4. ta . 2. 6)..i si 4. . n stem iz dodelevanj asa ..................................................................................................... 34 j em 2.5) SISTEMSKI KLICI .............................................................................................................................................. 34 III.) ELEMENTI OPERACIJSKEGA SISTEMA ........................................................................................................ 36 3.1) MOTIVACIJA .................................................................................................................................................. 36 3.2) UPORABNIKOV POGLED NA OS .......................................................................................................................... 36 3.2.1) Komponente OS ................................................................................................................................. 36 3.2.2) ...Upravljanje procesov ...................................................................................................................... 37 3.2.3) ...Upravljanje glavnega pomnilnika ................................................................................................... 37 3.2.4) ...Upravljanje datotek ........................................................................................................................ 37 3.2.5) ...Upravljanje V/I sistema .................................................................................................................. 38 3.2.6) ...Upravljanje zunanjega pomnlnika .................................................................................................. 38 3. 7)..D el v om rej ............................................................................................................................... 38 2. . o u 3. 8).. 2. .Zai i varnost............................................................................................................................ 38 ta n 3.2.9) ...Interpretacija uporabnikovih ukazov .............................................................................................. 39 3.3) PROGRAMERJEV POGLED NA OS ........................................................................................................................ 39

[OS neuradna skripta 2006/07]

Stran 2

3.3.1) Sistemski klici ..................................................................................................................................... 39 3.3.2) Skupine sistemskih klicev ................................................................................................................... 40 3.3.3) ...S.k. za upravljanje procesov ........................................................................................................... 40 3.3.4) ...S.k. za upravljanje z datotekami ..................................................................................................... 41 3.3.5) ...S.k. za upravljanje naprav............................................................................................................... 41 3. 6).. k.z vzdrevanj i dostavo i orm aci ......................................................................................... 41 3. .S. e n nf j 3.3.7) ...S.k. za komunikacijo ....................................................................................................................... 41 3.3.8) Sistemski programi/interpreter ukazov ............................................................................................. 42 3.4) RAZVI JALEV PO G LED N A OS ............................................................................................................................ 44 3.4.1) Zgradba OS ........................................................................................................................................ 44 3.4.2) Zgradba OS in jedro ........................................................................................................................... 44 IV. PROCESI I. ................................................................................................................................................. 46 4.1) VSEBINA ....................................................................................................................................................... 46 4.2) PROCES ........................................................................................................................................................ 46 4.2.1) Stanja procesa ................................................................................................................................... 47 4.2.2) Nadzorni blok..................................................................................................................................... 48 4.2.3) Vrste .................................................................................................................................................. 48 4.2.4) Diagram vrst ...................................................................................................................................... 49 4.3) OPERACIJE NAD PROCESI .................................................................................................................................. 50 4.3.1) Ustvarjanje procesa ........................................................................................................................... 50 4. 2)Konanj procesa ............................................................................................................................... 52 3. e 4. 3)U ni e drugega procesa ................................................................................................................. 53 3. enj 4.3.4) Motivacija za niti ............................................................................................................................... 54 4.4) RAZVRAN JE ................................................................................................................................................ 55 4.4.1) ...Hitri pregled .................................................................................................................................... 55 4. 2)Razvranj na procesorj ................................................................................................................. 55 4. e u 4. 3)Al tm iza razvranj .................................................................................................................... 60 4. gori e 4. 4)Razvranj posl 4. e ov............................................................................................................................. 66 4.5) MENJAVANJE ................................................................................................................................................. 67 4. 1)as m enj 5. avanj V/Ii ostal ............................................................................................................ 68 a, n o V. NITI ............................................................................................................................................................ 70 5.1) MOTIVACIJA .................................................................................................................................................. 70 5.2) KAJ JE NIT?.................................................................................................................................................... 71 5. 1)Kajdol ni ................................................................................................................................... 72 2. oa t? 5.2.2) Istorodne niti ..................................................................................................................................... 73 5.2.3) Izvajanje niti ...................................................................................................................................... 73 5.3) PODOBNOSTI IN RAZLIKE S PROCESI .................................................................................................................... 74 5.4) KORISTI ........................................................................................................................................................ 74 5.5) ZAGOTOVITEV NITI .......................................................................................................................................... 76 5. 1)U porabni ni ................................................................................................................................ 76 5. ke ti 5.5.2) Jedrne niti .......................................................................................................................................... 77 5.3) UVAJAN JE VEN I O STI................................................................................................................................... 78 TN 5. 1)Knjni PThreads............................................................................................................................. 78 3. i ca VI.) PROCESI II. ............................................................................................................................................... 80 6.1) SODELOVANJE MED PROCESI ............................................................................................................................. 80 6.2) VRSTE KOMUNIKACIJE...................................................................................................................................... 81 6.2.1) IPC ...................................................................................................................................................... 81 6.3) SINHRONIZACIJA SEND-RECEIVE ......................................................................................................................... 85 6.4) KO PI JE .................................................................................................................................................... 86 EN 6.5) PO I JE KO PI O Z. REFERENC ........................................................................................................................ 87 LJAN J 6.6) KOMUNIKACIJA PREKO SKUPNEGA POMNILNIKA .................................................................................................... 88 6.7) UNIX ............................................................................................................................................................ 89 6.8) KO M U N I JA V O M REJU .............................................................................................................................. 90 KACI 6.8.1) Protokoli ............................................................................................................................................ 91

[OS neuradna skripta 2006/07]

Stran 3

6.8.2) Naslavlanje ........................................................................................................................................ 91 6. 3)U ni i vti ce................................................................................................................................... 91 8. x n ni VII.) PROCESI III. ............................................................................................................................................. 95 7.1) PROIZVAJALEC PORABNIK............................................................................................................................... 95 7.2) PRO BLEM KRI N I O D SEKOV .......................................................................................................................... 97 TI H 7.3) ZGRADBA PROCESOV ....................................................................................................................................... 98 7.4) NAI IREEVAN JA PRO BLEMA .......................................................................................................................... 98 N 7. 1)Al tm i reevanj ...................................................................................................................... 98 4. gori no e 7. 2)Reevanj probl a odseka z uporabo posebni ukazov ............................................................... 101 4. e em h 7.4.3) Semaforji ......................................................................................................................................... 103 7.5) KLASI IPRO BLEM ISI HRONIZACIJE ................................................................................................................ 109 N N 7.5.1) Problem proizvajalca & porabnika .................................................................................................. 109 7. 2 Probl l h fl ov ................................................................................................................... 110 5. em ani iozof 7.5.3) Problem branja & pisanja ................................................................................................................ 111

[OS neuradna skripta 2006/07]

Stran 4

I.) UVOD
1.1) Kaj je OS? 1.2) Zgodovinski razvoj OS 1.3) Nekatere vrste OS

1.1) Kaj je OS?


Raunal kisi ni stem sestavlaj j o: 1-uporabniki (users) 2-uporabni programi (appl. prog) ki 3-strojna oprema (HW) Torej U porabni ( ) uporablaj razne uporabni : ki U j o ke program e ( , s kateri i i P) m zkori o aj razne raunske vi ( re V)

Kdo vse to om ogoa i usklaj e? n j uj 4-operacijski sistem

[OS neuradna skripta 2006/07]

Stran 5

Lastnosti OS: dodeljuje vire program om skl adno s potrebam ii zm onostm i n ( kom u dodeltiCPE? Za kolko asa?) i i reuj konfliktne situacije e (komu prej dodeliti CPE?) optimizira uporabo ra.virov nadzira delo nekaterih virov nadzira izvajanje upor. Programov ol uj delo uporabniku aj e poveuj ui e nkovi tost ra.Si stem a Definicija OS: Spl ono sprej defi cie ni ete ni j ! N aa del ovna defi cia: ni j OS je program, ki deluje kot posrednik med uporabnikom in strojno opremo. Pri tem skua: 1) zagotoviti ui nkovi tost uporabe strojne opreme 2) ustvariti prijazno okolje Kaj sodi v OS: M nenj neenotna.D ve ekstrem nistalista: a i 1) O S=m noi program ov,kijh pod tem i enom preda proi al ca i m zvaj ec 2) O S=program ,kise nenehno i a ( edro, zvaj =j kernel )

1.2) Zgodovinski razvoj OS


1.2.1) Zgodovinski razvoj
fi no zel velki zi o i upravljali so jih s konzolo programer=operater postopek: napi program e ga rono nal oi vpi zaetninasl e ov poene program opazuje izvajanje na dol oenem m estu preki i anj ne zvaj e odi oz.I e vsebi regi ta zpi no strov popravi vsebino registrov Kasnej se poj dodatna oprem a,kiol a del e avi aj o: strojna oprema programska oprema [OS neuradna skripta 2006/07] Stran 6

Ta oprema je poenostavila programiranje, toda zapletla uporabo raunal ka. ni Posel( ob)= vsipostopki kiso potrebniza i j , zvri opravia v raunal ku tev l ni

Vsa ta priprava pred zagonom je bila dolgotrajna (set-up time), toda med tem je bil CPE nezaposlen,ra si stem pa zato sl i abo zkori en,eprav drag. Vpraanj e: Kako poveatii zkori enost,da se bo i nvesti j spl a? cia aal profesionalizacija operaterja (1.2.2/1) paketna obdelava (1.2.2/2)

1.2.2) Enostavna paketna obdelava


1) profesionalizacija operaterjev

Prednosti: Slabosti:

Raunal k upravlaj veioperaterj,kizm anj ej pri ni j o i uj o pravlal as. j ni Neinteraktivnost: v primeru napake operater posreduje programerju izpise registrov in pomn. lokacij (dump).

2) paketna obdelava

[OS neuradna skripta 2006/07]

Stran 7

Prednosti: Posli s podobnimi zahtevami se izvedejo eden za drugim, nekateri postopki zato odpadej pri o, pravlal as se zm anj j i a.

Kljub paketni obdelavi in prof. Operaterjev, je bila i zkori enost e vedno nezadovoli jva! Razlogi: operater je opazoval izvajanje posla na konzoli nato j ugotovi,zakajse j poselustavi ( e l e l uspeno al zaradinapake) i glede na to je poskrbel za izpis pomnilnika in registrov (dump) nato je nal l( pravi)nasl oi pri l ednj poseli paketa i z ponovno zagnalraunal k ni Torej: Sklep: M ed eni i drugi posl pretee preve asa! l m n m om ovek j e vedno zavora. e l oveka j treba zam enj . S i ? Zakaj ne s stroj . Ta naj skrbi za e ati m em neprekinjeno, avtomatino del ovanj stroj e a.

1.2.3) Rezidentni monitor


Za avtomatizacijo delovanja poslov (automatic job sequencing) so razvili program, imenovan rezidentni monitor (v nadaljevanju RM). Naloga: O b koncu posl avtom ati a no i zvesti nasl ednj i posel v paketu.

Delovanje:

O b zagonu se RM nal v pom nini se oi l k, zaene ter poskrbiza i zvedbo prvega posla v paketu. Sam medtem ostane v pomnilniku (rezidentnem). Ko se nek posel kona, RM prevzam e nadzor in poskrbi za izvedbo naslednjega posla. Sam medtem ostane v pomnilniku. Npr., kako naj RM razlikuje med zaporednimi programi v paketu? Kako najve,da j potrebno nal tidatoteko? e oi Katero? ( program ?prevaj ni al k?zbi k?knjni .) rni i co?.. Kako naj ve, da je potrebno pognati kak program? Katerega?

Kako naj RM izvede posel:

[OS neuradna skripta 2006/07]

Stran 8

Rei tev:

Posledica:

Med kartice, na katerih so bili zapisani programi so vstavili kontrolne kartice z navodili za RM Npr. $FTN $ASM $RUN $JOB $END Del RM je moral skrbeti za razpoznavanje in interpretacijo kontrolnih kartic! Ta del imenujemo interpreter kontrolnih kartic. Interpreter je pogosto klical nalagalnik, zato je tudi ta postal del RM. Ker so bile V/I operacije pogoste, so biiRM e gonilniki za V/I naprave l

Rezidennim oni j bi prvipreprostiO S tor e l


Prednosti: Bola i j zkori enost sistema nizanja/izvajanja poslov zaradi avtom.

Slabosti:

e vedno ni interaktivnosti med uporabnikom in tekoi program om zato j popravlanj program ov m e j e zamudno in zahtevno as, ki mine od oddaje programa do prispetja rezultatov (turnaround time) je odvisen od: ra.zahtevnostiprograma (OK) tega, kdaj ustrezni posel pride na vrsto za obdelavo (ni OK)

Zopet so i j zbolave koristne za lastnike ra.si stem ov,manj pa za uporabnike.

1.2.4) Prekrivanje operacij


Klub tem u,da j l j e ovek nadom esti hi iRM ,pa j bi procesor e vedno sl i l trej e l abo zkori en! Razlog: Poasnost m ehanski V/Inaprav h Npr. Procesor: nekaj miljonov ukazov na sekundo i ec karti okrog 17 kartic na sekundo tal c: V/I 10.000-krat poasnej i H i e V/I napreve, toda procesorj so se razvial e hi e! Razkorak j trej i j i trej e postaj e vej. al i

Sasom a:

Rei tve: 1)Loen V/I( -line procesiranje) off Ko so se pojavili magnetni trakovi

[OS neuradna skripta 2006/07]

Stran 9

Namesto:

Raje:

O bi na raba: aj

Prednosti: Slabosti:

Bola i j zkori enost procesorj saj so tudi hkrati potekal V/I i raunske a, e n operacije (prekrivanje, overlapping) e vednini interakcije m ed uporabni kom i tekoi program om /posl ,zato n m om je popravljanje programov zamudno in zahtevno as ki m i od oddaj program a, do pri ne e spetj rezul a tatov ( turnaround ti e)j e dali Razl m e j. og: Trak je medij z zaporednim dostopom, zato je potrebno zapi sovanj program ov/posl na trak; akanj da se e ov e, trak napol ; previanj traku na zaetek; prenaanj ni j e e traku na drugo enoto CPE. Zopet so i j zbolave koristne za lastnike ra.si stem ov,manj pa za uporabnike.

2) Spooling (simultaneus peripheral operation on-line) Kmalu so se pojavili magnetni diski, ki so medij z neposrednim dostopom. Zato se di l sk ahko uporabikot velk vm esni za zaasno hranj e V/Ipodatkov i k enj

1)

e j vhodna naprava pri e pravlena, CPE zaasno preki tekoa opravila, j ne bere vhodni podatek in ga shrani na disk Stran 10

[OS neuradna skripta 2006/07]

2) 3) 4)

Ko je posel na vrsti za obdelavo, CPE bere njega in vse njegove vhodne podatke ( tro)z di ( nj hi ska z egovega podroj a) Izhodne podatke tekoega posl ( a npr. vm esne i konne rezul n tate) CPE izpisuje (hitro) na disk e j i e zhodna naprava pri pravlena,CPE zaasno preki tekoe opravio i j ne l n j pole pri i j pravlene i j zhodne podatke iz diska

Spoolng om ogoa prekri e operaci V/Ii raunski operaci. i vanj j n h j (tj. v nekem trenutku l ahko tee i anj nekega posl hkratipa e branj i zvaj e a, e n izpis na vhodnih in izhodnih napravah) Prednosti: Toda: e bola i j zkori enost procesorj ( a zaradiprekrivanja, overlapping) CPE j e vedno teko dobro i e zkori ti Razl sti . og: N ekateriprogram ii aj zel velke V/Izahteve,zato j velko CPE asa m o o i e i porabljenega za prenos podatkov med diskom in delovnim pom nini l kom ( pa za pravo raunanj ne e) e vedno ni interakcije m ed uporabni kom i tekoi program om . n m

Zopet so i j zbolave koristne za lastnike ra.si stem ov,manj pa za uporabnike.

1.2.5) Multiprogramska paketna obdelava


Spoolng zaradi branj vnaprej om ogoi da j l i a , e ahko na di sku ve posl pri ov pravl jenih (jobpool) D i nudineposreden dostop do vsakega od njm ,zato j m ono nasl sk i e ednj ega,kise bo nal l oi v pomnilnik izbrati!

Vpraanj e: Odgovor:

Katerinajse nal nasl oi ednj? i Razvranj posl ( ob schedulng) e ov j i (to je nova naloga OS)

e ve: Vpraanj e: Odgovor:

V pom nini j m ono nal ti po ve l k e oi poslov hkrati Kako to izkoristiti? Multiprogramiranje (nova naloga OS)

[OS neuradna skripta 2006/07]

Stran 11

Multiprogramska paketna obdelava: 1) V pomnilniku je OS ter nekaj pripravljenih poslov 2) OS enega od njih izbere in ga poene 3) e se tekoi posel zaustavi ( bodi ker se j konal al pa nekaj aka) si e , i prevzame nadzor zopet OS, ki izbere kak drug pripravljen posel in ga poene Nove naloge kijh m ora reevatiO S: i Kateriposl najse nal j z di v pom nini i oio ska l k? razvranj poslov e Kje in koliko pomnilnika dodeliti izbranemu poslu? Kako mu ga dodeliti? upravljanje s pomnilnikom Kateremu od pripravljenih poslov dodeliti procesor? dodeljevanje procesorja Kako preprei , da bi en posel neeleno vplval na drugega ( ti j i npr. V pomnilniku,...) zai ta Prednosti m ul program ske program ske oprem e j e bola i ti e j zkori enost procesorj i a n tudi drugih virov (pomnilnik, V/ I) zaradi preklaplanja. Toda: e vedno ni interakcije m ed uporabni kom i tekoi posl n m om Poslednica je premajhna storilnost programerja, saj je: i anj posl nerodno, ker m ora program er predvi zvaj e a deti m ona nadalevanj i ustrezne ukrepe vgradi v navodia ( bo i anj j a n ti l e zvaj e neuspeno naredito i to,etc.. n .) odkri e/popravlanj napak zam udno,ker j stati ( podlagi izpisa) vanj j e e no na razvoj program a bi bi l l ahko tudi si cer hi i e bi m ed sam i trej , m razvijanjem lahko preverjal/prilagajal izvorno kodo.

1.2.6) Interaktivnost za uporabnika


I nterakti vnos s stala uporabni ( j : i ka ele) 1) Uporabnik naj ukazuje OS/programu preko tipkovnice in prejema odzive/rezultate na zaslonu. 2) Prejeti ukaz naj OS ''takoj'' i zvri obvesti uporabni o rezul h i poaka na , ka tati n naslednji ukaz 3) Uporabniku naj pri razvoju programov pomagajo interaktivni urejevalniki, debugerji...

[OS neuradna skripta 2006/07]

Stran 12

1.2.7) Interaktivnost za lastnika


Te ele i aj nekajtakoj i posledic za razvijalca/lastnika sistema: j m o njh 4) Za interaktivno delo s programi/podatki mora biti na voljo on-lne datotenisi i stem 5) Ki programe hrani v datotekah raznih tipov (zaporedja bitov, zlogo, vrstic) 6) Ki so na zunanjih pomnilnikih 7) In zaradi hitrega dostopa dodatno organizirane (npr. v direktorije povezane v graf) 8) Posl ca bibia e vi a cena sistema edi l j Interaktivnost s stala razvial astni si i j ca/l ka stem a pomeni tudi naslednje: pogoste so V/I operacije s l ovekom ( npr.branj s ti e pkovni i s na zasl ce, zpi on) l ovek j poasen, zato te operacie porabio velko asa, toda m al procesorskega e j j i o asa ( procesor rel vno velko asa aka na uporabni da prebere i ati i ka, zpis na zaslonu in vtipka naslednji ukaz) Posledica i nterakti vnostibibia e vi a cena in ponovno sl i l j aba zkori enost CPE!!! Al to pom eni da j i i , e nterakti vnost neuresni jva ela? N E! li j

1. 8)asovno dodelevanj 2. j e
Rei tev: M ul program i e + asovno dodelevanj ti ranj j e

1) H krati del ve uporabni a kov, vsak s svojim poslom, toda vsak posel se sme neprekinjeno izvajati omejen as 2) OS izbere posel, mu dodeli as za izvajanje in ga poene 3) e m i dodeleni as, al pa se posel ustavi ( ne j i konal , aka na l oveka) prevzam e nadzor O S, ki izbere drug posel, mu dodeli as, in ga poene. Ob ustreznem asu ter izbiranju poslov se s preklapljanjem procesor dovolj pogosto vrne k vsakemu poslu, tako da njegov l astni ne opazi da j procesor m edtem opravlal tuj nal k , e j e oge, uporabni i a obutek, da k m raunal k del l zanj(virtualni stroj) ni a e

[OS neuradna skripta 2006/07]

Stran 13

Sedaj lahko ve uporabni kov i nterakti vno uporabla raunal k, pri em er j tudi procesor j ni e dobro i zkori en! Tak OS imenujemo si stem z dodelevanj asa (time-sharing) j em

1.2.9) Terminologija
Terminologija: Namesto posel (job) sedaj raje uporabljamo besedo proces. Intuitivno: Proces j program v nekifazii anj ( e zvaj a npr.pri pravlen, j tee, aka) Vsak uporabni i a vsajen svojproces;l k m ahko jh i a tudive. i m Procesi zanj uporabljajo razne naloge (sorodne ali pa tudi ne) imenovane opravila (task). O S s asovni dodelevanj daj vti uporabni da vsa nj m j em e s ku, egova opravia reuj soasno, l e saj je preklaplanje tudi med njegovimi procesi tako pogosto, da vsak od njih zadosti hitro napreduj i j m ona i e n e nterakcia z njm j i Zato O S s asovni dodelevnjem imenujemo tudi veopraviniO S ( ul taski O S) m j l m ti ng O S z dodelevanj asa ( j em veopraviniO S) l 1) Hkrati dela ve uporabni kov, vsak s svojimi procesi, toda vsak proces se sme nepreki eno i atiom ej as nj zvaj en 2) O S i zbere proces,m u dodel as za i anj i ga poene i zvaj e n 3) e m i dodelen as al se proces ustavi nadzor prevzam e O S ne j i ,

1.2.10) Nove naloge OS


N ove nal oge,kijh m ora reevatiO S z dodelevanj asa: i j em Kako zagotovi ui ti nkovi uporabo datotek? to datotenisi stem ( sprotni on-line) , Kako zagotovi ui ti nkovi uporabo ve zunanjh pom nini ( skov) to i l kov di ? upravljanje z zunanjim pomnilnikom Ker je procesov veliko, lahko proces dobi le del potrebnega pomnilnika... upravljanje z navideznim pomnilnikom Ker j uporabni e kov velko i del i i n o nterakti vno, j zai m ed procesi e bol e ta j pomembna zai ta Kateremu od pripravljenih procesov dodeli procesor? D odelevanj procesorj ( j e a razvranj na procesorj e u) Kako najprocesiuskl uj o svoj i aj ej a zvrevanj i im ed sebojkom uni raj a n/al ci o? sinhronizacija in komunikacija [OS neuradna skripta 2006/07] Stran 14

1.2.11) Prednosti in slabosti


Prednosti O S s asovni dodelevanj : m j em interaktivnost dobra i zkori enost oprem e velika dostopnost (multiuser) Slabosti visoka cena

1.3) NEKATERE VRSTE OS


1.3.1) O sebniraunal k ni
Cena stroj oprem e j zael padati sasom a j padl tolko,da j l ne e a , e a i e ahko i elraunal k v m ni lasti posameznik v 70-ti se poj j osebniraunal ki h avio ni Njihov OS so bili enostavni: Enouporabni ,enoopravini ki l Z m nogi i poenostavi m tvam i velki O S ( i h zai datotek ni ve neuporabna, ta razvranj tudine) e In drugimi cilji: Konno ni ve tako pom em bna dobra i zkori enost oprem e ( zaradi ni zke cene) Pa pa udobnost pri uporabi (convenience) in prijaznost do uporabnika (userfriendly) Primeri: MSDOS in dodeljevanje: MS Windows, IBM OS/2 Apple Macintosh

Vpraanj e: Mnenje:

Al bodo zahtevniO S e potrebni i ? Zaradi nizke cene in visoke zmogljivosti strojne opreme (v nadaljevanju HW) zapl eteniO S ne bodo ve potrebni . Dogaja se ravno nasprotno: ZahtevniO S se e bol i j j rio Nekateri razlogi: Veopravinost O S so zael tudina osebnem raunal ku l eni ni To i pa om ej n enost fi nega pom nini poraj potrebo po upravlanj z navi zi l ka a j u dezni m pomnilnikom

[OS neuradna skripta 2006/07]

Stran 15

Ker j e vsak raunal k v raunal kem om rej sta zai in varnost spet e ni ni u, ta pomembni Po drugistranipa osebniraunal kivse m onej ni i Primer: ( prehaj e konceptov z velki na m anj anj i h e)

1.3.2) Vzporedni (paralelni) sistem


Znainosti l : Vsebuje ve procesorj m ed seboj na nek nai povezani ( ev, n h skupno vodio) s l , skupno uro, vasi tudi s skupni pom nini h m l kom i V/I napravami. Pravimo, da je ta n sistem tesno sklopljen (tightly coupled). Razlogi za pojav: Vej propustnost ( a throughput) ve procesorj opravi ve del v enoti asa. , ev a Pospeek j T1/Tn, kj j Tn as, ki ga porabi za nal e er e ogo n procesorj O bi no j ev. aj e manj od n ( lnerano) vzrok j reia. i ni i , e j Vej zanesli a jvost ( i lty) i relabii zpad enega procesorj ne zaustavicel si a ega stem a,pa pa l posl e aba nj egove perform ance Prihranki pri napakah, si so lahko skupne Veprocesorskim odel ( ede na nal i gl oge) Model sim etri nega veprocesi a: ranj Vsak procesor i a i zvaj denti kopio O S,kopie po potrebim ed sebojkom uni raj no j j ci o. M odelasi etri m nega veprocesi a: ranj Vodilni (master) procesor dodeljuje ostalim (slave) procesorjem opravila (taks) in nadzoruje celotni sistem podrej opazuj o vodinega i akaj na nj eni ej l n o egov ukaz al i pa i aj predefi rana opravia.S tem ko se procesorj cenio,njhova m o pa vea, zvaj o ni l i j i se l ahko nekatere nal O S prenaaj tudina podrej procesorj ( oge o ene e back-ends) Vrsto modela narekuje bodisi strojna oprema ali programska oprema, torej OS!

1.3.3) Porazdeljeni sistemi


Znainosti l : Vsebuj ve procesorj vsak i a svoj l ni pom n. m ed seboj povezani ni aj e ev, m okal , h, m o skupne ure, pravimo, da je sistem i skl j oziroma porazdeljen bko oplen Razlogi za pojav: Delitev virov in prihrankov pri tem [OS neuradna skripta 2006/07] Stran 16

Vej propustnost ( a throughput)v pri eru,ko se i m zvedba nal porazdel po vozli oge i i h Vej zanesli a jvost ( i lty)kadar eno vozle l relabii i ahko prevzam e nal okvarj ogo enega Komunikacija (ftp, e-mail)

1.3.4) Sistem iza del v real o nem asu


So si stem i kim oraj zadosti dol , o ti oeni zahtevam i okolce m z i Primeri: nadzor proizvodnje, jedrska elektrarna, manevrirne rakete D el e pravino,e: uj l Dajejo pravilne rezultate V predvi denem asu Poznamo trdne in mehke Trdi: Zagotavlaj da bodo kri na opravia i j o, ti l zvrena v predvi denem asu Vse operacie m oraj bi asovno om ej ( j o ti ene predvi jve) dli To ima posledice na OS in njegovo arhitekturo/organizacijo Zato za nekatere aplikacije taki sistemi sploh niso primerni (preskromni OS) Zagotavlaj da bodo kri na opravia i j o, ti l zvrena kar se da hi tro Posl ca te zahteve na O S i arhi edi n tekturo ni tako drasti kot pritrdi so ne h I e i rei dej n tve, si so jh daj i m ehki si i al stem i ( npr. razvranj na e procesorju), so pridirale tudi v ostale OS (npr.Unix)

Mehki:

[OS neuradna skripta 2006/07]

Stran 17

II.)ELEM EN TIRAU N ALN I KEG A SI STEM A


Motivacija in vsebina: Da bi lahko razumeli delovanje OS, moramo prej poznati nekatere elemente, ki sodijo v arhitekturo in organizacijo raunal kega si ni stem a, hkrati pa pom em bno vplvaj na .. i o .. (manjka)

Vsebina:

2. D el 1) ovanj ra.si e stem a 2.2) V/I 2.3) Pomnilnik 2. El entistroj zai 4) em ne te 2.5) Sistemski klici

2. D ELO VAN JE RA.SI 1) STEM A


Zgradba

Krmilnik ( controler) nadzoruj ustrezno napravo al ve naprav. Krm ini i CPE delujejo l e i l k n soasno,pridostopu do skupnega pom nini tekm uj o. l ka ej

2.1.1) Zagon in delovanje


Zagon: O b vkl opu strojsam poene zaetniprogram ( bootstrap) ki , Je majhen, enostaven program, ki Inicializira,ra.si ( stre CPE,krm ini .)i s. regi l ke.. n N al jedro OS v pomnilnik (npr. z diska) in oi jedru OS preda nadzor O S pri i atiprviproces ( ne zvaj npr.'I t') 'ni '

Delovanje: (sodobni OS so vodeni s prekinitvami) O S aka na dogodke in se nanje odziva O dogodku ga obvesti prekinitvena zahteva [OS neuradna skripta 2006/07] Stran 18

2.1.2) Vrste prekinitev


Prekinitev je: Strojna, e j zahteva/sproistroj oprem a: o na N pr. naprava pole po vodiu preki tveno zahtevo i z nj preki tekoe j l ni n o ne delo na CPE, konec V/I operacije, neveljaven poseg v pomnilnik Programska, e j zahteva/sproitekoiprogram: o N pr. si stem ski klc, s kateri tekoi program zahteva pom o O S, past ( i m trap) , ker je CPE zaznala izjemno situacijo (deljenje z 0)

Ko se pojavi prekinitvena zahteva: CPE preki tekoe del ne o Izvede prekinitveno servisni program (v nadaljevanju PSP), s katerim se odzove na dogodek Nadaljuje prekinjeno delo

Izvedbe:

Vsak si stem i a svoj posebnosti v spl m e , onem pa razlkuj o dva pristopa: i em 1)Program skii zpraevanj ( e poolng) i 2) Vektorske prekinitve

1)Program sko i zpraevanj ( e poolng) i Ko se pojavi prekinitvena zahteva: CPE preki tekoe del ne o Pri i atiskupniPSP,kiugotovi kdo j zahtevalpreki tev ne zvaj , e ni Zane i atipri zvaj padaj PSP oi [OS neuradna skripta 2006/07] Stran 19

Nadaljuje prekinjeno delo

Prednost: Slabost:

Enostavnost Poasnost

2) Vektorsko prekinjanje

1) v pomnilniku je prekinitveni vektor, ki vsebuje naslove A1, A2,...do PSP1, PSPS2... 2) Naprava ve, da je naslov njenega PSP v i-ti komp. prekinitvenega vektorja 3)Ko naprava zahteva preki tev,pole v CPE tudii ni j ndex i Ko se pojavi prekinitvena zahteva 4) CPE preki tekoe delo (shrani vrednost PC(program counter, vrnitveni naslov) na ne sklad) 5)uporabii ndex i da prebere nasl Ai(n ga nal na PC) , ov i oi 6)Pri i atiPSPi( kona,s skl ne zvaj ko adom prenese v PC vrni tveninasl ov) 7) CPE nadaljuje prekinjeno delo [OS neuradna skripta 2006/07] Stran 20

Prekinjanje prekinitev Ponekod nim ono (PSP se izvede do konca) Prednost: Enostavnost Slabost: M anj odzi a vnost,poasnej odzi a vnost Ponekod j m ono PSP prekiniti (vgnezdene prekinitve) e Preki tvene zahteve i PSP i aj pri tete. e i a nova zahteva vi o ni n m o ori m j prioriteto od tekoega PSP,bo ta preki en,si ne. nj cer Prednost: Vi a priagodli j l jvost Slabost: Zapl etenost,dodaten as

2.2) VHOD IN IZHOD


Vhodno izhodni sistem = V/I naprave + krmilniki + programi za V/I operacije

V/I naprave: Za prenos informacij med CPE/gl.pomnilnikom in zunanjim svetom N pr.ti pkovni m i zasl . ca, ka, on.. Za shranj evanj podatkov,pom onipom nini e l k Npr. diski,diskete Krmilniki naprav: (device controller): Naloga: Skrbi za podrobnosti pri prenosu podatkov na/z V/I naprave in svojim pomnilnikom Npr.: opazuje stanje V/I naprave, izvaja podrobne operacije Vsebuje: registre: Statusni (za stanje V/I naprave, npr.busy,done,error) Ukazni (za ukaz, ki naj ga izvede V/I naprava) Podatkovni ( param etre ukaza, za podatek, ki naj se i e/bere na za zpi V/I ali celo vmesni pomnilnik (kadar je takih podatkov veliko) Programi za V/I operacije: Izvajajo jih krmilniki, da razbremenijo CPE Vrste krmilnikov: od enostavnih (en sam register) do zapletenih (kot cel speci i raunal k) alz. ni

Potek V/I operacije: 1) CPE vpi podatke v regi e stre krm ini ( l ka ukaz,param etri.. ,.) Npr. Za branje z diska: v krm ini di vpi 1-naslov sektorja ki naj se prebere 2l k ska e ukaz beri za izpis na disk krmilnik: vpi 1-podatke, kinajse i ej 2-naslov, kamor naj e zpi o se i ej 3-ukaz i i zpi o zpi

[OS neuradna skripta 2006/07]

Stran 21

2) krm ini razpozna,kajzahteva ta V/Ioperacia i j pri i ati l k j n o ne zvaj Npr. branje: krm ini poskrbi za pom i gl l k k ave, prepoznavanj zaetka zahtevanega e sektorja, sestavljanje bitov v besede, kontrola pravilnosti prebranega, prenaanj v vm esnipom nini krm ini e l k l ka izpis: podono pri izpisu na disk 3) ko j V/Ioperacia konana,km ini pole CPE preki tveno zahtevo ( e j l k j ni obvestio,da j l e konal )
Slika21

(2) CPE Krmilnik

(1)

(3)

Vodilo

V/I operacijo je zahtevalnek proces (uporabni al pa si ki i stem ski npr.gonini , l k)

Vpraanj kajv asu ( i ( pone CPE oz.ta proces? Loi o dva pri e: 1) n 3) m stopa: Sinhroni V/I Asinhroni V/I

2.2.1) Sinhroni V/I


Sinhroni V/I: proces (npr. gonilnik), ki je zahteval V/I operacijo, aka, da se ta kona (n i zaseda CPE) aka l . ahko na ve nai nov: izvede ukaz (npr. wait), s katerim ustavi CPE; obudi ga naslednja prekinitvena zahteva izvaja lahko Loop: jmp Loop,i katere ga bo reia nasl z l ednj preki tvena zahteva a ni v zanki sam opazuj statusniregi e ster krm ini i aka na konec V/Ioperacie l ka n j Prednost: Slabosti: takoj se ve, od kj j preki tvena zahteva, saj naenkrat tee naj ena V/I e e ni ve operacija. CPE j sl i e abo zkori en,V/Inaprave so sl i abo zkori ene.

2.2.2) Asinhroni V/I


Asinhroni V/I: proces (npr. gonilnik), ki je zahteval V/I operacijo, nadaljuje svoje izvajanje. Stran 22

[OS neuradna skripta 2006/07]

V tem nadalevanj j m ono m arsi : j u e kaj Morda l ahko proces nadaluj brez ' j e teav' Npr. uporabni program , ki j posl ti ni podatke za ti ki e al skal ku skanj l e, ahko brez teav nadaluj svoj i anj j e e zvaj e e si stem ski program ( npr. gonini l l k) ahko skrbi za ve V/I naprav hkrati l , ahko takoj za eni V/I ukazom i V/I ukaz e za kako drugo m zda V/I napravo. Ko bo prva konal bo s preki tveno zahtevo usm eria a, ni l njegovo pozornost spet nase. Lahko pa se i zkae,da proces vendarl ne m ore nadalevati e j Npr. e uporabni program za svoj nadalevanj nuj potrebuj podatke ki e j e no e (ki jih V/I operacija pravkar pripravlja) e si stem ski program ( npr. gonini l l k) ahko skrbi l za eno napravo e naenkrat,bo m oralpoakatina konec V/I Tedaj proces sebe blokira (s sistemskim klicem), tj.prepusti CPE drugemu procesu. Ko bo V/Ioperacia konana,bo si j gnal( preki tvena zahteva) za proces ni ponovno obudil. Prednosti: proces med V/I operacijo bodi kori si stno zaseda CPE al pa CPE sprosti(zkori i i enost CPE) sproeniCPE l ahko uporabikak drug proces (multiprogramiranje) hkratil ahko poteka ve V/Ioperaci (i j zkori enost V/I naprav) Slabosti: Vej zapl a etenost

2.2.3) Tabela stanj naprav


AsinhroniV/Iom ogoa ve V/Ioperaci hkrati Vpraanj kako z njimi upravlja OS? j . e: OS uporablja tabelo stanj naprav (device-status table), kjer: vsaki V/I napravi pripada ena komponenta tabele komponenta vsebuje o podatke o napravi (ime,naslov,tip (disk,tiskalnik,...), (prost,zaseden,okvarjen,...),...) o kazalec na seznam V/I zahtev, naslovljenih na to V/I napravo

stanje

[OS neuradna skripta 2006/07]

Stran 23

Slika22

Tabel stanj naprav 1. V/I zahteva za DSK3 2. V/I zahteva za DSK3

DSK3, disk, zaseden Datoteka: Bla. dat Operacija: beri Naslov: 3456463 D o l n a : 24 i

Datoteka: p o ro io .txt l Operacija: za p i i Naslov kam: 1110012 Naslov od kje: 1234234 D o l n a : 2302 i

PRN2, tiskalnik, prost

2. 4)Zaetek V/Ioperacie 2. j
Proces-naroni el V/I operacio. Zato sproi ustrezni si k i j stem ski klc ( V/I . N adzor i za ) prevzame OS, ki: ugotovi, za katero napravo gre ter pogleda v tabelo stanj naprav (v komponento te naprave) e je naprava zasedena (torej seznam V/I zahtev ni prazen) potem O S vkluinovo zahtevo v ta seznam ( konec,al pa nekam vm es,e j na i upoteva pomembnost)*** sicer O S vkluinovo zahtevo v ( j prazen) seznam i poskrbiza zaetek te V/I n operacie ( pr.naroigonini najvpi ukaz v krm ini naprave. j N l ku e l k ) Nadzor se vrne procesu-naroni kinadaluj al pa se bl ra,e ne m ore nadalevati ku, j e, i oki j ***tu i a O S prionost m ani i ,kam bil V/Izahteva (optimizacija) m l pulrati a

2.2.5) Konec V/I operacije


Ko V/Inaprava kona,pole preki tveno zahtevo.N adzor prevzam e O S,ki j ni ugotovi, za katero V/I napravo gre ter pogleda v tabelo stanj naprav (v njeno komponento) i seznam a nj h V/I zahtev i oi konano V/I zahtevo i o koncu te V/I operacie z eni zl n j obvesti proces-naroni e aka nanj ( j m u signal) ka, o pole e seznam e niprazen ( torejna napravo aka nova V/Izahteva) potem O S i zbere eno od akaj h V/I zahtev (morda prvo, lahko pa po oi pom em bnosti*** i poskrbi za zaetek te V/I opecaje ( ) n i npr. naroi gonilniku...) *** tu ima OS prionost m ani i ,tj i l pulrati . zbirati, katera V/I zahteva bo naslednja. Vasi j to dobro ( h e npr.e elm o,da se O S ogi m rtvi zankam) i ba m

[OS neuradna skripta 2006/07]

Stran 24

2.2.6) DMA / motivacija


Asi nhroniV/Ij za poasne V/Inaprave pri eren. e m Pri er. ( m enostaven term i ski gonini Ko j na term i u vti nal l k) e nal pkan znak, se pri ne prenos tega znaka v glavni pomnilnik (v buffer):
Slika23

Tipkovnica

CPE

Serijski vhod

Vodilo

Krmilnik p.

Gl. pomn . . . . .

Buffer

1. serijskivhod pole preki tveno zahtevo CPE j ni 2. tekoiproces se preki ( ne vektorsko al z i i zpraevanj ) em 3. zaene se PSP za to napravo ( term i skigonini ,kinpr. nal l k) shranivsebi e nekateri regi no h strov CPE preveri da nipri o do napake priprenosu prej ega znaka i e j ustrezno , l nj n e, reagira prenese novi znak z naprave v glavni pomnilnik, v naslednjo lokacijo bufferja povea tevec znakov, ki so v buf u i i ferj n ndeks nasl ednj proste l e okacie v j bufferju postavi zastavico v gl.pomnilnik (tako obvesti ostale programe, zadol ene za nadaljno obdelavo podatkov iz bufferja, da je vanj prispel nov znak. En tak program npr. aka, da pri spe EN TER, ter nato vrsti i buf a posreduj co z ferj e programu, ki jo je zahteval) obnovi vsebino registrov CPE 4. nadzor se vrne prekinjenemu procesu [OS neuradna skripta 2006/07] Stran 25

Skratka: Vpraanj e: Analiza:

CPE je sodeloval pri prenosu vsakega znaka. Al j CPE s prenaanj znakov zel obrem enj ie em o en? Naj bo hitrost terminala 9600bitov/sek Torejl ahko term i poij znake naj s hi nal la ve trostj cca.1 znak/m s o Zato lahko CPE prej e preki tveno zahtevo s term i a kvej u vsaki m ni nal em h 1000 mikrosekund. PSP zahteva cca. 2 mikrosekundi Torej998 m i krosekund od 1000 ( 8% asa)CPE l 99. ahko opravla druge j naloge. e j V/Inaprava poasna,asi e nhroniV/Ibi stveno ne obrem enjuje CPE. Opomba: od tod do uspenost O S z dodelevanj j em asa: CPE klub j m nogi V/I operaciam na term i i ostane dovol asa za m j nalh j izvajanje drugih nalog.
Slika24

Sklep:

Prekinitvena zahteva s tipkovnice

Druga prekinitvena zahteva

P o a sn a V /I naprava

O d zi i a s vn OS

V te m a su l h ko a O S d e l ka r h o e . a

O d zi i a s vn OS

Hitra V/I naprava ......

Toda:

Sklep: Ideja:

Vzemimo namesto terminala neko drugo V/I napravo (npr. disk,trak, rej , om e) ki lahko priskrbi nov znak npr. vsake 4 mikrosekunde. Tedaj CPE porabi 50% asa za prenaanj teh znakov v pom nini e l k! e j V/Inaprava hi lahko tako pogosto prekinja CPE, da ta ne more zadosti e tra, ui nkovi opravlatidrugi nal asinhroni V/I ni primeren. to j h og e j V/Inaprava hi najprenos poteka brez pom oiCPE,neposredno m ed e tra, gl.pomnilnikom in V/I napravo. To je DMA.

[OS neuradna skripta 2006/07]

Stran 26

2.2.7) DMA krmilnik


Za DMA prenos skrbi DMA krmilnik
Slika25

Disk

U C B CPE A

Vmesni pomn.

Vodilo

Krmilnik p.

Gl. pomn

A
Buffer

1. CPE vpi v regi e stre DMA krmilnika: A naslov bufferja v gl.pomnilnik B nasl zaetnega sektorj podroj ov a a C koli podatkov,kinajse prenesej i no o U ukaz ( ,zapi ) beri i 2. Krm ini pri i atioperacio,npr.branj l k ne zvaj j e: Prenese podatke z diska v svoj vmesni pomnilnik Preveri, e j bi prenos uspeen ( e l checksum ) Prenese to vsebino v buffer v gl.pomnilnik npr. pisanje Prenese podatke iz bufferja v svoj vmesni pomnilnik Zapi vsebi vm esnega pom nini na di e no l ka sk 3. Krm ini pole v CPE preki tveno zahtevo l k j ni

[OS neuradna skripta 2006/07]

Stran 27

2.2.8) DMA potek


Potek: Proces-naroni el V/Ioperacio ( branj z di al vpi nanj .Zato sproi k i j npr e ska i s ) ustrezni si stem ski klc. N adzor prevzam e O S, ki poskrbi za zaetek te V/I i operacije, tako da: V glpom nini poi buff ( . l ku e er prazen,e j treba bratiz di e ska; pol e j treba nanj n, e pisati) N aroi ustreznem u gonini naj poskrbi za V/I operacio ( l ku, j preda m u potrebne podatke) *** G onini te podatke vpi v registre DMA krmilnika naprej: l k e o Naslov bufferja v gl.pomn. o N asl podroj na di od kj najse bere oz.kam or najse zapi ov a sku( er e) o D ol no ( i no podatkov, ki naj se berej v buffer oz.zpi o i buff a na i koli o i ej z erj disk) o U kaz ( ,zapi ) beri i G onini se bl ra ( tako poaka na konec prenosa) l k oki da CPE m edtem l ahko i a druge procese. Ko se prenos kona, D M A krm ini zvaj l k pole preki tveno zahtevo CPE. j ni Gonilnik se s tem obudi O koncu te V/I operacije obvesti proces-naroni e aka nanj ( j m u signal) ka, o poli

*** .. tu dale j gonini 'l .od j e l k 'oen' proces,kiskrbiza nal ' ogo.

2.3) Pomnilnik
Slika26

Procesor-pomnilnik. Ukazi in operandi v pomnilniku. Ukaz se dostavi Procesor iz pomnilnika v procesor ( v enega od registrov). Dekodiranje. Iz pom nini se dostavio operandi I l ka j . zvri ukaza. Vpi rezul tev s tata v Gl. pomn. pomnilnik. Lastnosti: 1. med procesorjem in pomnilnikom stalen tok podatkov (von Neumannovo ozko grlo) 2. Pom nini ne l m ed ukazii operandi l k oi n 3. O perandii ukaziso v l n okaciah,kii aj enolne nasl j m o i ove. Praksa: N ekatere l okacie so l j ahko fi no drugj npr.regi v V/I zi e, stri Slika27 napravi, krmilniku... vendar naslovljeni tako, kot da bi bile del Procesor pomnilnika (pomnini preslkani l ko i )
Gl. pomn. Pomnilnik v praksi: 1. premajhen za vse programe in podatke 2. hrani zaasno. Zunanji pomn. Zato: dodamo zunanji (sekundarni) pomnilnik; ta je velik in hrani podatke trajno. Programi in podatki se z zun.pomnilnikom prenesejo v glavni pomnilnik, ko

[OS neuradna skripta 2006/07]

Stran 28

je to potrebno; rezultati se trajno shranijo na zunanji pomnilnik. Zunanji pomnilnik je npr. m agnetnidi opti di m agnetnitrak. sk, ni sk, Magnetni disk: Povri na. Sl ed. Cii lnder. Sektor. Roka. Slika28 Kapaciteta v GB. Vrtenje 60-150 obratov/s. as dostopa Procesor (posit.time) = i ni as ( skal seek ti e) + rotac. m zakasni tev (rot.latency). Vse skupaj nekaj milisekund. Hitrost prenosa v Predpomnilnik MB/s. Krmilnik diska vsebuje svoj vmesni pomnilnik (predpomnilnik). CPE vpi podatke v svoj l e asten pom nini l k (preslikan vhod/izhod). Procesor zahteva podatke hitreje, kot Gl. pomn. jih lahko glavni pomnilnik dostavlja! Zato: da procesor ne biakal podatke vnaprej pripravimo v , Zunanji pomn. predpomnilniku (cache), ki pa je dovolj hiter. S tem skrijemo razliko v hitrosti med procesorjem in pomnilnikom. Delovanje: Dostava iz predpom nini e j zahtevanipodatek e tam ( l ka, e zadetek,hi ,si pa t) cer i glpom nini ( z . l ka zgrei m i Zgrei nezael tev, ss) tev ena,ker tedajprocesor aka. Praksa: Predpomnilnik je drag in zato majhen v primerjavi z gl.pomnilnikom, zato ne vsebuje vsega kar j v gl pom nini Zato j vano, da so v predpom nini pri e . l ku. e l ku pravleni pravi j podatki Vnaprejse eksaktno ne ve, kateriso resni pravi l . no , ahko pa se pri praviti ste, ki so verjetno pravi (to je naloga upravljanja s predpomnilnikom, cache management). Z dobrim upravljanjem predpomnilnika lahko pogosto zadetkov naraste na 80%-99% (hit ratio)

Obstaja lahko hierarhija predpomnilnikov (npr. procesorski L1, L2, L3 predpomnilniki) in razne vrste (I-cache, D-cache) Sklep: Zaradi prakti h razl ni ogov se v von N eum annovi arhi tekturi poj pom nini avi l ka hierarhija. Posledica: podatek ( nj oz. egove kopie) se l j ahko poj j na ve ni i hi avio vojh erarhie. To pa j predstavlja potencialno nevarnost.
Slika29

Primer: Denimo, da je podatek A=1 na disku in da proces P el poveatiA. Torej se A skopira z diska i v regi ster CPE, pri em er pa se ustvari e ta njegovi kopiji v gl.pomnilniku in predpomnilniku. Podatek se povea v regi stru procesorj i v a, n ti stem trenutku kopie ni ve enake ( j so so nekonsistentne). Tudi ko se vpi nazaj v e predpomnilnik ali celo v gl.pomnilnik, je na disku e vedno staripodatek. Konsi stentnost se obnovi el ko se podatek popraviv cel e, otnihi erarhii j.

Procesor

Predpomnilnik

Gl. pomn.

Zunanji pomn.

[OS neuradna skripta 2006/07]

Stran 29

Slika30 e bi bi pri l soten l proces P, nekonsi e stentnost ne prestavla nevarnosti e nam re P zopet potrebuj j : e podatek A, se v procesor dostavi naj j l vi e eea kopija A, ki pa je tudi najbolj aurna. V veopravinem si l stem u pa j potrebna previ e dnost. Denimo, da se P, ki j ravnokar v regi e stru poveal A, prekine. Registri procesorja (torej tudi nova vrednost A) se shrani na sklad, toda v predpomnilniku, glpom nini i na di j e vedno stara vrednost . l ku n sku e A! e nasl ednj proces Q zahteva A, bo dobi staro, neauri i l rano vrednost!!! Sklep: pred m enj procesov j treba poskrbetiza auri e hi avo e ranj erarhie. j

V veprocesorskem sistemu (s skupnim pomnilnikom) ima lahko vsak procesor svoj lokalni predpom nini Kopie podatka A se l l k. j ahko poj j v ve predpom nini h. e en procesor avio l ki spremeni svojo kopijo, mora nekdo spremeniti tudi ostale kopije, sicer bo drug procesor uporabil staro. Kako to izvesti? To je problem koherentnosti predpom nini l kob. Reuj se e strojno. Slika31 e bol zapl j eteno je v porazdeljenih sistemih, ker ima tam vsak procesor e svoj glpom nini i cel zunanj . l k n o i pomnilnik. Podatek A sedaj ni le na enem disku, ampak se lahko pojavi na razlni i h di h. ski Vzpostavi tev koherentnosti v enem vozlu e ne i pom eni da j sprem em ba zabel , e eena i upotevana v ostalh! To j probl n i e em replikacije podatkov.

2. El entistroj zai 4) em ne te
M ul program i e om ogoa soasen obstoj ve procesov,tj programov v izvajanju. Seveda ti ranj . ti procesi tekmujejo za skupne vire (CPE,pomnilnik, V/I naprave,...) zato obstaja nevarnost, da sipritem kodio ( l da se ovi o) j ne e raj Primer: 1. proces nepoobl aeno posee po podatki drugega procesa v pom nilniku al pa celo h spremeni del OS 2. proces se uj e v neskonno zanko ( kl i sitako priastiCPE am zaci a) n l 3. proces nestrokovno upravlja s krmilnikom V/I naprave Vpraanj e: Odgovor: Toda: Kako zagotovi ,da proces ne bo kodi drugim procesom oz. OS? ti l Zai nudiOS to OS se pri tem opira na nekaj osnovnih mehanizmov, ki jih nudi strojna oprema

Ti mehanizmi so: [OS neuradna skripta 2006/07] Stran 30

vsajdvoj nai del ni n ovanj ra.si a stem a ( uporabni i si ki n stem ski ) privilegirani ukazi zai pom nini ta l ka timer, ki redno generira prekinitvene zahteve

2. 1)N ai del 4. ni ovanj a


Ideja: N ekateriukaziso potenci no kodli za ostal procese,zato najbodo priviligirani. Te al jvi e bo sm eli atil O S,uporabni proces pa ( zvaj e ki neposredno)ne! Izvedba: 1) Sistem naj ima na voljo dve nai ( m a)del na rei ovanj (mode of operation): a sistemski (system, supervisor,monitor mode) v katerem tee l , e OS (ki sme izvesti priviligirane ukaze) uporabni ( ki user m ode) v katerem tee uporabni proces ( ki ki ne sme izvajati priviligiranih ukazov) Strojna oprema mora nuditi bit N ai (m ode bi , ki opi e trenutni nai n t) suj n delovanja. 2) Poskrbeti je treba, da bo N ai = uporabni natanko tedaj ko tee uporabni n ki , ki proces. Zato: a) Ob zagonu naj str.oprema zagotovi prehod v sistemski nai ( se nal n da oi i poene OS) n b) O S naj poene upor.proces v uporabni kem nai ( nu preden m u preda nadzor,popraviN ai n) c) e m ed i anj zvaj em upor. procesa pri prekinitvena zahteva, potem de str. oprem a sprem eni nai i uporabni n z kega v si stem ski, (da se v njem lahko izvede sistemski PSP (z morebitnimi priviligeranimi ukazi)), pred vrnitvijo v prekinjen upor.program pa se nai spet popraviv uporabni n ki 3) e bo proces skuali zvestipri l ran ukaz,priem er N ai = uporabni , potem viegi n ki naj se proces ujame v past! (Str. oprema naj ob dekodiranju preveri, ali je ukaz priviligiran ter kaken j N ai e n)

Sklep: za vse to je potrebna strojna podpora!

2. 2)Zai V/I 4. ta
Predpostavka: Denimo, da bi smel upor.proces sam upravljati z V/I napravami, tj. izvajati V/I ukaze. Potem bi se lahko zgodilo, da bi tak proces vpisal nov V/I ukaz v krm ini V/Inaprave ( l ku npr.di ska,ti ni .. e predno j V/I skal ka,.) e Stran 31

Posledica:

[OS neuradna skripta 2006/07]

naprava konal i anj prej ega ukaza ( a zvaj e nj npr.branj sektorj a a, tiskanja,...)! Sklep: V/I ukaze sme izvajati le OS, saj le ta pozna stanje V/I naprav (npr. preko tabele stanj naprav) V/I ukazi morajo zato biti priviligirani

2. 3)Zai glpom nini / m oti j 4. ta . l ka vacia


Primer: Posledica: Denimo, da bi upor.program P smel neposredno (nenadzorovano) spremeniti vsebino prek.vektorja. Tedaj bi P v i-to komponento namesto Ai vpisal lasten naslov B. Denimo, da je PSPi (kamor je prej kazala i-ta komponenta) del OS. (Npr. PSPi je odziv na neko past) Ko bi bil kasneje nek proces Q prekinjen zaradi i-te prekinitvene zahteve, bi s tem kot obi no preelv si aj stem skinai toda n, namesto PSPi bi se v si stem skem nai pognaluporabni nu ki program P !!! U porabni program ne sm e neposredno sprem i ki njati prekinitvenega vektorja (vsaj nekaterih njegovih komponent ne) Denimo, da bi upor.program P smel neposredno (brez nadzora) spreminjati kodo PSP. Tedaj bi P vpisal v prvo lokacijo PSPi ukaz jmp B. Ko bi bil kasneje nek proces Q prekinjen z i-to prekinitveno zahtevo, bi si stem seveda pri v si el stem ski nai toda nadzor bi n, (preko PSPi) prevzel upor. proces P!!!

Slika32

Ai

Ai

PSPi

Sklep:

Primer2:

Posledica:

Sklep: e ve:

Upor.program ne sme neposredno spreminjati PSP (vsaj sistemskih ne) U por. program ne sm e nepoobl aeno sprem i ati tudi drugih programov (ne nj le OS)

2. 4)Zai glpom nini 4. ta . l ka


N aj preprostej nai za zai glpom nini j par regi i n to . l ka e strov Zaetni asl in Konni asl N ov N ov, ki vsebujeta spodnjo in zgornjo mejo trenutno dovoljenih naslovov. Pred dostopom do pom nini se vsak nasl stroj preveri e j i l ka ov no . e zven dovolenega j obsega, se program ujame v past (in nadzor prevzame OS) Ukaz za spreminjanje vsebine teh dveh registrov mora biti priviligiran (sicer bi se upor.program sam postavljal meje)

[OS neuradna skripta 2006/07]

Stran 32

Slika33 Z a e tn i K o n n i K o n n i

Naslov

>=

<=
Z a e tn i

Past

Ukaz za spreminjanje vsebine teh dveh registrov mora biti priviligiran (sicer bi si upor. program sam postavljal meje) O bstaj o boli stroj nai , da se program u preprei dostop do nedovoleni l aj j ni ni j h okaci. N a j pri er,pom nini j razdelen na strani vsaka stran i a svojzai klu, ( m l k e j , m tni j Kodek 7. 4)

2. 5)Zai CPE.. 4. ta .
Program ( uporabni al pa si ki i stem ski se l ) ahko uj e v neskonno zanko i ne prepustiCPE am n drugemu programu. Torej: CPE j treba zai tipred tem ,da bisij upor. e ti o program priasti. l l Ideja: V str.opremo uvedemo timer, ki peri no poij preki tvene zahteve v odi la ni CPE.O b vsakipreki tvise poene PSP ( j delO S) kii a m onost,da ni ki e , m prekinjenemu procesu odvzame CPE. M ona i zvedba ti erj m a: M ona i zvedba ti erj Ti er = ura + tevec. V tevec se vpi za. vrednost. U ra obi no m a. m e aj m erias i peri no poij i pul tevcu.O b vsakem i pul se tevec zm anj za 1.Ko n odi la m ze m zu a dosee 0,pole prek.zahtevo v CPE.Za.vrednost tevca j l j e ahko razlna,s tem pa j tudi i e pogostost preki anj CPE. U kaz za sprem i anj tevca m ora bi pri l ran, si bi si P nj a nj e ti viegi cer sam nastavi as i anj l zvaj a! Ponavljaj OS: odl ,kolken najbo S ( vrednost tevca) oi i za. nastavitevec na S preda nadzor upor. progr. P; P stee.. . M ed i anj P ti er pone tol zvaj em m e: ponavljaj ob uri nem ti zm anj tevec za 1 ku aj e tevec = 0,potem Ti er sproizahtevo i pokliPSP/O S m n i until true [OS neuradna skripta 2006/07] Stran 33

...dokler (P konal al ( preki en s ti erj ) ) iP nj m em OS: e P prekinjen potem O S odl ,al P sm e nadalevati oi i j ; dokler ( konal al ( sm e nadalevati P ) iP j )

2. 6)..i si 4. . n stem iz dodelevanj asa j em


Ponavljaj OS: izbere naslednji proces P, ki naj dobi CPE; opravivzdreval del na a: o dol vrednost S ( . vrednost tevca; t. velkost asovne oi tjza. j i rezine) o nastavitevec na S o i e kaj n preda nadzor upor.programu P; P stee.. .. M ed i anj P ti er pone tol zvaj em m e: ponavljaj ob urinem ti zm anj tevec na 1. ku aj e tevec = 0,potem ( u se j i Pj e ztekeldodelenias) j Ti er sproiprek. m zahtevo i pokliO S n i dokler true; .. er ( ustavi ( jkonal aka) al ( u se j i .dokl P l t. , ) i P-j e ztekl asovna rezi ; a na) O S opravie druga vzdreval del na a; Dokler true
Vzdreval del ( na a housekeepi zaj aj npr. auri e podatkov v PCB procesa ( ng) em o ranj npr. dosl porableni CPE ej j as) auri , aranj si e stem ski struktur ( h npr. vrst) upravlanj z V/I si , j e stem om ( spoolng?) upravlanj s i , j e pomnilnikom (npr. garbage collection), morebitno obravnavo mrtvih zank, itd.

2.5) Sistemski klici


D osl sm o vi ie nekajpri lgi h ukazov: ej del vii rani za sprem em bo nai del na ovanj a za sprem i anj zaetnega i konnega dovolenega pom n. ova nj e n j nasl za sprem i anj tevca nj e V/I ukazi O bstaj pa jh e velko (npr.za ustavi CPE,za o( m ogoanj preki tev,.) U porabni a i i tev ne) e ni .. ki program nobenega ne more izvesti, saj bi se ob takem poskusu ujel v past. Vpraanj e: Kako naj upor. program dosee, da se bo pri lgi vii ran ukaz i zvedel ( npr. V/I ukaz)?

[OS neuradna skripta 2006/07]

Stran 34

Rei tev:

Upor.program zaprosi oz pooblasti OS, naj ta v njegovem imenu izvede priviligiran ukaz. To pooblastilo izda v obliki ukaza, imenovanega sistemski klic (system call). Sistemski klic progr.prekinitev:
Slika34

Upor. program

OS PSP za sistemski klic Tu se 'strokovno' izvede zahtevani privilegirani ukaz, saj le OS ve, v ka te ri o ko li a h h i n je to dovoljeno in le OS pozna o ko li e (stanje) v katerem je i n tre n u tn o ra u n a l i si m . n ki ste

Sistemski klic

(ob sliki) PSP za sistemski klic: tu se 'strokovno' izvede zahtevani privil.ukaz, saj le OS ve, v kateri okoli h i nah j to dovoleno.I l O S pozna okoli ( e j n e i ne stanj ,v katerem j trenutno e) e ra. stem . si O pom ba: Si stem ski klc j l i e ahko asovno zahtevna operaci kadar terja od OS veliko ja, preverjanja.

[OS neuradna skripta 2006/07]

Stran 35

III.) ELEMENTI OPERACIJSKEGA SISTEMA


Slika35

3.1) Motivacija

Kako sestaviti?

Kako programirati ?

Kako uporabiti?

Na OS l ahko gl edam o z razlni i h zornih kotov. O e sm o obi en uporabnik, nas aj morda zanima le storitve (servisi), S ki jih nudi OS, ter osnovno, kar mora vedeti, da jih lahko uporabljamo. Programer je obiaj zahtevnej . no i Poleg tistega, kar mora poznati kot uporabnik OS, je zanj pomemben tudi vmesnik (API), ki ga nudi OS za sporazumevanje z uporabni m program om . ki Pogled razvijalca j naj ri sajm ora pol vsega povedanega i etipred om ivse tehni e i , eg m ne podrobnosti razvoja... U porabni pogl ki ed: komponente OS servisi, ki jih nudi OS Programerjev pogled: sistemski klici sistemski programi Razvial pogl j ev ed: zgradba OS virtualni stroj snovanje in implementacija OS generiranje OS

3.2) Uporabnikov pogled na OS


3.2.1) Komponente OS
Sodobni O S svoj nal e oge zdruuj v sm i no zaokroene komponente. To daj O S vej e sel e o pregl ednost i obvl jvost. eprav se O S m ed seboj zel razlkuj obstaj o nekatere n adli o i e, aj znai komponente: lne upravljanje procesov (process management) [OS neuradna skripta 2006/07] Stran 36

upravljanje glavnega pomnilnika (main-memory management) upravljanje datotek (file management) upravljanje V/I sistema upravljanje zunanjega pomnilnika (secondary-memory management) del v om rej (networking) o u zai ( ta protecti ng) interpretacija uporabnikovih ukazov (command-interpreter system)

3.2.2) ...Upravljanje procesov


Osnovno o procesih. I ti ntui vno: proces j program v i anj Je ustvarj tee, i nato e zvaj u. en, n uni en. Za svoj tek rabi vi ( re CPE, pomnilnik, V/I, datoteke, as,.) N ekatere vi dobi ob .. . re nastanku, druge kasnej Z okolco si l e. i ahko i enj e podatke. H krati l zm uj ahko obstaj ve a procesov. Lahko so neodvi , l sni ahko pa se uskl uj o, kom uni raj O bi no tekm uj o za aj ej ci o. aj ej omejene vire. Proces sam lahko ustvari nove procese. Itd,itd... Torej: OS mora biti sposoben upravljati s procesi, kamor sodi naslednje: ustvarjanje procesa uni e procesa enj odl tev procesa,nj oi egovo ponovno obudi tev usklajevanje med procesi komunikacija med procesi reevanje iz zastojev (mrtvih zank) i e kaj n

3.2.3) ...Upravljanje glavnega pomnilnika


Osnovno o glavnem pomnilniku. Za uporabnika je glavni pomnilnik kraj, kjer se izvede njegov program: pred zagonom se mu dodeli prostor, po izteku pa se prostor sprosti. Hkrati s tem se prosti deli pomnilnika...MANJKA Torej: OS mora biti sposoben upravljati z glavnim pomnilniom, kamor sodi npr. nadzor kdo ima kaj (t.j. kateri proces trenutno zaseda ned del gl pomnilnika) izbiranje kdo od kandidatov bo zasedel (ne vem kaj)

3.2.4) ...Upravljanje datotek


Osnovno o datotekah. Za trajno hranjenje programov/podatkov ima uporabnik na voljo razne zunanje pomnilnike (disk, CD, trak...) Ti se med seboj zelo razlikujejo (po krmilniku,...). Da bi uporabnika razbremenil teh podrobnosti, poenotimo pogled na zunanje pomnilnike: vpelem o datoteko, t.. l no enoto zunanj j j ogi ega pom nini U porabni bo torej rokoval z l ka. k (ogi m i datotekam i za prevedbo v fi nisvet zunanjh pom nini pa bo poskrbelO S. l ni ) , zi i l kov Torej: OS mora biti sposoben upravljati z datotekami, kamor sodi npr. ustvarjanje in brisanje dat. kreiranje in brisanje dir. [OS neuradna skripta 2006/07] Stran 37

ostal osnovne operacie:prem eanj kopi e,sti sprehaj e po di e j e, ranj k, anj r. preslkavanj m ed datoteko i resni m zunanjm pom nini i e n ni i l kom skl enj ( adi e backup) t..varnostno shranjevanje , j i e kaj n

3.2.5) ...Upravljanje V/I sistema


Osnovno o V/I sistemu. Za komunikacijo z okolico ima program na voljo razne V/I naprave ( pkovni m i .) Ti se m ed seboj zel razlkuj o. Za uporabnika bi bilo neposredno ti co, ko.. . o i ej upravljanj z njm preve zapl e i eteno. Tu nastopi O S: uporabni m i ukaz poda v svoj k em enostavnem jeziku, OS pa ta ukaz 'prevede' v vse, kar je potrebno za tako upravljanje V/I naprave, da bo na koncu ukaz izpolnjen.

Torej: OS mora upravljati V/I sistem (=V/I naprave+krmilnike+V/I programe), torej mora vsebovatispl oen vm esni za kom uni j z goll ki k kacio ini vsebovati gonilnike za posamezne V/I naprave upravljati z vmesnimi pomnilniki (buffer), predpomnilniki (cache), spoolingom i e kaj n

3.2.6) ...Upravljanje zunanjega pomnlnika


Osnovno o zunanjem pomnilniku. Zunanj pom nini so nam enj traj em u hranj u i l ki eni nej enj datotek: Torej: OS mora upravljati zunanje pomnilnike, kamor sodi npr. upravljanje s praznim prostorom ( auri e struktur, ki povedo kj j prazno; ranj e e iztiskanje malih prazni ( n defragm entacia) ) j ,

3. 7)..D el v om rej 2. . o u
O snovno o del ovanj v om rej Porazdelenisi u u. j stem j m noi ( e ca heterogeni raunal kov, h) ni ki so m ed seboj povezani v raunal ko om rej preko razni kom uni j h lni ( tri ni e h kaciski i j hi h vodil,...telefonskih linij). Cilj povezovanja je nuditi svoje naprave in storitve drugim, vendar teavo predstavla raznolkost vozl i povezav m ed njm i Tu nastopi O S, z nal j i i n i . ogo da te razlike skrije pod uporabni kom i m itako ol a uporabo om rej i nj n aj a n egovi stori h tev. Torej O S m ora podpi del v om rej kam or sodinpr. : rati o u, klicanje oddaljenih funkcij (RPC oz. Java/RMI) usklajevanje

3. 8).. 2. .Zai i varnost ta n


O snovno o zai . Kadar j v si ti e stem u ve uporabnikov oz. procesov, morajo biti ustrezno zai teni eden pred drugi , pred vsem i pa tudi sam O S. Zai ti j treba tudi dostop do m ti e razni vi h rov,kijh nudiraunal kisi i ni stem [OS neuradna skripta 2006/07] Stran 38

Torej: O S m ora nudi zai kam or sodinpr. ti to, nadzorovanje dostopa procesov do posameznih virov i e kaj n ter varnost, kamor sodi npr.: zai pred okolco ta i i e kaj n

3.2.9) ...Interpretacija uporabnikovih ukazov


Osnovno o sprejemanju ukazov. Interpreter ukazov (command interpreter, shell) posreduje med uporabnikom in ostalimi komponentami OS. Je bodisi...MANJKA Ve o tem kasnej I e. nterpreterj so bol al m anjpriaznido uporabni ( i j i j ka uporaba grafi . ke)

3.3) Programerjev pogled na OS


3.3.1) Sistemski klici
Programer s sistemskim klicem zaprosi OS, naj ta v njegovem imenu izvede neko (zanj prepovedano) akcio.Za program erj so si j a stem skiklcinai za i i n zkori anj O S,oz.posredni e k med njegovim programom in OS; tvorijo t.i. API (application programmer interface) Sistemski klic je prog. prekinitvev
Slika36

Upor. program

OS

Sistemski klic

PSP za sistemski klic

O bi no j to ukaz v zbi ku. aj e rni M orebi param etre tedajposreduj o O S vsajna trinai tne em ne: 1. Pred s. jh vpi o v vnaprej dogovorj k. i em ene regi stre procesorj tam jh bo a; i prebral PSP; (prednost: hitrost; slabost: omejenost prostora);

[OS neuradna skripta 2006/07]

Stran 39

2. Pred s. jh vpi o v gl. pomnilnik, njihov naslov pa vpi o v vnaprej k. i em em dogovorjeni register procesorja. PSP bo uporabil ta naslov in prebral parametre iz gl pom nini ( . l ka; prednost:za velke param etre,sl i abost:as) 3. Pred s.k. jih v dogovorjenem vrstnem redu porinemo na sklad. PSP pa jih od tam prebere Toda nekaterivi iprogram skij kiom ogoaj neposredno s. kot obi ne funkciske klce j ezi o k. aj j i Primer: iz C v UNIX
#include <fentl.h> #include <unist.h> Main() { Int fd; Ssize_t nread; Char buf[1024]; f = open( d data, O_RDONLY); nread = read(fd, buf, 1024); close(fd); }

Primer: s.k. med kopiranjem datoteke (tukaj je bil en dolg algoritem...) V vi sokem progr.ezi nam za take podrobnosti obi no ni treba skrbeti saj j nal j ku aj , e oga prevaj ni i knjni da se ukaz copy prevede v vse to, kar smo opisali v primeru. Ne glede al ka n i c, na to pa je jasno, da so sistemski klici pogosti!

3.3.2) Skupine sistemskih klicev


Sistemskih klicev je cela vrsta. V grobem jih lahko zavrstimo v skupine, npr. za: upravljanje procesov upravljanje datotek upravljanje naprav vzdrevanj i dostavo i e n nform aci j komunikacijo Obstaja tudi standard POSIX

3.3.3) ...S.k. za upravljanje procesov


To so sistemski klici na primer za Konec procesa/program a. Konec j l e ahko norm al ( t) al pa predasen ( en exi i abort) z ustreznim opisom napake ustvarj e procesa ( anj createrprocess)i za uni e procesa ( n enj term i naterprocess) nalaganje (load) in zagon (execute) drugega programa/kode v okviru danega procesa za poij e si ov ( gnal lanj gnal si event)drugi procesom m [OS neuradna skripta 2006/07] Stran 40

zadrevanj procesa za nekajasa ( ai e w ttime) oz. do nekega dogodka (waitevent) branje in spreminjanje atributov procesa, npr. prioritete za poij e si ov ( gnal lanj gnal si event)drugi procesom ; m zadranj procesa za nekajasa ( ai m e)oz.nekega dogodka ( ai e w tti w tevent) ; branje in spreminjanje atributov procesa, npr. prioritete, itd. (read set processattribute); za razhroevanj e itd.

3.3.4) ...S.k. za upravljanje z datotekami


To so sistemski klici npr. za: ustvarjanje (create) in brisanje (delete) datoteke odpiranje (open) in zapiranje (close) datoteke branje (read) iz datoteke in pisanje vanjo (write) branje in spreminjanje atributov datoteke (get-set fileattributes) itd.

3.3.5) ...S.k. za upravljanje naprav


To so sistemski klici npr. za: zahtevanje (request) V/I naprave in njeno sprostitev ( release) branje z naprave (read) in pisanje nanjo (write) itd. S programerjevega stala obstaja podobnost med datotekami in V/I napravami: oboje je i treba zahtevati (open, request), nad obojimi poteka branje/pisanje (read/write), oboje je treba po uporabi sprostiti (close, release). Zato nekateri OS, npr. UNIX, gledajo na naprave kot na posebne datoteke (special files) in za delo z njimi nudijo kar sistemske klice za delo z datotekami.

3. 6).. k.z vzdrevanj i dostavo i orm aci 3. .S. e n nf j


Sem sodio s. za prenaanj i orm acie m ed upor. j k. e nf j program om i O S,npr. n : tekoias i datum ( me, date) n ti izpis trenutnih uporabnikov izpis trenutnih uporabnikov izpis trenutnih procesov i s koli prostega pom nini al pa prostora na di zpi i ne l ka i sku itd.

3.3.7) ...S.k. za komunikacijo


Ti klici so odvisni od modela komunikacije, ki je v veljavi 1) Komunikacija Preko skupnega pomnilnika (shared memory) [OS neuradna skripta 2006/07] Stran 41

Tu pom aga O S l v zaetku, privzpostavi kom uni j S si e tvi kacie. stem ski klcem ( ap m i m memory) se procesa dogovorita za del pomnilnika, kamor bosta oba lahko posegala. ( tako zaobi deta zai pom nini kij vsakemu posebej sicer nudi OS) to l ka, o Po tem sta za usklajeno in pravilno komunikacijo v celoti odgovorna sama OS ne ve ni o tem ,kdaji kako kateriod njj bere al vpi e v skupnipom nini Potrebniso n iu i suj l k. mehanizmi za uskladitev (sinhronizacijo med njima). 2) Komunikacija S sporoii(message passing) l Tu O S sodel e prikom uni j od zaetka do konca.Poij juporabisi uj kacii latel stem skiklc i (open connection), s katerim zaprosi naslovnika za vzpostavitev povezave. Naslovnik sprejme ponudbo s sis.klicem (accept connection). Ko j povezava vzpostavlena, si procesa po nj poij sporoia s si klcem a e j ej lata l st. i (npr. send, receive). Povezavo pretrgata s sist. klicem (close conn). Proces se lahko spravi v akanj na to, da bo kdo z njm el kom uni rati (zvede si klic wait for e i el ci i st. connection), prva ponudba (sist. klic open connection) ga bo obudila. Tak proces se i enuj daem on ( m e npr.v streni h) ki .

Primer: s.k. za UNIX

Pid = fork(); d= waitpid (a,&b,c);

... ustvarinov proces i vrninj n egovo i teviko d. l ... akaj da se proces t. kona; opi kako se j konal dobi , a s, e , na & b.Razne opcie opi e c.e j a=-1,akajna prvega,kise j suj e bo konali vrninj n egovo i teviko d. l exec(...) ... zam enj prog. aj kodo procesa ( bo poelnekajdrugega) da exec(&s) ... konajproces i zapi na & s,kako se j konal n i e p = getpid() vrnii teviko procesa d l v = brk(n) poveaj anj pod.segm ent do nasl n;velkost /zm aj ova i dodeljenega prostora vrni v v. fd = create(m edi zai ustvaridatoteko i at, ta) fd = open(m edi nai i at, n) odpridatoteko n = read(fd, kam, koliko) berii datoteke f z d n = write(fd, odkje, koliko) zapi v datoteko i

3.3.8) Sistemski programi/interpreter ukazov


Interpreter ukazov razpozna i i n zvrinasl ednj upor. i ukaz.Za to obstaj dva pristopa: ata neposreden: i nterpreter e vsebuj kodo za i e zvedbo ukaza. (tak ukaz imenujemo rezidentni) posreden: i nterpreter poi datoteko s si program om za ta ukaz, j nal i e st. o oi n poene

[OS neuradna skripta 2006/07]

Stran 42

Slika37

e l n i p ro g ra m e

Int. ukazov

Int. ukazov

Jedro (1),(4),(5)

Jedro

(2),(3),(4)

Primer 1: delovanje posrednega interpreterja (pri MSDOS) 1. ob zagonu se nal i oi nterpreter ukazov 2. ko razpozna uporabnikov ukaz, o poi i nal ustrezniprogram e n oi o mu prenese morebitne parametre o i ga poene. n 3. ko se el program kona ( eni norm al al ne) no i , o ob koncu shrani kodo napake v sist. del pomn. o in preda nadzor preostanku interp. ukazov 4. ta spet nal celi oi nterpreter i mu preda nadzor n 5. interpreter ukazov o uporabi shranjeno kodo napake, o po potrebi obvesti uporabni i se vrne v akanj na ka, n e naslednji uporabnikov ukaz. Slabosti: Prednosti: poasnost, morebitna omejenost pri prenosu parametrov prilagodljivost, majhnost interpreterja

Primer 2: Unixova lupina: bodi poene el program i se m edtem um akne ( si eni n tako kot zgorajpriM SD O S) . ali pa ustvari nov proces (s sist. klicem fork), ko bo i al el program , sam a zvaj eni l na pa nadaluj svoj del soasno z njm ( ul program sko) ( pr.w c i edat upi j e e o i m ti N m > stbesed.out &)

[OS neuradna skripta 2006/07]

Stran 43

3. Razvial pogl na O S 4) j ev ed
3.4.1) Zgradba OS
O S j velk i zapl e i n eten si stem , zato m ora bi pazli nartovan i i pl ti jvo n m etentiran, da bo del oval pravino, zanesli i da ga bo m o enostavno dopol evati N artuj o ga l jvo n nj . em m odul arno,kot m noi dobro definiranih komponent (vhod,izhod,naloga). co Komponente so npr. (omeniism o jh e priuporabni l i kovem pogl na O S) edu : upravljanje procesov upravljanje gl.pomnilnika upravljanje datotek upravljanje V/I sistema upravljanje zunanjega pomnilnika del v om rej o u upravljanje V/I sistema (I/O system management) upravljanje zunanjega pomnilnika (secondary-storaged management) del v om rej (networking) o u interpretacija uporabnikovih ukazov (command-interpreter sys.) Kako pa so te komponente prepletene in med seboj povezane v OS?

3.4.2) Zgradba OS in jedro


Kako so kom ponente m ed sebojpovezane v j edro O S? Kakno zgradbo i a torejj m edro? Enostavna 'zgradba' (enovita,monolitna) O S te vrste so biisprva m aj ,a so sasom a,z nenehni dopol evanj ,prerasl v velke l hni m nj em i i OS. Znainost: pom anj e si l kanj stem ati ne urej enosti oz. gl ne zgradbe. Jedro j velko, obal e i opravlja veliko funkcij in je 'neurejeno'. Nivoji funkcionalnosti (kdo kaj sme) niso razmejeni. Posledice: ranli jvost,nezanesli jvost,teavna razi enost. rj Primer: M SD O S,zaetniU N I X Razslojena zgradba. O S sestavlaj sl i spodnj sl j stroj oprem a,vsak vi isl pa tem elil na ni i sl i j o oj: i oj e na j oj j e jh ojh. N aj j sl j uporabni vm esni Sl sestavla nekajpodatkovni struktur i nekajf vi i oj e ki k. oj j h n unkci j ( dni vi i sl em ) ki l vi h jm oj , ahko uporabio sestavi ( j ne pod. str. i f n unkcie) ni i sl ev. j jh oj Prednosti: Skri e i pl entaciski podrobnosti pri vanj m em j h , naa red. Slabosti: Manj ui a nkovi tost zaradi reie pri prenaanj ukazov navzdol i rezul j u n tatov navzgor. Primeri: THE (6 slojev), Venus (7 slojev)

[OS neuradna skripta 2006/07]

Stran 44

Mikrojedro. Jedro ohrani le bistvene komponente (npr. osnovno upravljanje s procesi in pomnilnikom, podpora kom uni j s sporoii). Vse ostale naloge gredo med sist. ali celo upor. programe. kacii l Rezul j m aj tat e hno j edro, nj egova gl avna nal oga j posredovanj sporoi m ed program om e e l odj al em cem i si servi ( n st. si tudi ti teej v uporabni o kem prostoru) Program -odjemalec . nam re ne m ore neposredno do servi sov,pa pa l s poij em sporoi ( e lanj l preko j edra) tem servisom. Prednosti: Jedro j m aj e hno, razi jvo, obvl jvo, prenosli rli adli jvo. Cel oten si stem pa enostavno razi jv, zanesli varen. N pr. e eden od servi 'zpade' to ne rli jv, sov i , prizadene celotnega sistema. Primeri: Mach, Digital UNIX (ima jedro Macha), Apple MacOS X Server OS temelji na Machovem jedru, Windows NT ima hibridno zgradbo (delno tipa odjemalecstreni k).

[OS neuradna skripta 2006/07]

Stran 45

IV. PROCESI I.
4.1) Vsebina
Vpeljemo pojem procesa O pi o,kako je proces predstavljen v OS em Osnovne operacije s procesi Razvranj e

V vsak ra. stem u potekaj razne dej si o avnosti npr. , V interakt. veupor.sistemu (tj. z dodelevanj asa) j em : Soasniuporabni program ipa tudi sistemski programi ki V interakt. enouporab. veopravinem si l stem u ( npr.W i ndow s) : Programi, kijh uporabni soasno poganj v razlni oknih i k a i h V interakt. enoupor. veopr.sistemu brez oken: Ob lupini tee e drug program v ozadju (npr. V UNIX po ukaz& spet stee lupina, ukaz pa multiprogramsko v njenem ozadju) V enoopr. sistemu (npr. MSDOS): soasno z upor.program om ( npr.urej ni eval kom )stee e kak si program st. (npr. za spooling, za upravljanje pomn.); V sistemu z enostavno ali multiprog. paketno obdelavo : posl obasno pa tudirezi i dentni monitorji Vse te dej avnostii aj nekajspl h skupni znainosti m o oni h l : vsako dejavnost usmerja nek program dejavnost je vedno v nekem stanju ( ede na to,kako dal j prodrl po ustreznem gl e e a programu) Zato ima dejavnost nek i j vlenskici ( zane,tee,kona) kel se Vsaka dejavnost za svoj nemoten potek rabi nekatere vire (CPE,pomnilnik,V/I naprave) I program j l sti e ahko podl za ve dej aga avnostihkrati I e kaj n Te dejavnosti so torej programi v izvajanju. Odslej jih imenujemo raje procesi.

4.2) Proces
Program je pasivna entiteta: je vsebina neke datoteke. Proces j ve kot program :pol program a zaj a tuditrenutno stanje nekaterih drugih e eg em entitet, ki se spreminjajo med izvajanjem programa. [OS neuradna skripta 2006/07] Stran 46

Slika38

Proces

S ta ti i d e l n

D i a m i id e l n n

Programska koda (text section)

V sebina program skega tevca Vsebina ostalih registrov procesorja V sebina sklada z zaasnim i podatki, kot so: - paramteri klicanih procedur/metod - vrnitveni naslovi - lokalne spremenljivke - in e kaj Podatkovni del (data section) z globalnimi sprem enljivkam i in e kaj (glej nadzorni blok PCB)

Torej: isti program lahko porodive razlni procesov i h Npr.: e ve uporabni hkratipoganj i urej ni to pom eni da i a vsak uporabni kov a sti eval k, , m k svojproces,priem er i aj tiprocesii program sko kodo ( . eval k) toda m o sto tjurej ni , razlkuj o se v svojh di i ej i nam i h delh.Zato so to razlniprocesi ni i i ! e uporabni poganj i program v ve okni to pomeni, da v vsakem okolju tee k a sti h, drug proces; ti procesi imajo isto programsko kodo (tj. kopijo istega programa), a vsak svoje vrednosti v dinam i nem del Zato so razlniprocesi u. i !

4.2.1) Stanja procesa


V asu svoj obstoj proces zahaj v razna stanja, odvisna od trenutne aktivnosti procesa. ega a a Tako reem o,da j proces: e nov,... e ga O S ravnokar ustvarj a, pripravljen,... e aka l na procesor, e tee,. .. e procesor i a ukaze nj zvaj egovega programa, aka,. .. e aka na nek dogodek ( konec V/I si ,sem afor.. , npr. , gnal .) konan,. .. e j zaklui i anj svoj program a;O S ga bo uni l e j l zvaj e ega i.
Slika39 Prekinitev Nov Pripravljen Dogodek Dodelitev T e e P o a ka j n a d o g o d e k Pripravljen K o n a n

[OS neuradna skripta 2006/07]

Stran 47

Proces preide v drugo stanje zaradi raznih razlogov: Tekoij prekinjen (zaradi prek.zahteve npr. z ure, V/I naprave, sistemski klic, past,...) e a ostane pripravljen Tekoij onem ogoen e akaj j om ogoen ( se j zgodi odreinidogodek)i postane pri oi e ker e l l n pravlen j ( kandi ra l e za procesor) di e Pri pravlenistee,ker m u j bi z razvranj dodeljen procesor j e l em

4.2.2) Nadzorni blok


Proces je predstavljen/zastopan v OS s svojim nadzornim blokom (proces controled block PCB) Ta vsebuje vrsto podatkov o procesu, med drugim: Kazalci za povezovanje z drugimi PCB v razne strkuture: Stanje procesa (nov, pripravljen, podatki o V/I: tee.. .) o seznam dodeljenih V/I naprav o seznam odprtih datotek podatkiza razvranj e o prioriteta procesa raunovodskipodatki : o kazalci na vrste, ki jih uporablja o enolna i i denti kaciska tevika fi j l razvreval k ni procesa (pid) o t.rauna (account number) podatki o procesorju ( za obnovo po o as/datum ustvarjenja procesa preki tvi ni /akanj : u) o porableniCPE as j o vsebi prog. na tevca o m orebi asovne om ejtve tne i o vsebine ostalih registrov procesorja o dostopne pravice tega procesa (npr.akum,indexi,...) ostali podatki podatki o skladu o id lastnika procesa o vsebina sklada ( npr.okvirji s o seznam sinov trenutno vidnimi o podatkiza dostop o sporoi za ta l lok.spremembami) proces podatki o podatkovnem delu o itd. o vrednosti globalnih spremenljivk podatki za upravljanje s pomnilnikom (za obnovitev pomnilnika) o zaetnii konninasl za zai n ov to o tabela strani oz. segmentov (odvisno od upravljanja pomnilnika)

4.2.3) Vrste
Nadzorni bloki imajo kazalce za povezovanje v razne vrste. Nekatere vrste: [OS neuradna skripta 2006/07] Stran 48

s PCBj vseh trenutno obstoj h i ei procesov, Vrsta pripravljenih procesov (ready queue)..s PCBj vseh procesov,kiakaj l na i o e procesor, Vrsta akaj h na V/Inapravo.. oi . s PCBj vseh procesov,kiakajo na dano i napravo Itd. O i j PCB l tno e ahko v ve vrstah hkrati( npr.v vrsti pripravljenih in vrsti vseh).
Slika40 Prekinitev Nov Pripravljen Dogodek Dodelitev T e e P o a ka j n a d o g o d e k Pripravljen K o n a n

Vrsta vseh procesov (job queue)...

Vrsta pripravljenih a ka j n a o disk1 a ka j n a o disk2

O S vkluuj PCB procesa v razn vrste oz. j e ga i njh i oa,skl z i zl adno s prehaj em anj procesa iz enega v drugo stanje.

Slika41 Vrsta pripravljenih CPE

4.2.4) Diagram vrst


V/I V/I vrsta

Prehajanje procesov (tj.njihovih PCBjev) iz vrste v vrsto opisuje diagram vrst, npr.

1) Proces je izdal V/I zahtevo in se uvrsti v vrsto akaj h na l oi napravo. Ko mu bo naprava ustregla, bo spet pripravljen 2) Proces je prekinila ura (timer), ker se m u j i e ztekeldodelenias. j Vrnil se bo med pripravljene 3) Proces je ustvaril sina in se je odl lakatinanj Ko se bo si oi . n konal bo proces spet , pripravljen. [OS neuradna skripta 2006/07]

S i se ko n a n

a ka d a si n ko n a

Prek. zahteva prispe

a ka p re k. zahtevo

Swap-in

O d stra n j n i n e d o ko n a n i e

Swap-out

Stran 49

4) Proces aka na preki tveno zahtevo.Ko bo ta pri a,bo postalpri ni spel pravlen j (daemon?) 5) Proces j bi zaasno odstranj (zgnan)na zunanj pom nini Ko bo spet pri e l en i i l k. puen, bo elm ed pri pravlene. j

4.3) Operacije nad procesi


ustvarjanje procesa konanj e/uni e drugega procesa enj

4.3.1) Ustvarjanje procesa


Proces ( oe)l ahko ustvari nov proces (sina)!
Slika42 Nov sin Pripravljen O e te e

Pritem se zastavivrsta vpraanj( odgovoriso odvi od konkrektnega O S) sni : 1) Kako oe utvarisi na? O bi no z ustrezni sistemskim klicem (npr. Fork() v UNIX) aj m 2) Kdo sinu priskrbi potrebne vire (Pomnilnik,CPE,V/I naprave,...)? M onosti : a. Priskrbi mu jih OS b. Priskrbi mu jih oe, tako da i. Bodisi del svojih virov podari sinu (resource partitioning) ii. Ali pa si svoje vire deli s sinom (in zanje tekmuje z njim, resource sharing) 3) Kajse zgodiz oetom ( tem ,ko j sin ustvarjen)? po e M onosti : a. O e nadaljuje svoje izvajanje (torej s sinom in ostalimi tekmuje za CPE) b. O e aka,da se si kona ( e j m ed njm a podatkovna odvi n npr. e i snost) 4) Kaken j novoroj si e en n? M onosti : a. Sin je sprva kopia oeta (torej vsebuje enako program sko kodo kot oe;npr. j UNIX, NT) b. Si e ob nastanku vsebuj svojo programsko kodo (npr. DEC VMS, NT) n e

[OS neuradna skripta 2006/07]

Stran 50

4.3.1.1) Primer: UNIX (1) Sistemski klic za ustvarjanje podprocesov (sinov) v UNIX je fork. Kako deluje? D eni o,da j proces P ( m e oe)el ustvari si S si i ti na. stem .klcem f )pokle na pom o O S. i ork( i
Slika43

as P sin od P

fork(); A B

O S pri i atifork( . ne zvaj ) Ko kona ( toka A) j v i , e stem trenutku ( toka B)ustvarj nov proces sin od P. en Si v spl n onem ne stee takoj am pak postane pripravljen ( . , tjaka na procesor). Kaken j ta si Si j i e n? n e denti procesu P v tokiA ( .v trenutku po izteku fork). en tj Torej ima sin: enak stati delkot P ( . ni tjenako program sko kodo kot P) enak di nam i delkot P v trenutku A ( . ni tjvsebi regi na strov,skl .. ada,.program ska tevca PC) . Ker PC kae takojza ukaz fork(), sin svojega forka ne bo izvedel, ko bo stekel (ne bo ustvaril e on svoj si . ega na) 4.3.1.2) Primer: UNIX (2) Kako doseem o,da si od P pone nekajdrugega kot P? n Med izvajanjem fork() je OS sinu od P dol ltudinj oi egovo i t.( j vej od 0) Ta tevika d. ki e a . l se bo kot rezultat fork() vrnila procesu P. Kaj pa sin? Ko bo sin stekel, ne bo zahteval izvedbe fork(), zato bo pri njem v kontekstu funkcije fork() ''vrnjen'' rezultat 0. S testiranjem vrednosti, ki jo vrne fork(),oe oz.si l n ahko spoznata,kdo j kdo i ubereta e n vsak svojo pot v nadaljevanju programa (angl.fork = razcep, cepiti se) Ko spodnj kodo i a oe ( ,ugotovi da o zvaj P) , je fork() <> 0, zato preide na else del. If fork()=0 { koda ki je namenjena le sinu [OS neuradna skripta 2006/07] Ko spodnjo kodo izvaja sin od P, ugotovi, da je fork()=0, zato nadaljuje v if delu. If fork()=0 { koda ki je namenjena le sinu Stran 51

} Else { Koda, ki je namenjena le oetu } O e l ahko uporabisi stem ski klic wait, e el i poakati dokl si ne kona. , er n

} Else { Koda,kij nam enj oetu e ena } Sin lahko uporabi sistemski klic exec, da zamenja podedovano programsko kodo z novo.

4.3.1.3) Primer: enostavna lupina Lupi prebere uporabni ukaz,ustvarinov proces,kita ukaz i na kov zvri m edtem l na aka. , upi While (TRUE) { Beri_ukaz (ukaz,parametri); Pid = fork(); If (pid=0) { Execve(ukaz,parametri,0); } Else { Waitpid(pid,&status,0); } } //l na se vrtiv neskonnizanki upi //lupina s terminala prebere ukaz in parametre //l na ( upi oe)ustvarii denti nega si i zapi nj na n e egovo t //ta test i zvedeta e oba,oe i si i se po nj razi n n, n em deta //sin //.. enj siprogram sko kodo i j pri i ati .zam a n o ne zvaj //oe //.. .poaka,da se ta si kona n

O pom ba ( N I :e biuporabni za ukazom vti U X) k pkal& ,bil na nadaleval soasno s si upi j a nom (ne bi bilo waitpid)

4. 2)Konanj procesa 3. e
Proces z ustreznim sist.klicem zaprosi, da ga OS kona (unix: exit)
Slika44 K o n a n T e e

[OS neuradna skripta 2006/07]

Stran 52

OS: procesu odvzame vse vire (npr. fiz. in navidezni pomnilnik, odpre datoteke, V/I buferje,...) sprosti vse podatkovne strukture, potrebne za obravnavo procesa v jedru (npr. PCB) UNIX: o O S pole oetu si j gnalSIGHLD o e na konec procesa oe e aka ('izvaja' sist.klic wait(&status) ali pa waitpid(...)) O S vpi opi konca v sprem enli status e s jvko o e pa oe e ne aka (ne izvaja wait(&status) ali pa waitpid(...)) OS( j v edro)shraniopi konca,dokl ga oe ne zahteva s er ( ko/e spl pri do w ai ai d) oh de t/w tpi ;

4.3. U ni e drugega procesa 3) enj


Proces l ahko s si klcem zahteva tudikonec drugega procesa,obi no si ( N I kil st. i aj na U X: l)
Slika45

K o n a n T e e

Nekateri razlogi: si nive potreben n si j prekorai dovoleno koli nekega vi n e l j i no ra oe el konati(exit), OS pa je tak, da ne dovoli samostojnega obstoja sinov. i
( U N I j drugae:e se oe kona,nj V X e egove si nove posvoji proces init(pid=1))

4.3.3.1) Povzetek za UNIX (1) O e s fork( naredisi Ta j oetova kopia.O ba nadaluj pripotem. Razlikujeta se le v ) na. e j j eta vrednosti, ki jo vrne fork().

[OS neuradna skripta 2006/07]

Stran 53

Slika46 O e O e Sin

pred pid = fork() po fork potem

pred pid = fork()

pred pid = fork()

potem

potem

OS

fork

OS

fork

To jm a om ogoa,da se v nadalevanj i ata razlno.Si l i j u zvaj i n ahko svoj kodo povsem o zamenja z exec.O e bo priwait zaspal dokl si ne kona z exit (ki v status vpi opi , er n e s konca) Jedro zbudioeta,m u dostaviopi konca i m u om ogoinadalevanj . s n j e
Slika47 O e Sin

potem: if pid = 0 //Sinova koda { exit(status) } else { int status wait(&status) }

potem: if pid = 0 //Sinova koda { exit(status) } else { int status wait(&status) }

OS

4.3.4) Motivacija za niti


Videli smo, kako lahko z uporabo fork in exec soasno i am o ve programov. zvaj Kajpa,e biel isoasno i ative funkcij istega programa? el zvaj Ali pa soasno i ative klcev i funkcie? zvaj i ste j Potem potrebuj o ve niti! em [OS neuradna skripta 2006/07] Stran 54

4.4)Razvranj e
Loi o trivrste razvranj m a: razvranj na procesorj . kratkorono e u.. razvranj ' ov'. e posl .. dol gorono menjavanje... srednj erono

4.4.1) ...Hitri pregled


Razvranj na procesorj e u:
Slika48

Pripravljen

T e e

Razvranj posl e ov:


Slika49 Nov

Menjavanje:
Slika50

Pripravljen

4. 2)Razvranj na procesorj 4. e u
osnovno o razv. na procesorju algoritmi za razv. na procesorju Razvreval k (scheduler) je del OS, ki izbere enega od pripravljenih procesov, ki bo ni naslednji dobil procesor. [OS neuradna skripta 2006/07] Stran 55

Slika51

Pripravljen

R a zvre va l i nk

T e e

Znainosti l : Izbiranje je relativno pogosto (npr. vsakih 100ms) Zato m ora bi razvreval k zel hiter (npr.e rabile 10m s za izbor,a se sproa vsakih 100m s,se za ti ni o
razvranj porabi9% vsega CPE asa!!!) e

Izrazje:

to razvranj i enuj o tudirazvranj na procesorj ( e m em e u CPU schedulng) ter i tudi kratkorono razvranj e.

4.4.2.1) .../preklop Na enoprocesorskem si stem u v nekem trenutku tee kvej u en proces.O stal procesi em i bodisi akaj (na nek dogodek) ali pa so pripravljeni ( o akaj na CPE) M ed pri o . pravleni ise j m sl ednj enega izbere in sedaj se njemu dodeli CPE. i Pravimo, da je procesor zamenjal okolje svojega delovanja. Tak preklop imenujemo tudi menjava okolja (context switch).
Slika52

P0
T e e P 0 Prekinitev ali sistemski klic

P1

Shrani stanje v PCB0

Obnovi stanje iz PCB1

T e e P 1

Prim enj okola ( avi j prekl opu)sta v resni udel ci eena dva program a O S: razvreval k (scheduler), ki izbere enega od pripravljenih procesov, ni dodeljevalnik (dispatcher), ki izbranemu procesu v resnici dodeli procesor, tj. izvede menjavo okolja. [OS neuradna skripta 2006/07] Stran 56

Vasi j nal dodeleval ka enostavna (npr. preda le nadzor izbranemu procesu), vasi pa ne (npr.e O S h e oga j ni h
podpi m enj ra avanj (sw appi ,m ora vasih z diska priskrbeti izbrani proces). e ng)

Razlogi za razdelitev nalog: Razvreval kidel ej po razni al tm i neodvi od dodelevanj ni uj o h gori h, sno j a Al tm i del(zbi e)j l gori ni i ranj e oen od i zvedbenega del ( a dodeltev) zato se l i , ahko posebejosredotoi o na ui m nkovi tost dodeleval ka ( nj j ni na egovo dodeltveno i zakasnitev, dispatch latency) Kjer ne bo potrebna jasna razdelitev, bomo tiho predpostavljali kar oboje skupaj, torej ' razvranj na procesorj = razvranj + dodelevanj e u' e j e. 4.4. 2).. 2. ./prekl opnias M enj avanj okola j za uporabni i reia,i e j e ke sta j zguba asa,sajCPE m ed m enj avanj em okola zanj ne pone ni neposredno kori j e stnega.
Slika53

P0
T e e P 0 Prekinitev ali sistemski klic

P1

Shrani stanje v PCB0

Obnovi stanje iz PCB1

T e e P 1

e j prekl j e procesov pogosto,j vano,da j preklopni as kratek! e aplanj e e Kajpa vplva na prekl i opnias?? Vplivajo npr.: Hitrost pomnilnika (kjer je shranjen PCB) tevilo registov procesorja (ki se morajo shraniti v PCB oz. obnoviti iz njega) (ne)obstoj ukazov za shranitev/obnovo vseh registrov naenkrat

[OS neuradna skripta 2006/07]

Stran 57

Zgradba procesorj ( obstojskupi regi a npr. ne strov.e j vsaka skupi dodelena svoj u e na j em procesu,prekl povzroil preusm eri kazal z ene skupi na drugo.Pri er: op e tev ca ne m DECSYSTEM-20 procesor) Zapletenost komponent OS, npr. kakno j upravlanj pom nini npr. e j e l ka, o ali ustvarja virtualni pomnilnik o al om ogoa m enj i avanj procesov ( appi e sw ng) kakno j razvranj ( .po katerem algoritmu deluje) e e tj ostal m orebi obasna opravia,npr. a tna l o al obravnava m rtve zanke ( i npr.zaznavanj i banj reevanj .. e, zogi e, e,.) o i enj ( e garbage collection) (npr. podatkovnih struktur, ki so ostanki nekaterih operacih) M enj avanj okola j ozko grl O S,sajse pritem l e j e o ahko i zgubivelko asa. i (Da bi to omilili, so med drugim razvili tudi pojem niti o tem kasneje)

4.4.2.3).. ./razvranj s/brez prekinjanja e Vpraanj e: Kdaj je smiselno ponovno premisliti, kateri proces naj dobi CPE? V katerih okoli j m ono/nuj pognatirazvreval k? i nah e no ni
Slika54 2. Nov 5. Pripravljen 3. K o n a n T e e 1. 4.

Kdaj?
a ka

Potem, ko je: 1. Tekoiproces postalonem ogoen ( proces ne m ore nadalevati zato bo elm ed j , akaj i sprosti CPE.Kdo dobinasl oe n l ednj CPE?) i 2. Tekoiproces j preki l ura ( e nia Tekoiproces j rabi svoj asovno rezi Kdo dobi e l o no. nasl ednj as.Rezi O n al kdo drug?) o no? i 3. akaj proces doakali ni pogoj za nadalevanj ( oi zpol tev ev j e akaj proces j postal oi e spet pri pravlen.Al sim orda zasl CPE?) j i ui 4. Tekoiproces konal( CPE j prosta.Kdo dobinasl e ednj?) i 5. Pri spelnov proces ( spelnov proces,kij pri Pri e pravlen.Al sim orda zasl CPE?) j i ui N inuj da se razvranj sproiprivsaki od teh situacij. no e
Slika55 2. Nov 5. Pripravljen 3. K o n a n T e e 1. 4.

Kdaj?
a ka

[OS neuradna skripta 2006/07]

Stran 58

Loi o dva pri m stopa: Razvranj povzroi le 1 in 4. e ta o Proces bo toreji zgubi CPE l e j bi onem ogoen oz.se j konal toreje l e, e l e , ne m ore ve tei V nasprotnem pa bo tekel nemoteno. . o Zato to imenujemo razvranj brez preki anj (nonpreemtive sch.) (Pozor: e nj a Preki tve,kiso posl ca obi ni preki tveni zahtev,so seveda m one, ni edi aj h ni h sajne sproaj razvranj tem ve l zaasno i anj PSP,tipa ' tej o' o a, e zvaj e ne ej . Zato bibi ustreznej prevod razvranj brez odvzem anj saj se procesu ne l i e a, da odvzetiCPE,l ahko pa se ga e vseeno preki v standardnem sm i u. ne sl ) Pol 1 i 4 razvranj sproie vsajena od 2, 5. eg n e 3, ( odvzem sedajzadoa tudii Za ztek dodelenega asa al pa sprem em ba v vrsti j i pripravljenih procesov.) V tem pri eru proces l m ahko i zgubiCPE,etudibie l ahko tekel . Torej je lahko res prekinjen. To je razvranj s preki anj (preemptive e nj em sch.) Razvranj s preki anj odpi nekatere nevarnosti e nj em ra . Primer: D ano j pole A* .n+ tevi e j 1.. l. Program 1:vsako kom ponento pola A poveajza 1. j Program 2:i ivsoto kom ponent pola A. zpi j Scenarij: 1. Zaenem o oba program a,dobi o pri m pravlena procesa P1 i P2. j n 2. Razvreval k dodel CPE procesu P1 ni i 3. e preden j povealvse kom ponente,ga preki ura ( e ne razvranj s preki anj ) e nj em 4. Razvreval k dodel CPE procesu P2 ni i 5. P2 setej del auri e no rane kom ponente pola A ?!?!?! j Kj j vi teav? P2 j sm eluporabi A,eprav P1 e nikonalsprem i anj A. e e r e ti nj a Torej: A bi moral ostati nekako zaklenjen, po tem ko je bil P1 prekinjen, da P2 ne bi mogel uporabiti zaklenjenega A. Potrebni bodo mehanizmi za usklajen dostop do skupnih podatkov (o tem kasnej Kri ne sekcie) e. ti j O dl m o,da bo m ono razvranj s preki anj ,l oi e nj em ahko vplva na zgradbo O S. i Denimo, da bibia v prej em pri eru P1 i P2 si l nj m n stem ska program a ( npr.odzi na dva va si stem ska klca) A pa neka si i , stem ska struktura,kij uporabla O S? e ne bi o j prepreiiuporabe A v nekonsi l stentnem stanj bibie posl ce l u, l edi ahko huj e. Kako? M onosij ve,vplvaj na cel e i o oten O S: 1. Uvesti mehanizme za usklajevanje procesov Slabosti: Vej zapl a etenost j edra O S,vej asovna zahtevnost a Prednosti: Vej odzi a vnost O S 2. Ne dovoliti menjave okolja med izvajanjem sistemskega klica (npr. UNIX) [OS neuradna skripta 2006/07] Stran 59

Prednosti: Slabosti:

Enostavnej jedro e M anj odzi a vnost ( npr.za del v real o nem asu)

4.4.3) Al tm iza razvranj gori e


4.4.3.1) Merila za kakovost N a osnoviesa najvrednoti o i pri erj o al tm e za razvranj m n m am gori e? Obstajajo razna merila: a) I zkori enost CPE ( CPU utii on)... CPE najbo i bol i lzati m j zkori en.V real nosti 40% 90% b) Propustnost (troughput)... tevio konani procesov v nekem asu l h c) as obdel ( ave turnaround ti e) . as od nastanka procesa do nj m .. egovega konca = t1+t2+t3+t4, kjer t1.. .akanj da se ustvari e, , t2..akanj v vrstipri . e pravleni t3...izvajanje j h, (CPU time), t4.. .akanj ker j onem ogoen e, e d) akal as ( ai ng ti e) . ni w ti m .. t2 e) O dzi as ( vni response ti e) . m .. as od nastanka procesa do prve izhodne operacije. To zanimivo v interaktivnih sistemih (as da se prvi j '. ' avi) f) Pravi nost ( rness) . fai .. vsak proces najdobiustrezen as CPE ... Nekatera merila so med seboj odvisna (npr. e in d) oz. si nasprotujejo (npr. e za paketno i e za i n nterakti vno) O bi no nas zani aj njhove povprene vrednosti vasi pa tudi . aj m o i , h kaj drugega (npr. varianca e) ela: j Najti hiter razvreval al tem ,ki(maksimizira a,b,f) in hkrati (minimizira ni gori c,d,e) Malo verjetno je, da bi obstajal hiter algoritem, ki bi zadostil zahtevam (Kleinrock, 1975). Potreben je komprom i ( j ne i m aksi i ratii ne s t.. sto m zi n i m i m i rati.Toda to j e vedno zel teak optimizicijski problem! sto ni zi ) e o etudizahteve poenostavi o,j m nogokrat poenostavlen probl e vedno m e j em NP-teek,( pom eni da natannega polnom skega razvreval kar , i nega algoritma zanj verjetno ni) Posledica: Razvreval al tm iso hervi nii se obi no osredotoaj l na eno ni gori sti n aj o e merila.

Realnost:

4.4.3.2) Prvi pride prvi melje Algoritem: Proces,kij prejzahtevalprocesor,ga prejdobi(n tee,dokl m ore) e i er

To je razvranj brez preki anj e nj a. [OS neuradna skripta 2006/07] Stran 60

Implementacija: Pripravljeni procesi so v vrsti (FIFO) CPE dobi tisti, ki je na zaetku vrste: CPE -> P1, P2,...Pn CPE se m u vzam e l e se kona al bl ra ko bo spet pri e, i oki pravlen,bo elna konec j vrste. Analiza: (merilo: povpreniakal as) ni Primer: naj bodo dani procesi P1, P2, P3, ki zahtevajo 24, 3 in 3ms, da se izvedejo. Scenarij 1: vrstni red je P1,P2,P3 Ganttov diagram: |-------P1--------|---P2---|---P3---| 0 24 27 30 Povpreniakal as = ( ni 0+24+27) = 17m s /3 Scenarij 2: vrstni red je P3,P2,P1 Ganttov diagram: |---P3---| ---P2---|-------P1-------| 0 3 6 30 Povpreniakal as = ( ni 0+3+6) = 3m s /3 Sklep: Povpreniakal as v spl ni onem nim i m al ni en Povpreniakal as l ni ahko varira Poleg tega lahko pri do poj ' de ava konvoj i zato sl i a' n abe zkori enostisi stem a.Poj av konvoja: Dani naj bodo P1, P2, ...Pn in V/I naprava P1 naj bo procesorsko in V/I zelo zahteven, ostali pa ne. 1. D eni o,da so na zaetku v vrstitakol CPE -> P1, P2,...Pn m e: 2. Ko P1 tee ( traj dol ,ostal e akaj v vrsti V/Inaprava j m edtem kar a go) i o . e nei zkori ena. 3. Ko se P1 bl ra,zasee V/Inapravo,i pri ( gotraj V/Ioperacio.M edtem oki n ne dol no) j ostal procesina CPE hi opravio i se bl raj ker j V/Inaprava e zasedena. i tro j n oki o, e CPE je medtem nei zkori en 4. Ko P1 sprostiV/Inapravo,spet ( dol asa)stee na CPE.M edtem se ostal za go i naberejo v vrsti pripravljenih. Ponovi se situacija 2. Sklep: m al procesivenom er akaj velkega,i i o i zkori enost CPE i V/Inaprave pa j sl n e aba.To bi bilo e posebejsl v i abo nterakti vnem ( m e-shari si ti ng) stem u ( bibiiP2,., e l ..Pn interaktivni programi, P1 pa nek paket) Ugotovitve: Al tem ne oblubla kratki povpreni akal h asov gori j j h h ni Zato ni primeren za interaktivne sisteme Lahko vodi do slabe izkori enostisi stem a [OS neuradna skripta 2006/07] Stran 61

4. 3. Krono razvranj ( 4. 3) e round robi n) Algoritem: vrsta pri pravleni j kot kroniseznam .Proces dobiCPE za neko asovno j h e rezi O b i no. zteku rezi ( ipa prej e se kona oz.bl ra)se CPE da ne al , oki naslednjemu procesu s seznama.

To j razvrenj s preki anj . e e nj em Implementacija: Vrsta pripravljenih je vrsta (FIFO). CPE dobiti proces,kij na zaetku vrste:CPE -> P1, P2, .... Pn sti e Ko porabisvoj asovno rezi gre nazajna konec vrste ( o no, seveda se m u CPE vzam e takoj e se kona ali blokira ko bo spet pri , pravlen,bo elna konec vrste) j . Analiza: N ajbo v vrstin procesov i da j asovna rezi r m s.Ko bo proces porabi n e na l eno rezi bo m oralza nadalevanj poakati da se zvrstiostalh n-1 no, j e , i procesov. Vsak od njih bo porabil naj r m s,ter p m s za prekl Torejbo ve op. na proces ponovno stekelez naj ( *( ve n-1) r+p)m s.e j r prem aj e hna,se rel vno velko asa porabiza prekl j e ( j .e j r prevelk,pa proces ati i aplanj reia) e i preredko pride do CPE (kar je slabo v interaktivnih sistemih). Pom em ben j pri eren i e m zbor asovne rezi p.Tudias obdel se povea: ne ave e biproces sam rabi t CPE asa,j potrebni t/r asovni rezi zato se bo l e h h n, konalpo: t+(t/r-1)*(n-1)(r+p) ms od prve dodelitve CPE.

Sklep:

Zaradi enostavnosti je RR e vedno zel pogosto uporablan razvreval al tem . o j ni gori 4. 3. Razvranj po pri teti 4. 4) e ori Algoritem: Vsak proces ima neko pririteto. CPE se dodel procesu,kii a tedajnaj j i m vi o prori teto.Pri tete so l ori ahko stal ( ne stati ne)al pa sprem enli ( nam i . i jve di ne)

Razvranj po pri tetij l e ori e ahko s preki anj al pa brez preki anj e m ed pri nj em i nj a. pravlene j vstopiproces Q ,kii a vi o pri teto od tekoega P,tedaj m j ori : Prirazvranj brez preki tve to ne bo preki l P u ni nio Prirazvranj s preki tvam ise procesor lahko dodeli Q u ni Podobno bibio l l ahko tudi e bise procesu Q ,kij e m ed pri , e pravleni i zvi a pri teta j m , al ori nad P. Nevarnost: Rei tve: Pri pravleniproces ni ine pri do CPE,ker ga stal odri o drugiz vi o j kol de no vaj j prioriteto, ki vstopajo med pripravljene. To imenujemo stradanje (starvation). Pri pravleni procesom se pri tete peri no poveuj o.To i enuj o j m ori odi ej m em staranje (aging)

[OS neuradna skripta 2006/07]

Stran 62

OSl ahko s sprem i anj pri tet skrbiza uravnoteeno obrem enj nj em ori evanj si e stem a. (Housekeeping). Primer: e j V/I zahtevni program postal pripravljen, ostali pripravljeni pa so e procesorsko zahtevni m u O S l , ahko zvi pri teto,da bo i hi e odrabi CPE i spet a ori m trej l n zaposlil V/I naprave. Pri tete procesov so l ori ahko defi rane s pom oj ni o Notranjih pokazateljev (npr.asovne om ejtve;pom n.zahteve;razm erj i e CPEas/V/I .. ,al pa as,.) i Zunanjih pokazateljev ( npr.pom em bnost l astni sredstva,pl ka; aana za obdel .) avo.. 4. 3. N aj inem otenias 4. 5) kraj Nemoteni tek ( CPU burst)j i e zvrevanj procesa od trenutka, ko mu je bil nazadnje dodeljen e CPE,do trenutka,ko se prvi bl ra ( ipa kona) N em otenem u teku sl akanj ( /O oki al . edi e I burst) akanj pa nasl , u ednj nem otenitek. i Hevristika: Algoritem: proces,kibo m al zaposllCPE,najgre naprej da bo i prejzaposllV/I o i , m i naprave. CPE se dodel procesu,kibo naj anjasa nem oteno tekel ( i m . ShortestJobFi rst, SJF)

To j razvranj brez preki anj e e nj a. Primer: Pripravljeni procesi naj bodo P1, P2, P3, P4, D ol ne nem oteni tekov pa 6, 8, 7, 3, i h Vrstni red dodeljevanja po SJF: P4, P1, P3, P2 Gantt: |--P4--|--P1--|--P3--|--P2--| 0 3 9 16 24 Povpreniakal as = ( ni 0+3+9+16) = 7 /4 Trditev: Dokaz: SJF daje minimal povpreniakal as ( ni ni kadar prekinjanje ni dovoljeno). D aniso P1,., s asinem otenega teka t1,..,tn. Denimo, da t1<t2< ... <tn. ..Pn . Vrstnired P1,P2,., da povpreniakal as ( 1+...+tn)/n, vsak drug vrstni ..Pn ni 0+t red bidalvej vrednost.Q ED o

e nas zani a povpreniakal as, je SJF optimalen m ed al tm iza razvranj brez m ni gori e prekinjanja. Vpraanj e: Odgovor: Ideja: Kako? kako procesu dol tidol no nasl oi i ednj nem otenega teka n. ??? ega t. tega v resnici ne moremo! Ali je SJF zato neuporaben? poskusi o dol no kar se da dobro oceniti/napovedati m i Po zgl edu:' za j napovem enako vrem e kot j danes,se bom v povprej e utri e u malokrat zmotil. Predpostavimo torej, da bo naslednji nemoteni tek trajal podobno, kot zadnji nemoteni tek!

[OS neuradna skripta 2006/07]

Stran 63

Kaj pomeni podobno? Naj bo tn... dej anska dol na zadnj nem otenega teka danega procesa i ega Tn+1... napovedana dol na naslednjega nemotenega teka (istega procesa) i Sedaj postavimo tole: Tn+1=a*tn+(1-a)*Tn kjer je 0<=a<=1 Prvil upoteva naj en novej i o nform acio o dol ninem otenega teka ( ta proces) j i za , drugil pa skri zgodovi nai prej i napovedi( ta proces) e nam re en va no h njh za . rekurzi enabo razviem o,dobi o: vno j m Tn+1=a*tn+(1-a)*a*tn-1+...+(1-a)j*a*tn-j+...+(1-a)n *a*t0 + (1-a)n + T0 Ker sta a in 1-a oba <=1,i a vsak nadalnil m anjvplva.Toreji a na oceno Tn+1 m j en i m naj vplva zadnj dej ve i a anska dol na,potem predzadnja, pa predpredzadnja, itd., i najmanj vpliva pa ima prva napoved! Skratka:v napovedise zgodovi upoteva,toda edale m anj bol ko grem o v na j , j preteklost. Intuitivno: funkcija T se bolj ali manj hitro (odvisnot od a) prilagaja spremembam funkcije t. Intuitivno: Funkcija T se bolj ali manj hitro (odvisno od a) prilagaja spremembam funkcije t. a je treba izbrati tako, da bo prilagajanje kar se da hitro. Velikokrat pa je kar a = ,kar j potem i e zraun Tn+1 hi ( pom i i eno setevanj . ter dva ka n e)
Slika56 t t5 t4 t2

T0 t0

t1

t3

Ali je hevristika na mestu? Kajpa,e se dej anske dol ne hi i m ono sprem i aj kot j i tro n nj o, e na zgornji sliki t0,t1,t2,t3,t4? Al j sl i e edenj f e unkcie T zadostihi da so napovedie j tro, kakovostne? Meritve so pokazale, da se (pridanem procesu)dol ne nem oteni tekov i h porazdelene,kot kae spodnj kri j Velka vei nem oteni tekov i a podobno dol no, j a vula. i na h m i velka odstopanj so redkej ( i a a. Procesipa se razlkuj o po tem ,kj i aj ' i ej e m o grbo' npr. procesorsko zahtevni bolj desno, V/I bolj levo.)

[OS neuradna skripta 2006/07]

Stran 64

Slika57

Pogostost

4. 3. N aj inem otenitek + preki anj 4. 5) kraj nj e Ko nov proces Q vstopi med pripravljene, se lahko zgodi, da je njegov ocenjeni nemoteni tek T( )m anj ,kot pa i a do konca svojega nemotenega teka tekoiproces P. Q i m
Slika58 T(a) T(p)

PriSJF to ne preki procesa P.e pa SJF dopol m o s to m onostj dobi o nov al tem ne ni o, m gori za razvranj s preki anj ,i enovan SRTF ( e nj em m ShortestRem ai ngTi eFi . ni m rst) Algoritem: CPE se dodel procesu,kibo naj anjasa nem oteno tekel Tekoiproces se i m . l ahko preki e drug pri ne, pravlen proces oblubla kraj nem oten tek od j j j i preostanka tekoega nem otenega teka.

Primer: Proces P1 P2 P3 P4 Prihod 0 1 2 3 T 8 4 9 5 SRTF Gannt: |P1|--P2--|--P4--|---P1---|----P3---| 0 1 5 10 17 16 SJF Gannt: |----P1----|--P2--|--P4--|---P3---| 0 8 12 17 26 Povpreniakal as SRTF:(( ni 0-0) + (1-1) + (5-3) + (10-1) + (17-2) ) / 4 = 6,5 Povpreniakal as SJF: (( ni 0-0) + (8-1) + (12-3) + (17-2) ) / 4 =7,75

(P1 je bil vmes prekinjen!)

SRTF l ahko vrne m anj povpreniakal as od SJF,kadar procesivstopaj m ed i ni o pri pravlene.Preki anj se l j nj e ahko i aa. zpl [OS neuradna skripta 2006/07] Stran 65

4.4.3.6) z zagotovilom Vasi O S poskua z razvranj i ni nasl h em zpol ti ednj oblubo: o j e tekm uj n procesov, bo vsak dobi pri i n-tidel CPU asa. e l blno e Denimo da procesi P1, P2,...Pn obstajajo T asa. OSi zrauna,da bibi po zgornj oblubivsak upravi do T/n asa. l i j en V resni j proces Piv tem asu tekelt(Pi) asa. ci e OSi zrauna kvoci ki = t(Pi) / (T/n) ent e je ki < 1,proces Pinizadostitekel e pa j vej od 1,pa j tekelve,kot m u gre. , e i e Vrednosti ki uporabi o za razvranj po pri teti m e ori . Algoritem: CPE dodel procesu,kii a naj anj k.e dovolm o preki anj dodam o e nasl i m m i i nj e, ednj e: Med tekom se k tem u procesu vi ko postane zadostivelk,se proces preki a; i ne. Slabosti: Implementacija 4.4.3.7) loterija Ideja: Algoritem: Vsakemu procesu OS da dovolilnice, s katerimi lahko rabi CPE. Razvreval k nakluno i ni j zbere dovoll co,nj l ini en astni dobiCPE. (Primer: k razvreval k i ni zbere dovoll co 50-krat v sekundi, vsakokratni lastnik dobi ini 20m s CPE asa)

Pom em bnej procesil i ahko dobio po ve dovoll c,kar povea verjetnost, da bodo izbrani. j ini V dalem obdobj v povprej res dobiive CPE asa. j u u l Natannej proces,kii a v l p% dovoll c,bo ( dalirok)dobi p% CPE asa. e: m asti ini na j l M ono j posoj e dovoll c:npr.odj al l e anj ini em ec ahko posodistreni svoj dovoll ce,da bo ku e ini ta i hi e i m trej zvedelzaproeno usl ugo.Potem dovoll ce vrne odj al ini em cu. Prednosti: Enostavna i pl entacia (pravi generator psevdonakluni tevi ) m em j en j h l Posojanje Pristop je uporaben tudi pri dodeljevanju drugih virov

4. 4)Razvranj posl 4. e ov
Pripaketniobdel j l avi e ahko na vhodu velko ve posl kot se jh l i ov, i ahko hkrati obdela. Zato se ' odveni posl preusm erio ( ' i j spool na di kj poakaj na kasnej obdel ) sk, er o o avo. [OS neuradna skripta 2006/07] Stran 66

Razvreval k posl (job scheduler) izbere enega od poslov na zunanjem pomnilniku, ki se ni ov bo naslednji obdelal (t.j. da se bo zanj ustvaril nov proces).
Slika59

Nov

Znainosti l : I ranj j ral vno redko ( z njm vzdruj o tevio i h procesov ( zbi e e ati e i em l vi degree of m ul program m i ,se poene l ko se j kak proces konal ti ng) e, e ) Zato sm e bi zahtevnej (n zato poasnej ) e j nj ti i i i, e egovo i ranje zato kakovostno. zbi I zrazj to razvranj i enuj o tudidol e: e m em gorono razvranj (long-term scheduling) e ? Vpraanj em u najposvetipozornost? e: Procesi so v grobem dveh vrst: procesorsko zahtevni (CPU-bound) in V/I procesi (V/I bound) e j preve procesorsko zahtevni so V/Inaprave sl i . e h, abo zkori ene,e pa j e preve V/Izahtevni pa j sl i h, e abo zkori en procesor. Ideja: Razvranj posl najskrbiza uravnoteeno obrem .si (oad-balancing) e ov st. l Razvreval k posl najv glpom nini vzdruj dobro zmes enih in drugih ni ov . l ku e procesov,da bodo vsiskupajenakom erno ( uravnoteeno)obrem enj ivse eval komponente sistema. S tem bo pretok (throughput) skozi sistem maksimalen. Zato se tako razvranj i enuj tudidol e m e gorono razvranj e.

Teava: Kam uvrstiti neznaniposel( tak,kise e nii al? N a sl zvaj ) epo?! Zato nekateriO S ni aj razvreval ka posl al pa j ta m i m al m o ni ov i e ni en/enostave. (Npr., dostikrat se uporabi algoritem SJF: posli, ki obljubljajo, da se bodo izvedli hitreje, dobijo prednost) Sistem z dodelevanj asa ( U N I pa se m u l j em npr. X) ahko odpovej za uravnosteeno o: obremenitev sistema skrbijo uporabniki sami (e j prepoasen se odj j oz.del o e avio, aj kaj drugega)

4.5) Menjavanje
Vasi j kori h e stno zaasno odstrani nek program i glpom nini i iz tekme za vire (npr. ti z . l ka n CPE). To stori srednj eronirazvreval k (medium-term sch.), ki izbere enega od ni pripravljenih procesov in ga v celoti prenese na disk. Namesto njega lahko z diska prenese v igro kak drug proces; izgnani proces kasneje zopet vrne v pomnilnik, da nadaljuje, kjer je ostal. To imenujemo menjavanje (swapping).

[OS neuradna skripta 2006/07]

Stran 67

Slika60

Pripravljen

Prednosti: OSl ahko vzdruj uravnoteeno obrem eni si e tev stem a ( S po dol O oenem asu za vsak proces lahko ve, ali je ta bolj procesorsko zahteven, ali pa bolj V/I zahteven) OS lahko zadosti posebnim potrebam drugih procesov po virih

Primeri:

Srednj erono razvranj j vasi implicitno oz. v tesni povezavi z e e h razvranj na procesorj em u.
Slika61 D eni o, da razvranj na procesorj tee m e u po kronem (round-robin) algoritmu. Ko P Q proces P izgubi procesor, se ta dodeli naslednjemu procesu Q 'v krogu' in Q stee. M edtem se prej i proces P nj umakne (swap out) na disk, namesto njega R pa se od tam prenese (swap in) nek drug proces R. Zael eno j da j m enj e, e avanje zadosti hi tro, asovne rezi pa zadosti ne dolge, da se R pojavi v pomnilniku prej, kot bi mu bil dodeljen CPE.

Primer1:

Primer2:

D eni o,da j razvranj na procesorj po pri teti e m ed m e e u ori . pri pravlene el vstopi proces P,kii a vi o pri teto od ostal j i ti m j ori ih pri pravleni j sm i no pom em bneu takojzagotovi prostor v j h, e sel ti pomnilniku. Prostor se lahko najde tako, da se na disk umakne (swapout)proces Q kii a m ed pri m pravleni itedajnaj j pri teto j m ni o ori Po tem ,ko razvreval k na procesorj odl ,kateriproces bo ni u oi nasl ednj dobi CPE,pokle dodeleval k.Ta preverial j i i l i j ni i e zbrani proces v pomnilniku - e niposkrbiza prenos z di ska.

Primer3:

4. 1)as m enj 5. avanj V/Ii ostal a, n o


Kako zm anj asovno zahtevnost m enj ati ave? Prekl opni as j si e stem z m enj avanj em l ahko zel velk, saj m ora dodeleval k vasi o i j ni h prenesti proces z diska v pomnilnik. [OS neuradna skripta 2006/07] Stran 68

Slika62

Podroj na di ( ap space) j si obi no i e sku sw e cer aj zbrano tako, da j e potrebnih le malo premikov roke (majhen seek-time). Toda na zakasnitev vpliva tudi velikost preneenega prostora. Ta naj bo i m m anj . i Zato j pom em bno,da O S za vsak proces natanno ve,kolko prostora e i zaseda ( pa kolko ga bo m orda potreboval. Proces z di ne i ) nam i m i ni zahtevam i po pom ninuku m ora zato sproti obveati O S o svoj l em zasedanju / sproanj pom nini ( si u l ka s stem ski i klci npr. request m i, time, release menu)

Sklad

Kajpa m enj avanj akaj h procesov? e oi D eni o,da proces aka na konec V/Ioperacie.e ga um aknem o na di se l m j sk, ahko zgodi da , V/Ioperacia,kim edtem nem oteno poteka,poskua uporabiti pomnilnik (npr. kak V/I bufer), j ki pa sedaj pripada drugemu procesu! Rei sta dve: tvi 1) N i ine m enj procesa,kii a zaeto ( kol ati m pendi V/Ioperacio ng) j 2) Izvajati V/I operacije le v sistemski prostoru V/Ioperacia se l j ahko i zvede,etudij bi m edtem proces umaknjen na disk. e l Podatki bodo iz sistemskega prostora, kjer jih je V/I operacija pustila, posredovani procesu, ko se bo vrnil z diska.

[OS neuradna skripta 2006/07]

Stran 69

V. NITI
5.1) Motivacija
Denimo, da proces P izvaja program, ki ima funkcijo f(...) in g(...), in da se ravno izvaja f(...). e f( .)zahteva V/Ioperacio,P sprostiCPE i aka na konec operacie.D eni o,da bim ed .. j n j m V/I operacijo prav lahko tekla funkcija g(...), ki ni vezana na V/I operacijo. Toda g(...) ne more tei ker j P bl ran. , e oki Vpraanj 1: Kako pa bisoasno i al funkciif( .)i g( .)i e zvaj i j .. n .. stega program a?
Slika63

P
f( ) g( )

Odgovor 1:

Enostavno:s f ustvari o i P soasna procesa;vsak i a eno od f ork m z zvaj unkci! j


Slika64

P
f( ) g( )

P
f( ) g( )

sin od P
f( ) g( )

N a ta nai bil n ahko soasno i al tudive klcev i funkcie. zvaj i i ste j D eni o,da f( .)i g( .)obe vplvata na gl no sprem enli x program a P.e se f m .. n .. i obal jvko unkcii j soasno i ata v dveh razlni procesi j za vplv na x treba uporabi kakega od zvaj i h h, e i ti mehanizmov za komunikacijo med procesi (npr. IPC ali pa skupni pomnilnik). To pa je --- dolgotrajno, N ekako odve,sajj v program u P sprem enli x gl na i zato neposredno e jvka obal n dosegljiva ('vidna') obema funkcijama f(...) in g(...). Vpraanj 2: Kako bi funkciji f(...) in g(...) soasno izvajati znotraj istega procesa? e
Slika65

P
f( ) x g( )

Ker elm o,j proces,v katerem bosta dva soasna toka i anj i e zvaj a

[OS neuradna skripta 2006/07]

Stran 70

Slika66

P
f( ) x g( )

Odgovor 2: Primeri:

Tega pa z ukazom fork ne moremo

Primer 1: P... urejevalnik besedil f... bere vtipkane znake in jih dodaja v besedo x x... doslej vtipkana beseda g... preverj e j beseda x sl no pravina a, e ovni l Primer 2: P... spletni brskalnik f... prenese zahtevane podatke z om rej v x a x... doslej zbrani podatki g... ri podatke i x na zaslon e z h... bere uporabni kove ele z m i j ke,ti pkovni ce Primer 3: P... sistem Proizvajalec-Porabnik f... proizvajalec podatkov x... vm esnikronipom nini l k g... porabnik podatkov
F

Slika67

Primer 4: P... Java program ,kipotrebuj stori streni e tev ka f... poskua vzpostavi zvezo s streni ti kom Buffer x... g... se zbudi60sek za f i preveri e j fvzpostavi zvezo,si uni f n , e l cer i Primer 5: P... Spl etnistreni k f... odgovarja odjemalcu 1 x... pri tem uporablja x (slika, zvok, tekst, ...) g=f... odgovarja odjemalcu 2

5.2) Kaj je nit?


Nit (threat of execution): tok izvajanja programa od danega trenutka zaporedje ukazov programa, ki so se izvedli od danega trenutka sled izvajanja programa do danega trenutka [OS neuradna skripta 2006/07] Stran 71

Procesi: o katerih smo govorili do sedaj so imeli po eno nit sedajpa sprauj o po procesi kibodo i el tudive ni ( em h, m i ti veni procesi tni )
Slika68

Izrazje: nit... lahki proces (lightweight process, LWP) enoni ( asi )proces.. tekiproces ( tni kl ni . heavyw ei process,H W P) ght Vpraanj a: Kako nit strogo definirati? V kaknem odnosu j s standardni ,obi ni procesom ? e m aj m Kakne so l astnostini ? ti Kako se niti izvajajo na procesorju? Kakniso nael pri ni stopik realzaciini ? i j ti Kako realizirati niti? Kako jim dodeljevati procesor? Komunikacija in sinhronizacija niti! ...

5.2.1)Kajdol ni oa t?
Nit natanko definirajo: vsebi program skega tevca ( se ve,do katerega ukaza v program u j prodrl na da e a) vsebi regi na strov ( se ve,kakno j stanj procesorj v ti da e e a stem trenutku) sklad ( se ve,kakne vrednostil ni sprem enli m ora tedajupotevati da okal h jvk ) Vsakini pri ti taknem o enolno i i denti kacisko teviko. fi j l

[OS neuradna skripta 2006/07]

Stran 72

Slika69

ID, PC, Reg., Sklad, ... Programska koda

5.2.2) Istorodne niti


Niti, ki pripadajo istemu programu/procesu, so istorodne niti (peer threads) Istorodne niti imajo skupne: programsko kodo procesa (program/text/code section) globalne podatke procesa (data section) vire, ki jih ima proces Npr.: o odprte datoteke o signale o ...
Slika70

(id1, PC1, reg1, sklad1)

(id3, PC3, reg3, sklad3)

(id2, PC2, reg2, sklad2)

(id4, PC4, reg4, sklad4)

Programska koda

Globalni podatki Viri

5.2.3) Izvajanje niti


Kako se niti izvajajo? V grobem:

[OS neuradna skripta 2006/07]

Stran 73

e j si e stem enoprocesorski procesor vsakini posvetinekajasa,tako da vse , ti napredujejo e j si e stem veprocesorski se l , ahko vsaka ni i a na svoj procesorj t zvaj em u
Slika71

CPE

CPE

CPE

CPE

CPE

5.3) Podobnosti in razlike s procesi


Podobnosti: tudi nit je lahko v raznih stanjih ( nova,pri pravlena,tee,aka,konana,.) j .. tudi nit lahko ustvari nove ni ( ti here)ter kona ali uni druge niti i na enoprocesorskem sistemu tudi niti tekmujejo za procesor ( veprocesorskem pa na lahko tudini teej paral no,podobno kot procesi ti o el ) Razlike: kom uni j m ed i kacia storodni ini ij hi a kot m ed procesi m tm e trej I storodne ni po defi ciiteej v skupnem nasl ti ni j o ovnem prostoru ( procesipa ne). Zato lahko vse brez posebnih najav uporabljajo globalne podatke procesa (kot skupni pomn. za komunikacijo). i storodne ni ni zai ti so tene ena pred drugo tako kot procesi Ker imajo istorodne niti isti naslovni prostor, lahko neovirano posegajo v skupne lokacije. To je potencialna nevarnost. ustvarjanje/konanj ni j hi e kot priprocesi e ti e trej h

5.4) Koristi
N ekatere kori ,kijh pri sti i naaj ni : o ti bola odzi j vnost program ov ( responsi vness) e j i e nterakti program veni vni ten,l ahko po bl okadiene ni ( ti npr.zaradi prenaanj slke z om rej nadaluj i a i a) j e nterakcio s pom oj druge ni ( j o ti npr.da uporabni m edtem om ogoivnaanj s tastature) ku e [OS neuradna skripta 2006/07] Stran 74

enostavna uporaba skupnih virov (resource sharing) Vse istorodne niti lahko uporabljajo vire, ki pripadajo njihovemu procesu. OS jih ne ovira. Tudi pomnilnik (naslovni prostor)i aj skupen,kar jm om ogoa m o i hitro medsebojno komunikacijo. vej hi a trost zaradim anj reie ( e j econom y) U stvarj e ni j hi e od ustvarj e procesa ( ari 30krat) anj ti e trej anj Sol s: . Prekl opnias j prini h kraj kot priprocesi ( e ti i h Solaris: 5krat). m onost i zkori anj veprocesorski arhi a h tektur e j raunal k enoprocesorski se procesor prekl j m ed pri e ni , apla pravleni i j m nitmi tako pogosto, da vsaka od njih napreduje zadosti hitro, da se ustvari vi paral nosti V resni vedno tee l po ena ni dez el . ci e t. e pa j raunal k veprocesorski teej ni na razlni procesorjh resni e ni , o ti i h i no hkrati( paral no = Kajpa veni procesorj? Teh j ve vrst) el tni i e ( ej U ngere,Robi ic,A survey ofprocess.. gl : , l .) Pri er:STREN I m K Streni j proces,kiopravla stori za druge procese odjemalce. Ob konicah lahko k e j tve prej e na stoti zahtev hkrati m nogo se jh nanaa na i podatke. m ne ; i ste e j streni veni ,vsakizahteviZ pri e k tni redini N ,kij zadol t e ena za zahtevano stori S. tev Veni streni nudi tni k : bolo odzi j vnost etudise ni N 1 priopravlanj stori S1 bl ral l t j u tve oki a, ahko nadaluj ni N 2 pri j e t opravlanj stori S2.O dj al O 2 ne bo akalzaradiodj al O 1. j u tve em ec em ca enostavna uporaba skupnih virov Pristreni h se zahteve m nogokrat nanaaj na skupne podatke ( ki o npr. v kaki bazi) Niti N1 in N2 lahko enostavno in hitro uporabljata take skupne podakte. vej hi a trost zaradim anj reie e j e j treba na novo zahtevo Z3 ustvari novo ni N 3,to ne traj tako zel e ti t a o dolgo, kot pri procesih. Preklapljanje CPE med nitmi je tudihi e kot priprocesi trej h. m onostii zkori anj veprocesorskiarhi a tektur e j veni streni na veprocesorskem raunal ku,l e tni k ni ahko stori ( ti tve ni ) teej paral no. o el Primer: dogodkovno vodeni programi Pri dogodkovno vodenem (event-driven) programu je tok izvajanja bistveno odvisen od vhodnih podatkov, ki prihajajo od uporabnika. Pri er j G U Iz m noi m enuj i m e co ev,kon,gum bov,i U porabni td. kovivnosiso skorajpovsem nenapovedli ,s tem pa tudiakcie,kijh povzroaj jvi j i o. Akcije so velikokrat raunal ko nezahtevne,toda zel razlne i tako odvi od ni o i n sne uporabni kovega vhoda ( npr.klka z m i . i ko) [OS neuradna skripta 2006/07] Stran 75

Zato j neui e nkovi ustvari proces za vsako akcio lahko pa ustvarimo nit. to ti j

5.5) Zagotovitev niti


Ni l ti ahko zagotavla ( ogoa,preskrbi nudi): j om , U porabni knjnjca ( ka i i uporabni ni ) ke ti Jedro OS (jedrne niti)

5. 1)U porabni ni 5. ke ti
Niti bi torej lahko bile koristne. Vpraanj e: Kajstori ,e j O S tak,da poj a ni ne pozna??? ti e m ti Tedajse poskuam o do niti prebiti mimo OS. Kako so to naredili? U porabni ni (user threads): ke ti So niti,kiobstaj o l v uporabni aj e kem prostoru.So 'nterna stvar'uporabni i kega procesa ( edro O S pritem j ne nudi nobene podpore in zanje sploh ne ve). U porabni jh i pl enti v svoj procesu s pom oj k i m em ra em o nitne knji ce (thread library). Ta vsebuje vse potrebno ni za rokovanj z ni itako,da vse napreduj S pom oj e tm e. o knjni zna proces ' i ce sam v sebivodi /si ulratisvoj ti m i e niti'
Slika72

N IT N A K N JI N IC A

U p o ra b n i p ro ce s ki

U p o ra b n i p ro sto r ki Jedro Sistemski prostor

Pri erini h knjni PO SI Pthreads,M ach C-threads, Solaris threads,... m tni i c X Prednosti: operacie nad uporabni m ini i( j ki tm ustvarj e,konanj prekl j e,. so obi no anj e, aplanj .) aj hitre ( vse potekaj v uporabni ker o kem prostoru jedro OS ne opravlja nobenih storitev v zvezi nitmi)

[OS neuradna skripta 2006/07]

Stran 76

Slabosti: Kadar je jedro tako, da ne ve za ni ,am pak vi l procese,i aj uporabni ni tudi ti di e m o ke ti slabosti: Zaradiene ni l ti ahko akaj vse i o storodne ni ( ti eprav binael a l om ahko tekl . e) N a pri er,e ena ni i si m t zda stem skiklc,zaradikaterega m ora akati j i , edro postavina akanj cel proces,ker pa ' di l procese.S tem okoduj ostal e vi ' e e e ni ,kis tem si ti stem ski klcem ni aj ni m i m o . Razvranj j l e e ahko do ni nepoteno,ker O S dodeluj CPE procesom ,ne pa ni m . ti j e ti N a pri er,e i a proces P v sebi2 ni ,proces Q pa 20 ni ,j lahko OS m m ti ti ima klub tem u pri e enako pom em bnost i s tem enako pogosto dodelevalCPE. j pi n j Torejbo i el ni v P povpreno 10-krat ve CPE asa kot pa ni Q . m a t t

5.5.2) Jedrne niti


Sl abostiuporabni h ni nas siio v i j e O S.Sodobno j ki ti lj zbolanj edro O S najpozna pojem niti in naj nudi svoje niti. To so t.i. jedrne niti. Jedrne niti(kernel threads) so niti, ki jih nudi jedro OS. So torej stvar, ki je v sistemskem prostoru.O S nudivse za njhovo uporabo:m noi si i co stem ski klcev za rokovanj z njm i h i e i (ustvarjanj konanj uskl evanj i ) ter razvreval k,kidodeluj CPE ni m . e, e, aj e, td. , ni j e ti U porabni program torejne potrebuj ve ni knjni am pak po potrebis si ki e tne i ce, stem ski m klcem ustvarij i edrno ni da zane i atidelprogram a,Si t, zvaj stem ske klce uporabla tudi za i j uskl evanj j aj e edrni ni ,za njhovo konanj i N i razvreval k v j h ti i e, td. tni ni edru pa skrbiza dodeljevanje CPE jedrnim nitim.
Slika73

s.klic s.klic

N IT N A K N JI N IC A

U p o ra b n i p ro sto r ki Jedro Sistemski prostor

Primeri OS, ki nudijo jedrne niti: NT, Solaris, Digital Unix Slabosti: rokovanje z jedrnimi ni i( tm ustvarj e,konanj uskl evanj i )j rel vno anj e, aj e, td. e ati poasno ( poteka preko asovno zahtevni klcev) ker h i Prednosti: Istorodne jedrne niti se med seboj ne ovirajo [OS neuradna skripta 2006/07] Stran 77

N a pri er,e se ena j m edrna ni bl ra ( npr.zahteva V/Isi t oki ker stem skiklc) to i , ne pri zadene drugi i h storodni j h edrni ni :ni razvreval k bo l h ti tni ni ahko CPE dodellkakii ed njh i uporabni proces ( no)tee naprej i zm i n ki del Razvrevanj j do ni poteno,sajj e e ti edro O S dodeluj CPE ni m . j e ti

5.3) U vaj e veni anj tnosti


U vaj e veni anj tnosti v obstoj si ei stem , bodi preko knjni al preko j si i ce i edra, zahteva korenito prenovo tega sistema, Kajti ne gre le za uvedbo novih podatkovni struktur,razvreval h nega al tm a, gori Pa pa za tem eli prenovo pomena ( anti jto sem ke) obstoj h si ei stem ski klicev, h knjni .. i c, . I to na tak nai da bo prenovljeni sistem ohranil kompatibinost s stari i n n, l m programi (tistimi, ki predpostavljajo standardni (enonitni ) proces). Primeri Primer1: Pri prenovi sist. klica fork() se zastavlaj vpraanj kot so: j o a, Al naji a si ob roj i m n stvu tolko ni kot oe? i ti e ne: v situacijah, ko so vse nujno potrebne, se sin sploh ne bo mogel pravilno izvajati! e da:al najbodo si i nove ni v enaki stanjh kot oetove? ti h i e da: e j bia oetova nit blokirana zaradi sist. klica za branje z vhoda, bo e l torej blokirana tudi sinova, kot da je res izdala tak sist. klic. Kdo dobi podatek, ko bo ta prispel z vhoda? Sam o oe ( ga j v resni zahteval? Kajtedajdobisi ki e ci ) n? Ali pa morda tudi sin? Ali je to smiselno? Scenarij: Nit N1 ugotovi, da njenemu procesu primanjkuje pomnilnika. N1 zahteva dodeltev B zl i ogov pom nini Toda e preden se postopek kona, l ka. pri do prekl de opa, i stee si n torodna ni N 2. Tudi ta ugotovi pom anj e i t kanj n zahteva B zlogov pomnilnika. Al najse pom nini povea za 2B ( i l k zaradidveh zahtev) al za 1B ( bie prva i saj dodeltev,e bise l l i e ahko i zvedl do konca,zadovolia tudini N 2)? a jl t e 1B:Al najbo torejdodelevanj pom nini v kri nisekcii i j e l ka ti j? e da: Ali bo to dobro tudi v situacii ko bibiiN 1 i N 2 i razlni procesov? j, l n z i h

Primer 2:

Vpraanj e:

5.3.1) Knjni PThreads i ca


Primer v C D an j program ,kipokle f e i unkcio f( ,za tem pa e f j ) unkcio g( : j ) O bi no i anj program a j takno: aj zvaj e e [OS neuradna skripta 2006/07] Stran 78

Slika 74

main f( )

f( ) g( )

g( )

Kako ustvariti izvajanje, kjer bosta ni po f( i g( soasniznotraji ti )n ) stega procesa:


Slika 75

main f( )
t2 t1

g( ) g( ) f( )

Ko ni N vstopiv m ai ) ustvarisoasno ni t1 po f( ,nadaluj i ustvarie eno soasno ni t n( , t ) j e n t t2 po g( ,ter nato aka,da se konata obe novini .Potem nadaluje sama do konca. Vse to ) ti j se dogaja v enem procesu.
main() { /* sledita deklaraciji funkcij f() in g() ... ... pthread_t t1, t2; (t1 in t2 bosta novi niti) ... pthread_create( t1,..,f af ; /*N ustvarisoasno ni t1,kii a f argum ent j opi z af) & .. , ) t zvaj , e san pthread_create( t2,..,g,ag) /*N ustvarisoasno ni t1,kii a g,argum ent j opi z ag) & .. ; t zvaj e san ... pthread_join(t1,...); /*n poaka,da se kona ni t1 t pthread_join(t2,...); /*n poaka,da se kona ni t2 t ... /*n spet tee sam a }

[OS neuradna skripta 2006/07]

Stran 79

VI.) PROCESI II.


Vsebina Sodelovanje med procesi I s sporoii PC, l Preko skupnega pomnilnika

6.1) Sodelovanje med procesi


Soasniprocesihkratii j v raunal ku,kandi raj za nj vio ni di o egove omejene vire in so v tem smislu med sebojvedno odvi .N pr.e eden tee,drugitedajne m ore do CPE,etudij sni e pripravljen. Toda za urej e njhovega soi a j zadol O S,kidol kdaj anj i tj e en oa -kdo-kaj-kako procesom se eksplicitno ni treba ukvarjati z drugimi procesi. V tem smislu so zato neodvisni (neodvisni moduli OS) Lahko pa med njimi obstaja neka zveza, zaradi katere morajo eksplicitno sodelovati. Na pri er,sodel m ovanj j obi no potrebno,e proesisoasno reuj o i probl . e e aj ej sti em Npr. problem razdelimo na podprobleme; za vsak podproblem ustvarimo en proces; procesi soasno reuj o podprobl e;v spl ej em onem j m ed procesipotrebna: e asovna uskl tev ( nhroni j :kdaj nekdo nekaj stori adi si zacia) Sporoanj ( e kom uni j :kdo komu kaj pove kacia)

Pri sodelovanju procesov so torej potrebni mehanizmi za : Sinhronizacijo Komunikacijo Primer: proizvajalec- porabnik (producer-consumer) Dana sta dva procesa: Proizvajalec: proces, ki proizvaja podatke Porabnik: proces, ki podatke porablja
Slika 76
Podatki

Proizvajalec
Prevajalnik

Porabnik
Zbirnik

[OS neuradna skripta 2006/07]

Stran 80

Procesa najteeta soasno:


Slika 77
Podatki

Proizvajalec
Proizvaja (Program za tiskanje) medtem ko

Porabnik
Porablja (Gonilnik tiskalnika)

Vpraanj kako med njima poteka komunikacija? e:

6.2) Vrste komunikacije


D va nai kom uni j na kacie: 1) Za prenos podatkov skrbi OS (tj. njegova komponenta IPC) Ta nai j poasnej . . n e i
Slika 78

Proizvajalec

OS/ IPC

Porabnik

2) Za prenos podatkov skrbita proizvajalec in porabnik (preko skupnega pomnilnika)


Slika 79

Proizvajalec

Skupni pomnilnik

Porabnik

6.2.1) IPC
IPC (Interprocess communication facility) je del OS, ki skrbi za komunikacijo in sinhronizacijo m ed procesi N aj nkovi e j realzi s si . ui tej e i ran stem om prenaanj sporoi ( esssage a lm passing). Potek:
Slika 80

Proces

IPC

Proces

1. Procesa,kielta kom uni rati m orata vzpostaviti povezavo (pomaga jima IPC). i ci , N pr.poij juporabisi klc ( latel st. i npr.open_conn( skom ) ,da zaprosiza povezavo s ) prejemnikom. Ta sprejme ponudbo s sist. klicem (accept_conn(skom)).

[OS neuradna skripta 2006/07]

Stran 81

2. Poi j jpodatek zavie v sporoio,ter ga odpole s si talel j l j stem ski klcem . m i send(komu,m). ..polisporoio m . j l 3. Prej ni aka na sporoio s sistemskim klicem em k l receive(odkoga,m) ..prej isporoio od m . m l 4. Ko se navelata,povezavo prekineta s sistemskim klicem (npr. close_conn(skom)) i

Si stem skiklciso v razni oblkah z razlni il i h i i m astnostm i . Sporoia so l l ahko stal dol ne (m pl entacia enostavnej tej ne i i em j a, e) sprem enli dol ne (m pl entacia,send,recei kompleksnej l e za upor. jve i i em j ve a, aj programerja) Povezava ter komunikacija prek nje j l e ahko ( l nem ni u) na ogi voj Neposredna ali posredna (direct, indirectt) Ali procesa komunicirata neposredno ali preko skupnega nabiralnika? Si etri al asi etri ( m etri asymmetric) m na i m na sym c, Al se prej ni al poi i em k i ljatelj oba eksplicitno navedeta? Z avtom ati m al pa eskplci m kopi em sporoi ( ni i i tni enj l autom ati explci buf ng) c, i t feri Kako i kj e spl se sporoia kopi j n e, oh, l io? s poij em kopij ali pa referenc (send by copy, send by reference) lanj Se poij kopia al nj la j i egov nasl ov? S sporoiistal al sprem eli dol ne ( xed-sized, variable sized) l ne i jve i fi

6.2.1.1) Neposredna komunikacija Neposredna komunikacija: procesi se pri komuniciranju ekslicitno imenujejo (navedejo). Neposredna kom uni j j l kacia e ahko si etri al pa asi etri m na i m na: Si etri kom uni j m na kacia Si etri m na:poij ji prej ni drug drugega eksplci i enuj latel n em k i tno m eta Operaciji send/receive: send (Q,m) ..poliprocesu Q sporoio m . j l receive (P,m) ... prejmi od procesa P sporoio m l Povezava sl l dvem a.M ed dvem a j naj ena povezava. ui e e ve Povezava se lahko vzpostaviavtom ati ( no takojpo prvem send i ustreznem recei n ve)

[OS neuradna skripta 2006/07]

Stran 82

Primer: proizvajalec-porabnik Proizvajalec:


repeat m=proizvedi_podatek(); send(porabnik,m); ... until...

Porabnik:
repeat receive(proizvajalec,m); uporabi_podatek(m); ... until...

I skrbi da sporoia pri aj do porabni v takem vrstnem redu,kot jh poij PC , l haj o ka i la proizvajalec. Asi etri kom uni j m na kacia Asi etri m na: samo poij jeksplci navede prej ni latel i tno em ka Operaciji send/receive: send(Q,m) .. j procesu Q sporoio m .poli l receive (x,m) .. m iod kogarkol sporoio m in potem vrni njegovo ime v .prej i l spremenljivko v x U porabno za streni ke. 6.2.1.2) Posredna komunikacija Procesise prikom uni ranj ne i enuj o ( ci u m ej navedej ,pa pa i enuj o ( o) m ej navedej )vm esni o medij nabi ni ( aibox,port) N abi ni j l ral k m l . ral kov e ahko ve,vsak i a enolninasl m i ov. Poij jsporoio vstavi v nek nabiralnik, od koder ga vzame prejemnik. latel l Operaciji send/receive: send(N, m) receive (N,m)

...vrziv nabi ni N sporoio m ral k l .. .vzem ii nabi ni N sporoio m z ral ka l

Povezava m ed procesom a obstaj l e i ata skupninabi ni a e, m ral k.


Slika 81

Povezava lahko obstaja med ve kot dvem a procesom a.


Slika 82 Q

P R

M ed procesom a j l e ahko ve povezav. [OS neuradna skripta 2006/07] Stran 83

Slika 83 N

Proizvajalec:
repeat m=proizvedi_podatek(); send(N,m); ... until...

Porabnik:
repeat receive(N,m); porabi_podatek(m); ... until...

I skrbi da sporoia pri aj do porabni v takem vrstnem redu,kot jh poij PC , l haj o ka i la proizvajalec. (stipri er kot zgorajna prej istrani i m nj ?!) Pri posredni komunikaciji se lahko pojavi tekm a za sporoio: l proces P pole sporoio v nabiralnik z namenom, da ga bo prebral le eden od j l procesov Q, R soasna procesa Q i R zato vsebuj vsak svojukaz za branj i tega nabi ni n eta e z ral k
Slika 84 Q receive (N,m) ...

N send (N,m) ... R

receive (N,m) ...

nevarnost predstavlja naslednji scenarij: 1) Q pri operacio recei i e prebere sporoio ( ga e ne odstranii ne j ve n l a z nabiralnika) 2) preden ga odstrani iz nabiralnika, je prekinjen; CPE se dodeli procesu R 3) tudiR pri operacio recei i prebere sporoio ne j ve n l O i sta dobia sporoio oba,Q i R,esar pa P niel . tno l l n el M one rei tve: [OS neuradna skripta 2006/07] Stran 84

uporabnik mora paziti, da bo le en proces (potencialni) prejemnik (slabost: omejevanje uporabnika) O S ne dovol zaetka drugega recei e se prvie nikonal( ti sekcie, i ve, kri ne j zaklepanje) O S dovol zaetek obeh recei a l enem u da sporoio;kom u o tem obvesti i ve, e l poij j latela. Denimo, da proces P ustvari nabiralnk N. Kje je N? M onostista dve: je del procesa P (v naslovnem prostoru P) je del OS (v sistemskem prostoru) Nabiralnik je del procesa P, ki ga je ustvaril.
P Slika 85

P je lastnik nabiralnika N. I N l z ahko bere sporoia l P. l e drugiprocesiso uporabni N ;v N l ki ahko l poij o e laj e se P kona,N i ne zgi N evarnost:P se j konal Q pa pole sporoio v e , j l neobstoj N . e

Rei tev: OS obvesti uporabnika, da N ne obstaja.

Nabiralnik je del OS.


Slika 86

P je l astni nabi ni N .I N l k ral ka z ahko bere sporoia l P. l e drugi procesi so uporabni N ;v N l ki ahko l poi e ljajo Pl ahko dodel l i astni tvo nad N e kom u,ta bo tudil ahko bral N N evarnost:m ona tekm a za sporoio m ed l l astni N ki e se nek l astni N (ahko tudiedi )kona,N ne i ne. k l ni zgi Posledica: v sist. prostoru ostane N brez lastnika (neuporaben) OS mora zaznati, da je N brez lastnika in sprostiti njegov prostor ( enj garbage colecti . i e, l on)

OS N

6.3) Sinhronizacija send-receive


Poij e i sprej anje sporoi j l lanj n em l e ahko asovno uskl eno,al pa ne. aj i

[OS neuradna skripta 2006/07]

Stran 85

Operacija send() je: sinhrona ( ocki send) e poij j bl ra,dokl sporoio ne dospe ( bl ng , latela oki er l k prejemniku oz. v nabiralnik) asinhrona ( nonbl ng send) e poij j ne bl ra ( latel l ocki , latela oki poij j ahko takoj nadaljuje) Operacija receive() je sinhrona ( ocki recei ,e prej ni bl ra,dokl ne dospe sporoio ( bl ng ve) em ka oki er l k prejemniku oz. v nabiralnik) asinhrona ( nonbl ng recei ,e prej ni ne bl ra ( sporia e ni dobi ocki ve) em ka oki e l , nul nitee dal l je). M one so razlne kom bi j send/recei i nacie ve. Kadar poij jsi latel nhrono pole,prej ni pa si j em k nhrono prej e,pravi o,da sta m m dogovorjena za redezvous;ni od njj ne bo nadaleval( he iu j preko send/recei ,dokl ve) er sporoio niprej l eto.
Slika 87

o l S p o ro i
Sinh_send Sinh_receive

6.4) Kopi e enj


Povezava vsebuj vrsto, er se zaasno shranio posl sporoia. e kj j ana l
P Send() Slika 88 Q Receive()

Glede na kapaciteto te vrste razlikujemo povezave: brez kopi a (zero-capacity, tudi no-buffering) enj Povezava ne more shrani nobenega sporoia. ti l e povezava e niprosta ( Q e niprej prenj sporoia) se P bl ra,preden tj el ega l , oki pole. j ( send m ora torejna zaetku pogl tak edati al sm e nadalevati i e ne sm e,uspava , i j ,n proces P) [OS neuradna skripta 2006/07] Stran 86

D ruga m onost j da P uporabla sam o si e, j nhrone send(). z omejenim kopi em ( ej enj om eno kapaci teto,bounded capaci ty) Povezava ( vrsta)l ahko hraninaj n sporoi. ve l e jh j m anj P sm e posl asi i e , ati nhrono ( j i nadaluj ;sporoio se shraniv vrsti pole n j e) l . e pa j vrsta pol se P bl ra ( e na, oki prede pole) dokl v vrstine nastane prostor. j , er z neom ej m kopi em (neomejeno kapacitet, unbounded capacity) eni enj Povezava ( vrsta)i a potenci no neom ej m al eno kapaci ( S po potrebipodaluj tet O j e vrsto).

6.5) Poiljanje kopij oz. referenc


Kajse prenaa pri komunikaciji?
P Send() Slika 88 Q Receive()

Prenos kopie sporoia j l 1) O S skopi cel sporoio v vrsto ( j v si ra o l ki e stem skem prostoru) 2) Ko Q zahteva sporoio ( recei ) ,O S skopi cel sporoio i vrste v nasl l z ve( ) ra o l z ovni prostor Q. Sl abost: sporoio se dvakrat skopi e j sporoio dol to terj velko asa. l ra: e l go, a i
Slika 89 P send() m

Q receive() m

OS

[OS neuradna skripta 2006/07]

Stran 87

Prenos nasl sporoia ova l 1) O S skopi nasl sporoia ra ov l 2) Ko Q zahteva sporoio ( recei ) ,O S skopi cel sporoio i nasl l z ve( ) ra o l z ovnega prostora procesa P v naslovni prostor Q.
Slika 90 P send() A m

Q receive() m

OS

Prednost:sporoio se skopi l enkrat. l ra e Nevarnost: sporoio m ora ostatinesprem ej l neno do ukaza recei ) e j send( ve( ; e ) asi nhron,m ora P to upotevati .

6.6) Komunikacija preko skupnega pomnilnika


Pri komuni j s pom oj I j teava v tem ,da poteka s pom oj sporoi,kar zahteva kacii o PC e o l kopi e sporoia.Kadar j sporoio dol postane to dol ranj l e l go, gotraj operacia. na j Vpraanj Kako bi proces P posredoval podatke m procesu Q brez e: kopiranja? Zamisel: preko skupnega pomnilnika: 1) denimo, da so podatki pripravljeni na lokacija A...B 2) P obvesti OS, da pomnilnik od A do B odpira procesu Q, tj. dovoljuje procesu Q posege v ta skupni pomnilnik 3) O S om ogoa procesu Q ,da nasl j l avla okacie A.. torejda j .B, prebere podatke, ki mu jih je pripravil P. V praksi obstajajo razne variatne, npr. (Unix): 1) P zaprosi OS, naj poi pom n.dane velkosti kibo skupen e i , 2) OS ga najde izven nasl. prostora P in vrne Pju le njegovo ime S 3) Vsak proces, kiel uporablatita sk.pom n.siga mora prej i j dodati (attach) v svoj naslovni prostor z ustreznik sist. klicem [OS neuradna skripta 2006/07]
P A m B Q

Slika 91

Slika 92 S

OS

Stran 88

4) Ko ga odrabi se od nj l ( , ega oi detach) tj i oiga i svoj nasl prostora z ustrezni , . zl z ega . k sist. klicem

Prednost: Nevarnost:

hitrost, saj se podatki ne kopirajo. podpora OS j m i m al ( S sam o upoteva,da se j nasl prostor procesa e ni na O e . spremenil). Zato morata P in Q (oziroma njun programer) sama poskrbeti za uskl eno kom uni j ( aj kacio npr.poskrbeti da Q ne bo poskualbratipodatka , prej, preden ga je P pripravil).
Slika 93

Proizvajalec

Skupni pomnilnik

Porabnik

Primer: proizvajalec-porabnik: type tPod=... n = ... var pomn: array[0...n-1] of tPod ven; noter: 0...n-1; // ti podatka,kise bo prenaal p //vmesni pomnilnik bo hranil n podatkov //vmesni pomnilnik //komponenta, iz katere se bo bralo nasl. podatek //komponenta, kamor se bo pisalo nasl. podatek

6.7) Unix
Unix je bogat z mehanizmi za komunikacijo med procesi ( Unix vse to imenuje IPC): Osnovni mehanizmi: si iS si om poij jzahteva program sko preki tev prejemnika. Jih je mnogo gnal gnal latel ni vrst.Proces s si ipone troj gnal e: 1)l ahko sivnapreji zbere nai kako se bo na nek si n, gnalodzi , val 2)odl odzi na pri isi oi v spel gnalza kasnej e, 3)pole si j gnaldrugem u procesu. cevi (pipe). Cev je enosmerni komunikacijski kanal med dvema procesoma. V lupini ga ustvarimo z ukazom P|Q, v programu pa s sist. klicem pipe. Standardni izhod P stakne s t. vhodom Q .Vse kar P i suj gre ( zpi e, avtom ati i za uporabni nevi no n ka dno)na vhod procesa Q. Slabosti: o le med procesi, ki imajo skupnega prednika (npr. med oetom i si n nom ) obstaj o l dokl i ta oba procesa aj e er vi FIFO (named pipe) To so cevi, ki so stalne nanj se procesil e ahko pri uio i kl j n odklopijo

Vi im ehani i j zm [OS neuradna skripta 2006/07] Stran 89

sporoia l sem aforj:sl j za uskl evanj procesov i uio aj e skupni pomnilnik vti ce ( ni socket) .Za kom uni j m ed procesiv om rej ( tudina i .. kacio u pa stem ra. .O ) tem kasneje

IPC objekt je lahko vrsta za sporoia,semafor ali pa skupni pomnilnik. Za vsak objekt l pripravimo njegovo ime klu (key), pod katerim se nato objekt ustvari. Ustvari ga ustrezna j operacija get,kivrne e nj egov enolnii O bstaj o e druge operacie,odvi od vrste i d. aj j sno objekta. Za prenaanj sporoi: e l Msgget... ustvari vrsto Msgsnd... pole sporoio j l Msgrev... prej isporoio m l Msgctl... info o vrsti, posegi vanjo, nastavitve Za semaforje: Semget... ustvari semafor Semop... osnovne operacije Semctl... za nastavitve itd. Za skupni pomnilnik: Shmget... ustvari del fiz.pomn.,ki bo skupen Shmat... proces sk.pomn. v svoj naslovni prostor Shmdt... proces i oisk. zl pom n.i svoj nasl z ega ovnega prostora Shmctl... info o sk.pomn., posegi vanj, nastavitve...

6.8)Kom uni j v om rej kacia u


Doslej smo opisovali komunikacijo med procesi, ki so na istem raunal ku. ni Vpraanj Kako pa dva procesa kom uni rata,e teeta na dveh raunal ki v om rej e: ci ni h u? M odel:Poij ji a na volo dva m odel za poij e podatkov preko om rej i latel m j a lanj a: Prvi model: (connection oriented model, virtual circuit) e m ora posl neform ati ati ran,nepreki en ni znakov istemu prejemniku. nj z Primer: rlogin Podobnost s telefonskim pogovorom Drugi model: (connection oriented model) e zaporedom a sporoia ( l eprav m orda enaka)poij razlni prej ni . la i m em kom Pri er:streni el o neem obvesti svoj odj al m k i ti e em ce. Podobnost s poij em pi lanj sem po potnem om rej u.

[OS neuradna skripta 2006/07]

Stran 90

6.8.1) Protokoli
Poij ji prej ni m orata bi povezana: latel n em k ti s strojno opremo (za kar so potrebne kartice, kabli, usmerniki,...) s programsko opremo ( za kar so potrebni standardni protokoli) Protokolj m noi pravi ( e ca l npr.za prenaanj sporoi m ed raunal ki e l ni ) Za vsakega od modelov obstaja ustrezen protokol, na primer: TCP(Transmition control protocol) za prvi model UDP(User datagram protocol) za drugi model

6.8.2) Naslavlanje
Poij jse m ora povezatis pravi raunal kom ,zato m ora poznatinj latel m ni egov naslov.Fi ni zi nasl raunal ka v om rej kj se nahaj j om reninasl ( ov ni u, er a, e ov netw ork address) O m reni . nasl ra.v i ov nternetu j IP naslov in ima obliko npr. 193.212.10.3 e N a raunal ku j l ni e ahko ve prej ni ( em kov npr.streni za f streni za rl n) Vsak i a na k tp, k ogi . m volo svojvhod ( j port) kj aka,da se bo kdo poskualz njm povezati Poij jse m ora , er i . latel povezatis pravi vhodom ,zato i a vsak vhod svoj teviko ( m m o l port num ber)
Slika 94

FTP

rlogin

6.8.3) U ni i vti ce x n ni
Vti ce so: ni enostaven programski vmesnik za komunikacijo m ed procesina i stem al razlni raunal ki i i h ni h 1. Pred pri etkom kom uni j m orata sodel oa procesa,P i Q ,ustvari vsak svoj kacie uj n ti o vti co { .Vti cibosta konnitokipovezave m ed P i Q .Proces ustvarivti co s ni ni n ni sistemskim klicem socket
Slika 95

[OS neuradna skripta 2006/07]

Stran 91

2. Vsak proces svoj vti cipove,kaken nasl bo i el Za to uporabisi i ni ov m a. stem skiklc bind. i N pr.e bo kom uni j v om rej bo nasl vti ce = ( P nasl ra,tevika vhoda) kacia u, ov ni I ov l 3. Procesa se odsl l ej ahko pogovarj po povezavim ed svojm a vti cam a.Pritem rabi ata i ni ta si stem ske klce.D eni o,da j P odj al Q pa streni i m e em ec, k. Za streni Q sta pom em bna si k stem ska klca i listen... s katerim pripravi vrsto za vhoden klic accept... s kateri zaspii aka,da ga zbudiodj al klc m n em ev i Za odjemalca P pa je pomemben klic connect... s kateri pokle streni ( m i k poskua vzpostavi zvezo z njm ) ti i Za oba so pom em bnie klci i send, recv, read, write in close,.... s katerimi se pogovarjata in nato prekineta zvezo

Proces ustvarisvoj vti co s si o ni stem ski klcem m i S = socket (A,B,C) V katerem z A, C opi kom uni j ez njo: B, e kacio A... B... D om ena:opi e,kj bo sogovorni ( i suj e k na stem al drugem raunal ku) i ni Npr. AF_UNIX ... Unix AF_INET...Internet Model: opisuje, kateri model komunikacije bo osnova za prenos podatkov (prvi ali drugi) Npr. SOCK_STREAM...prvi SOCK_DGRAM...drugi Protokol opi e,kateriprotokolse bo upoteval( : suj TCP al U D P) i Npr. 0 pomeni TCP (pri SOCK_STREAM) oz. UDP (pri SOCK_DGRAM) D eskri ptor ustvarj vti ce ( ene ni proces j priuporabii enuj s S) o m e

C... S...

D eni o,da bo sogovorni na drugem raunal ku v i m k ni nternetu ( torejj B = AF_I ET) e N . Ustvarjenivti ciS j treba pri ni e drui e nek naslov,kam or bodo ' i i sogovorni e ti poklcal' ke, bodo el ivzpostavi zvezo z nj Ta nasl seveda sestavlata I nasl nj el ti o. ov j P ov enega raunal ka ni i tevika vrat.Zato m oram o: n l 1) I nasl nj P ov enega raunal ka i teviko nj ni n l enega vhoda vpi v neko strukturo sati naslov_vt, ki je tipa:
Struct tip_Inet_naslov_vt { Inet_naslov... //sem se vpi I nasl ra. e P ov St_vh... //sem se vpi t.N asl e ova ...... //v strukturiso e druge kom ponente };

[OS neuradna skripta 2006/07]

Stran 92

2) Ter nato nasl ov_vt ' drui'vti ciS;sl pri l ni ednj storisi e stem skikl bind (S, &naslov_vt) ic Vse to m orata v spl onem stori oba,streni Q i odj al P,vsak s svoj strukturo: ti k n em ec o Q: SQ = socket (A,B,C) Napolni_s_podatki (&naslov_vt_Q) Bind(SQ,&naslov_vt_Q) SP= socket (A.B.C) Napolni_s_podatki (&naslov_vt_P) Bind(SP,&naslov_vt_P)

P:

Streni Q : k Streni m ora predpostavi ,da j l k ti e ahko nanjhkratinasl j h ve zahtev. ovleni Sistemski klic listen(SQ,N) ustvari vrsto, ki bo shranila do N hkratnih klicev, naslovljenih na SQ. Sistemski klic fdes=accept(SQ,&kdo_klice): bl ra streni Q ( j zaelaccept) dokl se na vhodu ne poj zahteva po zveziz oki k ki e , er avi SQ; tedaj accept nadaljuje in o vrne nov datotenideskri ptor f des o vpi nasl odj al e ov em eve vti ce v kdo_klce ( j tuditi ni i ki e pa tip_Inet_naslov_vt) O dsl l ej ahko streni i e neko pole znakov bufv datoteko fdes s si k zpi j stem ski klcem m i Izpisanih = write(fdes,buf,BUFSIZ) oz. izpisanih = send (fdes,buf,BUFSIZ,opcija) Znake iz datotek pa lahko prebere v to polje s sistemskim klicem Prebranih =read(fdes,&buf,BUFSZ) oz. prebranih recv(fdes,&buf,BUFSIZ,opcija) (opcija pri recv: -poglej podatke, ne da bi jih zares prebral iz fdes, -sprejemaj le posebne znake, -preberii fdes l e bo to napol l buf) z e, nio Sistemski klic close( )preki povezavo.e bo kdo hotelbrati iz datoteke fdes, bo videl SQ ne eof,e pa bo hoteltj e pi ,bo dobi i sani = 0 a sati l zpi h

Odjemalec P: Sistemski klic connect(SP,&koga_klicati,...) poskua vzpostavi zvezo m ed svoj ( em al ti o odj evo)vti co SP i streni ni n kovo vti co.( en nasl siprejpripravi v strukturi koga_klicati) ni nj ov e vzpostavi povezave uspe,bo SP odsl tudidatotenideskri tev ej ptor ( nam re datoteke,ez katero bo tekl kom uni j . a kacia)

[OS neuradna skripta 2006/07]

Stran 93

Podatki, ki jih bo P vpisal v datoteko SP, npr. s sistemskim klicem write(SP,....) oz. send(SP,..) se bodo prenesl do vti ce SQ v datoteko fdes,kj jh bo l ., i ni er i ahko prebralQ z ukazom read(fdes,...) oz. recv(fdes,...) Podatki, ki pa jih bo Q vpisal v svojo datoteko fdes (z write(fdes,...) oz. send(fdes,...)), se bodo preko vti ce SQ posl iv datoteko SP, kjer jih bo prebral P s sistemskim klicem ni al read(S,...) oz. recv(SP,...) Sistemski klic close(SP) prekine povezavo. Povzetek: odj al i streni v om rej komunicirata po prvem modelu. em ec n k u
Main() //odjemalec P (ogrodje) { //dekleracije SP=socket(A.B.C); Napolni_s_podatki(&naslov_vt_P); Bind(SP,&naslov_vt_P,...); Napolni_s_podatki(&koga_klicati); Connect(SP,&koga_klicati,...); uporabljaj write(SP,...) in read(SP,...) oziroma send(SP,...) in recv(SP,...) za kom uni j s tem streni ; kacio kom Close(SP); } M ai )//streni Q ( n( k ogrodj e) { //dekleracije SP=socket(A.B.C); Napolni_s_podatki(&naslov_vt_Q); Bind(SQ,&naslov_vt_Q,...); Listen(SQ,N); While(1) { Fdes = accept(SQ,&kdo_klice,...); Id_sin = fork(); //ustvari sina If (id_sin = 0) //ki naj poskrbi za odjemlca { uporabljaj write(SP,...) in read(SP,...) oziroma send(SP,...) in recv(SP,...) za komunikacijo s tem odjemalcem; close(fdes); exit(); //si kona n } } }

[OS neuradna skripta 2006/07]

Stran 94

VII.) PROCESI III.


7.1) Proizvajalec porabnik
Dana sta dva procesa, proizvajalec in porabnik,kiteeta soasno.
Slika 96 proizvajalec proizvaja podatki Medtem ko porabnik porablja

Procesa morata komunicirati. Denimo, da komunicirata preko skupnega pomnilnika


Slika 97 proizvajalec SKUPNI POMNILNIK porabnik

M ona i pl entacia: m em j Typre tPod = ... N =... Var pomn : array [0..n-1] of tPod; Ven, Noter : 0...n-1; tevec:0.. .n; //ti podatka,kise bo prenaal p //vm.pomn.bo hranil do n podatkov //vm.pomn. (mora biti v skupnem pomnilniku) //od kjer se bo bralo naslednji podatek //kamor se bo vpisalo naslednji podatek //koliko podatkov je v vm.pomn. (mora biti v skupnem pomnilniku)
Slika 98

proizvajalec repeat m = proizvedi_podatek(); ... while poln do no_op; pomn[noter] := m; noter := (noter+1) mod n; tevec := tevec + 1; ... until...

pomn noter ven

te ve c

porabnik repeat ... while prazen do no_op; m := pomn[ven]; ven ;= (ven+1) mod n; tevec := teve -1; ... porabi podatek (m); ... until...

Spremenljivki pomn in tevec uporabljata oba procesa, zato morata biti v skupnem pomnilniku. (Spremenljivki noter in ven bi bili lahko lokalni v svojem, ker ju rabi le po en proces) O sredotoi o se na sprem enli tevec, ki jo spreminjata oba procesa! m jvko

[OS neuradna skripta 2006/07]

Stran 95

Izsek prevoda v zbirnik:


Slika 99 proizvajalec repeat ... te ve c := te ve c+1; ... until... porabnik repeat ... te ve c := te ve c-1; ... until...

te ve c

... A1:R1<-te ve c A2:R1<-R1+1 A3:te ve c <-R1 ...

... B1:R2<-te ve c B2:R2<-R2-1 B3:te ve c <-R2 ...

D eni o,da sta v nekem trenutku oba procesa ti pred zaetkom spreminjanja vrednosti m k tevec = 5.Ker sta procesa soasna,se ukaziAii Bjl n ahko ' prepl o'( etaj zaradipreki tev i ni n menjav okolja). Nekateri scenariji izvajanja segmentov
Slika 100 ... A1:R1<-te ve c A2:R1<-R1+1 A3:te ve c <-R1 ... ... B1:R2<-te ve c B2:R2<-R2-1 B3:te ve c <-R2 ...

SCENARIJ 1 .. .tevec = 5 A1 ...R1 = 5 A2 ...R1 = 6 A3 .. .tevec = 6 Menjava okolja .. .tevec = 6 B1 ...R2 = 6 B2 ...R2 = 5 B3 .. .tevec = 5 ( K) O

SCENARIJ 2 .. .tevec = 5 A1 ...R1 = 5 A2 ...R1 = 6 Menjava okolja (shrani R1 = 6) .. .tevec = 5 e vedno! B1 ...R2 = 5 B2 ...R2 = 4 B3 .. .tevec = 4 Menjava okolja (obnovi R1) A3 .. .tevec = 6 !?!?!?!?!?!?

SCENARIJ 3 .. .tevec = 5 A1 ...R1 = 5 A2 ...R1 = 6 Menjava okolja (shrani R1 = 6) .. .tevec = 5 e vedno! B1 ...R2 = 5 B2 ...R2 = 4 Menjava okolja (shrani R2 = 4, obnovi R1) A3 .. .tevec = 6 Menjava okolja (obnovi R2 = 4) B3 .. .tevec = 4 ?!?!?!?

[OS neuradna skripta 2006/07]

Stran 96

Ko se oba segm enta i zvedeta,m onitrie razlnirezul za tevec! (pravilen rezultat je 5) j i tati

Vzrok za napanirezul j nesreno prepl tat e etanj ukazov A1...A3 in B1...B3, ki posegajo v e skupno l okacio ( j tevec). Po drugi strani pa nam razum pravi, da scenarij, kjer se ukazi A in B med sabo ne prepletajo (scenarij 1), gotovo vrne pravilen rezultat. Sklep: Zagotovi m oram o,da se bo ' ti naenkrat'i alkvej zvaj emu eden od delov A1...A3 in B1.. t..da se nek delkode ne bo pri i ati e se drugidele nikonal( ne bo .B3, j el zvaj , da prepletanja). Pravimo, da ukazi A1...A3 sestavljajo kri niodsek v svoj program u.Kri niodsek ti em ti svojega programa pa tvorijo tudi ukazi B1...B3
Slika 101 ... A1:R1<-te ve c A2:R1<-R1+1 A3:te ve c <-R1 ... ... B1:R2<-te ve c B2:R2<-R2-1 B3:te ve c <-R2 ...

K ri n i o d se k ti

K ri n i o d se k ti

7. Probl kri ni odsekov 2) em ti h


Definicija: D ani j n soasni procesov P1,., Vsak i a v svoj kodivsajen del h e h ..Pn. m i , imenovan kri niodsek. ti

Probl kri ni odsekov:Kako zagotovi soasno i anj procesov P1,...,Pn da bodo pri em ti h ti zvaj e tem izpolnjene naslednje zahteve: 1) Vzaj no i j em zkluevanj procesov:soasno se l e ahko i a kvej u en kri niodsek zvaj em ti D eni o da proces P1 vstopiv svojkri niodsek.e m ed i anj odseka m ti zvaj em pride do prekinitve, P1 sicer lahko i zgubiprocesor i ne dokona svoj n ega kri nega odseka.Proces P2,kij prevzelprocesor,pa sm e teil po svoj ti e e i ' aj 'kodi preprei pa m u m oram o,da bivstopi v kak svojkri niodsek, obi ni , ti l ti vse dokl P1 ne dokona svoj ( kasnej zopet pridobi procesor) er ega ko e 2) O m ej eno akanj na vstop:procesu se ne sm e neom ej e eno dol prepreevativstopa go v kr.odsek Zani aj nas l rei kiprocesu daj o real zagotovia,da bo om ej m o e tve, ej na l eno dol akalna vstop v kr. go odsek 3) Omejen vpliv na izbor: na to, kdo bo naslednji vstopil v kr. odsek, vplivajo le kandidati za vstop Procesi kine kandi raj za vstop v svojkri niodsek,ne vplvaj na i , di o ti i o zbor tistega, ki bo vstopil naslednji. 4) Spl onost rei tve:rei najbo neodvi od tev sna [OS neuradna skripta 2006/07] Stran 97

tevia procesov ( l n) tehnol h znainosti( oki l npr.hi trostiposam ezni kom ponent raunal ka) h ni

7.3) Zgradba procesov


Predpostavimo lahko, da imajo procesi P1,...Pn naslednjo zgradbo: Pi:
repeat Kri niodsek procesa Pi ti ' aj koda proseca Pi obi na' until...

Vsak proces torej vsaj enkrat zahteva i anj svoj kri nega odseka (ahko pa tudi zvaj e ega ti l vekrat) . Rei probl a kri ni odsekov i tev em ti h em o v oblkidveh dodatkov, s katerima obdamo vsak i kri niodsek: ti Pi:
repeat Vstopni del //tu se procesu Pidovol al pa prepreivstop i i Kri niodsek procesa Pi ti Izstopni del //tu se poskrbi za obveanj da j Pispet i e, e zven kri nega odseka ti ' aj koda procesa Pi obi na' until...

7.4) N ai reevanj probl a ni a em


N ai reevanj probl a kri ni odsekov se razlikujejo tudi po tem, kaj imamo pri ni a em ti h reevanj na volo. u j N ekatere m onosti : Iem o l ' sto'al tm i rei e i gori no tev Uporabiti smemo nekatere posebne toda enostavne ukaze (oz.funkcije) Uporabi sm em o tud nekatere posebne vi e si ti j nhroni j konstrukte zaciske

7. 1)Al tm i reevanje 4. gori no


7. 1. Reevanj prin=2 ( ) 4. 1) e prvi Zamisel: Procesa P0 i P1 naji ata skupno sprem enli dovolenj kibo v vsakem n m jvko j e, trenutku povedal kdo od njj sm e vstopi v svojkri niodsek.Preden a, iu ti ti proces vstopi najpreveri e i a za to dovolenj e tega ni a,najaka.Ko , , m j e, m pa i zstopii svoj kri nega odseka,najtakojda dovolenj drugem u.Tedaj z ega ti j e : Stran 98

[OS neuradna skripta 2006/07]

var dovoljenje = npr. 0; Pi: repeat while dovoljenje <> i do No_op; kri ni odsek procesa Pi; ti dovoljenje = 1 dovoljenje; obi na koda procesa Pi aj unti l

//spr. je skupna obema procesoma //vstopi e i a dovolenj si kroi , m j e; cer //po izstopu takoj daj dovoljenje drugemu

Slabost:

Ko P0 zapustisvojkri niodsek,dovol vstop P1.Toda deni o,da P1 e ne ti i m el vstopi v svojkri niodsek ( i a svoj obi no kodo) M edtem i ti ti ker zvaj o aj . P0 ( zaradiprekl j a)kona svoj obi no kodo i se spet znaj pred aplanj o aj n de svojm kri ni odsekom .Toda za vstop sedajni a dovolenj eprav ni i ti m m j a, drugega kandidata za vstop.el ko bo ( bo)P1 vstopi i konalsvoj e, e ln kri niodsek,bo P0 dobi dovolenj ti l j e. O i j da l tno e, ahko procesa l i eni vstopata v kri niodsek. e zm no ti Ta rei ne i nj e zahteve po omejenem vplivu na izbor (saj P1, ki ni kandidat, tev zpol uj prepreuj ponoven vstop P0) Al pa cel zahteve po om ej e . i o enem akanj na vstop. u

7. 1. Reevanj prin=2 ( 4. 2) e drugi ) Prej iposkus kae,da nidovol vedeti kdo i a dovolenj za vstop;vano j tudi kdo el nj j , m j e e , i vstopiti! Zamisel: Procesa naj imata skupni dve sprem enli ( j pole)zahteva *0.1+,kibo v jvki t.. j . vsakem trenutku povedal kdo od njj el vstopi v svojkri niodsek. o, iu i ti ti Preden kandi vstopi najpreveri da drugigotovo niv svoj kri nem dat , , em ti odseku ( bo tedaj ko druginii to , zrazi ni ele po vstopu) i e j treba l ti j n e poaka.Tedaj:
//polje je skupno procesoma P0 in P1; //indeks drugega procesa //obj ,da el vstopi avi i ti //vstopi e drugigotovo nivstopi;si akaj , l cer //obj ,da ni ve v kr.odseku avi si

var zahteva[0..1] of boolean = {false, false} Pi: j = 1 i; repeat zahteva[i] = true; while zahteva[j] do no_op; kri niodsek procesa Pi ti ; zahteva[i] = false; obi na koda procesa Pi aj unti l

Slabost:

Denimo, da se P0 takoj po stavku zahteva[0] = true prekinje (zaradi preklapljanja). Denimo, da nadaljuje P1 in da tudi ta postavi zahteva[1] = true. Sedajdrug drugem u prepreuj prehod ez while! eta O i j da se procesa l tno e, ahko uj eta v m edseboj bl ranj i am no oki e, z katere se ( a)ne m oreta rei . sam ti Kajpa,e bizam enj istavka zahteva[i] = true; in while? al

[OS neuradna skripta 2006/07]

Stran 99

To ne biprepreio teav,ker bise procesa l l ahko znal hkrativsak v svoj kr.odseku. a em

7. 1. Rei prin=2 4. 3) tev Rei prin=2 dobi o,e zdrui o prej a dva neuspena poskusa. tev m m nj Zamisel: Proces naj prejobj ,da el vstopi .N ato previ avi i ti dno prepusti prednost drugem u procesu.e sij drugispl el vstopi ,prviproces poaka ( e oh el ti v zanki,da drugikona svojkri niodsek.Tedaj ) ti :
//polje je skupno procesoma P0 in P1; //spr. je skupna procesoma //indeks drugega procesa zahteva[i] = true; dovoljenje = j; while (zahteva[j] and dovoljenje = j) do no_op; kri niodsek procesa Pi ti ; zahteva[i] = false; obi na koda procesa Pi aj unti l //obj ,da el vstopi avi i ti //daj prednost drugemu //e sij drugiel vstopi ,akajda kona e el ti //obj ,da ni ve v kr.odseku avi si

var zahteva[0..1] of boolean = {false, false} dovoljenje = npr. 0; Pi: j = 1 i; repeat

Obstaja formalen dokaz, da so izpoljenje vse zahteve za kri ne odseke. ti 7. 1. Rei prispl 4. 4) tev onem n( 1) Zamisel: Pacient, ki bi rad k zdravniku, mora najprej v akal co.O b vstopu v akal co ni ni vzam e ( vrha posode)teviko.Ta j vej od tevik ostalh paci z l e a l i entov v akal ci Ko j zdravnik prost, sme k njemu pacient z naj anj tevi v ni . e m o lko akal ci Ko paci zapustizdravni vrne teviko ( posodo na ustrezno ni . ent ka, l v mesto). Proces,kibirad vstopi v kri niodsek,m ora naj l ti prejv akal co.O b vstopu v akal co prej e teviko,kij vej od ni ni m l e a tevik ostalh procesov v akal ci Ko postane nasl l i ni . ednj vstop v i kri niodsek m oen,vstopiakaj proces z naj anj ti oi m o teviko.Ko kona svojkri niodsek,vrne teviko.Posebnost: l ti l l ahko se zgodi da dva procesa dobi i tevi Prednost bo , ta sto lko. i elti z m anj m pi ( m sti i d uvedem o sekundarnikri jza urej e teri anj akaj h procesov) oi .

Uporaba pri procesih:

[OS neuradna skripta 2006/07]

Stran 100

7. 1. Rei prispl 4. 5) tev onem n( 2)


var dod[0...n-1] ofbool = ,f se, f se-; //dod*+= true e se procvesu Piravno dodeluj steviko; ean al al i j e l var st[0..n-1+ofi nteger = ,0, , 0-; //Pi ima v cakalnici stevilko st[i] Pi: repeat dod[i] = true; //(1) Piobj ,da se m u zaenj dodelevatitevika avi a j l st*i = m ax( + st*0+,st*1+, ,st*n-1]) + 1;//(2) dodel se m u nasl i ednj tevika a l dod[i] = false; //(3) Piobj ,da j prej teviko avi e el l for j = 0 to n-1 do //(4) Pipogl eda,e m ora kakem u procesu Pjdatiprednost while dod[j] do no_op; //(4a) Pipoaka na Pj( j vstopi v akal)da dobiteviko ki e l . l //(4b) Pipoaka na Pj e j ta v akal cii i a prednost pred Pi , e ni n m while st[j] <> 0 and (st[j], j) < (st[i], i) do no_op; endfor; kri niodsek procesa Pi ti ; st[i] = 0; //(5) Piobj ,da j konalkri niodsek avi e ti obi na koda procesa Pi aj unti l

Zakaji ata l m ahko dva procesa enako teviko? l Pogl m o stavek ( .e pri do prekl na nek Pk ti pred vpi ej 2) de opa k som vrednostim ax+1 v st*i +, bo dobi Pk enako teviko. l l

7. 2)Reevanj probl a odseka z uporabo posebni ukazov 4. e em h


7. 2. O nem ogoanj prekinitev 4. 1) e Pi: ... O nem ogoipreki tev ni Kri niodsek ti O m ogoipreki tev ni Vasi m oram o tudiv kri nem odseku preki ti( h ti ni zaradiui nkovi tosti )

Teave:

7.4.2.2) ukaz Test&Set Pomen ukazov


function Test&Set (var x : boolean) : boolean; begin Test&Set := x; x := true; end

Ukaz je implementiran tako da se izvede atomarno (tu ne more biti prekinjen) O pravio Test& Set prireevanj probl a kri ni odsekov. l u em ti h [OS neuradna skripta 2006/07] Stran 101

1 poskus:
global Nekdo_v_krit_ods : boolean; (inic na false) Pi : repeat while Test&Set (Nekdo_v_krit_ods) do no_op; kr.odsek Nekdo_v_krit_ods := false; until
Slika 102

Pi

Pj

Pn

kr. odsek

nekdo_v_krit_ods := false

Scenarij: Piaka na vstop Pjravno konan Preden Piuspe testi ,dobiprocesor Pk i vstopiv svojkri niodsek rati n ti 2 poskus:
// var aka array* . 1.n-1] of boolean; Nekdo_v_krit_ods : boolean; I c:aka,nekdo_v_kri ni t_ods : f se; = al Pi : var j:0...n-1; e_naj _aka :bool ean; repeat aka*+: true; i = e_naj _aka : true; = while ( aka*+and e_naj i _aka) do begin se_naj_caka := Test&Set(Nekdo_v_krit_ods); end; aka*+: f se; i = al //kri niodsek ti j := i+1(mod n) while ( != i and ( aka* +) do j ) ! j begin j := j+1 (mod n) end; if j=i then nekdo_v_krit_ods := false; else aka* +: f j = alse; until...

[OS neuradna skripta 2006/07]

Stran 102

7.4.2.3) ukaz Swap Opis pomena:


procedura Swap(var a,b : boolean); var t : boolean; begin t := a; a:= b; b := t; end

Pomembno: Swap je atomaren. Izvede se vse brez prekinjanja. U poraba prireevanj probl a kri ni odsekov u em ti h Poskus 1:
Pi : repeat poakaj: true; = repeat Sw ap( ekdo_v_kri N t_ods,poakaj ) until poakaj= f se; al //kri niodsek ti nekdo_v_kri_ods := false;

Poskus 2: priagodi o prej iTest& Set poskus 2 za proceduro Sw ap ( l m nj dom aa nal oga)

7.4.3) Semaforji
U kaza Test& Set ter Sw ap j oi teko uporablati e posebejza druge e tno j . sinhronizacijske probleme. Zahtevata velko asa ( i vstopnidel pred kri ni odsekom ) ti m Zato so pri ernej semaforji. m i Semafor: Orodje za sinhronizacijo procesov Cel otevina sprem enli l jvka,S Z spreminjata jo lahko le dve operaciji wait in signal njun pomen (ne pa implementacija!) je: wait(S) : w hie S 0 do no_op; l S := S-1; //atomarni obe operaciji [OS neuradna skripta 2006/07] Stran 103

Slika 103 wait(S):

da

s <= 0

Atomaren
ne

S := S -1

signal(S):

S := S+1 //atomarno

Uporaba semaforjev za reevanj probl a kri ni odsekov: e em ti h P1,P2,., procesis kri ni iodseki ..Pn ti m Procesi imajo skupen semafor m, ki je inicializiran na 1.
Pi : repeat... wait(m); //kri niodsek ti signal(m); until...

Uporaba pri usklajevanju (sinhronizaciji) procesov Kajelm o: i


Slika 104

P1

P2

S1

S2

S2 se sm e i sti e l , ko zve e se j ko n a l S 1 e

[OS neuradna skripta 2006/07]

Stran 104

Kdo? Procesa naj imata skupen semafor synch(inicializator na 0)


Slika 105

P1

P2

S1: signal(synch) wait(synch) S2

Sem aforj i asovna analiza in Vse dosedanj rei ( gori i e tve al tm na, Test& Set, ap, Sw Sem afor)uporablaj m etodo j o nekori stnega akanj ( a busy w ai t)
Slika 106

P1

P2

Vstopni del Dokler je P2 tukaj mora P2 kro i ti tukaj

Kr. odsek

Kr. odsek

Izstopni del

V enoprocesorskem si stem u se tako i zgubla as!! j

[OS neuradna skripta 2006/07]

Stran 105

Slika 107

P1

P2

Menjava

Menjava Koristno delo v P1 Nekoristno delo v P2 (vstopni del)

asovna analza i
Slika 108

T11

T12

Od K o lke n j a s i e Do

T13

t2,n-1

T1n

P2 vstopi v svoj krit. ods.

[OS neuradna skripta 2006/07]

Stran 106

Ta as j e: Idealno bi bilo: U poasni j tev e: Poenostavimo: i dokonno: n

1n (T1i) + 1n-1(t2j) + (n-1) 2 1n(T1i) 1n (T1i)+ 1n-1(t2j) + (n-1) 2 / T1i = t2j = k n*k + (n-1)k + (n-1) 2 / nk 2nk + 2n / nk = 2 + 2 /k 1n(T1i)

upoasni vsajdvakratna,e j >> k tev e Sumasumarum: i zkori enost procesorj j sl a e aba kori sten as / ves porablen as = 1 / 2( < 50% j 2 /k)

Zamisel:

e ukaz wait( ugotovi da j S0,potem najne kroi( zankiw hie) tem ve S) , e v l , raje blokira proces P ( -> sprosti procesor) P se postaviv vrsto akaj h ( sem af S) oi na or Ta proces P bo obudi nek drug proces Q ,kibo i l zvri ukaz signal(S). l
Slika 109

Diagram vrst Pripravljen Procesor

Signal (S)

Seznam a ka j i o h ni S

N e u sp e e n wait(S)

V vrstiakaj h na S l oi ahko ve procesov. -> potrebna drugana defi cia / i pl entacia semaforja ni j m em j

[OS neuradna skripta 2006/07]

Stran 107

type semaphore = record value : Integer L : list of process end

//vrednost semaforja //seznam akaj h procesov pritem sem af u oi orj

inicializacija odvisna od uporabe, npr. L = '', S.value = 1


P: wait (S) : S.value := S.value -1; if S.value < 0 then begin dodaj proces P na seznam S.L block end

nedeljivo (atomarno)

//P uspava samega sebe

opombe:

S. ue j bio < 0,j e S. ue < 0,potem |S. ue| j dol na vrste S. val e l e val val e i L

Q: signal(S):

domnevno

S.value:= S.value +1; if S. ue 0 then val // v S.L je vsaj en proces begin i oinek proces R i S. zl z L wakeup(R); end presek R m ed pri pravlene j

Mrtve zanke (deadlock) Neprevidna raba semaforja lahko vodi do mrtvih zank. Npr: dana sta semaforja s in q (oba inic na 1)
Slika 111
Slika 110 P0:

. . . wait(s); . . . wait(q); . . . . . signal(q); . . . signal(s);

P1:

q=0

s=0

. . . wait(s); . . . wait(q); . . . . . signal(q); . . . signal(s);

. . . wait(s); . . . wait(q);

. . . wait(q); . . . wait(r);

. . . wait(r); . . . wait(s);

Slika 112

D o m rtvi zank l h ahko pri tudiv spl de onem ,e:


namesto wait(S) in namesto signal(S) //sprosti_vir(S) //zasei r( _vi S)

K l si i a n problemi singronizacije

[OS neuradna skripta 2006/07]

Stran 108

7. Kl niprobl isi 5) asi em nhroni j zacie


Probl kri ni odsekov em ti h Problem proizvajalec & porabnika Problem branja & pisanja Probl l h fiozof em ani l ov

7.5.1) Problem proizvajalca & porabnika


Slika 113 Proizvajalec Porabnik

Rei s sem aforj: tev i o semafor m: om ogoa i j oe poseganj v buff slka 113)(ni 1) zkluuj e er( i i t: o semafor e: tevio prazni v buf u (init n-1) l h ferj o semafor f: tevio pol h v buff u (init 0) l ni erj

Proizvajalec:
repeat nextp := proizvedi_novega() : : wait(e); wait(m); : : vpisi nexp v buffer : : signal(m); signal(f); : : until

Porabnik
repeat : : wait(f); wait(m); : : nexc := preberi iz bufferja : : signal(m); signal(e); : : until...

[OS neuradna skripta 2006/07]

Stran 109

7. 2 Probl l h f l 5. em ani iozof ov


fiozofiso procesi pal pa vi l , ke ri
Slika 114 3

R I

Pogoj: Fil ozov za j edenj rabi2 pal ,i e ki zbere l ahko l sebisosednj pal e i ki O i tno: Dva soseda ne moreta jesti hkrati Pretio teave: j stradanje nek fine m ore do pal ker m u jh pred nosom i i k, i zm kata soseda. N ekatere rei tve: o pal predstavi o s sem aforj : ke m em
var na_voljo_palcka[0...4] of semaphore (init vsi na 1 <-> na zaetku vse pal na m i ) ke zi fii: repeat filozofiraj; wait(na_voljo_palcka[i+1 mod 5]); wait(na_voljo_palcka[i]); : : jej; signal(na_voljo_palcka[i+1 mod 5]); signal(na_voljo_palcka[i]); until...

Lastnosti: soseda ne m oreta hkratiuporabi pal ti k tudim ona m rtva zanka o kvej u 4 fiozofisedio za m i ( 5) em l j zo za si gurno obstaj fiozofkigotovo dobiobe pal a l ki m rtva zanka m ona o fiozof dovol seipo pal l u i kahl e sta na m i obe ( druge ne dobi vrnitudiprvo e, zi e , pal vse al ni ko i ) [OS neuradna skripta 2006/07] Stran 110

o MANJKA o Monitor...

7.5.3) Problem branja & pisanja


bralci, Ri Dani soprocesi Po, ...., Pn-1 pisatelji, Wi skupni podatek (lokacija)A
Slika 115

Ri

Rj

e po lokaciji A posegata W in bodisi W ali R Primer: Wi : A := A+1 A q reg A reg := reg +1 preklop reg A reg reg +1 A reg .....A = q+1

Wj : A := A+1

Wi : A := A+1 A q

Rj : B := A+1

reg A reg := reg +1 preklop reg A B reg .....B = q

A reg ... A = q+1 oba sta poveal rezul pa j vej l za ena a, tat e ie

A reg ... A = q+1

Problem: Branje in pisanje o prve vrste :noben R ne sm e akati razen e tudiW ravno sprem i a A ( , nj prednost i a m branje Ri) o druge vrste :e W aka na dovoljenje, potem noben Ri ne sm e zaeti( prednost i a m auri e) ranj

[OS neuradna skripta 2006/07]

Stran 111

You might also like