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

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

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

Jakso 8 Ohjelman suoritus järjestelmässä

Jakso 8 Ohjelman suoritus järjestelmässä

Jakso 8 Ohjelman toteutus järjestelmässä

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

Luento 8 Ohjelman toteutus järjestelmässä

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ä. Tietokonejärjestelmä. Prosessi (4) Prosessi. Prosessin elinkaari (11) Prosessin vaihto (3)

Luento 8 Ohjelman toteutus järjestelmässä

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

Muistihierarkia Kiintolevyt I/O:n toteutus

Järjestelmän ulkoinen muisti I/O

Muistihierarkia Kiintolevyt I/O:n toteutus

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

Luento 9 Järjestelmän ulkoinen muisti

Luento 9 Järjestelmän ulkoinen muisti

Luento 9 Järjestelmän ulkoinen muisti

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

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

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

Luento 9 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

Muistihierarkia. Virtuaalimuisti. Tiedostojärjestelmä. Levymuistin saantiaika. Tietokoneen toiminta Luento 9, Ulkoinen muisti ja I/O 1

Muistihierarkia Kiintolevyt I/O:n toteutus. Käännös, Linkitys Lataus

Tietokoneen toiminta Teemu Kerola, Copyright Muistihierarkia

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

Tietokoneen toiminta, K Tavoitteet (4)

Jakso 12 Yhteenveto. Keskeiset asiat Teemu Kerola, K2000

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.

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

Käyttöjärjestelmät: prosessit

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

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

1. Keskusyksikön rakenne

Luento 4 Aliohjelmien toteutus

Luento 12 Yhteenveto

Luento 1 Tietokonejärjestelmän rakenne

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

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

Luento 2 (verkkoluento 2) Ttk-91 järjestelmä

Jakso 5 Suoritin ja väylä

Luento 4 (verkkoluento 4) Aliohjelmien toteutus

Luento 1 Tietokonejärjestelmän rakenne

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

Jakso 4 Aliohjelmien toteutus

Jakso 5 Suoritin ja väylä

Luento 2 (verkkoluento 2) Ttk-91 järjestelmä

Aliohjelmatyypit (2) Jakso 4 Aliohjelmien toteutus

Luento 4 (verkkoluento 4) Aliohjelmien toteutus

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

Jakso 4 Aliohjelmien toteutus

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

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

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

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 5 Suoritin ja väylä

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

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

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

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

Luento 4 Aliohjelmien toteutus

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

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

Käyttöjärjestelmän rakenne

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

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

Luento 5 Suoritin ja väylä

Luento 4 Aliohjelmien toteutus

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

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

Tietokoneen toiminta, K Tavoitteet (4)

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

Luento 12 Yhteenveto

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

Luento 5 Suoritin ja väylä

Luento 1 (verkkoluento 1) Tietokonejärjestelmä

Tietokoneen toiminta (Computer Organization I)

Jakso 4 Aliohjelmien toteutus

Luento 5 Suoritin ja väylä

Luento 9 Järjestelmän ulkoinen muisti

Käyttöjärjestelmät II

Tito-kooste. Esipuhe. Versiohistoria:

Luento 12 Yhteenveto

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

Kertausluento luennoista 1-3 1

Prosessi perinteisesti

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

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

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

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)

Tieto ja sen osoite (3) Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI) Osoitinmuuttujat. Tieto ja sen osoite (5)

Transkriptio:

Luento 8 Ohjelman toteutus järjestelmässä rosessi CB I/O:n toteutus rosessi (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?) uorittimella suorituksessa on yksi prosessi kerrallaan laitteiston näkökulma ja aikaskaala (1 ms, 1 µs, 1 ns?) Muut prosessit ovat odottamassa jotakin suoritinta? I/O:ta? viestiä toiselta prosessilta? 1 2 rosessin vaihto (4) uorittimella suoritusvuorossa olevan prosessin vaihtaminen Tapahtuu aika usein keskimäärin noin 2000-3000 konekäskyn välein? esim. 50-500 kertaa sekunnissa? Isooperaatio - paljon kopiointia montako konekäskyä tähän kuluu? Ks. Minix esimerkin tty_int [Tane87], 3 kalvoa rosessin elinkaari (10) luonti ready-to-run valmis suoritukseen odottaa rosessin 5 suoritustilaa running suorituksessa poistettu tai tapettu 3 4 rosessin esitysmuoto järjestelmässä (4) rosessin kuvaaja tai kontrollilohko (CB - process control block) isohko tietue, joka sisältää kaiken yhdestä prosessista muistialueet, tiedostot, tiedostojen käsittelykohdat ei suorituksessa oleville myös: suorittimen tila (laiterekisterit, MM:n rekisterit, kontrollirekisterit) joka prosessista oma CB käyttöjärjestelmärutiinit manipuloivat CB:tä rosessin tilanvaihdon toteutus (10) rosessin tilanvaihto tapahtuu siirtämällä prosessi (sen CB) jonosta toiseen ready-to-run jono (tai jonot) odottaa suoritinta running jono suorituksessa ei oikeastaan ole olemassa jono odottaa jotakin joka tyypille oma jononsa esim: laitteen I/O:n valmistumista odottavat esim: näppäimistön painallusta odottavat esim: kellolaitekeskeytystä odottavat esim: prosessilta 1345 signaalia odottavat 5 6 Luento 8, Ohjelman suoritus 1

rosessit jonoissa (1) KJ esimerkki: I/O keskeytys (5) -to- 1056 1766 unning 0188 0036 7654 9878 -to- Q unning 0555 Msg from 1345 2222 rosessin 9878 kuvaaja (CB) Vuoronanto: valitse seuraava prosessi eady-to-un -jonosta ja siirrä se suoritukseen C:lle (kopioi tämän prosessin suorittimen tila suorittimelle) 7 Msg from I/O keskeytys laitteelta prosessille? uoritin havaitsee keskeytyssignaalin ja suorittaa I/O keskeytyskäsittelyrutiinin (:n ympäristössä) siirretään -to- jonoon :n suoritus jatkuu vai jatkuuko? 8 KJ esimerkki: I/O keskeytys (ei anim) KJ esim: aikaviipalekeskeytys (7) -to- Q unning -to- Q Q unning Msg from Msg from I/O keskeytys laitteelta prosessille? uoritin havaitsee keskeytyssignaalin ja suorittaa I/O keskeytyskäsittelyrutiinin (:n ympäristössä) siirretään -to- jonoon :n suoritus jatkuu vai jatkuuko? 9 saa aikaviipalekeskeytyksen? ks. ready() [Tane87] siirretään takaisin -to- jonoon euraava prosessi saa suoritusvuoron Entä jos olisi pyytänyt levy I/O:ta :ltä? 10 KJ esim: aikaviipalekesk. (ei anim) -to- Q unning Msg from saa aikaviipalekeskeytyksen? Ks. ready() [Tane87] siirretään takaisin -to- jonoon euraava prosessi saa suoritusvuoron Entä jos olisi pyytänyt levy I/O:ta :ltä? rosessin kuvaajan sisältö (9) rosessin tunniste 14023 rioriteetti suorittimen vuoronantoa varten 143 rosessin tila ja/tai odottamisen syy -to- uoritinympäristö talletettuna odottamisen aikana rekisterit, C,, F, tilarekisterit euraavaksi suoritettavan käskyn osoite Main {} oikkeuskäsittelijöiden osoitteet (ellei oletusarv.) Aikaviipale Käytössä olevat muistialueet, aukiolevat tiedostot KJ:n hallintotietoa (kokonaisaika, etc etc) 11 12 Luento 8, Ohjelman suoritus 2

rosessin 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 C!) uden 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 KJ rutiinia 13 rosessin prioriteetti (3) rosessin tärkeysjärjestys suorittimella esim. pieni numero iso (parempi) prioriteetti Joka prioriteetti(luokalle) oma -to- 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...! rioriteetti voi vaihdella prosessin elinaikana paljon suoritinaikaa huonompi prioriteetti kauan -to- jonossa parempi prioriteetti (prosessi siirretään korkeamman prioriteetin -to- jonoon) 14 Käyttöjärjestelmän toteutus (5) Joukko prosesseja ja/tai proseduureja prosessit elävät omaa elämäänsä (etuoikeutetussa tilassa eli root ina?) swapper (nix) - muistinhallintaprosessi init prosessi (nix) - kaikkien käyttäjätason prosessien äiti laiteajurit ks. Minix esimerkin floppy_task [Tane87], 2 kalvoa proseduurit suoritetaan sen hetkisen prosessin ympäristössä (etuoikeutetussa tilassa?) keskeytyskäsittelijät saavat kontrollin aina tarvittaessa keskeytykset, VC, ajastimet KJ esimerkki: laiteajuri (9) rosessina 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 olla (joskus) etuoikeutettu vaatii prosessien välistä viestintää roseduurina laiteajuri suoritetaan KJ-rutiinina tavallisen aliohjelmakutsun tai VC-kutsun kautta osa tai kaikki koodista voi olla etuoikeutettua vain yksi kutsu kerrallaan suorituksessa? 15 16 Laitteiden liittäminen järjestelmään (4) suoritin (C) muisti väylä tai väylät laiteohjaimet muiden koneiden kanssa laitteiden kanssa ihmisten kanssa Kaikki samalla tavalla: ks. Fig. 2-29 [Tane99] 17 18 Luento 8, Ohjelman suoritus 3

Laiteohjain (I/O Moduuli) laite Muisti väylä data c/s laiteohjain suoritin laiteohjainprosessi laiteajuri (KJ rutiini tai KJ prosessi) laite käyttäjäprosessi (device controller) Ks. Fig 6.4 [tal99] Laitteiden käytön toteutus (5) (kalvo 18) Käyttäjäohjelma kutsuu käyttöjärjestelmän laiteajuria tekemään I/O:n. Laiteajuri suoritetaan samalla suorittimella kuin käyttäjäohjelmakin. Laiteajuri ohjaa laitteen toimintaa laitteen laiteohjaimella olevien kontrollirekisterien (muistialue) avulla Laiteajuri voi lukea laitteen tilatietoa laiteohjaimella olevien statusrekisterien (muistialue) avulla Laiteajuri voi lukea (kirjoittaa) laitteen lukemaa (laitteelle kirjoitettavaa) tietoa laiteohjaimella olevien datarekistereiden (muistialue) avulla Kontrolli-, status- ja datarekisteri kolmikko muodostaa I/O portin suorittimen näkökulmasta 19 20 Laiteohjaimen rekistereihin viittaaminen (5) Ongelma: miten suorittimella suorittavan laiteajuri viittaa eri kortilla oleviin rekistereihin? atkaisu 1: omat I/O-konekäskyt tätä tarkoitusta varten käskyssä annetaan laiteohjaimen identifikaatio ja rekisterin nro (I/O osoiteavaruus) vaikea laajentaa käyttöä uusiin laitteisiin, joilla laiterekisterit voivat olla hyvinkin erilaisia x86: IN, OT IN, OT KOKI: IN, OT ks. Minix esimerkin port_out [Tane87] 21 atkaisu 2: muistiinkuvattu I/O (5) Laiteajuri lukee/kirjoittaa laiteohjaimella olevia rekistereitä (data, status/kontrolli) tavallisilla muistin luku/kirjoitus käskyillä ei tarvita erillisiä I/O-konekäskyjä! laiteohjaimella olevat laiterekisterit ovat samanlaista viitattavaa muistia kuin normaali muisti muistisoitteen ensimmäiset bitit valitsevat, mille laitteelle (vai tavallisen muistiin) viittaus kohdistuu voidaan käyttää rinnan I/O käskyjen kanssa (laiterekistereihin voi siis viitata sekä I/O-käskyillä että muistiinkuvatun I/O:n avulla) esim. Intelin arkkitehtuurit load 1,=Diskd store 2, DiskCtr 22 I/O tyypit (2) uora I/O: laiteajuri odottaa tiukassa silmukassa, kunnes laiteohjaimen statusrekisteri ilmoittaa I/O-pyynnön valmistuneen (direct I/O) laiteajuri siirtää tietoa muistin ja datarekisterin välillä Epäsuora I/O: I/O:n odotusaikana suorittimella suoritetaan (indirect I/O jotain muuta ohjelmaa interrupt driven I/O) Kun I/O-pyyntö valmistuu, laiteohjain antaa keskeytyksen (laitekeskeytys, I/O interrupt) suorittimelle, joka (jonkin ajan kuluttua) jatkaa kesken jäänyttä I/O-pyynnön esittänyttä ohjelmaa. laiteajuri siirtää tietoa muistin ja datarekisterin välillä I/O tyypit (jatkoa) (4) DMA - Direct Memory Access älykkäämpi laiteohjain laiteohjain voi suoraan kopioida tiedot keskusmuistiin (laiteajurin ei tarvitse siirtää tietoa muistin ja datarekisterin välillä) laiteohjain tekee paljon suuremman määrän työtä itsenäisesti (kuin epäsuorassa I/O:ssa) ennen suorittimelle annettavaa laitekeskeytystä 23 24 Luento 8, Ohjelman suoritus 4

Esimerkki: kirjoittimen laiteajuri ttk-91 koneelle (6) Laitteella voi tulostaa kokonaislukuja yksi kerrallaan Muistiinkuvattu I/O, suora I/O Laiteportti kontrollirekisteri muistipaikka 1048576 tilarekisteri muistipaikka 1048577 datarekisteri muistipaikka 1048578 Laiteajuri toimii etuoikeutetussa tilassa Kutsu: H, =0 ; space for return value H, X ; parameter to print VC, =rint ; returns uccess/failure O, 1 JNZE 1, TakeCareOfTrouble 25 Esim: laiteajurin toteutus (3) ptrctr DC 1048576 ; control register address ptrtat DC 1048577 ; status register address olution with no timeout ptrdata DC 1048578 ; rint data register H address ;save regs retval EQ 3 LOAD 1, pardata(f) pardata EQ -2 TOE 1, @ptrdata ; data to print LOAD 1,=0 TOE 1, @ptrtat ; init state register LOAD 1,=1 Oleta: TOE 1, @ptrctr ; give command to print VC:n ja IET:n toteutus samalla tavalla kuin CALL ja EXIT Wait LOAD 1, @trtat ; check state register JNZE 1, Done JM Wait ; wait until I/O done Done LOAD 1, =0 ; return uccess TOE 1, retval(f) O ; recover regs IET, =1 26 ee: driver.k91 -- Luennon 8 loppu -- [Tane99] Lisää tietoa? KJ kurssit, IO, HajJärj 27 Luento 8, Ohjelman suoritus 5