Käyttöjärjestelmät, Luent 11 LUENTO 11 VUOROTTAMINEN - YKSI CPU Stallings, Luku 9 1 Vurttaminen ja prsessien tilat Syksy 007, Tiina Niklander 11-1
Käyttöjärjestelmät, Luent 11 Vurttamisympäristöt, työkurma Eräaj ajetaan vaikkapa yöllä työn kk sataan arviida esim. ajetaan jka yö, viikttain, kuukausittain tapahtumahjattu vurttaminen OK kunhan kaikki saadaan tehtyä Interaktiivinen käyttäjä dttaa vastausta, npea vastaus hyvä vurttajalla ei harmainta aavistusta työn keststa aikaviipaletekniikka Reaaliaika aikarajat hjelmijakin miettii surituskykyä ja millin KJ saa suritusvurn Avin ja suljettu työkurma Deterministinen (suljettu) työkurma kaikki prsessit tunnetaan heräämistaajuudet tunnetaan Avin työkurma prsessien jukk vaihtelee ulkisten tapahtumien perusteella Hetergeeninen työkurma deterministinen + avin esim. lennn valvnta, lentpintjen hjaus arriving missiles pikkeus? vai deterministinen jka 100 ms? eräaj + interaktiivinen + reaaliaika miten svittaa yhteen jääkö avimille reaaliaikatöille tarpeeksi aikaa? jääkö KJ:lle tarpeeksi aikaa? Syksy 007, Tiina Niklander 11 -
Käyttöjärjestelmät, Luent 11 Tavitteita: laatu Tbl 9. [Stal0] Samanarvisille prsesseille sama palvelu Pririsintia saa harrastaa turvakntrlli vs. palkanlaskenta KJ prsessit vs. käyttäjän svellukset reaaliaika prsessit vs. muut Interaktiiviset vs. eräajjärjestelmät Vastausaika (respnse time) työ annettu, millin saadaan vastaus? Läpimenaika (turnarund time) työtä per aikayksikkö Ennustettavuus (predictability) ei sen näin pitkään pitäisi kestää rskien keruu, muu kj-hallint Käyttäjän näkökulma Linux.6 O(1) vurnant 6 Syksy 007, Tiina Niklander 11 -
Käyttöjärjestelmät, Luent 11 Tbl 9. (alasa) 7 Käyttäjän näkökulma Tavitteita: surituskyky Tbl 9. [Stal0] Ota järjestelmästä mahdllisimman paljn irti pidä CPU ja erityisesti I/O-laitteet tuttavassa työssä krkea käyttöaste (CPU utilizatin) tärkeää mniajjärjestelmissä Tehkas ja reilu CPU:n käyttö läpimenaste, läpimenvu (thrughput, wrk flw) läpimenaika (turnarund time, respnse time) Reaaliaikajärjestelmä pysyy aikataulussa Aikarajan (deadline) ylitys vi lla harmillista tai vaarallista kuvassa n häiriö, ääni/kuva epäsynkrnisia ptilas kulee, lentkne tippuu,... Ylläpitäjän näkökulma 8 Syksy 007, Tiina Niklander 11 -
Käyttöjärjestelmät, Luent 11 MILLOIN VUOROTETAAN? 9 Millin? Lng-term tetaank uusi prsessi systeemiin? suritettavaksi? mahtuuk muistiin? riittääkö swap-tila? Medium-term millin (heittvaihdettu) muistiin? prsessi muistiin? vapaata muistia? mniajaste? Shrt-term mille prsessille annetaan surittimelle? CPU? I/O minkä prsessin I/O pyyntö I/O-laitteelle? palvellaan ensin? 10 Syksy 007, Tiina Niklander 11 -
Käyttöjärjestelmät, Luent 11 Lng-term Scheduling Otetaank uusi työ suritettavaksi? millin työstä tulee prsessi? saak kneeseen luda uuden istunnn? Ratkaisevaa: mniajaste paljn prsesseja kukin saa harvin CPU:n js vähän muistia, niin nk parempi dttaa lng term vai medium term? pyritään takaamaan riittävän taskas palvelu spiva suhde: CPU- ja I/O-sidnnaiset työt? Millin? jku prsessi päättynyt / CPU:n käyttöaste pudnnut Mikä? First-Cme-First-Serviced (FCFS) jskus pririteetteja: esim. työn kk, I/O-sidnnaisuus Fig 9. [Stal0] medium term? Fig 9. [Stal0] 11 Medium-Term Scheduling Liittyy heittvaihtn sisäänheitn ajitus prsessi tilassa Suspend&Ready tai Suspend&Wait Millin muistiin? CPU:n käyttöaste laskenut vapaata muistitilaa runsaasti Mikä muistiin? kk (eli dttavan prsessin muistitarve) ulsheittaika (eli dtusaika levyllä) pririteetti Mikä muistista pis? ei sellainen, jlla tärkeä resurssi hallussa kriittinen vaihe? ei KJ prsessi? Fig 9. [Stal0] 1 Syksy 007, Tiina Niklander 11-6
Käyttöjärjestelmät, Luent 11 Shrt-Term Scheduling Fig 9. [Stal0] CPU:n vurttaminen (scheduling, dispatching) yleisterminä vurttaminen tarkittaa juuri tätä Selvästi yleisempi kuin edelliset Millin? keskeytyksen yhteydessä jkainen keskeytys ei aiheuta vurttamista kun nykyprsessin kyky käyttää suritinta mennyt jutui Blcked-tilaan: I/O, synkrninti, pissulkeminen pikkeustilanne prsessi käyttänyt man aikaviipaleensa suuremman pririteetin työ valmis etenemään Kenelle vur seuraavaksi? 1 Vurtuksen jnmalli 1 Syksy 007, Tiina Niklander 11-7
Käyttöjärjestelmät, Luent 11 PRIORITEETTI 1 Pririteetti Suuremman pririteetin prsessit ensin pririteetti PCB:ssä / TCB:ssä Kullakin pririteetilla ma Ready-jn lisää aina lppuun haku vi kestää, kun mnta jna Fig 9. [Stal0] Vs. yksi yhteinen Readyjnssa pririteetti määrää paikan npea haku (vain yksi jn) lisäys pririteetin mukaiseen paikkaan vi lla turhan mnimutkaista eli hidasta Nälkiintymisvaara vaihteleva pririteetti trjuu nälkiintymisen? prsessin ikä suritushistria vaihtelun rajat? 16 Syksy 007, Tiina Niklander 11-8
Käyttöjärjestelmät, Luent 11 Pririteettijnt 17 Kiinteä ja vaihteleva pririteetti Reaaliaikaprsessit KJ-prsessit Tavalliset user-prsessit high pri 0 1 6 6 6 66 17 18 19 10 11 19 lw pri missile avidance prcess flight surface cntrl kiinteä navigatin pri lad cntrl swapper cleaner kiinteä pri dttanut kauan RR jnssa calculatr (18-10) vaihteleva pri käyttänyt paljn CPU-aikaa (esim. kk aikaviipale) 18 Syksy 007, Tiina Niklander 11-9
Käyttöjärjestelmät, Luent 11 Millin vurtus aktivituu? Nnpreemptive (estävä mniaj) tapahtumahjattu vurttaminen prsessi surituksessa, kunnes se päättyy tai jutuu palvelupyyntönsä vuksi blcked-tilaan suritusaikana vi silti lla keskeytyksiä ja KJ työtä! scheduler ei aktividu paitsi ehkä KJ-prsesseille? Preemptive (keskeytyvä mniaj) keskeyttävä vurttaminen prsessi ei vi nälkiinnyttää muita suritus keskeytetään ja prsessi Ready-tilaan, vaikka visikin käyttää suritinta aikaviipaletekniikka suuremman pririteetin prsessi tuli Ready-jnn pre-empt: mennä edelle, ttaa itselleen etuikeuden njalla 19 CPU:N VUOROTTAMISALGORITMEJA 0 Syksy 007, Tiina Niklander 11-10
Käyttöjärjestelmät, Luent 11 Algritmit First-Cme-First-Served Rund Rbin Virtual Rund Rbin Shrtest Prcess Next Shrtest Remaining Time Highest Respnse Rati Next Multilevel Feedback FCFS RR VRR SPN SRT HRRN feedback Fair Share Scheduling FSS 1 Esimerkkiprsessit (Tbl 9. [Stal0]) Service Time = CPU:ssa kulutettu aika Esimerkeissä ei mietitä I/O:n vaikutusta Syksy 007, Tiina Niklander 11-11
Käyttöjärjestelmät, Luent 11 FCFS First Cme First Served S 6 (keskim.) cpu time fr B (Fig 9. [Stal0]) arrival time fr B Eräaj, tapahtumahjattu, ei pririteetteja Uusi prsessi Ready-jnn hännille Kun prsessi lupuu CPU:sta, vurta seuraava Ketä susii? Ketä ei? R 7 9 1 1 keskim. 8.6 cmpletin time fr B FCFS First Cme First Served Läpimenaika Fig 9. [Stal0] riippuu suritusjärjestyksestä, muiden ksta sekä CPU-sidnnaisuudesta Pienikin prsessi vi jutua dttamaan läpimenajasta valtava sa dtusta Miksi? Susii CPU-sidnnaisia muille vi tulla pitkä dtusaika I/O-laitteet ehkä turhaan juten I/O kuitenkin pullnkaula Järkevää ttaa mukaan pririteetit pririteetin perusta? prsessin kk (suritin aika)? I/O-sidnnaisuus? Syksy 007, Tiina Niklander 11-1
Käyttöjärjestelmät, Luent 11 RR Rund Rbin S 6 R 16 1 1 7 (keskim.) (Fig 9. [Stal0]) keskim. 10.8 Aikaviipaletekniikka (q=1), keskeytyvä (preemptive) Kukin Ready-prsessi saa vurllaan aikaviipaleen Vurttaminen, kun viipale käytetty tai kun prsessi jutuu Blcked-tilaan RR Rund Rbin Aikaviipaleen pituus Fig 9. [Stal0] lyhyt: prsessin vaihdt vievät CPU-aikaa pitkä: interaktiivisen työn vastausaika lyhyt, js yksi aikaviipale riittää Susii hieman CPU-sidnnaisia I/O-sidnnainen ei ehkä käytä kk viipaletta I/O-sidnnainen saa suhteessa harvemmin CPU:n - miksi? Virtual RR ready-jnn apujn (Auxiliary Ready Queue), Fig 9.7 [Stal0] jnne I/O-dtuksesta pririteetti I/O sidnnaisilla aja ensin apujnssa levat prsessit aikaviipale vain edellisellä kerralla käyttämättä jäänyt sa, sitten nrmaaliin Ready-jnn 6 Syksy 007, Tiina Niklander 11-1
Käyttöjärjestelmät, Luent 11 RR aikaviipaleen vaikutus S 6 (keskim.) (Fig 9. [Stal0]) R 1 7 1 11 keskim. 10.0 Aikaviipaletekniikka q = prsessin vaihtaikaa ei humiitu! Susiik pitkä aikaviipale cpu- vai I/O-sidnnaisia? Susiik pitkä aikaviipale lyhyitä vai pitkiä töitä? 7 Virtual RR:n jnmalli 8 Syksy 007, Tiina Niklander 11-1
Käyttöjärjestelmät, Luent 11 SPN Shrtest Prcess Next S 6 (keskim.) (Fig 9. [Stal0]) R 7 11 1 keskim. 7.6 Tapahtumahjattu (siis nn-preemptive) Vurta se, jka käyttää lyhimmän ajan CPU:ta kerrallaan I/O-sidnnaiset ensin mistä tietää? 9 SPN Shrtest Prcess Next Nälkiintymisvaara is jää aina pienten jalkihin Isjen läpimenaika vaikea ennustaa Erätyö: käynnistäjä arvii työn kestajan js työ laitettiin väärään eräajlukkaan, KJ saattaa katkaista työn miksi? (kulutti liikaa aikaa estimaattiin nähden) käynnistettävä uudelleen ismpien lukassa Interaktiivinen: KJ laskee keskim. CPU:n käyttöaikaa painttaa viimeksi havaittuja aikja (T n-1 ) estimi S estim estim n = αt n-1 + (1 - α)s n-1 Ei svellu situskäyttöympäristöön esim α = 0.8 0 Syksy 007, Tiina Niklander 11-1
Käyttöjärjestelmät, Luent 11 SRT Shrtest Remaining Time S 6 (keskim.) Aikaviipaleversi edellisestä (keskeytyvä) tilanne arviidaan uudelleen jka aikaviipaleelle Arviitava prsessin jäljellä leva ajantarve Ei svi interaktiiviseen ympäristöön (Fig 9. [Stal0]) R 1 1 keskim. 7. 1 HRRN Highest Respnse Rati Next S 6 (keskim.) Tapahtumahjattu (siis nn-preemptive) Minimi läpimenaikaa (humii histria) 7 (Fig 9. [Stal0]) Vurta se, jlla hunin suhteellinen vasteaika, ts. se, jlla suurin suhdeluku: time spent waiting CPU + expected service time respnse rati = ------------------------------------------------------------- expected service time R 7 9 1 7 keskim. 8.0 (+)/ > (7+)/ Syksy 007, Tiina Niklander 11-16
Käyttöjärjestelmät, Luent 11 HRRN Highest Respnse Rati Next Susii hieman lyhyitä töitä ei silti nälkiintymisvaaraa Dynaaminen pririteetti ready-jnssa dttelu kasvattaa pririteettia Jäljellä levaa aikaa ei vi tietää arvit menneisyyden perusteella käyttäjän antama arvi työn ksta ei svi interaktiiviseen ympäristöön Multilevel Feedback (Fig 9.10 [Stal0]) Syksy 007, Tiina Niklander 11-17
Käyttöjärjestelmät, Luent 11 Feedback Dynaaminen pririteetti Rankaisee pitkään pörränneitä prsesseja, aikaviipalitu Useita Ready-jnja RQ0: pura aikaviipaleittain, FCFS, siirrä seuraavaan jnn RQ..RQn-1: pura aikaviipaleittain, FCFS, siirrä seuraavaan jnn RQn: pura aikaviipaleittain, RR, pidä samassa jnssa Prsessi kulkeutuu lpulta RQn-jnn, jsta se aikanaan valmistuu Nälkiintymisvaara vurttaa alemmassa jnssa levat aina ensin Useita variaatiita esim. alemmissa jnissa pitempi aikaviipale (esim. 1,,, ) palaa blcked-tilasta samaan jnn S 6 Feedback q=1 1 1 6 1 1 1 (keskim.) Virhe? (Fig 9. [Stal0]) R 18 1 1 keskim. 10.0 Jnt RQ0, RQ1, RQ, Aikaviipale q=1 Ei vaadi etukäteisarviita CPU-ajan tarpeesta Pitkät työt vivat kestää kauan 6 Syksy 007, Tiina Niklander 11-18
Käyttöjärjestelmät, Luent 11 Feedback q= i Virhe? S R 1 6 1 1 1 1 1 1 1 6 (Fig 9. [Stal0]) (keskim.) keskim. 10.6 Jnt RQ0, RQ1, RQ,, RQi Aikaviipale q= i Vaikutus, vrt. q=1 Fig 9. [Stal0] 7 Yhteenvet Tbl 9. [Stal0] Syksy 007, Tiina Niklander 11-19
Käyttöjärjestelmät, Luent 11 UNIX SVR / BSD. VUOROTTAMINEN 9 UNIX: Vurttaminen Interaktiivinen ympäristö ei varsinaista eräaja, ei erätyöjnja at-kment hjelmien ajamiseksi myöhemminkin crntab jaksllisille (peridic) töille crn = chrngram deamn? tab = table Pyrkii hyvään vastausaikaan taustaprsesseilla hun pririteetti Aikaviipaleet, Rund-Rbin Multilevel feedback pririteeteilla mat Ready-jnt tyhjentää suurimman pririteetin jnn ensin dynaaminen pririteetti ei nälkiintymistä 0 Syksy 007, Tiina Niklander 11-0
Käyttöjärjestelmät, Luent 11 UNIX: Ready-jnt (Fig 10-11 [Tane01]) 1 UNIX: Pririteetti Kiinteä peruspririteetti sekä nice-arv käyttäjä vi pienentää pririteettia nice-kmennlla pitää pririteetin siististi tietyllä arvalueella Laskee uuden pririteetin sekunnin välein is aikaviipale! CPU:n käyttö vaikuttaa uuteen arvn käyttö: pririteetti putaa dttaa kauan: pririteetti kasvaa Susii I/O-sidnnaisia prsesseja tavite: I/O-laitteiden tehkas työllistäminen Syksy 007, Tiina Niklander 11-1
Käyttöjärjestelmät, Luent 11 UNIX: multilevel feedback CPU_usage = CPU:n käyttö äskettäin laskuri PCB:ssä Älä rankaise liikaa aiemmasta käytöstä pulita ennen pririteetin laskentaa, ja sitten taas CPU_usage = CPU_usage/ Pri = Base + (CPU_usage/)+ Nice (js ei cpu_usage = 0, niin ei muutsta) Fig 9.17 [Stal0] Pieni arv = suuri pririteetti Esimerkki Base=60, Nice = 0 päivitä cunter (CPU_usage) 60 kertaa/sek kelllaite keskeytys 16.7 ms välein? tanta: kenellä suritin keskeytyshetkellä? päivitä pririteetti sekunnin välein HUOM:. Ed [Stal0] jissakin painksissa väritykset virheellisesti Syksy 007, Tiina Niklander 11 -
Käyttöjärjestelmät, Luent 11 Fair-Share Scheduling Tutki myös kuka prsessin mistaa (wner) ettei hulivili vi tukkia järjestelmää Käsittele yhden käyttäjän prsesseja / säikeitä ryhmänä ryhmän vaikutus nice termin asemesta vurttelu edelleen prsessi- / säietaslla pidettävä myös kirjaa paljnk ryhmä saanut CPU:n kknaisajasta (GCPU_cunter) ryhmällä vi lla pain W, jka määrää millaisen suuden se saa kk (cpu-aika) kakusta Käytössä useissa UNIX-järjestelmissä HP-UX, IBM AIX WLM, Sun Slaris SRM ryhmä vi perustua käyttäjään tai prsessiin tai svellukseen FSS - Fair-Share Scheduling Pririteetin määrittäminen CPU_cunter = CPU_cunter/ GCPU_cunter = GCPU_cunter/ Pri = Base + CPU_cunter/ + GCPU_cunter/(*W grup ) Esimerkissä Base = 60 W A = 0. ja W B+C = 0. (W A + W B+C = 1) päivitä laskurit 60 kertaa sekunnissa päivitä pririteetti sekunnin välein is W grup pieni painarv GCPU_cunter:lla pieni Pri arv is pririteetti Kts. Fig 9.16 [Stal0] 6 Syksy 007, Tiina Niklander 11 -
Käyttöjärjestelmät, Luent 11 7 Syksy 007, Tiina Niklander 11 -