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

Samankaltaiset tiedostot
Luento 3: PROSESSIT JA NIIDEN HALLINTA

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

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

Luento 6: VIRTUAALIMUISTI

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

Osio 2: Luennot 4-7 Muistinhallinta

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

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

Luento 5: YKSINKERTAINEN SEGMENTOINTI JA SIVUTUS

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,

Sisältöä SÄIKEET, SMP

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

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

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

MUISTINHALLINTA. Stallings, Luku 7

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

VIRTUAALIMUISTI. Stallings, Luku 8.1

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

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

VIRTUAALIMUISTI. Stallings, Luku 8.1

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

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

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

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

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

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

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

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ä

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

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

Arto Salminen,

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

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

Luento 2: LAITTEISTOSTA

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

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

Jakso 8 Ohjelman suoritus järjestelmässä

Jakso 8 Ohjelman suoritus järjestelmässä

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

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

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

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

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

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

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

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

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

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

2 Konekieli, aliohjelmat, keskeytykset

Tietokoneen toiminta, K Tavoitteet (4)

Jakso 12 Yhteenveto. Keskeiset asiat Teemu Kerola, K2000

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

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

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

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

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

KJ:N KEHITTYMINEN JA YLLÄPITO

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

Luento 8 Ohjelman toteutus järjestelmässä

5. Luento: Rinnakkaisuus ja reaaliaika. Tommi Mikkonen,

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

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

Luento 9 Järjestelmän ulkoinen muisti

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 9 Järjestelmän ulkoinen muisti

Käyttöjärjestelmät: Virtuaalimuisti

Luento 9 Järjestelmän ulkoinen muisti

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.

Transkriptio:

Käyttöjärjestelmät t I Luento 3: PROSESSIT JA NIIDEN HALLINTA Stallings, Luku 3.1-3.4 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 3-1 KJ-I S2005 / Tiina Niklander, kalvot Auvo Häkkinen 9-2 Käyttöjärjestelmät I PROSESSI 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-3 KJ-I S2005 / Tiina Niklander, kalvot Auvo Häkkinen 9-4 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-1

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 F mm. prosessorin tila (tallealue rekistereille) u tietoja varatusta muistista u tietoja avatuista tdstoista u ym. 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-7 KJ-I S2005 / Tiina Niklander, kalvot Auvo Häkkinen 9-8 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 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-9 KJ-I S2005 / Tiina Niklander, kalvot Auvo Häkkinen 9-10 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 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-11 KJ-I S2005 / Tiina Niklander, kalvot Auvo Häkkinen 9-12 9-2

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. Prosessijonoja Kuva 3.13-2-suuntainen rengas - viitteet mammaan KJ-I S2005 / Tiina Niklander, kalvot Auvo Häkkinen 9-13 KJ-I S2005 / Tiina Niklander, kalvot Auvo Häkkinen 9-14 Käyttöjärjestelmät I PROSESSINHALLINTA 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-15 KJ-I S2005 / Tiina Niklander, kalvot Auvo Häkkinen 9-16 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 F yksi prosessi per yhteys Esim: Käyttäjä avaa istunnon koneeseen Käyttäjä käynnistää sovelluksen Erätyö käynnistyy 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-17 KJ-I S2005 / Tiina Niklander, kalvot Auvo Häkkinen 9-18 9-3

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 F prosessin aikaviipale täynnä Vuorottaja valitsee u tav. Round-Robin periaate 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-19 KJ-I S2005 / Tiina Niklander, kalvot Auvo Häkkinen 9-20 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 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 paljoncpu: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-21 KJ-I S2005 / Tiina Niklander, kalvot Auvo Häkkinen 9-22 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 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-23 KJ-I S2005 / Tiina Niklander, kalvot Auvo Häkkinen 9-24 9-4

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ä Taulukko 3.1 ks. taulukko 3.1 ja 3.2 KJ-I S2005 / Tiina Niklander, kalvot Auvo Häkkinen 9-25 KJ-I S2005 / Tiina Niklander, kalvot Auvo Häkkinen 9-26 Taulukko 3.2 (1/2) Taulukko 3.2 (2/2) KJ-I S2005 / Tiina Niklander, kalvot Auvo Häkkinen 9-27 KJ-I S2005 / Tiina Niklander, kalvot Auvo Häkkinen 9-28 Käyttöjärjestelmät I Prosessin tilakaavio (5 tilaa) PROSESSIN TILAT Kuva 3.5 KJ-I S2005 / Tiina Niklander, kalvot Auvo Häkkinen 9-29 KJ-I S2005 / Tiina Niklander, kalvot Auvo Häkkinen 9-30 9-5

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 Prosessijonot Kuva 3.7 KJ-I S2005 / Tiina Niklander, kalvot Auvo Häkkinen 9-31 KJ-I S2005 / Tiina Niklander, kalvot Auvo Häkkinen 9-32 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 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 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-35 KJ-I S2005 / Tiina Niklander, kalvot Auvo Häkkinen 9-36 9-6

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 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-37 KJ-I S2005 / Tiina Niklander, kalvot Auvo Häkkinen 9-38 Prosessin tilakaavio (7 tilaa) Kuva 3.8 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-39 KJ-I S2005 / Tiina Niklander, kalvot Auvo Häkkinen 9-40 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 Käyttöjärjestelmät I KJ:N PERUSTIETORAKENTEITA 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 KJ-I S2005 / Tiina Niklander, kalvot Auvo Häkkinen 9-42 9-7

KJ:n perustietorakenteita 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 Kuva 3.10 KJ-I S2005 / Tiina Niklander, kalvot Auvo Häkkinen 9-43 KJ-I S2005 / Tiina Niklander, kalvot Auvo Häkkinen 9-44 KJ:n perustietorakenteita Muistivaraustaulut / -listat u missä vapaata / varattua muistitilaa Fesim. yksi globaali sivutilataulu u mitkä alueet kuuluvat millekin prosessille Fprosessikohtaiset sivutaulut F PCB:ssä esim. sivutaulun fyysinen osoite u kenellä käyttöoikeuksia muistialueisiin Fyhteiskäyttö joskus sallittua u virtuaalimuistin ja heittovaihdon toteutus Fheittovaihtoalue levyllä F sivutaulun alkioissa läsnäolobitit KJ:n perustietorakenteita Tiedostokuvaajat (+levypartitiot) u kirjanpito vapaista / varatuista levylohkoista F pysyvä 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 F prosessikohtaista PCB:ssä + yhteistä tietoa Fkäyttöoikeuksien tarkistaminen F luku / kirjoituspositio Fyhteiskäyttö: poissulkeminen / synkronointi KJ-I S2005 / Tiina Niklander, kalvot Auvo Häkkinen 9-45 KJ-I S2005 / Tiina Niklander, kalvot Auvo Häkkinen 9-46 KJ:n perustietorakenteita Laitekuvaajat u laitteiden käytössä tarvittavaa tietoa Flaitteen tunnistus, device id Fkenelle laite varattu Flaitteen tila Fmitä ajuria käyttää F mitä 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: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-47 KJ-I S2005 / Tiina Niklander, kalvot Auvo Häkkinen 9-48 9-8

Käyttöjärjestelmät I KJ:n suorittamisesta Myös KJ eräs CPU:n suorittamista käskykokoelmista KJ:N SUORITTAMISESTA 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-49 KJ-I S2005 / Tiina Niklander, kalvot Auvo Häkkinen 9-50 j KJ etuoikeutetussa tilassa k KJ prosessin ympärist ristössä 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 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-51 KJ-I S2005 / Tiina Niklander, kalvot Auvo Häkkinen 9-52 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-9

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-10