yleistÄ kÄyttÖjÄrjestelmÄstÄ stallings, luku 2

73
KJ-I S2003 / A uvo Häkkinen, CT50A2601 / He 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

Upload: aphrodite-griffin

Post on 30-Dec-2015

37 views

Category:

Documents


1 download

DESCRIPTION

Käyttöjärjestelmät. YLEISTÄ KÄYTTÖJÄRJESTELMÄSTÄ Stallings, Luku 2. Käyttäjä. Sovellukset. Komentotulkki. Varusohjelmat. Palvelupyynnöt. PROSESSIEN HALLINTA. RESURSSIEN HALLINTA. suojaus. TIEDOSTOJÄRJESTELMÄ. MUISTINHALLINTA. lohkot. SIIRRÄNTÄJÄRJESTELMÄ. Laiteajurit. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: YLEISTÄ KÄYTTÖJÄRJESTELMÄSTÄ  Stallings, Luku 2

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

Page 2: YLEISTÄ KÄYTTÖJÄRJESTELMÄSTÄ  Stallings, Luku 2

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

Page 3: YLEISTÄ KÄYTTÖJÄRJESTELMÄSTÄ  Stallings, Luku 2

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)

Page 4: YLEISTÄ KÄYTTÖJÄRJESTELMÄSTÄ  Stallings, Luku 2

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

Page 5: YLEISTÄ KÄYTTÖJÄRJESTELMÄSTÄ  Stallings, Luku 2

KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen

2 - 5

HierarkiaHierarkia Kuva 2.1Kuva 2.1

Palvelupyynnöt

Keskeytykset

Page 6: YLEISTÄ KÄYTTÖJÄRJESTELMÄSTÄ  Stallings, Luku 2

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

Page 7: YLEISTÄ KÄYTTÖJÄRJESTELMÄSTÄ  Stallings, Luku 2

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

Page 8: YLEISTÄ KÄYTTÖJÄRJESTELMÄSTÄ  Stallings, Luku 2

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

Page 9: YLEISTÄ KÄYTTÖJÄRJESTELMÄSTÄ  Stallings, Luku 2

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ä

Page 10: YLEISTÄ KÄYTTÖJÄRJESTELMÄSTÄ  Stallings, Luku 2

KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen

2 - 10

Page 11: YLEISTÄ KÄYTTÖJÄRJESTELMÄSTÄ  Stallings, Luku 2

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

Page 12: YLEISTÄ KÄYTTÖJÄRJESTELMÄSTÄ  Stallings, Luku 2

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

Page 13: YLEISTÄ KÄYTTÖJÄRJESTELMÄSTÄ  Stallings, Luku 2

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

Page 14: YLEISTÄ KÄYTTÖJÄRJESTELMÄSTÄ  Stallings, Luku 2

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?

Page 15: YLEISTÄ KÄYTTÖJÄRJESTELMÄSTÄ  Stallings, Luku 2

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

Page 16: YLEISTÄ KÄYTTÖJÄRJESTELMÄSTÄ  Stallings, Luku 2

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ä

Page 17: YLEISTÄ KÄYTTÖJÄRJESTELMÄSTÄ  Stallings, Luku 2

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

Page 18: YLEISTÄ KÄYTTÖJÄRJESTELMÄSTÄ  Stallings, Luku 2

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ö...

Page 19: YLEISTÄ KÄYTTÖJÄRJESTELMÄSTÄ  Stallings, Luku 2

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

Page 20: YLEISTÄ KÄYTTÖJÄRJESTELMÄSTÄ  Stallings, Luku 2

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

Page 21: YLEISTÄ KÄYTTÖJÄRJESTELMÄSTÄ  Stallings, Luku 2

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

Page 22: YLEISTÄ KÄYTTÖJÄRJESTELMÄSTÄ  Stallings, Luku 2

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

Page 23: YLEISTÄ KÄYTTÖJÄRJESTELMÄSTÄ  Stallings, Luku 2

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

Page 24: YLEISTÄ KÄYTTÖJÄRJESTELMÄSTÄ  Stallings, Luku 2

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ä

Page 25: YLEISTÄ KÄYTTÖJÄRJESTELMÄSTÄ  Stallings, Luku 2

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

Page 26: YLEISTÄ KÄYTTÖJÄRJESTELMÄSTÄ  Stallings, Luku 2

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)

Page 27: YLEISTÄ KÄYTTÖJÄRJESTELMÄSTÄ  Stallings, Luku 2

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

Page 28: YLEISTÄ KÄYTTÖJÄRJESTELMÄSTÄ  Stallings, Luku 2

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

Page 29: YLEISTÄ KÄYTTÖJÄRJESTELMÄSTÄ  Stallings, Luku 2

KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen

2 - 29

Yksiajon ja moniajon vertailuYksiajon ja moniajon vertailu

Taulukko 2.2.

Page 30: YLEISTÄ KÄYTTÖJÄRJESTELMÄSTÄ  Stallings, Luku 2

Vrt. edellisen kalvon numeroihin!

Page 31: YLEISTÄ KÄYTTÖJÄRJESTELMÄSTÄ  Stallings, Luku 2

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

Page 32: YLEISTÄ KÄYTTÖJÄRJESTELMÄSTÄ  Stallings, Luku 2

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ä...

Page 33: YLEISTÄ KÄYTTÖJÄRJESTELMÄSTÄ  Stallings, Luku 2

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

Page 34: YLEISTÄ KÄYTTÖJÄRJESTELMÄSTÄ  Stallings, Luku 2

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

Page 35: YLEISTÄ KÄYTTÖJÄRJESTELMÄSTÄ  Stallings, Luku 2

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

Page 36: YLEISTÄ KÄYTTÖJÄRJESTELMÄSTÄ  Stallings, Luku 2

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),

Page 37: YLEISTÄ KÄYTTÖJÄRJESTELMÄSTÄ  Stallings, Luku 2

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

Page 38: YLEISTÄ KÄYTTÖJÄRJESTELMÄSTÄ  Stallings, Luku 2

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

Page 39: YLEISTÄ KÄYTTÖJÄRJESTELMÄSTÄ  Stallings, Luku 2

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

Page 40: YLEISTÄ KÄYTTÖJÄRJESTELMÄSTÄ  Stallings, Luku 2

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

Page 41: YLEISTÄ KÄYTTÖJÄRJESTELMÄSTÄ  Stallings, Luku 2

KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen

2 - 41

Virtuaalimuisti Virtuaalimuisti Kuva 2.10Kuva 2.10

Page 42: YLEISTÄ KÄYTTÖJÄRJESTELMÄSTÄ  Stallings, Luku 2

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

Page 43: YLEISTÄ KÄYTTÖJÄRJESTELMÄSTÄ  Stallings, Luku 2

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

Page 44: YLEISTÄ KÄYTTÖJÄRJESTELMÄSTÄ  Stallings, Luku 2

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)

Page 45: YLEISTÄ KÄYTTÖJÄRJESTELMÄSTÄ  Stallings, Luku 2

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, …

Page 46: YLEISTÄ KÄYTTÖJÄRJESTELMÄSTÄ  Stallings, Luku 2

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ä

Page 47: YLEISTÄ KÄYTTÖJÄRJESTELMÄSTÄ  Stallings, Luku 2

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

Page 48: YLEISTÄ KÄYTTÖJÄRJESTELMÄSTÄ  Stallings, Luku 2

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?

Page 49: YLEISTÄ KÄYTTÖJÄRJESTELMÄSTÄ  Stallings, Luku 2

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

Page 50: YLEISTÄ KÄYTTÖJÄRJESTELMÄSTÄ  Stallings, Luku 2

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

Page 51: YLEISTÄ KÄYTTÖJÄRJESTELMÄSTÄ  Stallings, Luku 2

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

Page 52: YLEISTÄ KÄYTTÖJÄRJESTELMÄSTÄ  Stallings, Luku 2

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

Page 53: YLEISTÄ KÄYTTÖJÄRJESTELMÄSTÄ  Stallings, Luku 2

KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen

2 - 53

Palvelupyyntö Palvelupyyntö

Page 54: YLEISTÄ KÄYTTÖJÄRJESTELMÄSTÄ  Stallings, Luku 2

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ä

Page 55: YLEISTÄ KÄYTTÖJÄRJESTELMÄSTÄ  Stallings, Luku 2

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

Page 56: YLEISTÄ KÄYTTÖJÄRJESTELMÄSTÄ  Stallings, Luku 2

KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen

2 - 56

POSIX-palvelupyyntöjäPOSIX-palvelupyyntöjä

Portable Operating System ("UNIX Style")

Page 57: YLEISTÄ KÄYTTÖJÄRJESTELMÄSTÄ  Stallings, Luku 2

KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen

2 - 57

POSIX-palvelupyyntöjä POSIX-palvelupyyntöjä Tan01 1-18Tan01 1-18

Page 58: YLEISTÄ KÄYTTÖJÄRJESTELMÄSTÄ  Stallings, Luku 2

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

Page 59: YLEISTÄ KÄYTTÖJÄRJESTELMÄSTÄ  Stallings, Luku 2

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ä

Page 60: YLEISTÄ KÄYTTÖJÄRJESTELMÄSTÄ  Stallings, Luku 2

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Ä

Page 61: YLEISTÄ KÄYTTÖJÄRJESTELMÄSTÄ  Stallings, Luku 2

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

Page 62: YLEISTÄ KÄYTTÖJÄRJESTELMÄSTÄ  Stallings, Luku 2

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

Page 63: YLEISTÄ KÄYTTÖJÄRJESTELMÄSTÄ  Stallings, Luku 2

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

Page 64: YLEISTÄ KÄYTTÖJÄRJESTELMÄSTÄ  Stallings, Luku 2

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

Page 65: YLEISTÄ KÄYTTÖJÄRJESTELMÄSTÄ  Stallings, Luku 2

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

Page 66: YLEISTÄ KÄYTTÖJÄRJESTELMÄSTÄ  Stallings, Luku 2

KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen

2 - 66

MoniprosessorijärjestelmäMoniprosessorijärjestelmä

Page 67: YLEISTÄ KÄYTTÖJÄRJESTELMÄSTÄ  Stallings, Luku 2

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

Page 68: YLEISTÄ KÄYTTÖJÄRJESTELMÄSTÄ  Stallings, Luku 2

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

Page 69: YLEISTÄ KÄYTTÖJÄRJESTELMÄSTÄ  Stallings, Luku 2

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

Page 70: YLEISTÄ KÄYTTÖJÄRJESTELMÄSTÄ  Stallings, Luku 2

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)

Page 71: YLEISTÄ KÄYTTÖJÄRJESTELMÄSTÄ  Stallings, Luku 2

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

Page 72: YLEISTÄ KÄYTTÖJÄRJESTELMÄSTÄ  Stallings, Luku 2

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

Page 73: YLEISTÄ KÄYTTÖJÄRJESTELMÄSTÄ  Stallings, Luku 2

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?