Professional Documents
Culture Documents
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
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
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
Stran 4
I.) UVOD
1.1) Kaj je OS? 1.2) Zgodovinski razvoj OS 1.3) Nekatere vrste OS
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 )
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)
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
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.
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?
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
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)
Sasom a:
Rei tve: 1)Loen V/I( -line procesiranje) off Ko so se pojavili magnetni trakovi
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
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
Vpraanj e: Odgovor:
Katerinajse nal nasl oi ednj? i Razvranj posl ( ob schedulng) e ov j i (to je nova naloga OS)
V pom nini j m ono nal ti po ve l k e oi poslov hkrati Kako to izkoristiti? Multiprogramiranje (nova naloga OS)
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.
Stran 12
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
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 ,
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
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)
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)
Mehki:
Stran 17
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
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
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
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
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
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
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
(1)
(3)
Vodilo
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
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
stanje
Stran 23
Slika22
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
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
Stran 24
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
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:
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
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.
Stran 26
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
Stran 27
*** .. 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
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.
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
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. 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:
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
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)
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 )
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.
Stran 35
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
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)
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
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. 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
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
Upor. program
OS
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);
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!
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.
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 .
... 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
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 &)
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?
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).
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
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 !
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.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
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.
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
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
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
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
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 ;
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().
Stran 53
Slika46 O e O e Sin
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
OS
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
Pripravljen
T e e
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
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
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
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
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)
Realnost:
4.4.3.2) Prvi pride prvi melje Algoritem: Proces,kij prejzahtevalprocesor,ga prejdobi(n tee,dokl m ore) e i er
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)
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!
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.)
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
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).
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:
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.
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:
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
Stran 70
Slika66
P
f( ) x g( )
Odgovor 2: Primeri:
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
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
Stran 72
Slika69
Programska koda
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.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. 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
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)
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
s.klic s.klic
N IT N A K N JI N IC A
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
Primer 2:
Vpraanj e:
Slika 74
main f( )
f( ) g( )
g( )
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 }
Stran 79
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
Stran 80
Proizvajalec
Proizvaja (Program za tiskanje) medtem ko
Porabnik
Porablja (Gonilnik tiskalnika)
Proizvajalec
OS/ IPC
Porabnik
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)).
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)
Stran 82
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)
P R
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) ...
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
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
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
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).
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
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 .
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
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...
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
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 };
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)
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 } } }
Stran 94
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...
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
Stran 95
te ve c
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 ?!?!?!?
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
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
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...
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
Stran 99
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
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 .
Stran 100
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
Teave:
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...
Stran 102
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
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...
P1
P2
S1
S2
S2 se sm e i sti e l , ko zve e se j ko n a l S 1 e
Stran 104
P1
P2
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
Kr. odsek
Kr. odsek
Izstopni del
Stran 105
Slika 107
P1
P2
Menjava
asovna analza i
Slika 108
T11
T12
Od K o lke n j a s i e Do
T13
t2,n-1
T1n
Stran 106
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
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
Stran 107
nedeljivo (atomarno)
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:
P1:
q=0
s=0
. . . wait(s); . . . wait(q);
. . . wait(q); . . . wait(r);
. . . wait(r); . . . wait(s);
Slika 112
K l si i a n problemi singronizacije
Stran 108
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...
Stran 109
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...
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
A reg ... A = q+1 oba sta poveal rezul pa j vej l za ena a, tat e ie
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
Stran 111