yleistÄ kÄyttÖjÄrjestelmÄstÄ stallings, luku 2
Post on 30-Dec-2015
35 Views
Preview:
DESCRIPTION
TRANSCRIPT
KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen
2 - 1
YLEISTÄ YLEISTÄ KÄYTTÖJÄRJESTELMÄSTÄ KÄYTTÖJÄRJESTELMÄSTÄ
Stallings, Luku 2
Käyttöjärjestelmät Käyttöjärjestelmät
KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen
2 - 2
Keskeisiä KJ:n osa-alueita Keskeisiä KJ:n osa-alueita Käyttäjä
Laiteohjaimet ja laitteet
Laiteajurit Keskeytyskäsittely
PROSESSIEN HALLINTA
SIIRRÄNTÄJÄRJESTELMÄ
MUISTINHALLINTA TIEDOSTOJÄRJESTELMÄ
Sovellukset
lohkot
VarusohjelmatKomentotulkki
Palvelupyynnöt
suojaus
RESURSSIEN HALLINTA
KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen
2 - 3
Sisältöä 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, CT50A2601 / Heikki Kälviäinen
2 - 4
Käyttöjärjestelmät Käyttöjärjestelmät
KJ:N TEHTÄVIÄ JA PALVELUJA
KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen
2 - 5
HierarkiaHierarkia Kuva 2.1Kuva 2.1
Palvelupyynnöt
Keskeytykset
KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen
2 - 6
KJ:n tehtäviä ja palveluja 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, CT50A2601 / Heikki Kälviäinen
2 - 7
KJ:n tarjoamia palveluja KJ:n tarjoamia palveluja (1)(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, CT50A2601 / Heikki Kälviäinen
2 - 8
KJ:n tarjoamia palveluja KJ:n tarjoamia palveluja (2)(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, CT50A2601 / Heikki Kälviäinen
2 - 9
KJ:n tarjoamia palveluja KJ:n tarjoamia palveluja (3)(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, CT50A2601 / Heikki Kälviäinen
2 - 10
KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen
2 - 11
KJ:n tarjoamia palveluja KJ:n tarjoamia palveluja (4)(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, CT50A2601 / Heikki Kälviäinen
2 - 12
Käyttöjärjestelmät Käyttöjärjestelmät
KJ:N KEHITTYMINEN
JA YLLÄPITO
KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen
2 - 13
KJ:n kehittäminen ja ylläpitoKJ: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, CT50A2601 / Heikki Kälviäinen
2 - 14
KJ:n kehittäminen ja ylläpitoKJ: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, CT50A2601 / Heikki Kälviäinen
2 - 15
KJ:n historia lyhyestiKJ:n historia lyhyestiPerusmallit: 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, CT50A2601 / Heikki Kälviäinen
2 - 16
Käyttöjärjestelmät Käyttöjärjestelmät
Eräajo
Yksiajojärjestelmä
KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen
2 - 17
Eräajo & yksiajo Eräajo & yksiajo (simple bacth systems)(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, CT50A2601 / Heikki Kälviäinen
2 - 18
TyönohjauskieliTyö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 $FTNOhjelmakortit ...$LOAD$RUNDatakortit ...$END…Seuraava erätyö...
KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen
2 - 19
Monitori Monitori Kuva Kuva 2.32.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, CT50A2601 / Heikki Kälviäinen
2 - 20
Monitori ja siirräntä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, CT50A2601 / Heikki Kälviäinen
2 - 21
Monitori ja laitteistopiirteitä Monitori ja laitteistopiirteitä (1)(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, CT50A2601 / Heikki Kälviäinen
2 - 22
Monitori ja laitteistopiirteitä Monitori ja laitteistopiirteitä (2)(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, CT50A2601 / Heikki Kälviäinen
2 - 23
Yksiajojärjestelmän heikkousYksiajojä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, CT50A2601 / Heikki Kälviäinen
2 - 24
Käyttöjärjestelmät Käyttöjärjestelmät
Moniajojärjestelmä
KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen
2 - 25
Moniajojärjestelmä Moniajojärjestelmä (multiprogrammed batch systems)(multiprogrammed batch systems)
Suoritettavaksi useita sovelluksia Kun yksi odottaa esim. siirrännän valmistumista,
CPU suorittaa toista
KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen
2 - 26
Lisää laitteistovaatimuksiaLisää 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, CT50A2601 / Heikki Kälviäinen
2 - 27
Lisävaatimuksia KJ:lleLisä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, CT50A2601 / Heikki Kälviäinen
2 - 28
Yksiajon ja moniajon vertailuYksiajon ja moniajon vertailu
Muistia 256 K Tässä ei kilpailua oheislaitteistosta
Taulukko 2.1
KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen
2 - 29
Yksiajon ja moniajon vertailuYksiajon ja moniajon vertailu
Taulukko 2.2.
Vrt. edellisen kalvon numeroihin!
KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen
2 - 31
Osituskäyttö Osituskäyttö (time-sharing systems)(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, CT50A2601 / Heikki Kälviäinen
2 - 32
Osituskäyttö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, CT50A2601 / Heikki Kälviäinen
2 - 33
Käyttöjärjestelmät Käyttöjärjestelmät
KESKEISIÄ
KJ:N OSA-ALUEITA
KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen
2 - 34
Keskeisiä KJ:n osa-alueita Keskeisiä KJ:n osa-alueita Käyttäjä
Laiteohjaimet ja laitteet
Laiteajurit Keskeytyskäsittely
PROSESSIEN HALLINTA
SIIRRÄNTÄJÄRJESTELMÄ
MUISTINHALLINTA TIEDOSTOJÄRJESTELMÄ
Sovellukset
lohkot
VarusohjelmatKomentotulkki
Palvelupyynnöt
suojaus
RESURSSIEN HALLINTA
KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen
2 - 35
Keskeisiä KJ:n osa-alueita 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, CT50A2601 / Heikki Kälviäinen
2 - 36
1) Prosessi1) 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, CT50A2601 / Heikki Kälviäinen
2 - 37
Eräs toteutusErä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, CT50A2601 / Heikki Kälviäinen
2 - 38
2) Muistinhallinta2) 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, CT50A2601 / Heikki Kälviäinen
2 - 39
MuistinhallintaMuistinhallintaAvainkä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, CT50A2601 / Heikki Kälviäinen
2 - 40
Virtuaalimuisti Virtuaalimuisti Kuva 2.9Kuva 2.9
Kir
jan
pit
o?
s
i vu
tau
lu
KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen
2 - 41
Virtuaalimuisti Virtuaalimuisti Kuva 2.10Kuva 2.10
KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen
2 - 42
VirtuaalimuistiVirtuaalimuisti 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, CT50A2601 / Heikki Kälviäinen
2 - 43
3) Tietoturva ja suojaus 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, CT50A2601 / Heikki Kälviäinen
2 - 44
4) Resurssien hallinta4) 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, CT50A2601 / Heikki Kälviäinen
2 - 45
Vuorottamisen perusideoita 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, CT50A2601 / Heikki Kälviäinen
2 - 46
Milloin? Milloin? Kuva 2.11Kuva 2.11
… kun CPU suorittaa KJ:tä
KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen
2 - 47
5) Hierarkkinen rakenne5) 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, CT50A2601 / Heikki Kälviäinen
2 - 48
LaitetasotLaitetasot Brown, Denning 1984Brown, 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, CT50A2601 / Heikki Kälviäinen
2 - 49
KJ:n laiteriippuvat tasotKJ: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, freestore device channels
5 Primitive processes Primitive process, Suspend, resume, wait, signalsemaphores, readylist
P / V
Muistinhallinta: MMU:n rakenteen huomiointi
Laiteajurit: ohjaimien ja esim. levyn rakenteen huomiointi
Vuorottaja: rekistereiden talletus/palautus, synkronointiprimitiivit
KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen
2 - 50
KJ:n laiteriippumattomat palvelut KJ:n laiteriippumattomat palvelut
Level Name Objects Example Operations
13 Shell User programming Statements in shell languageenvironment
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, writeand keyboards
9 File system Files Create, destroy, open, closeread, write
8 Communications Pipes Create, destroy, open. close,read, write
KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen
2 - 51
KJ-toteutuksen vaikeat kohdatKJ-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, CT50A2601 / Heikki Kälviäinen
2 - 52
Käyttöjärjestelmät Käyttöjärjestelmät
PALVELUPYYNNÖT
KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen
2 - 53
Palvelupyyntö Palvelupyyntö
KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen
2 - 54
PalvelupyynnötPalvelupyynnö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, CT50A2601 / Heikki Kälviäinen
2 - 55
read(fd, buffer, nbytes) read(fd, buffer, nbytes) Tan01 1-17Tan01 1-17
KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen
2 - 56
POSIX-palvelupyyntöjäPOSIX-palvelupyyntöjä
Portable Operating System ("UNIX Style")
KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen
2 - 57
POSIX-palvelupyyntöjä POSIX-palvelupyyntöjä Tan01 1-18Tan01 1-18
KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen
2 - 58
Käyttöesimerkki Käyttöesimerkki Tan01 1-19Tan01 1-19
”Riisuttu” komentotulkki
KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen
2 - 59
WIN32 API -palvelupyyntöjä WIN32 API -palvelupyyntöjä
Kehittyvät uusienKehittyvät uusienkäyttöjärjestelmä-käyttöjärjestelmä-versioiden myötäversioiden myötä
KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen
2 - 60
Käyttöjärjestelmät Käyttöjärjestelmät
NYKYAIKAISEN KJ:N PIIRTEITÄ
KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen
2 - 61
Uutuuksia 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, CT50A2601 / Heikki Kälviäinen
2 - 62
MikrokernelMikrokernel 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, CT50A2601 / Heikki Kälviäinen
2 - 63
MikrokernelMikrokernel 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, CT50A2601 / Heikki Kälviäinen
2 - 64
KJ:n ydinKJ:n ydin Kuva 4.10Kuva 4.10
Monoliittinen ydin
KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen
2 - 65
Säikeet 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, CT50A2601 / Heikki Kälviäinen
2 - 66
MoniprosessorijärjestelmäMoniprosessorijärjestelmä
KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen
2 - 67
SMP SMP (Symmetric Multiprocessing)(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, CT50A2601 / Heikki Kälviäinen
2 - 68
3 prosessia ja SMP (2 3 prosessia ja SMP (2 CPU:ta) CPU:ta)
Not Running
KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen
2 - 69
Verkkojärjestelmä 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, CT50A2601 / Heikki Kälviäinen
2 - 70
Hajautettu järjestelmä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, CT50A2601 / Heikki Kälviäinen
2 - 71
Asiakas-palvelija-malliAsiakas-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, CT50A2601 / Heikki Kälviäinen
2 - 72
Reaaliaikajärjestelmä 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, CT50A2601 / Heikki Kälviäinen
2 - 73
Kertauskysymyksiä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?
top related