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

Samankaltaiset tiedostot
Keskeiset KJ:n osa-alueet

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

Käyttöjärjestelmän rajapinnat

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

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

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

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

KJ:N KEHITTYMINEN JA YLLÄPITO

KJ:N KEHITTYMINEN JA YLLÄPITO

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

Käyttöjärjestelmät II

Prosessi perinteisesti

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

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

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

KJ-I I S2004 / Auvo Häkkinen & Tiina Niklander 4-1. Stallings, Lukua 2

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

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

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

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

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

Luento 3: PROSESSIT JA NIIDEN HALLINTA

Sisältöä SÄIKEET, SMP

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

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

Operating Systems, 8 op

Käyttöjärjestelmät: prosessit

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

Osio 2: Luennot 4-7 Muistinhallinta

Käyttöjärjestelmän rakenne

Käyttöjärjestelmät. Teemu Saarelainen Tietotekniikka

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

Luento 6: VIRTUAALIMUISTI

Tietokoneen toiminta, K Tavoitteet (4)

PROSESSIT JA NIIDEN HALLINTA

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

Jakso 12 Yhteenveto. Keskeiset asiat Teemu Kerola, K2000

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

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

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

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

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

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

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

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

Luento 2: LAITTEISTOSTA

Stallings, Luku

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

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

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

Jakso 8 Ohjelman suoritus järjestelmässä

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

Jakso 8 Ohjelman suoritus järjestelmässä

Jakso 8 Ohjelman toteutus järjestelmässä

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

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

Linux rakenne. Linux-järjestelmä koostuu useasta erillisestä osasta. Eräs jaottelu: Ydin Komentotulkki X-ikkunointijärjestelmä Sovellusohjelmat

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

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

Osio 2: Luennot 5-8 Muistinhallinta

Muistihierarkia Kiintolevyt I/O:n toteutus

Luento 8 Ohjelman toteutus järjestelmässä

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

VIRTUAALIMUISTI. Stallings, Luku 8.1

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

Järjestelmän ulkoinen muisti I/O

VIRTUAALIMUISTI. Stallings, Luku 8.1

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

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

VUOROTTAMINEN SMP JA REAALIAIKAJÄRJESTELMÄT Linux, W2000

Luento 5: YKSINKERTAINEN SEGMENTOINTI JA SIVUTUS

LUENTO 8. u erillisten koneiden ryväs (cluster) u hajautettu järjestelmä (distributed system) u erilliset I/O-prosessorit

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

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

2 Konekieli, aliohjelmat, keskeytykset

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

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

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

Luento 1 Tietokonejärjestelmän rakenne

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

5. Luento: Rinnakkaisuus ja reaaliaika. Tommi Mikkonen,

Luento 1 Tietokonejärjestelmän rakenne. Järjestelmän eri tasot Laitteiston nopeus

MUISTINHALLINTA. Stallings, Luku 7

Pikaintro käyttöjärjestelmiin

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

Muistihierarkia Kiintolevyt I/O:n toteutus

Luento 1 Tietokonejärjestelmän rakenne

Luento 1 Tietokonejärjestelmän rakenne. Järjestelmän eri tasot Laitteiston nopeus

Luento 8 Ohjelman toteutus järjestelmässä. Tietokonejärjestelmä. Prosessi (4) Prosessi. Prosessin elinkaari (11) Prosessin vaihto (3)

VUOROTTAMINEN YKSI CPU

VUOROTTAMINEN: SMP ja Reaaliaikajärjestelmät Linux, W2000

Moniprosessorijärjestelmä

Transkriptio:

LUENTO 2 Keskeiset KJ:n osa-alueet Käyttäjä Sovellukset Komentotulkki Varusohjelmat Käyttöjärjestelmän rakenne Keskeiset käyttöjärjestelmien osa-alueet Käyttöjärjestelmien kehittyminen Nykyaikaisen käyttöjärjestelmän piirteitä PROSESSIEN HALLINTA TIEDOSTOJÄRJESTELMÄ Laiteajurit Palvelupyynnöt suojaus lohkot SIIRRÄNTÄJÄRJESTELMÄ Keskeytyskäsittely Laiteohjaimet ja laitteet RESURSSIEN HALLINTA (laitekuvaajat) MUISTINHALLINTA Keskeiset KJ:n osa-alueet Keskeisimmät osa-alueet (kirjan jaottelu) 1) Prosessin käsite 2) Muistinhallinta 3) Tietoturva ja suojaukset 4) Vuorottaminen ja resurssien hallinta 5) Järjestelmän hierarkkinen rakenne vrt. edellinen kuva 1) Prosessi = Suoritettavaksi otettu ohjelma koodi muistissa (voi olla yhteiskäytössä) oma data-alue ja pino muistissa (muuttujat) kaikki ei välttämättä yhtäaikaa muistissa + KJ:n ylläpitämät hallinnolliset rakenteet prosessin kuvaaja PCB (Process Control Block) CPU:n dataa prosessin suorittamisesta prosessorin rekistereiden arvot KJ:n dataa prosessin hallitsemiseksi tunnistus, omistaja, prioriteetti.. tietoja prosessin varaamasta muistista, tdstoista, prosessin tila (esim. odottaa siirrännän valmistumista)... Eräs toteutus KJ:llä prosessilista, jossa viitteet prosessin kuvaajiin (context) CPU:ssa rekisteri, jossa suoritettavan prosessin numero Prosessinvaihto: CPU A:lta B:lle KJ talletti rekistereiden arvot A:n kuvaajaan KJ latasi B:n kuvaajasta arvot rekistereihin 2) Muistinhallinta Suoritusaikainen tallennus prosessit (ohjelmat+data) keskusmuistissa (primary memory) Pysyvä tallennus tiedostot (ohjelmat+data) tukimuistissa (secondary memory) Tilan varaaminen KJ huolehtii automaattisesti kirjanpito vapaista muistialueista / levylohkoista kirjanpito varatuista muistialueista / levylohkoista tarvittaessa KJ käyttää levyä muistin jatkeena (virtuaalimuisti) Suojaus ja käyttöoikeudet prosessien eristäminen toisistaan silti tuettava modulaarista ohjelmointia koodin / datan yhteiskäyttö sallittua muistinsuojaus, tdstojen käyttöoikeudet Syksy 2007, Tiina Niklander 1

Muistinhallinta Virtuaalimuisti Avainkäsite virtuaalimuisti Ei ota kantaa todellisen muistin määrään tai minne ohjelma muistissa sijoitetaan Suoritusaikana tarvittava osa koodista/datasta muistissa, loput levyllä MMU huomaa puuttumisen KJ lataa muistiin Ei näy sovelluksen ohjelmoijalle Fig 2.9 [Stal05] Ohjelma käyttää virtuaaliosoitteita, ts. osoitteita ohjelman alun suhteen Laitteisto käyttää aina fyysisiä (todellisia) osoitteita MMU tekee osoitemuunnoksen aina suoritusaikana muistiin viitattaessa Jos viitattu osa ei ole keskusmuistissa MMU aiheuttaa keskeytyksen jos muistissa ei ole vapaata tilaa, KJ vapauttaa jonkin alueen KJ hakee levyltä puuttuvan osan muistiin Fig 2.10 [Stal05] 3) Tietoturva ja suojaus Käyttäjien tunnistus Vain tunnuksen & salasanan tuntevat käyttäjät saavat ottaa istunnon koneeseen Prosessilla aina omistaja Resurssien käyttöoikeus Prosessi käyttää resurssia vain omistajan luvalla tdstoihin liittyy omistaja ja käyttöoikeudet vain omistaja voi muuttaa käyttöoikeuksia Ohjelmat ja data suojattava toisilta ohjelmilta erityisen tärkeää on suojata KJ sovelluksilta MMU ja ajonaikainen osoitemuunnos Resurssien yhteiskäyttö silti sallittava 4) Resurssien hallinta Resurssi? CPU, muisti, tdsto, I/O-laite CPU:n varaaminen (allocation) = vuorottaminen (scheduling) Milloin? Prosessia käynnistettäessä, suoritettaessa, tapettaessa KJ:n päätöksillä, prosessin (palvelu)pyyntöjen perusteella Vastausaika Interaktiivisuus vs. tausta-ajo (eräajo) KJ:n palveluprosessi vs. sovellus Tasapuolisuus Samanlaisille prosesseille samantasoinen palvelu Tehokkuus Maksimoi läpimenoaste, minimoi vastausajat Palvele mahd. monta (samanaikaista) käyttäjää (sovellusta) Vuorottamisen perusideoita Milloin? new ready Suoritukseen otetuille prosesseille READY-jono (short term queue) vuorottaja valitsee seuraavaksi suoritettavan prosessin (jonon ensimmäinen) Round-Robin: uusi työ jonon loppuun ja CPU:lta pois tuleva työ jonon loppuun Suoritettavaksi ottamista odottaville prosesseille oma jono (long term queue) ei liian monta prosessia yhtäaikaa READY-jonoon (moniajoaste) Kullakin tapahtumalla omat odotusjononsa I/O-laitteet, semaforit, ajastimet, kun CPU suorittaa KJ:tä Syksy 2007, Tiina Niklander 2

5) Hierarkkinen rakenne KJ muodostuu useista erillisistä tasoista Hierarkian ansiosta kokonaisuus jakaantuu helpommin hallittaviin osiin suunnittelu, toteutus, testaus Kullakin tasolla oma osajoukko tehtävistä ylemmillä tasoilla kehittyneimmät KJ:n palvelut alemmilla tasoilla laiteläheisimmät toiminnot Taso tarjoaa palvelunsa ylemmälle tasolle, käyttää alemman/alempien tasojen palveluja Rajapinnat hyvin määriteltyjä tason toteutusta voi muuttaa koskematta muihin tasoihin KJ:n laiteriippumattomat palvelut Level Name Objects Example Operations 13 Shell User programming Statements in shell language environment 12 User processes User processes Quit, kill, suspend, resume 11 Directories Directories Create, destroy, attach, detach, search, list 10 Devices External devices, such Create, destroy, open, close, as printer, displays read, write and keyboards 9 File system Files Create, destroy, open, close read, write 8 Communications Pipes Create, destroy, open. close, read, write KJ:n laiteriippuvat tasot Level Name Objects Example Operations 7 Virtual Memory Segments, pages Read, write, fetch 6 Local secondary Blocks of data, Read, write, allocate, free store device channels 5 Primitive processes Primitive process, Suspend, resume, wait, signal semaphores, ready P / V list Laitetasot Brown, Denning 1984 Level Name Objects Example Operations 4 Interrupts Interrupt-handling Invoke, mask, unmask, programs retry 3 Procedures Procedures, call stack Mark stack, call, return 2 Instruction Set Evaluation stack, micro- Load, store, add, program interpreter, subtract, branch scalar and array data 1 Electronic circuits Registers, gates, buses, Clear, transfer, activate, etc. complement Muistinhallinta: MMU:n rakenteen huomiointi Laiteajurit: ohjaimien ja esim. levyn rakenteen huomiointi Vuorottaja: rekistereiden talletus/palautus, synkronointiprimitiivit Mitä laitteistopiirteitä tarvitaan KJ:n toteutuksessa? KJ-toteutuksen vaikeat kohdat Toimintojen synkronointi / ajoitus joskus odotettava että jotain muuta tapahtuu ennenkuin voi jatkaa keskeytysten oikea priorisointi laitteistosignaalit tai ohjelmien toisilleen välittämät tiedot eivät saa kadota tai kahdentua Poissulkeminen (Mutual exclusion) eräitä resursseja voi käyttää vain yksi kerrallaan esim. kirjoitin tai yhteinen tdsto / data Lukkiutuminen / Nälkiintyminen (Deadlock, Starvation) vaikeaa havaita odotettava resursseja, jotka ovat toisten hallussa huono prioriteetti, ei saada ensinkään palvelua Käyttöjärjestelmien kehittyminen, kehittäminen ja ylläpito Samanaikaisuuden hallinta Ch 5, 6.1-6 [Stal05] kertaa RiO Syksy 2007, Tiina Niklander 3

KJ:n kehittäminen ja ylläpito Laitteistot muuttuvat / uusia kehitetään kytkimet, kortit, nauhat, levyt merkkipohjaiset / graafiset päätteet tuki virtuaalimuistille muistin määrä kasvanut, väylät parantuneet, moniprosessorijärjestelmät, jne. Tietojenkäsittelytavat muuttuvat interaktiiviset reaaliaikaiset järjestelmät ikkunointiympäristöt paikallisverkot ja Internet kuvankäsittely... KJ:n kehittäminen ja ylläpito Jatkuvan kehitystarpeen vuoksi modulaarinen rakenne selkeät liittymät eri osien välillä mahd. oliopohjainen toteutus private vs. public data Myös KJ:ssä puutteita ja virheitä paikkopaketit (patches, service packages) uudet KJ-versiot Milloin aika tehdä KJ uudelleen alusta? KJ:n historia lyhyesti Perusmallit: Eräajojärjestelmä, yksiajo (Batch System) Eräajojärjestelmä, moniajo (Multiprogramming, multitasking) Osituskäyttöjärjestelmä (Time-Sharing) Nykyaikaistetut mallit: Moniprosessorijärjestelmä (Multiprocessor) Eräajo Yksiajojärjestelmä Verkkokäyttöjärjestelmä (Networked systems) Hajautettu järjestelmä (Distributed system) Asiakas-palvelija malli (Client-Server) KAIKKI TARJOAVAT SAMAT PERUSPALVELUT Eräajo & yksiajo Ensimmäiset KJ:t 50-luvun puolivälissä Koneen muistissa yksink. monitoriohjelma Käyttäjä määritteli työnsä reikäkorteilla tai nauhalla (ns. kortinkuvat) erätyö = ohjauskortit + ohjelma + data Operaattori työnsi kortit lukijaan ja käänsi vipua Ohjauskortit kertoivat milloin monitorin piti ladata muita palveluohjelmia (esim. kääntäjä) Vain yksi työ kerrallaan suoritettavana, uusi työ ajoon vasta kun edellinen valmis Työnohjauskieli (Job Control Language, JCL) Monitorille tarkoitettuja kortinkuvia mikä ohjelma käynnistettiin mitä tdstoja se käytti minne tulosteet ohjattiin Esimerkkejä: $JOB uuden työn alkukortti $FTN lataa Fortran-kääntäjä ja anna kontrolli sille $LOAD lataa käännös muistiin $RUN aja juuri ladattu ohjelma $JOB parametrit $FTN Ohjelmakortit... $LOAD $RUN Datakortit... $END Seuraava erätyö... Syksy 2007, Tiina Niklander 4

Monitori Kuva 2.3 Jatkuvasti muistissa Luki kortinkuvan kerrallaan erätyötä suoritettavakseen Kun sovellus ladattu muistiin, suoritus hyppäsi sen alkuun Sovellusta suoritettiin kunnes valmistui tai virhe aika loppui Kontrolli jälleen monitorille Monitori luki seuraavan kortinkuvan Monitori ja siirräntä Monitori huolehti siirrännästä siirrännän yksityiskohdat ei sovelluksen murheena I/O-käsky oli itseasiassa aliohjelmakutsu monitorin alueella olevaan koodiin oma käsky, 'palvelupyyntö' Monitorin tarjoama palvelu tarkasti, että sovellus ei vahingossa lukenut ohjauskorttia datakseen (-> liian vähän dataa?) ohitti tarvittaessa kortteja, kunnes taas järkevä ohjauskortti (-> liikaa dataa?) Monitori ja laitteistopiirteitä (1) Muistinsuojaus Monitori suojattava sovellukselta CPU:n tarkistettava muistiosoitteet laitteistossa kantarekisteri BASE Keskeytysmekanismi hallittu kontrollin siirto monitorin ja sovelluksen välillä bitti PSW:ssä, keskeytyskäsittelyn alku laitetoiminto Kellokeskeytys ettei yksi sovellus valloittanut koko laitteistoa viimeistään kello aiheutti keskeytyksen kontrolli taas monitorille Monitori ja laitteistopiirteitä (2) Etuoikeutetut käskyt (Priviledged Instructions) siirräntäkäskyt muistin rajarekisterin asettaminen keskeytysten esto ja salliminen jos sovellus yrittää käyttää näitä käskyjä, tuloksena poikkeus tuntematon käskykoodi Etuoikeutettu vs. käyttäjätila (Supervisor/User mode) vain laitteisto ja monitori voi asettaa (bitti PSW:ssä) CPU suorittaa etuoikeutetun käskyn vain, jos on etuoikeutetussa tilassa Yksiajojärjestelmän heikkous Siirräntä erittäin hidasta verrattuna CPU:n nopeuteen CPU odottelee usein siirron valmistumista ennenkuin voi jatkaa sovelluksessa eteenpäin Moniajojärjestelmä Ł Huono CPU:n käyttöaste Syksy 2007, Tiina Niklander 5

Moniajojärjestelmä Suoritettavaksi useita sovelluksia kun yksi odottaa esim. siirrännän valmistumista, CPU suorittaa toista Lisää laitteistovaatimuksia I/O-ohjain keskeyttää, kun siirräntä valmis CPU voi suorittaa muuta siirron aikana MMU: suojaus ja ajonaik. osoitemuunnos muistissa yhtäaikaa useita sovelluksia ja sovelluksen sijainti vaihtelee eri suor.kerroilla Jos ei virtuaalimuistia rajarekisteri LIMIT, kantarekisteri BASE Jos virtuaalimuisti sivutaulurekisteri PTR osoitemuunnospuskuri TLB sivunpuutoskeskeytys (page fault) Lisävaatimuksia KJ:lle Yksiajon ja moniajon vertailu Prosessien hallinta kirjanpitoa prosesseista = PCB:t Vuorottaminen CPU toiselle prosessille, jos yksi jää odottamaan tapahtumaohjattu tai aikaviipaletekniikka prosessin tila: READY vs. BLOCKED Muistinhallinta sovelluksille löydettävä tilaa muistista kirjanpito vapaista ja varatuista alueista Muistia 256 K Tässä ei kilpailua oheislaitteistosta Taulukko 2.1. Yksiajon ja moniajon vertailu Taulukko 2.2. Vrt. edellisen kalvon numeroihin! Syksy 2007, Tiina Niklander 6

Osituskäyttö Osituskäyttö huomioi muuttuneet käyttötavat: interaktiivinen päätetyöskentely käyttäjä voi käynnistää sovelluksen itse syötteet näppäimistöltä tulostus näytölle Ihminen koneeseen verrattuna hidas tyypillinen käyttäjä tarvitsee CPU-aikaa vain 2s/min järjestelmässä voi olla esim. 30 yhtäaikaista käyttäjää, eikä yksi edes huomaa muiden läsnäoloa Osituskäyttö Aikaviipalekello vuorottelu ei pelkästään siirrännän odottelun perusteella kullekin vuorotellen aikaviipale (esim. 50-100 ms), jotta voidaan taata kaikille siedettävät vasteajat Prioriteetit osituskäytölle suurempi prioriteetti kuin erätöille tai taustalla ajettaviin töille ettei käyttäjä hermostuisi päätteensä ääressä... Uutuuksia NYKYAIKAISEN KJ:N PIIRTEITÄ Laitteistokehitys moniprosessorijärjestelmät nopeat verkot nopeammat prosessorit suurempi muisti, uudet talletusmediat Ohjelmistojen / käyttötapojen muutos Asiakas/palvelija -malli Internet ja WWW Multimedia Mikrokernel Mikrokernel Vain välttämättömät laitetoiminnot ytimeen, joka suoritetaan etuoikeutetussa tilassa keskeytyskäsittelyn alkutoimet mikä / kuka aiheutti? vuorottamisen laitetoiminnot rekistereiden kopiointia muistinhallinnan laitetoiminnot MMU:n asetukset, suojaus siirrännän laitetoiminnot ohjaimien käyttö, suojaus prosessien välinen sanomanvälitys pyyntöjen välitys, kopiointia prosessien muistialueille Muut KJ:n palvelut tavallisina prosesseina, jotka suoritetaan käyttäjätilassa laiteajurit, tiedostojärjestelmä, virtuaalimuisti odottavat vuorottamista Ready-jonossa eivät pääse suoraan käsiksi laitteistoon Toteutus perustuu sanomanvälitykseen IPC, inter process communication Joustavuus, laajennettavuus, siirrettävyys... Vrt. Monoliittinen ydin KJ:n keskeiset toiminnot yhdessä ajomoduulissa yleisempää, nopeampaa Syksy 2007, Tiina Niklander 7

KJ:n ydin Kuva 4.10 Moniprosessorijärjestelmä Monoliittinen ydin SMP symmetric multiprocessing Koneessa useita CPU:ita kaikki rakenteeltaan ja tehtäviltään samanlaisia SMP, Symmetric Multiprocessing aidosti rinnakkainen suoritus kukin voi suorittaa KJ:tä tai sovellusta Muu laitteisto yhteiskäytössä muisti, väylät, I/O-laitteet Useamman CPU:n mukanaolo ei vaikuta normaaliin ohjelmointiin KJ:ssä sensijaan paljonkin uutta mietittävää Tehokkuus, vikasietoisuus, laajennettavuus 3 prosessia ja SMP (2 CPU:ta) Not Running Verkkojärjestelmä Useita erillisiä (mahd. erilaisia) solmukoneita Kullakin koneella oma KJ ja omat prosessit Mahd. yhteiskäytössä oleva tdstojärjestelmä Globaali käyttäjien tunnistus Verkkojärjestelmä Käyttäjä tuntee ja käyttää koneita nimeltä Toisella koneella olevien tiedostojen käyttö KJ:t voivat olla erilaisia eri koneissa Hajautettu järjestelmä Useita erillisiä koneita Kullakin koneella oma KJ ja omat prosessit Mahd. yhteiskäytössä oleva tdstojärjestelmä Globaali käyttäjien tunnistus Hajautettu järjestelmä Käyttäjän ei tarvitse tuntea koneita nimeltä KJ hoitaa mm. kuormantasauksen Globaali KJ (kaikissa samanlainen) Syksy 2007, Tiina Niklander 8

Asiakas-palvelija malli Sovellus jaettu useampaan osaan esim. WWW-palvelija ja selain (käyttöliittymä) Asiakas ja palvelija voivat sijaita eri koneissa WWW-palvelija konehuoneen palvelimella, selainohjelma työhuoneen koneella tai samassa koneessa ikkunamanageri ja sovellusohjelma Palvelija palvelee useita asiakkaita Sanomanvälitys TCP/IP-protokolla, etäproseduurikutsu Reaaliaikajärjestelmä Tarve reagoida ulkopuolisiin tapahtumiin Ohjausjärjestelmät: laboratoriokokeet, teollisuus, lentoliikenne, teleliikenne, robotiikka Tapahtumat tulevat reaaliajassa Ehdittävä käsitellä ennen uutta Hard Real-time vs. Soft Real-time Ei saa ylittää aikarajoja (hard deadline) vs. yrittää parhaansa, saa joskus myöhästyäkin (soft deadline) Periodinen vs. aperiodinen (jaksollinen, epäsäännöllinen) Ajallinen tai määrällinen säännöllisyys Alku- ja/tai päättymisajalle aikaraja KJ:n suorittamisesta 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 melkein kaikki käyttävät PCB:tä (prosessin kuvaaja) Onko KJ myös prosessi? j KJ etuoikeutetussa tilassa k KJ prosessin ympäristössä Prosessi vain käyttäjätilan käsite KJ:n osat eivät jonota KJ:llä omat muistialueensa: koodi, data, pino KJ:n osat suoritetaan omillaan etuoik. tilassa oikeus tehdä kaikkia KJ:n toimintoja kaikissa osissa ~ vanha monoliittinen KJ KJ yhteiskäyttöisellä muistialueella kaikkien prosessien osoiteavaruudessa Prosessi itse suorittaa KJ:n rutiineja hallittu siirtyminen keskeytyksellä, etuoikeutettu tila Kontrolli prosesseilta poissa vain, kun synkronointi tai vuorottaminen vaatii ~ uudempi monoliittinen KJ Syksy 2007, Tiina Niklander 9

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