Luento 3: PROSESSIT JA NIIDEN HALLINTA

Samankaltaiset tiedostot
u vapaakäyntisyys (reentrancy) u Yhteinen koodialue u kullakin oma data-alue, pino, PCB u osoitteet suhteellisia prosessin alun suhteen

Osio 3: Prosessit, siirräntä ja tiedostojärjestelmä

PROSESSIT JA NIIDEN HALLINTA

Prosessi virtuaalimuistissa PROSESSIT JA NIIDEN HALLINTA. Sisältöä. Prosessi virtuaalimuistissa. Prosessi. Prosessi. Käyttöjärjestelmät, Luento 4

Sisältöä PROSESSIT JA NIIDEN HALLINTA. Prosessi. Prosessi virtuaalimuistissa. Prosessi. Prosessi virtuaalimuistissa. Käyttöjärjestelmät

Prosessi perinteisesti

Stallings, Luku 4.1. KJ-I I S2005 / Tiina Niklander, kalvot Auvo HäkkinenH

Käyttöjärjestelmät II

Yleiskuva. Käyttöjärjestelmät II. Tietokonejärjestelm. rjestelmä. KJ ja laitteistopiirteet. KJ ja laitteistopiirteitä.

Käyttöjärjestelmät II

Stallings, Luku 4.1. KJ-I S2004 / Tiina Niklander, kalvot Auvo Häkkinen 4-1. KJ-I I S2004 / Tiina Niklander, kalvot Auvo Häkkinen 12-1

Käyttöjärjestelmät: prosessit

Luento 6: VIRTUAALIMUISTI

ltö Luento 6: VIRTUAALIMUISTI Luento 7: Segmentointi Segmentointi ja sivutus yhdistettynä Yhteiskäytöstä Suoritus virtuaalimuistissa

Tietojenkäsittelyn perusteet 2. Lisää käyttöjärjestelmistä

u saantimenetelmät u kirjanpito vapaista lohkoista (taltiolla!) u hierarkkinen hakemistorakenne: kirjanpito tdstoista u tdstojen käyttö

Osio 2: Luennot 4-7 Muistinhallinta

RJESTELMÄ OSA 2 Stallings, Luku PALVELUPYYNNÖT. KJ-I I S2005 / Tiina Niklander, kalvot Auvo HäkkinenH

Ongelma(t): Miten tietokoneen käyttöjärjestelmä toimii sisäisesti, jotta resurssit saadaan tehokkaaseen käyttöön?

Luento 5: YKSINKERTAINEN SEGMENTOINTI JA SIVUTUS

Sisältöä SÄIKEET, SMP

Luento 7: VIRTUAALIMUISTIN SIVUTUS JA SEGMENTOINTI

Kuva 8.7. u Muunnos prosessin sivunumerosta sivutilanumeroksi u Kussakin alkiossa: u Katenoimalla. u MMU:ssa; juuri äsken käytettyjä muunnoksia

ltöä (Luennot 5&6) Luento 5: YKSINKERTAINEN SEGMENTOINTI JA SIVUTUS Pikakertaus: : a) b) c) Dyn.. part.: sijoitus Kuva Buddy System: esimerkki

4. Luento: Prosessit ja säikeets. Tommi Mikkonen,

Osio 2: Luennot 5-8 Muistinhallinta

Osio 2: Luennot 4-7 Muistinhallinta YKSINKERTAINEN MUISTINHALLINTA. ltöä YLEISTÄ MUISTINHALLINNASTA. Looginen muisti.

RJESTELMÄ Stallings, Luku KJ-I I S2005 / Tiina Niklander, kalvot Auvo HäkkinenH

u saantimenetelmät Kenttä (field) u bittien / tavujen muodostama looginen kokonaisuus u yksi arvo, jolla tyyppi ja pituus Tietue (record)

Käyttöjärjestelmän rakenne

Osio 3: Siirräntä ja tiedostojärjestelmä

Sisältöä. Tietokoneen rakenne. Ch 1 - Ch 8 [Sta06] Valikoituja paloja TITO-kurssista. Tietokonejärjestelmä

Stallings, Luku 8.1. KJ-I I S2004 / Tiina Niklander; kalvot Auvo Häkkinen 8-1

NTÄ. Luento 8: SIIRRÄNT. Osio 3: Siirräntä ja tiedostojärjestelmä. ltö. Yleistä siirrännästä. Siirtonopeuksia (teoreettisia) Kuva 11.1.

MUISTINHALLINTA. Stallings, Luku 7

Tervetuloa! (2 ov,, 4 op) KJ on tärkein tietokoneessa pörräävistä ohjelmista

Keskeiset KJ:n osa-alueet

SÄIKEET, SMP. Sisältöä. Stallings, Luku 4. Prosessi vs. säie Miksi säikeitä? ULT: Käyttäjätason säikeet KLT: Säikeiden toteutus ytimessä

Sisältöä SÄIKEET, SMP

Käyttöjärjestelmän rajapinnat

Käyttöjärjestelmän rajapinnat. Siirräntä: Laiteajurit ja keskeytys. I/O-ohjain. I/O-ohjain. Siirtomenetelmät. Käyttöjärjestelmän rakenne

Tietokonejärjestelmä. Tietokoneen rakenne. Ch 1 - Ch 8 [Sta06] Valikoituja paloja. TITO-kurssista. John von Neumann ja EDVAC, 1949.

VIRTUAALIMUISTI. Stallings, Luku 8.1

Keskeiset KJ:n osa-alueet. Keskeiset KJ:n osa-alueet. 1) Prosessi. 2) Muistinhallinta. Käyttöjärjestelmän rakenne. Eräs toteutus

Sisältö VIRTUAALIMUISTI. Stallings, Luku 8.1. Suoritus virtuaalimuistissa. Suoritus virtuaalimuistissa. Puutoskeskeytys. Suoritus virtuaalimuistissa

ltöä rjestelmä Luento 2: LAITTEISTOSTA Tietokonejärjestelm KESKUSYKSIKKÖ Keskusyksikkö Kuva 1.1 KJ-I S2005 / Tiina Niklander & Auvo Häkkinen 2-1

Stallings, Luku

Jakso 8 Ohjelman toteutus järjestelmässä

Jakso 8 Ohjelman toteutus järjestelmässä. Prosessi Prosessin esitysmuoto järjestelmässä Käyttöjärjestelmä KJ-prosessit

VIRTUAALIMUISTI. Stallings, Luku 8.1

Sisältö VIRTUAALIMUISTI. Stallings, Luku 8.1. Suoritus virtuaalimuistissa. Suoritus virtuaalimuistissa. Puutoskeskeytys. Suoritus virtuaalimuistissa

u Tietokone ilman käyttöjärjestelmää on kuin

Jakso 8 Ohjelman toteutus järjestelmässä

Palvelut. Sulautetut järjestelmät Luku 2 Sivu 1 (??) Sulautetut käyttöjärjestelmät

Luento 2: LAITTEISTOSTA

Luento 8 Ohjelman toteutus järjestelmässä

Luento 8 Ohjelman toteutus järjestelmässä. Prosessi Prosessin esitysmuoto järjestelmässä Käyttöjärjestelmä KJ-prosessit

Käyttöjärjestelmät, 8 op

Kurssin asema Käyttöjärjestelmät, 8 op. Siirtymävaiheen vastaavuudet. Kurssin tavoite. Kurssikirja. Kurssin rakenne:

Arto Salminen,

Jakso 8 Ohjelman suoritus järjestelmässä

Jakso 8 Ohjelman suoritus järjestelmässä

Sisältöä MUISTINHALLINTA. Stallings, Luku 7. Fyysinen muisti YLEISTÄ MUISTINHALLINNASTA. Looginen muisti. Prosessin rakenne

Stallings, Luku 8.1. KJ-I I S2004 / Tiina Niklander; kalvot Auvo Häkkinen 7-1

Stallings, Lukua 2. KJ-I S2004 / Tiina Niklander, kalvot: Auvo Häkkinen 3-2. KJ-I I S2004 / Tiina Niklander, kalvot: Auvo Häkkinen 3-1

IT K 1 45 K ä yt t öj ä rj estelmät

Prosessi (4) Suorituksessa olevan ohjelman esitysmuoto järjestelmässä. Jakso 8 Ohjelman suoritus järjestelmässä. Prosessin elinkaari (9)

Stallings, Luku 7. KJ-I I S2004 / Tiina Niklander; kalvot Auvo Häkkinen 6-1

Prosessi (4) Jakso 8 Ohjelman toteutus järjestelmässä. Prosessi. Prosessin vaihto (4) Prosessin elinkaari (9)

Käyttöjärjestelmät. Tietokoneen rakenne. Stallings, Luku 1. KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 1-1

Käyttöjärjestelmät TIEDOSTOJÄRJESTELMÄ. Stallings, Luku KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 8-1

Käyttöjärjestelmät, 8 op

YLEISTÄ KÄYTTÖJÄRJESTELMÄSTÄ

Kurssin asema Käyttöjärjestelmät, 8 op. Kurssikirja. Kurssin tavoite. Kurssin rakenne: Kurssin suorittaminen. Käyttöjärjestelmät - Luento 1

2 Konekieli, aliohjelmat, keskeytykset

Tietokoneen toiminta, K Tavoitteet (4)

Stallings, Luku 1. KJ-I S2043 / Tiina Niklander Auvo Häkkisen kalvojen pohjalta 2-2. KJ-I S2003 / Auvo Häkkinen 2-1

Jakso 12 Yhteenveto. Keskeiset asiat Teemu Kerola, K2000

Ongelma(t): Jotta tietokone olisi mahdollisimman yleiskäyttöinen ja suorituskykyinen, niin miten tietokoneen resurssit tulisi tarjota ohjelmoijalle,

Prosessi (4) Luento 8 Ohjelman toteutus järjestelmässä. Prosessi. Prosessin vaihto (4)

Luento 5 (verkkoluento 5) Suoritin ja väylä

TIEDOSTOJÄRJESTELMÄ. Sisältöä. Stallings, Luku Peruskäsitteistöä, tehtäviä ja tavoitteita Järjestelmän rakenne Tiedostojen organisointi

Sisältöä TIEDOSTOJÄRJESTELMÄ. Perustermit. Peruskäsitteistöä. Perustermit. KJ:n tiedostojärjestelmä. Käyttöjärjestelmät, Luento 16

5. Luento: Rinnakkaisuus ja reaaliaika. Tommi Mikkonen,

KJ:N KEHITTYMINEN JA YLLÄPITO

Suoritin. Jakso 5 Suoritin ja väylä. TTK-91 muistin rakenne. TTK-91 suorittimen rakenne

TIEDOSTOJÄRJESTELMÄ. Sisältöä. Stallings, Luku Peruskäsitteistöä, tehtäviä ja tavoitteita Järjestelmän rakenne Tiedostojen organisointi

Sisältöä TIEDOSTOJÄRJESTELMÄ. Perustermit. Peruskäsitteistöä. Perustermit. KJ:n tiedostojärjestelmä. Käyttöjärjestelmät

Käyttöjärjestelmät: poissulkeminen ja synkronointi

Prosessit ja säikeet SMP, Mikroytimet W2K säikeet

KJ-II K2006 / Auvo Häkkinen - Teemu Kerola

Käyttöjärjestelmät II. SMP, Mikroytimet. Prosessit yleensä. UNIX prosessit. UNIX SVR4 Prosessit. UNIX prosessin kuvaaja

Luento 8 Ohjelman toteutus järjestelmässä

Suoritin. Luento 5 Suoritin ja väylä. TTK-91 muistin rakenne. TTK-91 suorittimen rakenne

Stallings, Luku I/O-laitteiden luokittelua, siirtonopeuksia Siirrännän perustekniikat Siirrännän kehittyminen

Sisältö SIIRRÄNTÄ. I/O-laitteiden luokittelua. Yleistä siirrännästä. Siirrännän perustekniikat. Siirtonopeuksia (teoreettisia) Kuva 11.

Luento 9 Järjestelmän ulkoinen muisti

Ongelma(t): Jotta tietokonetta voitaisiin käyttää monipuolisesti ja mahdollisimman yksinkertaisesti kaikkiin sille soveltuviin käyttötarkoituksiin,

Luento 9 Järjestelmän ulkoinen muisti

Käyttöjärjestelmät: Virtuaalimuisti

Transkriptio:

Käyttöjärjestelmät t I Luento 3: PROSESSIT JA NIIDEN HALLINTA Stallings, Luku 3.1-3.4 KJ-I S2005 / Tiina Niklander, kalvot Auvo Häkkinen 3-1 Sisält ltöä Prosessi, prosessin kuvaaja Prosessien hallinta Prosessin tilat KJ:n perustietorakenteita KJ:n suorittamisesta KJ-I S2005 / Tiina Niklander, kalvot Auvo Häkkinen 9-2 9-1

Käyttöjärjestelmät I PROSESSI KJ-I S2005 / Tiina Niklander, kalvot Auvo Häkkinen 9-3 Prosessi Moniajo perustuu prosessikäsitteeseen Prosessi = ohjelman suoritus prosessorissa u koodi, data, pino, prosessin kuvaaja PCB u voi koostua useasta säikeestä Prosessit voivat suorittaa yhtäaikaa samaa ohjelmakoodia u vapaakäyntisyys (reentrancy) u Yhteinen koodialue u kullakin oma data-alue, pino, PCB Täsmällinen määrittely riippuu jossain määrin järjestelmästä ja ohjelmointikielestä KJ-I S2005 / Tiina Niklander, kalvot Auvo Häkkinen 9-4 9-2

Prosessi virtuaalimuistissa Kuva 3.12 KJ-I S2005 / Tiina Niklander, kalvot Auvo Häkkinen 9-5 Prosessi virtuaalimuistissa Kukin prosessi käyttää virtuaaliosoitteita u osoitteet suhteellisia prosessin alun suhteen F MMU tekee osoitemuunnoksen ajoaikana u prosessin alueiden ei tarvitse sijaita fyysisesti peräkkäin muistissa tai olla jatkuvasti muistissa F MMU ja KJ huolehtivat alueiden muistissaolosta u prosessit voivat käyttää myös yhteisiä muistialueita Prosessin alueet kirjattu PCB:hen u base ja limit (fyys. alkuosoite ja pituus) tai u sivutaulu (missä sivutiloissa sivut sijaitsevat) tai u segmenttitaulu (alkuosoitteet ja pituudet) KJ-I S2005 / Tiina Niklander, kalvot Auvo Häkkinen 9-6 9-3

Prosessi Koodi = suoritettavat käskyt Data = muuttujat Pino = työtilaa u Aliohjelman/systeemikutsun parametrinvälitys Prosessin kuvaaja, PCB = hallinnolliset rakenteet u tunnistus u vuorottajan tarvitsemaa tietoa Fmm. prosessorin tila (tallealue rekistereille) u tietoja varatusta muistista u tietoja avatuista tdstoista u ym. KJ-I S2005 / Tiina Niklander, kalvot Auvo Häkkinen 9-7 PCB: tunnistus Yksikäsitteinen numero u pid = process identification Omistajan tiedot u käyttäjän ja ryhmän tunniste uid = user id, gid = group id u yleensä sama kuin prosessin käynnistäjällä Fsaatu kun käyttäjä ottaa istunnon koneeseen Mammaprosessin tunniste u mikä prosessi loi tämän prosessin Fkopioitu mammaprosessin kuvaajasta KJ-I S2005 / Tiina Niklander, kalvot Auvo Häkkinen 9-8 9-4

PCB: tallealue rekistereille Keskeytys: Keskeytyskäsittelyn jälkeen tav. sama prosessi saa jatkaa u laitteisto tallettaa PC:n ja PSW:n pinoon u käsittelijä tallettaa käyttämänsä rekisterit pinoon u kun keskeytys käsitelty, palautetaan takaisin CPU:hun Prosessin vaihto: CPU toiselle prosessille u keskeytyskäsittelyn lopuksi vuorottajaan u vuorottaja tallettaa rekistereiden arvot PCB:hen u prosessin tila saattaa vaihtua u päivitettävä myös aika- ja viitelaskureita KJ-I S2005 / Tiina Niklander, kalvot Auvo Häkkinen 9-9 PCB: vuorottaminen Prosessin tila u Running, Ready, Blocked... Prioriteetti u oletus, maksimi, minimi u määrää sijainnin jonoissa u suuri prioriteetti saa useammin CPU-aikaa u voi vaihdella dynaamisesti Aikalaskureita u paljonko käyttänyt aikaa CPU:ssa, odotuksessa u voi vaikuttaa prioriteettiin Mitä tapahtumaa odotetaan KJ-I S2005 / Tiina Niklander, kalvot Auvo Häkkinen 9-10 9-5

PCB: muistinhallinta Muistialueen alkuosoite ja pituus u Base ja Limit tai Sivu / segmenttitaulun fyys. osoite u taulu erillisellä muistialueella u prosessin vaihdossa alkuosoite MMU:hun Yhteiskäyttö u sama sivu / segmentti esiintyy eri prosessien muistivaraustauluissa u käyttöoikeudet: esim. R / W / RW KJ-I S2005 / Tiina Niklander, kalvot Auvo Häkkinen 9-11 PCB: tiedostojärjestelm rjestelmä Tiedostokuvaajataulu (file descriptor) u alkio per avattu tdsto u pääsy muihin tdstoon liittyviin rakenteisiin F kaikille yhteistä tietoa! missä tdstoon kuuluvat lohkot käyttöoikeudet tdstolukot F kullakin oma luku/kirjoituspositio Työhakemiston polkunimi u suhteellisen tdstonimen käyttö Luotavien tdstojen (oletus)käyttöoikeudet KJ-I S2005 / Tiina Niklander, kalvot Auvo Häkkinen 9-12 9-6

PCB: muuta Viitteitä muihin prosessin kuvaajiin u ks. kuva 3.13 u jonossa edeltävä ja seuraava u viite mammaprosessin kuvaajaan u... Prosessien välinen kommunikointi u lipukkeita, semaforeja u käsittelyä odottavat signaalit u yhteiskäytössä oleva muisti Ym. KJ-I S2005 / Tiina Niklander, kalvot Auvo Häkkinen 9-13 Prosessijonoja Kuva 3.13-2-suuntainen rengas - viitteet mammaan KJ-I S2005 / Tiina Niklander, kalvot Auvo Häkkinen 9-14 9-7

Käyttöjärjestelmät I PROSESSINHALLINTA KJ-I S2005 / Tiina Niklander, kalvot Auvo Häkkinen 9-15 KJ:n prosessinhallinta Allokoi resursseja niitä pyytäville prosesseille u vältä lukkiutuminen (deadlock) ja nälkiintyminen (starvation) Suorituta prosesseja yhtäaikaa allokoimalla CPU niille vuorotellen u takaa kelpo vasteaika u maksimoi CPU:n käyttö Salli käyttäjien omien ohjelmien käynnistys u palvelupyyntö Mekanismit prosessien kommunikointiin u IPC, inter process communication u palvelupyynnöt u yhteiskäyttöisen muistin allokointi KJ-I S2005 / Tiina Niklander, kalvot Auvo Häkkinen 9-16 9-8

Prosessi syntyy,, kun... Prosessi suorittaa käskyt, joilla käynnistetään uusi prosessi u parametrit pinoon ja palvelupyyntökeskeytys Prosessi pyytää muita KJ:n palveluja KJ käynnistää prosessin palvelemaan u esim. tulostus kirjoittimelle taustaprosessi u palvelija keskustelee asiakkaiden kanssa Fyksi prosessi per yhteys Esim: Käyttäjä avaa istunnon koneeseen Käyttäjä käynnistää sovelluksen Erätyö käynnistyy KJ-I S2005 / Tiina Niklander, kalvot Auvo Häkkinen 9-17 Prosessin luonti Luo PCB u KJ valitsee yksikäsitteisen prosessinumeron Varaa tilaa muistista (tarvittaessa) u koodi, data, pino u koko: oletusarvot / annetut arvot u alusta yhteiskäytön rakenteet Alusta PCB:n u nollaa kenttiä, aseta alkuarvoja, kopioi mammalta u tila=ready (tai Ready-Suspended) u ei avoimia tiedostoja, ei varattuja resursseja... tai perii mammalta Liitä kuvaaja muihin rakenteisiin u viite mammaprosessiin, liitä Ready-jonoon KJ-I S2005 / Tiina Niklander, kalvot Auvo Häkkinen 9-18 9-9

Milloin prosessinvaihto? Vain keskeytyksen jälkeen u ei kuitenkaan aina! Kun CPU siirtynyt suorittamaan KJ:tä u Palvelupyyntö Fprosessi pyytää esim. siirräntää, jonka seurauksena joutuu odottamaan u Poikkeus Fprosessin suorituksessa virhe Fprosessi joutuu exit-tilaan ja tapetaan u Keskeytys Fprosessin aikaviipale täynnä Vuorottaja valitsee u tav. Round-Robin periaate KJ-I S2005 / Tiina Niklander, kalvot Auvo Häkkinen 9-19 Tilanvaihto (Mode switch) Keskeytys u laitetoimintona etuoikeutettuun tilaan u sitten suorittamaan KJ:tä CPU usein takaisin keskeytyneelle prosessille u paljonko kello on? u I/O valmis: siirrä I/O:ta odottanut Ready-jonoon, jatka keskeytynyttä u prosessien välinen kommunikointi: herätä tapahtumaa odottanut Ready-jonoon, jatka keskeytynyttä KJ-I S2005 / Tiina Niklander, kalvot Auvo Häkkinen 9-20 9-10

Tilanvaihto (mode switch) Kaikkia rekistereitä ei tarvitse tallettaa muistiin u PC ja PSW aina laitetoimintona pinoon u keskeytyskäsittelijä tallettaa pinoon vain ne, joita käyttää koodissaan PCB:hen ei tarvitse koskea u vähän yleisrasitetta Paluu: u kopioi rekisterit pinosta takaisin CPU:hun Vuorottajaan, jos tarve vaihtaa prosessia KJ-I S2005 / Tiina Niklander, kalvot Auvo Häkkinen 9-21 Vuorottaja (short-term scheduler) Valitsee seuraavaksi suoritettavan prosessin ja antaa CPU:n sille u edellinen Blocked-tilaan u aikaviipale täyttyi Prosessin vaihdossa CPU suorittaa vuorottajan käskyjä CPU-aikaa tasapuolisesti prosesseille u aikaviipaleet u tarvittaessa KJ nostaa / laskee prosessin prioriteettia F käyttänyt paljon CPU:ta prioriteetti laskee F odotellut paljon I/O:ta prioriteetti nousee F KJ:n prosesseilla suurin prioriteetti KJ-I S2005 / Tiina Niklander, kalvot Auvo Häkkinen 9-22 9-11

Prosessin vaihto Rekisteriarvot pinosta+cpu:sta PCB:hen Päivitä aikalaskureita ym. Päivitä prosessin tila (Ready/Blocked/Exit...) Liitä tilan mukaiseen jonoon Valitse seuraava prosessi suoritettavaksi u Ready-jonon ensimmäinen u Ready Running Alusta MMU u ei-virtuaalimuistia: aseta Base ja Limit u virtuaalimuisti: nollaa TLB:n validibitit, aseta PTR Palauta rekistereiden arvot CPU:hun KJ-I S2005 / Tiina Niklander, kalvot Auvo Häkkinen 9-23 Prosessi päättyy,, kun Prosessi itse sitä pyytää u KJ:n tarjoama palvelu, palvelupyyntö u esim. TITO-kurssilla SVC SP,=HALT Virhetilanne koodissa tai laitteistossa u poikkeukset u parempi lopettaa kuin nilkuttaa virhetuloksia Esim: Käyttäjä lopettaa istuntonsa Käyttäjä lopettaa sovelluksen Erätyö loppuu KJ-I S2005 / Tiina Niklander, kalvot Auvo Häkkinen 9-24 9-12

Prosessi päättyy,, kun KJ niin päättää u puutteelliset oikeudet esim. tiedoston käyttöön u huomattuaan lukkiutumisen u odotukseen liitetty ajastin laukeaa Mammaprosessi pyytää lapsiprosessin päättymistä Mammaprosessi päättyy u saattaa myös lapsiprosessi päättyä ks. taulukko 3.1 ja 3.2 KJ-I S2005 / Tiina Niklander, kalvot Auvo Häkkinen 9-25 Taulukko 3.1 KJ-I S2005 / Tiina Niklander, kalvot Auvo Häkkinen 9-26 9-13

Taulukko 3.2 (1/2) KJ-I S2005 / Tiina Niklander, kalvot Auvo Häkkinen 9-27 Taulukko 3.2 (2/2) KJ-I S2005 / Tiina Niklander, kalvot Auvo Häkkinen 9-28 9-14

Käyttöjärjestelmät I PROSESSIN TILAT KJ-I S2005 / Tiina Niklander, kalvot Auvo Häkkinen 9-29 Prosessin tilakaavio (5 tilaa) Kuva 3.5 KJ-I S2005 / Tiina Niklander, kalvot Auvo Häkkinen 9-30 9-15

Prosessin tilat Ready u prosessi voisi edetä, jos saisi CPU:n käyttöönsä u odottaa Ready-jonossa esim. prioriteetin mukaan Running u prosessi käyttää parhaillaan prosessoria u yksi prosessi per prosessori Blocked u prosessi odottaa tapahtuman valmistumista (esim I/O, synkronointi, ajastus) u kullakin laitteella / tapahtumalla oma jono KJ-I S2005 / Tiina Niklander, kalvot Auvo Häkkinen 9-31 Prosessijonot Kuva 3.7 KJ-I S2005 / Tiina Niklander, kalvot Auvo Häkkinen 9-32 9-16

Prosessin tilat New u KJ luonut lapsiprosessin, F prosessille annettu tunniste F prosessille luotu hallinnolliset tietorakenteet u mutta ei kelpuuta sitä vielä suoritettavaksi F esim. vapaata muistia ei riittävästi F liian suuri moniajoaste, liikaa heittovaihtoa... Exit u suoritus päättynyt, F ei kelpaa enää suoritettavaksi u mutta saattohoito tekemättä F hallinnolliset rakenteet (lähinnä PCB) olemassa muita sovelluksia varten F esim: laskutus, tilastot KJ-I S2005 / Tiina Niklander, kalvot Auvo Häkkinen 9-33 Prosessin tilasiirtymät New Ready u resursseja riittävästi käytettävänä Fesim. prosessorin käyttöaste laskenut alle sopivan rajan Fmuistissa riittävästi vapaata tilaa Ready Running u vuorottaja valitsee suoritukseen Ready-jonon ensimmäisen prosessin Running Ready u prosessin aikaviipale täynnä u suuremman prioriteetin prosessi Ready-tilassa KJ-I S2005 / Tiina Niklander, kalvot Auvo Häkkinen 9-34 9-17

Prosessin tilasiirtymät Running Blocked u prosessi pyytää KJ:ltä palvelua, jonka valmistumista joutuu odottamaan F tarvittava resurssi varattu F odottaa siirrännän valmistumista F odottaa toisen prosessin etenemistä sopivaan vaiheeseen (prosessin välinen kommunikointi) u sivunpuutoskeskeytys Blocked Ready u prosessin odotus päättyy F tarvittu resurssi vapautui F siirräntä valmistui F toinen prosessi saavutti synkronointikohdan KJ-I S2005 / Tiina Niklander, kalvot Auvo Häkkinen 9-35 Prosessin tilasiirtymät Running Exit u prosessin suoritus päättyy F normaali / virhetilanne u KJ vapauttaa resurssit PCB:tä lukuunottamatta u odotettava, että joku toinen prosessi kokoaa kirjanpidolliset tiedot PCB:stä Mikä tahansa tila Exit u KJ tai omistaja voi tappaa u mammaprosessi päättyy Exit u kun saattohoito tehty, KJ vapauttaa PCB:n KJ-I S2005 / Tiina Niklander, kalvot Auvo Häkkinen 9-36 9-18

Heittovaihto (swapping) Prosessi odottaa siirron valmistumista kauan u paljon prosesseja Blocked-tilassa u KJ voi ottaa suoritettavaksi lisää prosesseja u riittääkö muistia? Jos muistitilasta puutetta, KJ voi siirtää kokonaisia prosesseja levylle u liian suuri moniajoaste aiheuttaa ruuhkautumista PCB jää aina muistiin! Kun tilaa jälleen riittävästi, KJ tuo takaisin u ennaltanouto / tarvenouto Myös virtuaalimuistin yhteydessä voi olla tarvetta heittovaihtoon KJ-I S2005 / Tiina Niklander, kalvot Auvo Häkkinen 9-37 Heittovaihto Heittovaihdon lisätilat tilakaavioon: Blocked Suspend u Blocked-prosessi heittovaihdettu muistista levylle Ready Suspend u Ready-prosessi heittovaihdettu muistista levylle Blocked ~ estynyt Suspend ~ erotettu määräajaksi, hyllytetty, lykätty toistaiseksi Monissa kirjoissa tilan nimenä kuvaavampi Swapped Out KJ-I S2005 / Tiina Niklander, kalvot Auvo Häkkinen 9-38 9-19

Prosessin tilakaavio (7 tilaa) Kuva 3.8 KJ-I S2005 / Tiina Niklander, kalvot Auvo Häkkinen 9-39 Uudet tilasiirtymät New Ready Suspend u KJ ottanut prosessin suoritettavaksi (=PCB luotu), mutta muistissa ei vielä tilaa uudelle prosessille Blocked Blocked Suspend u KJ tarvitsee lisätilaa Ready-prosesseille u KJ tarvitsee tilaa uusille prosesseille Blocked Suspend Ready Suspend u Tapahtuman odotus päättyy, prosessi voisi jatkaa Blocked Suspend Blocked u Muistissa taas tilaa, odotettavissa että odotus päättyy u Suuri prioriteetti KJ-I S2005 / Tiina Niklander, kalvot Auvo Häkkinen 9-40 9-20

Uudet tilasiirtymät Ready Ready Suspend Running Ready Suspend u KJ haluaa lisää muistitilaa, eikä yhtään Blocked-prosessia heittovaihdettavaksi Ready Suspend Ready u CPU:n käyttöaste laskenut riittävän alas u ei prosesseja Ready-jonossa u muistissa jälleen reilusti tilaa (ennakointi) F Yl. siirtymän Blocked --> Blocked Suspend seurausta Huomautus: Suspend-tilat eivät välttämättömiä, jos virtuaalimuisti (MMU huomaa puutoksen) KJ-I S2005 / Tiina Niklander, kalvot Auvo Häkkinen 9-41 Käyttöjärjestelmät I KJ:N PERUSTIETORAKENTEITA KJ-I S2005 / Tiina Niklander, kalvot Auvo Häkkinen 9-42 9-21

KJ:n perustietorakenteita Kuva 3.10 KJ-I S2005 / Tiina Niklander, kalvot Auvo Häkkinen 9-43 KJ:n perustietorakenteita Prosessitaulu u tietoa kaikista järjestelmän prosesseista u kullekin oma alkio = prosessin kuvaaja PCB u alkiot linkitetty Ready ja Blocked-jonoihin KJ-I S2005 / Tiina Niklander, kalvot Auvo Häkkinen 9-44 9-22

KJ:n perustietorakenteita Muistivaraustaulut / -listat u missä vapaata / varattua muistitilaa Fesim. yksi globaali sivutilataulu u mitkä alueet kuuluvat millekin prosessille Fprosessikohtaiset sivutaulut FPCB:ssä esim. sivutaulun fyysinen osoite u kenellä käyttöoikeuksia muistialueisiin Fyhteiskäyttö joskus sallittua u virtuaalimuistin ja heittovaihdon toteutus Fheittovaihtoalue levyllä Fsivutaulun alkioissa läsnäolobitit KJ-I S2005 / Tiina Niklander, kalvot Auvo Häkkinen 9-45 KJ:n perustietorakenteita Tiedostokuvaajat (+levypartitiot) u kirjanpito vapaista / varatuista levylohkoista Fpysyvä kirjanpito levyllä, KJ tuo muistiin käsittelyä varten Fhakemistoalkio per tdsto (myös hsto on tdsto!) mitkä lohkot kuuluvat tdstoon muut tdston attribuutit (mm. omistaja, käyttöoikeudet) u kirjanpito avatuista tiedostoista Fprosessikohtaista PCB:ssä + yhteistä tietoa Fkäyttöoikeuksien tarkistaminen Fluku / kirjoituspositio Fyhteiskäyttö: poissulkeminen / synkronointi KJ-I S2005 / Tiina Niklander, kalvot Auvo Häkkinen 9-46 9-23

KJ:n perustietorakenteita Laitekuvaajat u laitteiden käytössä tarvittavaa tietoa Flaitteen tunnistus, device id Fkenelle laite varattu Flaitteen tila Fmitä ajuria käyttää Fmitä ajurin funktiota kutsuttava missäkin tilanteessa open(), read(), write(), close() Fodottavat pyynnöt parametreineen laite palvelee yhtä kerrallaan Keskeytys mikä ajuri suoritukseen? PCB laitteen (ajurin) Blocked-jonossa KJ-I S2005 / Tiina Niklander, kalvot Auvo Häkkinen 9-47 KJ:n perustietorakenteita Yleisesti: Vapaista ja varatuista resursseista globaalit rakenteet u KJ allokoi tilaa / vapauttaa tilaa niiden perusteella u yhteiskäytössä tarvittavaa tietoa Prosessin varaamista resursseista kirjanpito prosessin kuvaajassa u mitä varattu juuri tälle prosessille u PCB:stä helppo pääsy globaaleihin tietorakenteisiin Kaikki palvelu prosessin pyynnöstä, joten luonnollinen eteneminen PCB:stä globaaleihin tietoihin KJ-I S2005 / Tiina Niklander, kalvot Auvo Häkkinen 9-48 9-24

Käyttöjärjestelmät I KJ:N SUORITTAMISESTA KJ-I S2005 / Tiina Niklander, kalvot Auvo Häkkinen 9-49 KJ:n suorittamisesta Myös KJ eräs CPU:n suorittamista käskykokoelmista Käyttäjätilassa / etuoikeutetussa tilassa KJ:n osat käsittelevät yhteisiä data-alueita u melkein kaikki käyttävät PCB:tä Onko KJ myös prosessi? KJ-I S2005 / Tiina Niklander, kalvot Auvo Häkkinen 9-50 9-25

j KJ etuoikeutetussa tilassa Prosessi vain käyttäjätilan käsite u KJ:n osat eivät jonota KJ:llä omat muistialueensa: koodi, data, pino KJ:n osat suoritetaan omillaan etuoik. tilassa u oikeus tehdä kaikkia KJ:n toimintoja kaikissa osissa ~ vanha monoliittinen KJ KJ-I S2005 / Tiina Niklander, kalvot Auvo Häkkinen 9-51 k KJ prosessin ympärist ristössä KJ yhteiskäyttöisellä muistialueella u kaikkien prosessien osoiteavaruudessa Prosessi itse suorittaa KJ:n rutiineja u hallittu siirtyminen keskeytyksellä, etuoikeutettu tila Kontrolli prosesseilta poissa vain, kun synkronointi tai vuorottaminen vaatii ~ uudempi monoliittinen KJ KJ-I S2005 / Tiina Niklander, kalvot Auvo Häkkinen 9-52 9-26

KJ prosessin ympärist ristössä KJ:n koodi ja data yhteisellä muistialueella Prosessi käyttää kernel-pinoa, kun suorittaa KJ:n koodia, muuloin normaalia pinoaan Prosessi voi odottaa KJ:n koodissa Useita KJ:n osia voi olla yhtäaikaa kesken eri prosessien ympäristöissä u suoritukseen vuorottajan kautta KJ-I S2005 / Tiina Niklander, kalvot Auvo Häkkinen 9-53 KJ = joukko palveluprosesseja Monet KJ:n palveluista erillisiä prosesseja u odottavat Blocked/Ready-jonossa u kullakin oma osoiteavaruus u tarvittaessa etuoikeutetussa tilassa, erilaisia oikeuksia Vuorottaminen prosessien ulkopuolella Sanomanvälitys: pyyntö-vastaus mekanismi u palvelupyyntö: lähetä / vastaanota sanoma u sopii myös moniprosessori / hajautettuihin järjestelmiin Jos ytimessä vain laiteriippuvat toiminnot = mikrokernel KJ-I S2005 / Tiina Niklander, kalvot Auvo Häkkinen 9-54 9-27

Kertauskysymyksiä Miten uusi prosessi syntyy? Milloin KJ vaihtaa suoritettavaa prosessia? Miten Mode Switch ja prosessinvaihto eroavat toisistaan? Mitä yhteistä niillä on? Mitä tietoja on prosessin kuvaajassa? Milloin noita tietoja käytetään? Miksi tilakaaviossa on tilat New ja Exit? Milloin prosessi Blocked tai Suspend tilaan? Milloin prosessi pääsee pois em. tiloista? Miten Round-Robin toimii? Mitä perustietorakenteita KJ ylläpitää? KJ-I S2005 / Tiina Niklander, kalvot Auvo Häkkinen 9-55 9-28