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

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

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

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

Jakso 8 Ohjelman toteutus järjestelmässä

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

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

Tiedon muuttumattomuuden tarkistus Järjestelmän sisäinen muisti

Tiedon muuttumattomuuden tarkistus Järjestelmän sisäinen muisti

Luento 8 Ohjelman toteutus järjestelmässä

Tiedon esitysmuodot Tiedon muuttumattomuuden tarkistus Järjestelmän sisäinen muisti

Tiedon tarkistus (4)

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

Tiedon tarkistus (4) Esimerkki ohjelmistotason tarkistusmerkistä (2) Tiedon muuttumattomuus (2)

Tiedon tarkistus (4) Esimerkki ohjelmistotason tarkistusmerkistä (2) Tiedon muuttumattomuus (2)

Jakso 7 Tiedon muuttumattomuuden tarkistus Järjestelmän sisäinen muisti. Pariteetti Hamming-koodi Välimuisti Tavallinen muisti Muistien historiaa

Tiedon tarkistus (4)

Tiedon tarkistus (4) Esimerkki ohjelmistotason tarkistusmerkistä (2) Tiedon muuttumattomuus (2)

Tiedon tarkistus (4) Esimerkki ohjelmistotason tarkistusmerkistä (2) Tiedon muuttumattomuus (2)

Luento 7 Tiedon muuttumattomuuden tarkistus Järjestelmän sisäinen muisti

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)

Konekäskyjen esitysmuoto muistissa (4)

Ohjelman esitysmuoto Rakenteellinen tieto Pariteetti Hamming-koodi Välimuisti Tavallinen muisti Muistien historiaa

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

Konekäskyjen esitysmuoto muistissa (4) TTK-91 konekäskyn rakenne. Konekäskyn operandit ja tulos. Taulukkojen esitysmuoto. Tietueiden esitysmuoto

Konekäskyjen esitysmuoto muistissa (4) TTK-91 konekäskyn rakenne. Konekäskyn operandit ja tulos. Taulukkojen esitysmuoto. Tietueiden esitysmuoto

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

Tietokoneen toiminta, Kevät Luento 7 Tiedon esitysmuodot (jatk) Tiedon muuttumattomuuden tarkistus Järjestelmän sisäinen muisti

Tiedon sijainti. Konekäskyjen esitysmuoto muistissa (4) TTK-91 konekäskyn rakenne. Taulukkojen esitysmuoto. Konekäskyn operandit ja tulos

Tiedon esitysmuodot. Luento 6 (verkkoluento 6) Lukujärjestelmät Kokonaisluvut, liukuluvut Merkit, merkkijonot Äänet, kuvat, muu tieto

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.

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

Muistihierarkia Kiintolevyt I/O:n toteutus

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

Jakso 5 Suoritin ja väylä

Järjestelmän ulkoinen muisti I/O

Jakso 5 Suoritin ja väylä

Muistihierarkia Kiintolevyt I/O:n toteutus

Luento 1 Tietokonejärjestelmän rakenne

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

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

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

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

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 1 Tietokonejärjestelmän rakenne

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

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

Käyttöjärjestelmät: prosessit

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

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

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

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

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

Kertausluento luennoista 1-3 1

Luento 5 Suoritin ja väylä

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

Luento 5 Suoritin ja väylä

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

Luento 5 Suoritin ja väylä

Luento 5 Suoritin ja väylä

Digitaalitekniikan matematiikka Luku 13 Sivu 1 (10) Virheen havaitseminen ja korjaus

1. Keskusyksikön rakenne

Tiedon ta:rkistus ja muisti

Luento 4 (verkkoluento 4) Aliohjelmien toteutus

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

Luento 4 (verkkoluento 4) Aliohjelmien toteutus

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

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

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

Luento 12 Yhteenveto

Luento 1 (verkkoluento 1) Tietokonejärjestelmä

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)

Tietokone. Tietokone ja ylläpito. Tietokone. Tietokone. Tietokone. Tietokone

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

Aliohjelmien toteutus Suoritin ja väylä

Luento 9 Järjestelmän ulkoinen muisti

Tietokoneen toiminta (Computer Organization I)

Luento 9 Järjestelmän ulkoinen muisti

Luento 9 Järjestelmän ulkoinen muisti

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

Luento 9 Järjestelmän ulkoinen muisti

Käyttöjärjestelmät II

Luento 4 Aliohjelmien toteutus

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

Tietokoneen toiminta, K Tavoitteet (4)

2 Konekieli, aliohjelmat, keskeytykset

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

MUISTIPIIRIT H. Honkanen

Luento 9 Järjestelmän ulkoinen muisti

Tietokoneen toiminta (Computer Organization I)

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

Tiedon sijainti suoritusaikana. Luento 3 Konekielinen ohjelmointi (TTK-91, KOKSI)

Jakso 3 Konekielinen ohjelmointi (TTK-91, KOKSI)

Transkriptio:

Kertausluento 3 (lu7, lu8) Tiedon muuttumattomuuden tarkistus Järjestelmän sisäinen muisti Ohjelman toteutus järjestelmässä Ohjelman esitysmuoto Rakenteellinen tieto Pariteetti, Hamming-koodi Välimuisti, muisti Prosessi, sen esitysmuoto Käyttöjärjestelmä 1

Konekäskyjen esitysmuoto muistissa Konekohtainen, jokaisella omansa Käskyt ovat 1 tai useamman tavun mittaisia SPARC, kaikki käskyt: 1 sana eli 4 tavua PowerPC, kaikki käskyt: 1 sana eli 4 tavua Pentium II: 1-16 tavua, paljon variaatioita Käskyillä on yksi tai useampi muoto, kussakin tietty määrä erilaisia kenttiä opcode, Ri, Rj, Rk, osoitusmoodi pitkä tai lyhyt vakio TTK-91, kaikki käskyt: 1 sana, 1 muoto 2

Taulukkojen esitysmuoto Peräkkäisrakenteena, kuten esimerkit aikaisemmin Riveittäin tai sarakeittain Ei omia konekäskyjä, manipulointi aliohjelmilla tai loopeilla Poikkeus: vektorisuorittimet, joilla vektorirekisterit (esim. 64 liukulukua) tavallisten rekistereiden lisäksi omia konekäskyjä vektorioperaatioita varten Indeksoitu tiedonosoitusmoodi tukee 1-ulotteisten taulukoiden käyttöä 3

Tietueiden esitysmuoto Peräkkäisrakenteena Osoite on jonkin osoitinmuuttujan arvo Ei omia konekäskyjä, manipulointi aliohjelmilla tai kääntäjän generoimien vakiolisäysten avulla Indeksoitu tiedonosoitusmoodi tukee tietueiden käyttöä 4

Olioiden esitysmuoto Kuten tietueet, yleensä varattu keosta (heap) Useat olion kentistä sisältävät vuorostaan osoitteen keosta suoritusaikana varattuun toiseen olioon Metodit ovat aliohjelmien osoitteita Ei omia konekäskyjä, manipulointi aliohjelmilla 5

Tiedon tarkistus Tiedon oikeellisuutta ei voi tarkistaa yleisessä tapauksessa Laitteistovirheitä voidaan havaita ja joskus automaattisesti korjata bitti voi muuttua muistissa tai tiedon siirrossa muistipiirissä voi olla vika (staattinen vika) sopiva alkeishiukkanen voi muuttaa bitin tiedonsiirron aikana (transientti virhe) korjaamattomasta virheestä voi aiheutua häiriö Tietokannan eheys on eri asia! Lisää tietoa? Tietokanta kurssit 6

Tiedon muuttumattomuus Perusidea: otetaan mukaan ylimääräisiä bittejä, joiden avulla virheitä voidaan havaita ja ehkä myös korjata Järjestelmä suorittaa tarkistukset automaattisesti joko laitteistotasolla tai ohjelmiston avulla 7

Bittitason tarkistukset Muistipiirit, levyt, väylät, tiedonsiirrot Monenko bitin muuttuminen havaitaan? Monenko bitin muuttuminen voidaan automaattisesti korjata? Havaitsemiseen ja/tai korjaamiseen tarvitaan enemmän (ylimääräisiä) bittejä lisämuistitilan tai levytilan tarve? lisäpiuhojen tarve väylällä? Tarkistukset/korjaukset laitteisto- vai SW-tasolla? 120464-121C (merkkejä, ei bittejä) Hetu: 1 Hetu: 0 Hetu: +10% Hetu: ohjelmistotasolla 8

Pariteettibitti Yksi ylimääräinen bitti per tietoalkio sana, tavu, tietoliikennepaketti Parillinen (pariton) pariteetti: 1-bittien lukumäärä on aina parillinen (pariton) Havaitsee: 1 bitti Korjaa: 0 bittiä Esimerkki (parillinen pariteetti) 0010 001? 0 1000 1101 1111 001? 1 9

Hamming etäisyys Montako bittiä jossain koodijärjestelmässä (esim ISO Latin-1) esitetyllä koodilla (esim. A = 0x41 = 0100 0001) täytyy muuttua, että se muuttuu johonkin toiseen (mihin tahansa) lailliseen koodiin. ISO Latin-1:n Hamming etäisyys: 1 Pariteettibitin kanssa Hamming etäisyys: 2 mikä todennäköisyys 2 bitin (vs. 1 bitin) virheeseen? riittävän pieni? A = 0x41 = 0100 0001 B = 0x42 = 0100 0010 C = 0x43 = 0100 0011 (Prob{ yhden bitin virhe }) 2 2 bittiä 1 bittiä 10

Virheen korjaava Hamming koodi(6) 0 corrected [Tane99] (a) Kukin databitti (4 kpl) kuuluu erilaisiin pariteettijoukkoihin (3 kpl) (b) Tarvitaan 3 ylimääräistä bittiä! (c) Joukot A ja C havaitsevat virheen ja siten paikallistavat virheellisen bitin Täsmälleen 1 databitti identifioituu kerrallaan! entä jos virhe pariteettibitissä? 11

Virheen korjaava Hamming koodi Data: 100 1100 110 1100 Bitti nro: 765 4321 765 4321 Pariteettibitti 1 tarkistaa bittejä 1, 3, 5, 7 Pariteettibitti 2 tarkistaa bittejä 2, 3, 6, 7 Pariteettibitti 4 tarkistaa bittejä 4, 5, 6, 7 Tapahtuu virhe: bitti 6 muuttuu (flips) (parillinen pariteetti) 1 = 001 2 = 010 3 = 011 4 = 100 5 = 101 6 = 110 7 = 111 Pariteettibitti 2 tarkistaa bittejä 2, 3, 6, 7: VIRHE Pariteettibitti 4 tarkistaa bittejä 4, 5, 6, 7: VIRHE 2+4 = 6 korjaa bitti nro 6 12

CRC - Cyclic Redundancy Code Tiedonsiirrossa käytetty tarkistusmenetelmä Tarkistussumma (16 bittiä) isolle tietojoukolle laske CRC = f (viesti) % 2 16 (ota 16 viimeistä bittiä) lähetä viesti ja CRC vastaanota viesti ja CRC laske CRC ja tarkista, oliko se sama kuin viestissä jos pielessä, niin pyydä uudelleenlähetystä CRC-CCITT CRCs detect: All single- and double-bit errors All errors of an odd number of bits All error bursts of 16 bits or less In summary, 99.998% of all errors 13

Virheiden tarkistusmenetelmien käyttöalueet Mitä lähempänä suoritinta, sitä tärkeämpää tiedon oikeellisuus on Sisäinen väylä, muistiväylä virheet lennossa korjaava Hamming koodi Paikallisverkko uudelleenlähetyksen vaativa CRC kun tulee virheitä, niin niitä tulee yleensä paljon Hamming koodi ei riitä kuitenkaan pariteettibitti päästää läpi (esim.) 2 virheen paketit 14

Laitteiden monistaminen (kesk.) Monta muistipiiriä tai levyä, samat tiedot monistettu Monta suoritinta, samat käskyjen suoritukset monistettu Monta laitteistoa, samat ohjelmat monistettu äänestysmenettely: enemmistö voittaa monimutkainen, hidas? virheelliseksi havaittu laitteisto suljetaan pois häiriköimästä automaattisesti? Eri tai saman tyyppiset laitteistot, samankaltaiset ohjelmat samat speksit, samat syötteet, eri ohjelmoijat Four of the five computers (IBM AP-101) on the Columbia ran identical software and compared results with each other before giving the go-ahead to take a specific action. The fifth computer (also IBM AP-101) ran a different version of the software and was used only if the others failed. http://www.hq.nasa.gov/office/pao/history/computers/contents.html 15

Välimuisti (cache) Ongelma: keskusmuisti on aika kaukana suorittimesta Ratkaisu: välimuisti lähelle suoritinta pidetään siellä (kopioita) viime aikoina viitatuista keskusmuistin alueista Jokainen muistiviite on nyt seuraavanlainen jos data ei ole välimuistissa, niin hae se sinne suoritin odottaa tällä aikaa, laitteistototeutus! tee viittaus dataan (käskyyn) välimuistissa (talleta muutettu tieto keskusmuistiin) rekisterin viittausaika: X muistin viittausaika: 10X välimuistin viittausaika: 2X 16

Muistin toteutus Eri teknologioita eri tasoisiin muisteihin RAM - Random-Access Semiconductor Memory anna osoite ja lue/kirjoita signaali mistä vaan voi lukea/kirjoittaa samassa ajassa virta pois tiedot häviävät (volatile memory) Huom: kaikki nykyiset muistit ovat random access 17

RAM:n kaksi eri teknologiaa DRAM: dynaaminen RAM, halvempi, hitaampi, tietoja pitää virkistää vähän väliä (esim. joka 2 ms) tavallinen keskusmuisti (1975-..) useimmissa koneissa toteutettu kondensaattoreilla, jotka vuotavat SRAM: staattinen RAM, kalliimpi ( 10-20x), nopeampi ( 10x), ei vaadi tietojen virkistämistä välimuisti useimmissa koneissa muisti superkoneissa (esim. Cray C-90) toteutettu samanlaisilla logiikkaporteilla (gate) kuin prosessorikin 18

ROM teknologia ROM - Read-Only Memory tieto säilyy virran katkettua (non-volatile) voi käytössä vain lukea, ei voi kirjoittaa esim. järjestelmän alustustiedot (BIOS) kirjoitus lastun valmistusaikana, Mask-ROM ei enää käytössä huono puoli: kerran väärin, aina väärin (ehkä ) päivitys: laita valmistajalta saatu uusi lastu paikalleen tietoa voi lukea mistä vain samassa ajassa (random access) yleensä hitaampi kuin RAM ( 10x) 19

Kirjoitettavia ROM-muisteja readmostly memory PROM - Programmable ROM kerran kirjoitettava tiedon päivitys: polta tiedot tyhjään PROM:iin EPROM - Erasable PROM tietoja ei voi päivittää sana kerrallaan vanhat tiedot voidaan (kaikki!) poistaa 20 min. UVsäteilyllä, jonka jälkeen päivitetyt tiedot voidaan ladata EEPROM - Electronically Erasable PROM tietojen pyyhkiminen tavukohtaisesti elektronisesti FLASH EEPROM memory tietojen pyyhkiminen nopeasti kerralla elektronisesti normaalijännitteellä, kaikki tai lohko kerrallaan nopeampi kuin EEPROM 20

-- Luennon 7 loppu -- Intel 4004, 1971 Faggin, Hoff, Mazor Ens. suoritin lastulla 3x4 mm, $200 2300 transistoria 4 bitin sana Laskinta varten Sama laskentateho kuin Eniacilla (18000 tyhjiöputkea) 21

22

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

Prosessi 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 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? vapaata muistitilaa? 24

Prosessi Suoritin prosessi P2 prosessi P1 prosessi P2 prosessi P3 prosessi Q1 Muisti Data - ohjelmien - KJ:n Ohjelmakoodit Ohjain Väylä pääosa P2:n tiedoista on edelleen muistissa! Levy ohjelma P ohjelma Q 25

Prosessin vaihto 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 montako konekäskyä tähän kuluu? 50-500? 0? 26

Prosessin elinkaari ready-to-run valmis suoritukseen running suorituksessa luonti odottaa poistettu tai tapettu waiting Prosessin 5 suoritustilaa Milloin tilanvaihto tapahtuu? Mitä tilanvaihdossa tapahtuu? Mitä suoritin tietää suorituksessa olevasta prosessista? 27

Prosessin esitysmuoto järjestelmässä PCB - Prosessin kuvaaja eli kontrollilohko (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ä 28

Prosessin kuvaajan sisältö 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) 29

Prosessin tilanvaihdon toteutus Prosessin tilanvaihto tapahtuu siirtämällä prosessi (sen PCB) jonosta toiseen ready-to-run jono (tai jonot) running jono ei oikeastaan ole olemassa waiting jono joka tyypille oma jononsa odottaa suoritinta suorituksessa odottaa jotakin esim: laitteen Disk1 I/O:n valmistumista odottavat esim: näppäimistön painallusta odottavat esim: kellolaitekeskeytystä odottavat esim: prosessilta 1345 signaalia odottavat 30

Prosessit jonoissa 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) 31

Prosessin vaihto Vaihdon tekee KJ rutiini sillä hetkellä suorittavan prosessin ympäristössä Talleta vanhan prosessin suoritinympäristö (eli suorittimen tila) suorittimelta omalle talletusalueelle muistiin Rekisterit, myös PC (tästä jatketaan joskus ) Ei talteen, jos vanha prosessi tapetaan 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 KJ rutiinia 32

Prosessin prioriteetti Prosessin tärkeysjärjestys suorittimella (kesk.) esim. pieni numero iso (parempi) 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 33

Käyttöjärjestelmän tavoitteet Laiteriippumaton (HW-riippumaton) käyttöliittymä laitteistoon järjestelmää on helppo käyttää KJ järjestelmä antaa reilua palvelua kaikille sovellukset on helppo tehdä sovellukset on helppo siirtää muista järjestelmistä sovellukset KJ:n laiteriippumaton taso KJ:n laitesidonnainen taso HW 34

Käyttöjärjestelmän tavoitteet (jatk) Järjestelmän resurssien tehokas hallinta kaikista resursseista saada maksimihyöty kuka osti liikaa levyjä? joustava resurssien yhteiskäyttö lue tiedosto levyltä vai verkkopalvelimelta? tiukka tietosuoja kuka muu kuin Pekka tai Maija luki tietojani? 35

Käyttöjärjestelmä resurssien vartijana Suoritinaikaa reilusti kaikille kukaan ei odota suoritinta ikuisesti kriittiset prosessit saavat ajoissa suoritinaikaa Tiedostojen (koodi, data) tehokas käyttö laitteesta ja sijainnista riippumaton käyttö helppo yhteiskäyttö ja samalla tietojen suojaus Tietoliikenneverkkojen käyttö laiteriippumaton käyttö helppo yhteiskäyttö ja samalla tietojen suojaus Hallintokirjanpito 36

KJ järjestelmän eheyden turvaajana Varauduttu kaikkiin mahdollisiin virheisiin Sovellusohjelmat eivät voi häiritä KJ:tä tai muita prosesseja tahallaan (esim. tietokonevirukset) vahingossa (yleisin tapaus) Järjestelmä ei lukkiudu tai kaadu KJ:n omat tietorakenteet ovat aina eheitä sovellusohjelmat eivät voi koskea KJ:n tietorakenteisiin sovellusohjelmat aina lopulta antavat vuoron KJ:lle 37

Käyttöjärjestelmän rakenne Prosessien hallinta prosessien luonti, tuhoaminen prosessien välinen viestintä (IPC, Inter-Process Comm) kenelle suoritinaikaa ja milloin? Muistin hallinta miten keskusmuistia varataan eri prosessien käyttöön? kunkin prosessin muistitilan hallinta yhteiskäyttö ja tiedon suojaus Tiedostojen ja laitteiden hallinta miten tiedostoja voidaan lukea/kirjoittaa? yhteiskäyttö ja tiedon suojaus Verkon hallinta miten kommunikoida muiden koneiden kanssa? 38

Käyttöjärjestelmän toteutus (kesk.) Joukko prosesseja ja/tai aliohjelmia prosessit elävät omaa elämäänsä (root ina?) swapper (Unix) - muistinhallintaprosessi init prosessi (Unix) - kaikkien käyttäjätason prosessien äiti laiteajurit aliohjelmat suoritetaan sen hetkisen prosessin ympäristössä (etuoikeutetussa tilassa?) keskeytyskäsittelijät saavat kontrollin aina tarvittaessa aliohjelmakutsut, SVC, viestit ajastimet ja muut keskeytykset 39

KJ palvelun kontrollin palautus Explisiittinen KJ-palvelun kutsu Implisiittinen KJ-palvelun kutsu Aliohjelmakutsut CALL RETURN SVC SVC IRET Viestit viesti vastausviesti (lähettäjä odottaa vastausta RECEIVE:ssä) Ajastimet ja muut keskeytykset keskeytys IRET 40

KJ prosessit ja aliohjelmat suoritin käyttäjätasolla suoritin etuoik. tasolla Sovellus P (käyttäjätaso) KJ prosessi ServProc-1 (käyttäjätaso) SVC MSG MSG KJ palvelu PrivSub-Msg (etuoik. taso) MSG MSG KJ prosessi PrivProc-1 (etuoik. taso) Sovellus Q (käyttäjätaso) SVC SVC CALL CALL SVC CALL KJ (KJ) aliohj. Sub-1 (käyttäjätaso) SVC KJ aliohj. PrivSub-1 (etuoik. taso) 41

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

KJ esimerkki: laiteajuri (jatk.) Aliohjelmana (eli proseduurina) laiteajuri suoritetaan KJ-rutiinina tavallisen aliohjelmakutsun ja/tai SVC-kutsun kautta osa tai kaikki koodista voi olla etuoikeutettua vain yksi kutsu kerrallaan suorituksessa? miksi? miten voidaan valvoa? sov. prosessi laiteajuri (osa etuoikeutettuna) return ei etuoik. osa iret etuoik. osa 43

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 olla (joskus) etuoikeutettu vaatii prosessien välistä viestintää sov. prosessi laiteajuri stub laiteajuri pros. msg msg 44

-- Luennon 8 loppu -- [Tane99] Lisää tietoa? KJ kurssi 45