Ongelma(t): Miten tietokoneen käyttöjärjestelmä toimii sisäisesti, jotta resurssit saadaan tehokkaaseen käyttöön? 2013-2014 Lasse Lensu 2
Systeemiohjelmat ovat tietokoneen laitteistoa lähellä olevia ohjelmia, joiden avulla ohjelmoidaan ja käytetään tietokonetta. Käyttöjärjestelmä on tyypillinen systeemiohjelma. 2013-2014 Lasse Lensu 3
Tietojenkäsittelytieteen perusteet Systeemiohjelmista 2013-2014 Lasse Lensu 4
Systeemiohjelmat Ikonen L. 2011 Systeemiohjelmiin kuuluvat: Tekstintoimittimet (editorit) Kääntäjät, tulkit ja virheenjäljittimet Linkittäjät Lataajat Käyttöjärjestelmä... 2013-2014 Lasse Lensu 5
Käyttöjärjestelmä Laitteistoa ja sovellusohjelmien suoritusta hallitseva ohjelmisto Erottaa sovellusohjelmat niiden käyttämästä laitteistosta: Ohjelmistokerros Ohjaa ohjelmistoa ja laitteistoa halutun toiminnan aikaansaamiseksi ja suorituskyvyn takaamiseksi erilaisissa käyttötarkoituksissa 2013-2014 Lasse Lensu 6
Ohjelmien suoritus - käskysykli Suoritin (Central Processing Unit, CPU) noutaa käskyn ohjelmalaskurin osoittamasta paikasta, kasvattaa ohjelmalaskurin arvoa, noutaa operandit, suorittaa käskyn ja tallentaa tuloksen rekisteriin tai muistiin. 2013-2014 Lasse Lensu 7
Muistihierarkia Nopeampi muisti = kalliimpi muisti Suurempi tallennuskapasiteetti = hitaampi muisti Esimerkkihierarkia (nykytekniikalla arvot paremmat): 2013-2014 Lasse Lensu 8
Tiedonsiirto eli I/O Kayttäjän ohjelman (User Program) palvelupyyntö antaa kontrollin laiteohjaimelle (I/O Program): Suoritin suorittaa käyttöjärjestelmän koodia Ohjain alustaa itsensä sekä antaa tarvittavat käskyt, jolloin tiedonsiirto käynnistyy (4) Ohjain odottaa (pollaa), että siirräntä valmistuu Ohjain tekee lopputoimet ja palauttaa sovellukselle tilatietoa (5) Suoritin odottelee paljon jouten! 2013-2014 Lasse Lensu 9
Siirräntätyypit Suora siirräntä (programmed I/O) Ei keskeytyksiä Epäsuora, keskeyttävä (interrupt-driven I/O) Ohjain keskeyttää Suora muistiinsiirto (direct memory access) Ohjain keskeyttää Ohjain siirtää suoraan keskusmuistiin Älykäs laiteohjain 2013-2014 Lasse Lensu 10
Keskeytys Sallii suorittimen (CPU) ja ohjaimien samanaikaisen 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 käyttöjärjestelmään kuuluvaa keskeytyskäsittelyä Kun käyttöjärjestelmä on 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 2013-2014 Lasse Lensu 11
Täydennetty käskysykli Jos keskeytys sallittu, CPU tutkii tilarekisterin ennen seuraavan käskyn noutoa Jos keskeytys, suoritetaan keskeytyskäsittelyn käskyt 2013-2014 Lasse Lensu 12
Keskeytystyypit 2013-2014 Lasse Lensu 13
Keskeytyskäsittelijä (interrupt handler) Käyttöjärjestelmä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 Suorittimen rekistereiden arvot talletettava muistiin: Ohjelmalaskuri, tilarekisteri (program status word) ja muut ohjelman käyttämät rekisterit Myös keskeytyksen käsittely voi keskeytyä 2013-2014 Lasse Lensu 14
Yhteenveto (haasteet) 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) Joitakin resursseja voi käyttää vain yksi kerrallaan, esim. kirjoitin tai yhteinen tiedosto / data Lukkiutuminen (deadlock) / nälkiintyminen (starvation): Vaikeaa havaita Odotettava resursseja, jotka ovat toisten hallussa Huono prioriteetti, ei saada ensinkään palvelua 2013-2014 Lasse Lensu 15