Tietojenkäsittelyn perusteet 2 Lisää käyttöjärjestelmistä 2011-02-09 Leena Ikonen 1
Systeemiohjelmat Systeemiohjelmiin kuuluvat Kääntäjät ja tulkit (+debuggerit) Käyttöjärjestelmä Linkittäjät Lataajat Editorit 2011-02-09 Leena Ikonen 2
Ohjelmien suoritus - käskysykli CPU noutaa käskyn PC:n osoittamasta paikasta, kasvattaa PC:n arvoa, noutaa operandit, suorittaa käskyn, tallentaa tuloksen rekisteriin tai muistiin 2011-02-09 Leena Ikonen 3
Siirräntä eli I/O Palvelupyyntö antaa kontrollin laiteajurille CPU suorittaa KJ:n koodia Ajuri alustaa ohjaimen sekä antaa tarvittavat käskyt, jolloin siirräntä käynnistyy (4) Ajuri odottaa (pollaa), että siirräntä valmistuu Ajuri tekee lopputoimet, ja palauttaa sovellukselle statustietoa (5) CPU odottelee jouten! 2011-02-09 Leena Ikonen 4
Siirräntätyypit Suora siirräntä (programmed I/O) Ei keskeytyksiä Epäsuora, keskeyttävä (interrupt-driven I/O) Ohjain keskeyttää DMA-siirto (Direct Memory Access) Ohjain keskeyttää Ohjain siirtää suoraan keskusmuistiin Älykäs laiteohjain 2011-02-09 Leena Ikonen 5
Keskeytys Sallii CPU:n ja ohjaimien yhtäaikaisen toiminnan CPU vain käynnistää siirrännän, ja voi jatkaa muiden käskyjen suoritusta Kun siirto valmis, ohjain keskeyttää CPU:n CPU siirtyy suorittamaan KJ:hin kuuluvaa keskeytyskäsittelyä Kun KJ käsitellyt tilanteen, siirron valmistumista odottanut prosessi voi päästä taas suoritettavaksi Siirräntä hidasta, eikä prosessi aina voi jatkaa ennen siirrännän valmistumista pyrkimys suorittaa toista prosessia kun toinen odottaa 2011-02-09 Leena Ikonen 6
Täydennetty käskysykli Jos keskeytys sallittu, CPU tutkii tilarekisterin ennen seuraavan käskyn noutoa Jos keskeytys, suoritetaan keskeytyskäsittelyn käskyt 2011-02-09 Leena Ikonen 7
Keskeytystyypit 2011-02-09 Leena Ikonen 8
Keskeytyskäsittelijä (interrupt handler) KJ:n koodia, jonka laitteisto käynnistää keskeytyksen sattuessa Selvittää keskeytyksen syyn Käynnistää toimet tilanteen hoitamiseksi Siirtyminen sopivaan käsittelyrutiiniin Keskeytynyttä prosessia voitava jatkaa myöhemmin siitä, mihin se jäi keskeytyksen sattuessa CPU:n rekistereiden arvot talletettava muistiin PC, PSW (Program Status Word), muut ohjelman käyttämät rekisterit Myös keskeytyksen käsittely voi keskeytyä 2011-02-09 Leena Ikonen 9
Muistihierarkia Nopeampi muisti == kalliimpi muisti Suurempi tallennuskapasiteetti == hitaampi muisti (vanhan kuvan idea säilynyt, arvot toki kasvaneet) 2011-02-09 Leena Ikonen 10
Käyttöjärjestelmän kehitys 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... 2011-02-09 Leena Ikonen 11
Käyttöjärjestelmän kehitys 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? 2011-02-09 Leena Ikonen 12
Uutuuksia Laitteistokehitys moniprosessorijärjestelmät nopeat verkot nopeammat prosessorit suurempi muisti, uudet talletusmediat Ohjelmistojen / käyttötapojen muutos Asiakas/palvelija-malli Internet ja WWW Multimedia Mobiilikäyttöjärjestelmät 2011-02-09 Leena Ikonen 13
Mikrokernel vs. Muut toiminnot 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 Toteutus perustuu sanomanvälitykseen IPC, inter process communication Joustavuus, laajennettavuus, siirrettävyys... 2011-02-09 Leena Ikonen 14
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 tiedostoihin 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 Resurssien yhteiskäyttö silti sallittava 2011-02-09 Leena Ikonen 15
Yhteenveto (Käyttöjärjestelmän 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 tiedosto / data Lukkiutuminen / Nälkiintyminen (Deadlock, Starvation) vaikeaa havaita odotettava resursseja, jotka ovat toisten hallussa huono prioriteetti, ei saada ensinkään palvelua 2011-02-09 Leena Ikonen 16