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



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

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

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

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

Keskeiset KJ:n osa-alueet

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

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

Käyttöjärjestelmät II

Käyttöjärjestelmät II

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

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

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

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

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

Prosessi perinteisesti

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

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

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

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

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

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

Sisältöä SÄIKEET, SMP

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: prosessit

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

Käyttöjärjestelmän rakenne

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

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

Osio 2: Luennot 4-7 Muistinhallinta

Luento 3: PROSESSIT JA NIIDEN HALLINTA

Operating Systems, 8 op

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

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

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

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ä

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

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

Stallings, Luku

Sisältöä SÄIKEET, SMP

Luento 6: VIRTUAALIMUISTI

Luento 2: LAITTEISTOSTA

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

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

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

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

Osio 2: Luennot 5-8 Muistinhallinta

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

Jakso 12 Yhteenveto. Keskeiset asiat Teemu Kerola, K2000

VUOROTTAMINEN YKSI CPU

Tietokoneen toiminta, K Tavoitteet (4)

Jakso 8 Ohjelman toteutus järjestelmässä

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: poissulkeminen ja synkronointi

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

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

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

PROSESSIT JA NIIDEN HALLINTA

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

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

Pikaintro käyttöjärjestelmiin

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

Luento 7: VIRTUAALIMUISTIN SIVUTUS JA SEGMENTOINTI

5. Luento: Rinnakkaisuus ja reaaliaika. Tommi Mikkonen,

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

Luento 8 Ohjelman toteutus järjestelmässä

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 5: YKSINKERTAINEN SEGMENTOINTI JA SIVUTUS

2 Konekieli, aliohjelmat, keskeytykset

Muistihierarkia Kiintolevyt I/O:n toteutus

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

VIRTUAALIMUISTI. Stallings, Luku 8.1

Jakso 8 Ohjelman suoritus järjestelmässä

Jakso 8 Ohjelman suoritus järjestelmässä

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

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

VIRTUAALIMUISTI. Stallings, Luku 8.1

MUISTINHALLINTA. Stallings, Luku 7

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

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

Luento 1 Tietokonejärjestelmän rakenne

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

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

Järjestelmän ulkoinen muisti I/O

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

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

OHJ-4301 Sulautettu Ohjelmointi

Linux. 00 Keskeiset piirteet. Unix ja Linux Helsingin ammattikorkeakoulu Stadia Vesa Ollikainen (muokannut M.Mäki-Uuro) Kysymyksiä

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

VUOROTTAMINEN SMP JA REAALIAIKAJÄRJESTELMÄT Linux, W2000

Arto Salminen,

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

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

Transkriptio:

Käyttöjärjestelmät YLEISTÄ KÄYTTÖJÄRJESTELMÄSTÄ Stallings, Luku 2 KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 2-1

Keskeisiä KJ:n osa-alueita Käyttäjä Sovellukset Komentotulkki Varusohjelmat Palvelupyynnöt PROSESSIEN HALLINTA TIEDOSTOJÄRJESTELMÄ suojaus lohkot RESURSSIEN HALLINTA MUISTINHALLINTA SIIRRÄNTÄJÄRJESTELMÄ Laiteajurit Keskeytyskäsittely Laiteohjaimet ja laitteet KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 2-2

Sisältöä KJ:n tehtäviä ja palveluja (luku 2.1) KJ:n kehityksestä (luku 2.2) Keskeiset KJ:n osat (luku 2.3) Nykyaikaisen KJ:n piirteitä (luku 2.4) KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 2-3

Käyttöjärjestelmät KJ:N TEHTÄVIÄ JA PALVELUJA KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 2-4

Hierarkia Kuva 2.1 Palvelupyynnöt Keskeytykset KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 2-5

KJ:n tehtäviä ja palveluja KJ on ohjelmisto, joka huolehtii sovellusten suorituttamisesta prosessorissa antaa laitteiston sovelluksen käyttöön huolehtii, että sovellus ei yksin valloita koko laitteistoa tarjoaa turvallisen suoritusympäristön KJ on palveluliittymä sovelluksen ja laitteiston välillä laitteistopiirteiden hallinta sovelluksen ulkopuolella sovellus esittää tarpeensa palvelupyynnöin siirtyminen KJ:n palveluun keskeytysmekanismin kautta KJ optimoi laitteiston käyttöä hyvän suorituskyvyn saamiseksi KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 2-6

KJ:n tarjoamia palveluja (1) Käyttöliittymä (user interface) ikkunointiympäristö komentotulkki Ohjelmointiympäristö (utility programs) editorit, kääntäjät, linkittäjät, debuggerit, Ohjelmien suorituttaminen prosessien käynnistäminen kirjanpito, lataaminen muistiin prosessien vuorottaminen CPU:n käyttövuorot, resurssien varaus ja käyttö prosessien tappaminen resurssien vapauttaminen KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 2-7

KJ:n tarjoamia palveluja (2) Muistinhallinta varaa muistitilaa sovellukselle Siirräntä sovellus pyytää palvelua KJ:ltä KJ komentaa I/O-ohjaimia töihin Tiedostojen hallinta kirjanpito tiedostoista, hakemistot tiedostosta lukeminen / tallettaminen Suojaus muistin suojaus ja tiedostojen käyttöoikeudet resurssien varaamisen kilpailutilanteet ja ristiriidat KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 2-8

KJ:n tarjoamia palveluja (3) Virhetilanteiden hallinta laitteistovirheet ohjelmistovirheet resurssipula Virheistä toipuminen palauttaa statustietoa sovellukselle uudelleenyritykset prosessin tappaminen Välikysymys: Mitä yleistermi resurssi tarkoittaa? KJ tietokoneen resurssipäällikkönä KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 2-9

KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 2-10

KJ:n tarjoamia palveluja (4) Kirjanpito / tilinpito (accounting) tilastointi resurssien käytöstä suorituskyvyn seuranta (esim. vastausaika) järjestelmäparametrien optimointi hyvän suorituskyvyn saamiseksi koneen käyttäjien laskuttaminen Kirjanpito voi antaa vihjeitä siitä, kuinka KJ:tä voitaisiin kehittää edelleen KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 2-11

Käyttöjärjestelmät KJ:N KEHITTYMINEN JA YLLÄPITO KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 2-12

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-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 2-13

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-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 2-14

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) Verkkokäyttöjärjestelmä (Networked systems) Hajautettu järjestelmä (Distributed system) Asiakas-palvelija-malli (Client-Server) KAIKKI TARJOAVAT NE SAMAT PERUSPALVELUT Mitkä? KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 2-15

Käyttöjärjestelmät Eräajo Yksiajojärjestelmä KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 2-16

Eräajo & yksiajo (simple bacth systems) Ensimmäiset KJ:t 50-luvun puolivälissä Koneen muistissa yksinkertainen 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 KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 2-17

Työnohjauskieli (Job Control Language, JCL) Monitorille tarkoitettuja kortinkuvia mikä ohjelma käynnistettiin mitä tiedostoja 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ö... KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 2-18

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 KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 2-19

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?) KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 2-20

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 KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 2-21

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 KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 2-22

Yksiajojärjestelmän heikkous Siirräntä erittäin hidasta verrattuna CPU:n nopeuteen CPU odottelee usein siirron valmistumista ennenkuin voi jatkaa sovelluksessa eteenpäin Huono CPU:n käyttöaste KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 2-23

Käyttöjärjestelmät Moniajojärjestelmä KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 2-24

Moniajojärjestelmä (multiprogrammed batch systems) Suoritettavaksi useita sovelluksia Kun yksi odottaa esim. siirrännän valmistumista, CPU suorittaa toista KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 2-25

Lisää laitteistovaatimuksia I/O-ohjain keskeyttää, kun siirräntä valmis CPU voi suorittaa muuta siirron aikana MMU (memory management unit): suojaus ja ajonaikainen osoitemuunnos muistissa yhtäaikaa useita sovelluksia ja sovelluksen sijainti vaihtelee eri suorituskerroilla Jos ei virtuaalimuistia rajarekisteri LIMIT, kantarekisteri BASE Jos virtuaalimuisti sivutaulurekisteri PTR osoitemuunnospuskuri TLB sivunpuutoskeskeytys (page fault) KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 2-26

Lisävaatimuksia KJ:lle Prosessien hallinta kirjanpitoa prosesseista = PCB:t (Process Control Block) 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 KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 2-27

Yksiajon ja moniajon vertailu Muistia 256 K Tässä ei kilpailua oheislaitteistosta Taulukko 2.1 KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 2-28

Yksiajon ja moniajon vertailu Taulukko 2.2. KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 2-29

Vrt. edellisen kalvon numeroihin! KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 2-30

Osituskäyttö (time-sharing systems) Eräajossa käyttäjä ei voinut vaikuttaa sovelluksen suoritukseen sen käynnistyttyä 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 KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 2-31

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ä... KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 2-32

Käyttöjärjestelmät KESKEISIÄ KJ:N OSA-ALUEITA KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 2-33

Keskeisiä KJ:n osa-alueita Käyttäjä Sovellukset Komentotulkki Varusohjelmat Palvelupyynnöt PROSESSIEN HALLINTA TIEDOSTOJÄRJESTELMÄ suojaus lohkot RESURSSIEN HALLINTA MUISTINHALLINTA SIIRRÄNTÄJÄRJESTELMÄ Laiteajurit Keskeytyskäsittely Laiteohjaimet ja laitteet KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 2-34

Keskeisiä KJ:n osa-alueita KJ eräs monimutkaisimmista ohjelmista 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 KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 2-35

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, tiedostoista, prosessin tila (esim. odottaa siirrännän valmistumista), KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 2-36

Eräs toteutus KJ:llä prosessilista, jossa viitteet prosessin kuvaajiin (context) CPU:ssa rekisteri, jossa suoritettavan prosessin numero (prosessin B numero on i) Prosessinvaihto: CPU A:lta B:lle KJ talletti rekistereiden arvot A:n kuvaajaan KJ latasi B:n kuvaajasta arvot rekistereihin KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 2-37

2) Muistinhallinta Suoritusaikainen tallennus prosessit (ohjelmat+data) keskusmuistissa (primary memory) Pysyvä tallennus tiedostot (ohjelmat+data) tukimuistissa (secondary memory) Tilan allokointi 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, tiedostojen käyttöoikeudet KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 2-38

Muistinhallinta Avainkäsite virtuaalimuisti Ei ota kantaa todellisen muistin määrään tai minne ohjelma muistissa sijoitetaan ohjelman muistiavaruus voi olla suurempi kuin fyysinen muistiavaruus (ts. todellinen muistin määrä) Suoritusaikana muistissa tarvittava osa koodista/datasta, loput levyllä MMU huomaa puuttumisen KJ lataa muistiin Ei näy sovelluksen ohjelmoijalle KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 2-39

Virtuaalimuisti Kuva 2.9 KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 2-40

Virtuaalimuisti Kuva 2.10 KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 2-41

Virtuaalimuisti 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 keskusmuistissa MMU aiheuttaa keskeytyksen jos muistissa ei ole vapaata tilaa, KJ vapauttaa jonkin alueen KJ hakee levyltä puuttuvan osan muistiin KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 2-42

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 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 MMU ja ajaonaikainen osoitemuunnos Resurssien yhteiskäyttö silti sallittava KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 2-43

4) Resurssien hallinta Resurssi? CPU, muisti, tiedosto, I/O-laite CPU:n allokointi = vuorottaminen (skedulointi) 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 mahdollisimman useaa käyttäjää (sovellusta) KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 2-44

Vuorottamisen perusideoita 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, KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 2-45

Milloin? Kuva 2.11 kun CPU suorittaa KJ:tä KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 2-46

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-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 2-47

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 Mitä laitteistopiirteitä tarvitaan KJ:n toteutuksessa? KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 2-48

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 Muistinhallinta: MMU:n rakenteen huomiointi Laiteajurit: ohjaimien ja esim. levyn rakenteen huomiointi Vuorottaja: rekistereiden talletus/palautus, synkronointiprimitiivit KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 2-49

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-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 2-50

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 tiedosto / data Lukkiutuminen / Nälkiintyminen (Deadlock, Starvation) vaikeaa havaita odotettava resursseja, jotka ovat toisten hallussa huono prioriteetti, ei saada ensinkään palvelua KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 2-51

Käyttöjärjestelmät PALVELUPYYNNÖT KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 2-52

Palvelupyyntö KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 2-53

Palvelupyynnöt Sovellus pyytää KJ:n palvelua käskykantaan kuuluvan käskyn välityksellä Prosessit ja niiden välinen kommunikointi Muisti Tiedostot ja tiedostojärjestelmä Siirräntä Ym. Parametrit pinoon, sitten käsky Palvelupyyntö aiheuttaa keskeytyksen CPU etuoikeutettuun tilaan CPU suorittamaan KJ:tä KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 2-54

read(fd, buffer, nbytes) Tan01 1-17 KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 2-55

POSIX-palvelupyyntöjä Portable Operating System ("UNIX Style") KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 2-56

POSIX-palvelupyyntöjä Tan01 1-18 KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 2-57

Käyttöesimerkki Tan01 1-19 Riisuttu komentotulkki KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 2-58

WIN32 API -palvelupyyntöjä Kehittyvät uusien käyttöjärjestelmäversioiden myötä KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 2-59

Käyttöjärjestelmät NYKYAIKAISEN KJ:N PIIRTEITÄ KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 2-60

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 KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 2-61

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 KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 2-62

Mikrokernel 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 KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 2-63

KJ:n ydin Kuva 4.10 Monoliittinen ydin KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 2-64

Säikeet (multithreading) Prosessi voi jakautua yhteen tai useampaan säikeeseen, jotka yhtäaikaa Ready-jonossa Yhden prosessin säikeet käyttävät yhteistä koodia, data-aluetta ja resursseja sekä pääosaa prosessin kuvaajasta Säikeen luonti ja lopettaminen nopeampaa kuin prosessin Saman prosessin säikeiden vuorottaminen nopeampaa kuin eri prosessien vuorottaminen KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 2-65

Moniprosessorijärjestelmä KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 2-66

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 KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 2-67

3 prosessia ja SMP (2 CPU:ta) Not Running KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 2-68

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 KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 2-69

Hajautettu järjestelmä Useita erillisiä koneita Kullakin koneella oma KJ ja omat prosessit Mahdollisesti yhteiskäytössä oleva tiedostojä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) KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 2-70

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 KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 2-71

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 missata aikarajoja (deadline) vs. yrittää parhaansa, saa joskus myöhästyäkin Periodinen vs. aperiodinen Ajallinen tai määrällinen säännöllisyys Alku- ja/tai päättymisajalle aikaraja KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 2-72

Kertauskysymyksiä Mitkä ovat KJ:n keskeiset tehtävät? Millaisia palvelupyyntöjä tarvitaan, jotta sovellus voisi käyttää laitteistoa? Mitä laitteistopiirteitä tarvitaan moniajon toteuttamiseksi? Selitä moniajon hyödyt Miksi osituskäyttö on järkevä tapa jakaa CPU-aikaa? Mitä hyötyä on asiakas-palvelija-mallista? KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 2-73