Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen2 - 1 YLEISTÄ KÄYTTÖJÄRJESTELMÄSTÄ Stallings, Luku 2 Käyttöjärjestelmät.

Samankaltaiset esitykset


Esitys aiheesta: "KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen2 - 1 YLEISTÄ KÄYTTÖJÄRJESTELMÄSTÄ Stallings, Luku 2 Käyttöjärjestelmät."— Esityksen transkriptio:

1 KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen2 - 1 YLEISTÄ KÄYTTÖJÄRJESTELMÄSTÄ Stallings, Luku 2 Käyttöjärjestelmät

2 KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen 2 - 2 Keskeisiä KJ:n osa-alueita Käyttäjä Laiteohjaimet ja laitteet LaiteajuritKeskeytyskäsittely PROSESSIEN HALLINTA SIIRRÄNTÄJÄRJESTELMÄ MUISTINHALLINTATIEDOSTOJÄRJESTELMÄ Sovellukset lohkot VarusohjelmatKomentotulkki Palvelupyynnöt suojaus RESURSSIEN HALLINTA

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

4 KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen 2 - 4 Käyttöjärjestelmät KJ:N TEHTÄVIÄ JA PALVELUJA

5 KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen 2 - 5 Hierarkia Kuva 2.1 Palvelupyynnöt Keskeytykset

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

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

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

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

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

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

12 KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen 2 - 12 Käyttöjärjestelmät KJ:N KEHITTYMINEN JA YLLÄPITO

13 KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen 2 - 13 KJ:n kehittäminen ja ylläpito n Laitteistot muuttuvat / uusia kehitetään u kytkimet, kortit, nauhat, levyt u merkkipohjaiset / graafiset päätteet u tuki virtuaalimuistille u muistin määrä kasvanut, väylät parantuneet, moniprosessorijärjestelmät, jne. n Tietojenkäsittelytavat muuttuvat u interaktiiviset reaaliaikaiset järjestelmät u ikkunointiympäristöt u paikallisverkot ja Internet u kuvankäsittely u...

14 KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen 2 - 14 KJ:n kehittäminen ja ylläpito n Jatkuvan kehitystarpeen vuoksi u modulaarinen rakenne u selkeät liittymät eri osien välillä u mahd. oliopohjainen toteutus F private vs. public data n Myös KJ:ssä puutteita ja virheitä u paikkopaketit (patches, service packages) u uudet KJ-versiot n Milloin aika tehdä KJ uudelleen alusta?

15 KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen 2 - 15 KJ:n historia lyhyesti Perusmallit: n Eräajojärjestelmä, yksiajo (Batch System) n Eräajojärjestelmä, moniajo (Multiprogramming, multitasking) n Osituskäyttöjärjestelmä (Time-Sharing) Nykyaikaistetut mallit: n Moniprosessorijärjestelmä (Multiprocessor) n Verkkokäyttöjärjestelmä (Networked systems) n Hajautettu järjestelmä (Distributed system) n Asiakas-palvelija-malli (Client-Server) KAIKKI TARJOAVAT NE SAMAT PERUSPALVELUT n Mitkä?

16 KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen 2 - 16 Käyttöjärjestelmät Eräajo Yksiajojärjestelmä

17 KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen 2 - 17 Eräajo & yksiajo (simple bacth systems) n Ensimmäiset KJ:t 50-luvun puolivälissä n Koneen muistissa yksinkertainen monitoriohjelma n Käyttäjä määritteli työnsä reikäkorteilla tai nauhalla (ns. kortinkuvat) erätyö = ohjauskortit + ohjelma + data n Operaattori työnsi kortit lukijaan ja käänsi vipua n Ohjauskortit kertoivat, milloin monitorin piti ladata muita palveluohjelmia (esim. kääntäjä) n Vain yksi työ kerrallaan suoritettavana, uusi työ ajoon vasta, kun edellinen valmis

18 KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen 2 - 18 Työnohjauskieli Työnohjauskieli (Job Control Language, JCL) n Monitorille tarkoitettuja kortinkuvia u mikä ohjelma käynnistettiin u mitä tiedostoja se käytti u minne tulosteet ohjattiin n 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ö...

19 KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen 2 - 19 Monitori Kuva 2.3 n Jatkuvasti muistissa n Luki kortinkuvan kerrallaan erätyötä suoritettavakseen n Kun sovellus ladattu muistiin, suoritus hyppäsi sen alkuun n Sovellusta suoritettiin kunnes u valmistui tai virhe u aika loppui n Kontrolli jälleen monitorille n Monitori luki seuraavan kortinkuvan

20 KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen 2 - 20 Monitori ja siirräntä n Monitori huolehti siirrännästä u siirrännän yksityiskohdat ei sovelluksen murheena n I/O-käsky oli itseasiassa aliohjelmakutsu monitorin alueella olevaan koodiin u oma käsky, 'palvelupyyntö' n Monitorin tarjoama palvelu u tarkasti, että sovellus ei vahingossa lukenut ohjauskorttia datakseen (-> liian vähän dataa?) u ohitti tarvittaessa kortteja, kunnes taas järkevä ohjauskortti (-> liikaa dataa?)

21 KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen 2 - 21 Monitori ja laitteistopiirteitä (1) n Muistinsuojaus u Monitori suojattava sovellukselta u CPU:n tarkistettava muistiosoitteet F laitteistossa kantarekisteri BASE n Keskeytysmekanismi u hallittu kontrollin siirto monitorin ja sovelluksen välillä u bitti PSW:ssä, keskeytyskäsittelyn alku laitetoiminto n Kellokeskeytys u ettei yksi sovellus valloittanut koko laitteistoa u viimeistään kello aiheutti keskeytyksen F kontrolli taas monitorille

22 KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen 2 - 22 Monitori ja laitteistopiirteitä (2) Etuoikeutetut käskyt (Priviledged Instructions) u siirräntäkäskyt u muistin rajarekisterin asettaminen u keskeytysten esto ja salliminen u jos sovellus yrittää käyttää näitä käskyjä, tuloksena poikkeus ‘tuntematon käskykoodi’ Etuoikeutettu vs. käyttäjätila (Supervisor/User mode) u vain laitteisto ja monitori voi asettaa (bitti PSW:ssä) u CPU suorittaa etuoikeutetun käskyn vain, jos on etuoikeutetussa tilassa

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

24 KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen 2 - 24 Käyttöjärjestelmät Moniajojärjestelmä

25 KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen 2 - 25 Moniajojärjestelmä (multiprogrammed batch systems) n Suoritettavaksi useita sovelluksia u Kun yksi odottaa esim. siirrännän valmistumista, CPU suorittaa toista

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

27 KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen 2 - 27 Lisävaatimuksia KJ:lle n Prosessien hallinta u kirjanpitoa prosesseista = PCB:t (Process Control Block) n Vuorottaminen u CPU toiselle prosessille, jos yksi jää odottamaan u tapahtumaohjattu tai aikaviipaletekniikka u prosessin tila: READY vs. BLOCKED n Muistinhallinta u sovelluksille löydettävä tilaa muistista u kirjanpito vapaista ja varatuista alueista

28 KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen 2 - 28 Yksiajon ja moniajon vertailu n Muistia 256 K n Tässä ei kilpailua oheislaitteistosta Taulukko 2.1

29 KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen 2 - 29 Yksiajon ja moniajon vertailu Taulukko 2.2.

30 Vrt. edellisen kalvon numeroihin!

31 KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen 2 - 31 Osituskäyttö (time-sharing systems) n Eräajossa käyttäjä ei voinut vaikuttaa sovelluksen suoritukseen sen käynnistyttyä Osituskäyttö huomioi muuttuneet käyttötavat: interaktiivinen päätetyöskentely u käyttäjä voi käynnistää sovelluksen itse u syötteet näppäimistöltä u tulostus näytölle n Ihminen koneeseen verrattuna hidas u tyypillinen käyttäjä tarvitsee CPU-aikaa vain 2s/min u järjestelmässä voi olla esim. 30 yhtäaikaista käyttäjää, eikä yksi edes huomaa muiden läsnäoloa

32 KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen 2 - 32 Osituskäyttö n Aikaviipalekello u vuorottelu ei pelkästään siirrännän odottelun perusteella u kullekin vuorotellen aikaviipale (esim. 50-100 ms), jotta voidaan taata kaikille siedettävät vasteajat n Prioriteetit u osituskäytölle suurempi prioriteetti, kuin erätöille tai taustalla ajettaviin töille F ettei käyttäjä hermostuisi päätteensä ääressä...

33 KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen 2 - 33 Käyttöjärjestelmät KESKEISIÄ KJ:N OSA-ALUEITA

34 KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen 2 - 34 Keskeisiä KJ:n osa-alueita Käyttäjä Laiteohjaimet ja laitteet LaiteajuritKeskeytyskäsittely PROSESSIEN HALLINTA SIIRRÄNTÄJÄRJESTELMÄ MUISTINHALLINTATIEDOSTOJÄRJESTELMÄ Sovellukset lohkot VarusohjelmatKomentotulkki Palvelupyynnöt suojaus RESURSSIEN HALLINTA

35 KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen 2 - 35 Keskeisiä KJ:n osa-alueita n KJ eräs monimutkaisimmista ohjelmista n 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

36 KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen 2 - 36 1) Prosessi = Suoritettavaksi otettu ohjelma u koodi muistissa (voi olla yhteiskäytössä) u oma data-alue ja pino muistissa (muuttujat) u kaikki ei välttämättä yhtäaikaa muistissa + KJ:n ylläpitämät hallinnolliset rakenteet u prosessin kuvaaja PCB (Process Control Block) F CPU:n dataa prosessin suorittamisesta prosessorin rekistereiden arvot F KJ:n dataa prosessin hallitsemiseksi tunnistus, omistaja, prioriteetti.. tietoja prosessin varaamasta muistista, tiedostoista, … prosessin tila (esim. odottaa siirrännän valmistumista), …

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

38 KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen 2 - 38 2) Muistinhallinta n Suoritusaikainen tallennus u prosessit (ohjelmat+data) keskusmuistissa (primary memory) n Pysyvä tallennus u tiedostot (ohjelmat+data) ‘tukimuistissa’ (secondary memory) n Tilan allokointi u KJ huolehtii automaattisesti u kirjanpito vapaista muistialueista / levylohkoista u kirjanpito varatuista muistialueista / levylohkoista u tarvittaessa KJ käyttää levyä muistin jatkeena (virtuaalimuisti) n Suojaus ja käyttöoikeudet u prosessien eristäminen toisistaan u silti tuettava modulaarista ohjelmointia F koodin / datan yhteiskäyttö sallittua u muistinsuojaus, tiedostojen käyttöoikeudet

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

40 KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen 2 - 40 Virtuaalimuisti Kuva 2.9 Kirjanpito?  sivutaulu

41 KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen 2 - 41 Virtuaalimuisti Kuva 2.10

42 KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen 2 - 42 Virtuaalimuisti n Ohjelma käyttää virtuaaliosoitteita, ts. osoitteita ohjelman alun suhteen n Laitteisto käyttää aina fyysisiä (todellisia) osoitteita n MMU tekee osoitemuunnoksen aina suoritusaikana muistiin viitattaessa n Jos viitattu osa ei keskusmuistissa u MMU aiheuttaa keskeytyksen u jos muistissa ei ole vapaata tilaa, KJ vapauttaa jonkin alueen u KJ hakee levyltä puuttuvan osan muistiin

43 KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen 2 - 43 3) Tietoturva ja suojaus n Käyttäjien tunnistus u Vain tunnuksen & salasanan tuntevat käyttäjät saavat ottaa istunnon koneeseen u Prosessilla aina omistaja n Resurssien käyttöoikeus u Prosessi käyttää resurssia vain omistajan luvalla F tiedostoihin liittyy omistaja ja käyttöoikeudet F vain omistaja voi muuttaa käyttöoikeuksia u Ohjelmat ja data suojattava toisilta ohjelmilta F erityisen tärkeää on suojata KJ sovelluksilta F MMU ja ajaonaikainen osoitemuunnos u Resurssien yhteiskäyttö silti sallittava

44 KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen 2 - 44 4) Resurssien hallinta n Resurssi? u CPU, muisti, tiedosto, I/O-laite … u CPU:n allokointi = vuorottaminen (skedulointi) n Milloin? u Prosessia käynnistettäessä, suoritettaessa, tapettaessa u KJ:n päätöksillä, prosessin (palvelu)pyyntöjen perusteella n Vastausaika u Interaktiivisuus vs. tausta-ajo (eräajo) u KJ:n palveluprosessi vs. sovellus n Tasapuolisuus u Samanlaisille prosesseille samantasoinen palvelu n Tehokkuus u Maksimoi läpimenoaste, minimoi vastausajat u Palvele mahdollisimman useaa käyttäjää (sovellusta)

45 KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen 2 - 45 Vuorottamisen perusideoita n Suoritukseen otetuille prosesseille READY-jono (short term queue) u vuorottaja valitsee seuraavaksi suoritettavan prosessin (jonon ensimmäinen) u Round-Robin: uusi työ jonon loppuun ja CPU:lta pois tuleva työ jonon loppuun Suoritettavaksi ottamista odottaville prosesseille oma jono (long term queue) u ei liian monta prosessia yhtäaikaa READY-jonoon (moniajoaste) n Kullakin tapahtumalla omat odotusjononsa u I/O-laitteet, semaforit, ajastimet, …

46 KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen 2 - 46 Milloin? Kuva 2.11 … kun CPU suorittaa KJ:tä

47 KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen 2 - 47 5) Hierarkkinen rakenne n KJ muodostuu useista erillisistä tasoista n Hierarkian ansiosta kokonaisuus jakaantuu helpommin hallittaviin osiin u suunnittelu, toteutus, testaus n Kullakin tasolla oma osajoukko tehtävistä u ylemmillä tasoilla kehittyneimmät KJ:n palvelut u alemmilla tasoilla laiteläheisimmät toiminnot n Taso tarjoaa palvelunsa ylemmälle tasolle, käyttää alemman/alempien tasojen palveluja n Rajapinnat hyvin määriteltyjä u tason toteutusta voi muuttaa koskematta muihin tasoihin

48 KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen 2 - 48 Laitetasot Brown, Denning 1984 LevelNameObjectsExample Operations 4InterruptsInterrupt-handlingInvoke, mask, unmask, programsretry 3ProceduresProcedures, call stack Mark stack, call, return 2Instruction SetEvaluation stack, micro- Load, store, add, program interpreter, subtract, branch scalar and array data 1Electronic circuitsRegisters, gates, buses, Clear, transfer, activate, etc. complement Mitä laitteistopiirteitä tarvitaan KJ:n toteutuksessa?

49 KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen 2 - 49 KJ:n laiteriippuvat tasot LevelNameObjectsExample Operations 7Virtual MemorySegments, pagesRead, write, fetch 6Local secondaryBlocks of data,Read, write, allocate, free storedevice channels 5Primitive processesPrimitive process,Suspend, resume, wait, signal semaphores, ready list P / V Muistinhallinta: MMU:n rakenteen huomiointi Laiteajurit: ohjaimien ja esim. levyn rakenteen huomiointi Vuorottaja: rekistereiden talletus/palautus, synkronointiprimitiivit

50 KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen 2 - 50 KJ:n laiteriippumattomat palvelut LevelNameObjectsExample Operations 13ShellUser programmingStatements in shell language environment 12User processesUser processesQuit, kill, suspend, resume 11DirectoriesDirectoriesCreate, destroy, attach, detach, search, list 10DevicesExternal devices, such Create, destroy, open, close, as printer, displays read, write and keyboards 9File systemFilesCreate, destroy, open, close read, write 8CommunicationsPipesCreate, destroy, open. close, read, write

51 KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen 2 - 51 KJ-toteutuksen vaikeat kohdat n Toimintojen synkronointi / ajoitus u joskus odotettava, että jotain muuta tapahtuu, ennenkuin voi jatkaa u keskeytysten oikea priorisointi u laitteistosignaalit tai ohjelmien toisilleen välittämät tiedot eivät saa kadota tai kahdentua Poissulkeminen (Mutual exclusion) u eräitä resursseja voi käyttää vain yksi kerrallaan F esim. kirjoitin tai yhteinen tiedosto / data Lukkiutuminen / Nälkiintyminen (Deadlock, Starvation) u vaikeaa havaita u odotettava resursseja, jotka ovat toisten hallussa u huono prioriteetti, ei saada ensinkään palvelua

52 KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen 2 - 52 Käyttöjärjestelmät PALVELUPYYNNÖT

53 KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen 2 - 53 Palvelupyyntö

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

55 KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen 2 - 55 read(fd, buffer, nbytes) Tan01 1-17

56 KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen 2 - 56 POSIX-palvelupyyntöjä Portable Operating System ("UNIX Style")

57 KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen 2 - 57 POSIX-palvelupyyntöjä Tan01 1-18

58 KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen 2 - 58 Käyttöesimerkki Tan01 1-19 ”Riisuttu” komentotulkki

59 KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen 2 - 59 WIN32 API -palvelupyyntöjä Kehittyvät uusien käyttöjärjestelmä- versioiden myötä

60 KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen 2 - 60 Käyttöjärjestelmät NYKYAIKAISEN KJ:N PIIRTEITÄ

61 KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen 2 - 61 Uutuuksia n Laitteistokehitys u moniprosessorijärjestelmät u nopeat verkot u nopeammat prosessorit u suurempi muisti, uudet talletusmediat n Ohjelmistojen / käyttötapojen muutos u Asiakas/palvelija-malli u Internet ja WWW u Multimedia

62 KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen 2 - 62 Mikrokernel n Vain välttämättömät laitetoiminnot ytimeen, joka suoritetaan etuoikeutetussa tilassa n keskeytyskäsittelyn alkutoimet u mikä / kuka aiheutti? n vuorottamisen laitetoiminnot u rekistereiden kopiointia n muistinhallinnan laitetoiminnot u MMU:n asetukset, suojaus n siirrännän laitetoiminnot u ohjaimien käyttö, suojaus n prosessien välinen sanomanvälitys u pyyntöjen välitys, kopiointia prosessien muistialueille

63 KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen 2 - 63 Mikrokernel n Muut KJ:n palvelut ‘tavallisina’ prosesseina, jotka suoritetaan käyttäjätilassa u laiteajurit, tiedostojärjestelmä, virtuaalimuisti… u odottavat vuorottamista Ready-jonossa u eivät pääse suoraan käsiksi laitteistoon n Toteutus perustuu sanomanvälitykseen u IPC, inter process communication n Joustavuus, laajennettavuus, siirrettävyys... n Vrt. monoliittinen ydin u KJ:n keskeiset toiminnot yhdessä ajomoduulissa u yleisempää, nopeampaa

64 KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen 2 - 64 KJ:n ydin Kuva 4.10 Monoliittinen ydin

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

66 KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen 2 - 66 Moniprosessorijärjestelmä

67 KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen 2 - 67 SMP (Symmetric Multiprocessing) n Koneessa useita CPU:ita u kaikki rakenteeltaan ja tehtäviltään samanlaisia F SMP, Symmetric Multiprocessing u aidosti rinnakkainen suoritus u kukin voi suorittaa KJ:tä tai sovellusta n Muu laitteisto yhteiskäytössä u muisti, väylät, I/O-laitteet n Useamman CPU:n mukanaolo ei vaikuta normaaliin ohjelmointiin u KJ:ssä sensijaan paljonkin uutta mietittävää n Tehokkuus, vikasietoisuus, laajennettavuus

68 KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen 2 - 68 3 prosessia ja SMP (2 CPU:ta) Not Running

69 KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen 2 - 69 Verkkojärjestelmä n Useita erillisiä (mahd. erilaisia) solmukoneita n Kullakin koneella oma KJ ja omat prosessit n Mahd. yhteiskäytössä oleva tdstojärjestelmä n Globaali käyttäjien tunnistus Verkkojärjestelmä n Käyttäjä tuntee ja käyttää koneita nimeltä n Toisella koneella olevien tiedostojen käyttö n KJ:t voivat olla erilaisia eri koneissa

70 KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen 2 - 70 Hajautettu järjestelmä Hajautettu järjestelmä n Useita erillisiä koneita n Kullakin koneella oma KJ ja omat prosessit n Mahdollisesti yhteiskäytössä oleva tiedostojärjestelmä n Globaali käyttäjien tunnistus Hajautettu järjestelmä n Käyttäjän ei tarvitse tuntea koneita nimeltä n KJ hoitaa mm. kuormantasauksen n Globaali KJ (kaikissa samanlainen)

71 KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen 2 - 71 Asiakas-palvelija-malli n Sovellus jaettu useampaan osaan u esim. WWW-palvelija ja selain (käyttöliittymä) n Asiakas ja palvelija voivat sijaita eri koneissa u WWW-palvelija konehuoneen palvelimella, selainohjelma työhuoneen koneella n tai samassa koneessa u ikkunamanageri ja sovellusohjelma n Palvelija palvelee useita asiakkaita n Sanomanvälitys u TCP/IP-protokolla, etäproseduurikutsu

72 KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen 2 - 72 Reaaliaikajärjestelmä n Tarve reagoida ulkopuolisiin tapahtumiin u Ohjausjärjestelmät: laboratoriokokeet, teollisuus, lentoliikenne, teleliikenne, robotiikka n Tapahtumat tulevat reaaliajassa u Ehdittävä käsitellä ennen uutta n Hard Real-time vs. Soft Real-time u Ei saa missata aikarajoja (deadline) vs. yrittää parhaansa, saa joskus myöhästyäkin n Periodinen vs. aperiodinen u Ajallinen tai määrällinen säännöllisyys u Alku- ja/tai päättymisajalle aikaraja

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


Lataa ppt "KJ-I S2003 / Auvo Häkkinen, CT50A2601 / Heikki Kälviäinen2 - 1 YLEISTÄ KÄYTTÖJÄRJESTELMÄSTÄ Stallings, Luku 2 Käyttöjärjestelmät."

Samankaltaiset esitykset


Iklan oleh Google