Jakso 8 Ohjelman toteutus järjestelmässä

Samankaltaiset tiedostot
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

Luento 8 Ohjelman toteutus järjestelmässä. Prosessi Prosessin esitysmuoto järjestelmässä Käyttöjärjestelmä KJ-prosessit

Luento 8 Ohjelman toteutus järjestelmässä

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

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

Luento 8 Ohjelman toteutus järjestelmässä

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

Jakso 8 Ohjelman suoritus järjestelmässä

Jakso 8 Ohjelman suoritus järjestelmässä

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

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

Luentokerta 5 Ohjelman toteutus järjestelmässä (prosessi, käyttöjärjestelmä) Järjestelmän ulkoinen muisti

Tiedon muuttumattomuuden tarkistus Järjestelmän sisäinen muisti Ohjelman toteutus järjestelmässä

Tietokoneen toiminta Copyright Teemu Kerola Konekohtainen, jokaisella omansa Käskyt ovat 1 tai useamman tavun mittaisia

Jakso 12 Yhteenveto. Keskeiset asiat Teemu Kerola, K2000

Tietokoneen toiminta, K Tavoitteet (4)

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

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

Käyttöjärjestelmät: prosessit

Muistihierarkia Kiintolevyt I/O:n toteutus

Järjestelmän ulkoinen muisti I/O

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

Luento 12 Yhteenveto

Ohjelman ja käyttöjärjestelmän toteutus

Luento 5 (verkkoluento 5) Suoritin ja väylä

Luento 12 Yhteenveto. Keskeiset asiat Mitä hyötyä tästä on? Mitä seuraavaksi? Kurssit? Asiat? Teemu Kerola, Copyright 2010

Tietokoneen toiminta Keskeiset asiat Mitä hyötyä tästä on? Mitä seuraavaksi? Kurssit? Asiat? Teemu Kerola, Copyright 2010

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

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

Muistihierarkia Kiintolevyt I/O:n toteutus

Luento 1 Tietokonejärjestelmän rakenne

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

Prosessi perinteisesti

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

Käyttöjärjestelmät II

Tavoitteet (4) Luento 12 Yhteenveto. Keskeisiä asioita. Mitä hyötyä tästä on? (2) Esimerkkikone: TTK-91 laitteisto suoritin - CPU

Luento 12 Yhteenveto. Keskeiset asiat Mitä hyötyä tästä on? Mitä seuraavaksi? Kurssit? Asiat?

Keskeiset asiat Mitä hyötyä tästä on? Mitä seuraavaksi? Kurssit? Asiat? Teemu Kerola, Copyright Tavoitteet (4)

Luento 1 Tietokonejärjestelmän rakenne

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

1. Keskusyksikön rakenne

Kertausluento 1 (lu01, lu02, lu03) Tietokonejärjestelmän rakenne ttk-91 ja sillä ohjelmointi

Tietokoneen toiminta, Kevät Copyright Teemu Kerola Järjestelmän eri tasot Laitteiston nopeus

Luento 5 (verkkoluento 5) Suoritin ja väylä

Käyttöjärjestelmät II

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

Kertausluento luennoista 1-3 1

Jakso 5 Suoritin ja väylä

Jakso 5 Suoritin ja väylä

Jakso 5 Suoritin ja väylä. Suorittimen rakenne Väylän rakenne Käskyjen suoritussykli Poikkeukset ja keskeytykset TTK-91:n ja KOKSI:n rakenne

Luento 4 (verkkoluento 4) Aliohjelmien toteutus

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

Luento 12 Yhteenveto. Keskeiset asiat Mitä hyötyä tästä on? Mitä seuraavaksi? Kurssit? Asiat? Teemu Kerola, K2000

Tietokoneen toiminta, K Tavoitteet (4)

Luento 4 (verkkoluento 4) Aliohjelmien toteutus

Luento 9 Järjestelmän ulkoinen muisti

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

PROSESSIT JA NIIDEN HALLINTA

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

Teemun juustokakku Rekisterien, välimuistin, muistin, levymuistin ja magneettinauhan nopeudet suhteutettuna juuston hakuaikaan juustokakkua tehdessä?

Luento 1 (verkkoluento 1) Tietokonejärjestelmä

Luento 12 Yhteenveto. Keskeiset asiat Mitä hyötyä tästä on? Mitä seuraavaksi? Kurssit? Asiat? 29/01/2001 Teemu Kerola, Copyright 2001

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

Luento 1 (verkkoluento 1) Ohjelman sijainti Ohjelman esitysmuoto Laitteiston nopeus

Suoritin. Jakso 5 Suoritin ja väylä. TTK-91 muistin rakenne. TTK-91 suorittimen rakenne

Luento 12 Yhteenveto

Luento 12 Yhteenveto

Luento 4 Aliohjelmien toteutus

Luento 5 Suoritin ja väylä

Muistihierarkia (4) Luento 9 Järjestelmän ulkoinen muisti

Suoritin. Luento 5 Suoritin ja väylä. TTK-91 muistin rakenne. TTK-91 suorittimen rakenne

Luento 5 Suoritin ja väylä

Suoritin. Luento 5 Suoritin ja väylä. TTK-91 suorittimen rakenne (1) TTK-91 muistin rakenne. Käskyjen nouto- ja suoritussykli (5)

Jakso 4 Aliohjelmien toteutus

Luento 9 Järjestelmän ulkoinen muisti

Muistihierarkia (4) Luento 9 Järjestelmän ulkoinen muisti

Muistihierarkia (4) Luento 9 Järjestelmän ulkoinen muisti. Ohjelman muistiosoitteet (3) Virtuaalimuisti (3) Virtuaalimuistin toteutus.

Sisältöä SÄIKEET, SMP

Aliohjelmien toteutus Suoritin ja väylä

Luento 9 Järjestelmän ulkoinen muisti

Luento 9 Järjestelmän ulkoinen muisti

Luento 9 Järjestelmän ulkoinen muisti

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

Jakso 4 Aliohjelmien toteutus

Luento 9 Järjestelmän ulkoinen muisti

Aliohjelmatyypit (2) Jakso 4 Aliohjelmien toteutus

Oppimistavoitteet kurssilla Tietokoneen toiminta

Luento 9 Järjestelmän ulkoinen muisti

Luento 9 Järjestelmän ulkoinen muisti. Muistihierarkia Kiintolevyt Muut pyörivät levyt I/O:n toteutus

Luento 3 (verkkoluento 3) Ttk-91 konekielinen ohjelmointi. Ohjelman esitysmuoto Konekielinen ohjelmointi ttk-91:llä (Titokone, TitoTrainer)

Tietokoneen toiminta (Computer Organization I)

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

Luento 9 Järjestelmän ulkoinen muisti

Suoritin. Luento 5 Suoritin ja väylä. TTK-91 suorittimen rakenne (1) TTK-91 muistin rakenne

Luento 5 Suoritin ja väylä

Luento 5 Suoritin ja väylä

Luento 4 Aliohjelmien toteutus

Jakso 4 Aliohjelmien toteutus. Tyypit Parametrit Aktivointitietue (AT) AT-pino Rekursio

Kertausluento 2 (lu04, lu05, lu06) Aliohjelmien toteutus Suoritin, väylä, tiedon esitys

Transkriptio:

Jakso 8 Ohjelman toteutus järjestelmässä Prosessin esitysmuoto järjestelmässä Käyttöjärjestelmä KJ-prosessit 1 Prosessi (4) Järjestelmässä olevan ohjelman esitysmuoto Järjestelmässä voi olla samalla kertaa monta prosessia joko samasta tai eri ohjelmasta käyttäjän (ihmisen) näkökulma ja aikaskaala (1 min, 1 sek?) suorittimella on yksi prosessi kerrallaan suorituksessa laitteiston näkökulma ja aikaskaala (1 ms, 1 µs, 1 ns?) Muut prosessit ovat odottamassa jotakin suoritinta?, I/O:ta?, viestiä toiselta prosessilta? vapaata muistitilaa 2 Jakso 8, Ohjelman suoritus 1

Prosessi suoritin prosessi P2 väylä Prosessi P1 Prosessi P2 Prosessi P3 Prosessi P1 muisti Data - ohjelmien - KJ:n Ohjelmakoodit ohjain levy Ohjelma P Ohjelma Q 3 Prosessin vaihto (4) Suorittimella suoritusvuorossa olevan prosessin vaihtaminen Tapahtuu aika usein keskimäärin noin 2000-3000 konekäskyn välein? Esim. 50-500 kertaa sekunnissa? Iso operaatio - paljon kopiointia satoja konekäskyjä 4 Jakso 8, Ohjelman suoritus 2

Prosessin elinkaari (9) ready-to-run valmis suoritukseen running suorituksessa luonti odottaa poistettu tai tapettu Prosessin viisi suoritustilaa waiting Milloin tilanvaihto tapahtuu Mitä tilanvaihdossa tapahtuu? Mitä suoritin tietää suorituksessa olevasta prosessista? 5 Prosessin esitysmuoto järjestelmässä (4) PCB - Prosessin kuvaaja eli kontrollilohko (PCB - process control block) isohko tietue, joka sisältää kaiken yhdestä prosessista muistialueet, tiedostot, tiedostojen käsittelykohdat ei suorituksessa oleville myös: suorittimen tila (laiterekisterit, MMU:n rekisterit, kontrollirekisterit) joka prosessista oma PCB luodaan prosessin luonnin yhteydessä ja tuhotaan prosessin päättyessä käyttöjärjestelmärutiinit manipuloivat PCB:tä 6 Jakso 8, Ohjelman suoritus 3

Prosessin kuvaajan sisältö (9) Prosessin tunniste 14023 Prioriteetti suorittimen vuoronantoa varten 143 Prosessin tila ja/tai odottamisen syy R-to-R Suoritinympäristö talletettuna odottamisen aikana rekisterit, PC, SP, FP, tilarekisterit Seuraavaksi suoritettavan käskyn osoite Main {} Poikkeuskäsittelijöiden osoitteet (ellei oletusarv.) Aikaviipale Käytössä olevat muistialueet, aukiolevat tiedostot KJ:n hallintotietoa (kokonaisaika, etc etc) 7 Prosessin tilanvaihdon toteutus (9) Prosessin tilanvaihto tapahtuu siirtämällä prosessi (sen PCB) jonosta toiseen ready-to-run jono (tai jonot) running jono jota ei oikeastaan ole olemassa waiting jono joka tyypille oma jononsa esim: laitteen Disk1 I/O:n valmistumista odottavat esim: näppäimistön painallusta odottavat esim: kellolaitekeskeytystä odottavat esim: prosessilta 1345 signaalia odottavat 8 Jakso 8, Ohjelman suoritus 4

Prosessit jonoissa (1) R-to-R 1056 1766 Running 0188 Disk1 0036 7654 9878 waiting Timer 0555 Msg from 1345 2222 Prosessin 9878 kuvaaja (PCB) Vuoronanto: valitse seuraava prosessi Ready-to-Run -jonosta ja siirrä se suoritukseen CPU:lle (kopioi tämän prosessin suorittimen tila suorittimelle) 9 KJ esimerkki: I/O keskeytys (5) R-to-R R Disk1 Q Tdriver Tdriver Tdriver Tdriver Running P waiting Timer S Msg from Tdriver I/O keskeytys laitteelta Disk1 prosessille Tdriver? Suoritin havaitsee keskeytyssignaalin ja suorittaa I/O keskeytyskäsittelyrutiinin (P:n ympäristössä) Tdriver siirretään R-to-R jonoon P:n suoritus jatkuu vai jatkuuko? U 10 Jakso 8, Ohjelman suoritus 5

KJ esimerkki: I/O keskeytys (ei anim) R-to-R R Q Running P Disk1 Tdriver waiting Timer S Msg from Tdriver U I/O keskeytys laitteelta Disk1 prosessille Tdriver? Suoritin havaitsee keskeytyssignaalin ja suorittaa I/O keskeytyskäsittelyrutiinin (P:n ympäristössä) Tdriver siirretään R-to-R jonoon P:n suoritus jatkuu vai jatkuuko? 11 KJ esim: aikaviipalekeskeytys (7) R-to-R waiting QR P Q P Running R P P P Disk1 Tdriver R R R R R Timer S R PR Msg from Tdriver U P saa aikaviipalekeskeytyksen? P siirretään takaisin R-to-R jonoon Seuraava prosessi R saa suoritusvuoron Entä jos P olisi pyytänyt levy I/O:ta Disk1:ltä? 12 Jakso 8, Ohjelman suoritus 6

KJ esim: aikaviipalekesk. (ei anim) R-to-R R Q P Running P waiting Disk1 Timer Tdriver S Msg from Tdriver U P saa aikaviipalekeskeytyksen? P siirretään takaisin R-to-R jonoon Seuraava prosessi R saa suoritusvuoron Entä jos P olisi pyytänyt levy I/O:ta Disk1:ltä? 13 Prosessin vaihto (4) Vaihdon tekee KJ rutiini sillä hetkellä suorittavan prosessin ympäristössä Talleta vanhan prosessin suoritinympäristö suorittimelta omalle talletusalueelle muistiin talleta kaikki suorittimella olevat tiedot muistiin Kopio uuden prosessin suoritinympäristö omalta talletusalueeltaan suorittimelle lataa kaikki suorittimen rekisterit (myös PC!) Uuden prosessin suoritus jatkuu täsmälleen siitä mihin viime kerralla jäätiin sama konekäsky, käytönnössä sama suoritusympäristö! Usein keskellä prosessin vaihtoa suorittavaa KJrutiinia 14 Jakso 8, Ohjelman suoritus 7

Prosessin prioriteetti (3) Prosessin tärkeysjärjestys suorittimella esim. pieni numero iso prioriteetti Joka prioriteetti(luokalle) oma R-to-R jononsa KJ prosesseilla parempi prioriteetti kuin käyttäjätason prosesseilla tosiaikasovelluksen prosesseilla parempi prioriteetti kuin KJ prosesseilla muistakaa antaa KJ:lle aikaa aina joskus! Prioriteetti voi vaihdella prosessin elinaikana paljon suoritinaikaa huonompi prioriteetti kauan R-to-R jonossa parempi prioriteetti (prosessi siirretään korkeamman prioriteetin R-to-R jonoon) 15 Käyttäjän näkökulma (käyttö)järjestelmään Miten järjestelmä toimii minun ohjelmani kanssa Onko järjestelmä riittävän nopeapelaamaan suosikkipeliäni isolla näytöllä? Onko minun helppo asentaa uusi ohjelma koneelle? Onko minun helppo muuntaa (portata) ohjelmani tähän käyttöjärjestelmään? Miten muistin lisääminen vaikuttaisi minun ohjelmani nopeuteen? 16 Jakso 8, Ohjelman suoritus 8

Käyttöjärjestelmän näkökulma (käyttö)järjestelmään Ovatko kaikki systeemin resurssit mahdollisimman hyvässä käytössä? Mikä on keskimääräinen jonon pituus (prosessien lukumäärä) suorittimella? Minkä osan ajasta suoritin odottaa järkevää työtä? Minkä osan ajasta kovalevyn hakuvarsi on liikkeessä? Miten usein datamuistiviitteet löytyvät välimuistista? Miten muistin lisääminen vaikuttaisi nopeuteen? 17 Käyttöjärjestelmä käyttöliittymänä laitteistoon Loppukäyttäjälle (ihmiselle) Sovellusohjelmalle Piilottaa laitteiston erityispiirteet käyttäjiltä käskykanta konekäskynrakenne suorittimen toteutus ja suorittimien lukumäärä I/O:n toteutus I/O-laitteiden sijainti Käyttäjät /sovellukset KJ HW 18 Jakso 8, Ohjelman suoritus 9

Käyttöjärjestelmän tavoitteet Laiteriippumaton (HWriippumaton) käyttöliittymä laitteistoon KJ järjestelmää on helppo käyttää järjestelmä antaa reilua palvelua kaikille sovellukset on helppo tehdä sovellukset helppo siirtää muista järjestelmistä Sovellukset KJ:n laiteriippumaton taso KJ:n laitesidonnainen taso HW 19 KJ:n travoitteet (jatk) Järjestelmän resurssien tehokas hallinta kaikista resursseista saatava maksimi hyöty joustava resurssien yhteiskäyttö tiukka tietosuoja 20 Jakso 8, Ohjelman suoritus 10

Käyttöjärjestelmä resurssien vartijana Suoritinaikaa reilusti kaikille kukaaan ei odota suoritinta ikuisesti kriittiset prosessit saavat ajoissa suoritinaikaa Tiedostojen (koodi, data) tehokas käyttö laitteistosta ja sijainnistya riippumaton käyttö helppo yhteiskäyttö ja samalla tietojen suojaus Tietoliikenneverkkojen käyttö laiteriippumatoin käyttö yhteiskäyttö ja tiedon suojaus Hallintokirjanpito 21 KJ järjestelmän eheyden turvaajana Varauduttu kaikkiin mahdollisiin virheisiin Sovellusohjelmat eivät voi häiritä KJ:tä tai muita prosesseja tahallaan (esim. Tietokoneviirukset) vahingossa (yleisin tapa) Järjestelmä ei lukkiudu tai kaadu KJ:n omat tietorakenteet aina eheitä sovellusohjelmat eiväy koske KJ:n tietorakenteisiin sovellusohjelmat aina lopulta antavat vuoron KJ:lle 22 Jakso 8, Ohjelman suoritus 11

Käyttöjärjestelmän toteutus (5) Joukko prosesseja ja proseduureja prosessit elävät omaa elämäänsä (etuoikeutetussa tilassa eli root ina?) koko ajan swapper (Unix) - muistinhallintaprosessi init prosessi (Unix) - kaikkien käyttäjätason prosessien äiti laiteajurit proseduurit suoritetaan sen hetkisen prosessin ympäristössä (etuoikeutetussa tilassa?) keskeytyskäsittelijät Saavat kontrollin aina tarvittaessa keskeytykset, SVC, ajastimet 23 KJ-palvelun kontrollin palautus Aliohjelmakutsut CALL EXIT SVC SVC IRET Viestit viesti vastausviesti lähettäjä odottaa vastausta RECEIVE:ssä Ajastimet ja muut keskeytykset keskeytys IRET 24 Jakso 8, Ohjelman suoritus 12

SIIRRÄNNÄN HIERARKIA muuttujat SOVELLUS laiteriippumaton taso KÄYTTÖJÄRJESTELMÄ keskeytys laiteajurit LAITEOHJAIMET syöttö tulostus KJ-esimerkki: laiteajuri Aliohjelmana (eli proseduurina) laiteajuri suoritetaan KJ-rutiinina tavallisen SVC-kutsun kautta Vain yksi kutsu kerrallaan suorituksessa? Miksi? Miten voidaan valvoa? Sov. prosessi Laiteajuri aliohj SVC iret 26 Jakso 8, Ohjelman suoritus 13

KJ-esimerkki: laiteajuri Aliohjelmana (eli proseduurina) laiteajuri suoritetaan KJ-rutiinina tavallisen aliohjelmakutsun tai SVC-kutsun kautta osa tai kaikki koodista voi olla etuoikeutettua Vain yksi kutsu kerrallaan suorituksessa? Miksi? Miten voidaan valvoa? Laiteajuri (osa etuoikeut.) Sov. prosessi call SVC exit ei etuoik. osa iret etuoik. osa 27 KJ-esimerkki: laiteajuri Prosessina proseduurina kutsuttu laiteajurin tynkä (stub) lähettää I/O-pyynnön viestinä laiteajuriprosessille ja odottaa vastausta tynkä voi olla käyttäjätilainen ajuriprosessi voi ola (joskus) etuoikeutettu vaatii prosessien välistä viestintää Sov. prosessi call Laiteajuri stub send msg Laiteajuri pros receive exit msg receive send iret 28 Jakso 8, Ohjelman suoritus 14

-- Jakson 8 loppu -- [Tane99] Lisää tietoa? KJ kurssit, RIO, HajJärj 29 Jakso 8, Ohjelman suoritus 15