10 Siirrntjrjestelmt n n n Laitteiden liittminen jrjestelmn

  • Slides: 27
Download presentation
10. Siirräntäjärjestelmät n n n Laitteiden liittäminen järjestelmään Siirrännän hierarkia Muistiinkuvattu I/O DMA-siirto I/O-pyyntöjen

10. Siirräntäjärjestelmät n n n Laitteiden liittäminen järjestelmään Siirrännän hierarkia Muistiinkuvattu I/O DMA-siirto I/O-pyyntöjen käsittely 2/27/2021 Liisa Marttinen kevät 2005 1

Tietokonejärjestelmä Keskusyksikkö (CPU) prosessori eli suoritin keskusmuisti väylät ohjaimet oheislaitteet 2/27/2021 Liisa Marttinen kevät

Tietokonejärjestelmä Keskusyksikkö (CPU) prosessori eli suoritin keskusmuisti väylät ohjaimet oheislaitteet 2/27/2021 Liisa Marttinen kevät 2005 2

Laiteohjain (I/O Moduuli) Muisti suoritin väylä käyttäjäprosessi laiteajuri KJ-prosessi, (tai aliohjelma? ) data c/s

Laiteohjain (I/O Moduuli) Muisti suoritin väylä käyttäjäprosessi laiteajuri KJ-prosessi, (tai aliohjelma? ) data c/s laiteohjain laiteohjainprosessi (device controller, device controller process) 2/27/2021 Liisa Marttinen kevät 2005 3

Laitteiden käytön toteutus n n n Käyttäjäohjelma kutsuu käyttöjärjestelmän laiteajuria tekemään I/O: n. Laiteajuri

Laitteiden käytön toteutus n n n 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 ’c’) avulla Laiteajuri voi lukea laitteen tilatietoa laiteohjaimella olevien statusrekisterien (muistialue ’s’) avulla Laiteajuri voi lukea (kirjoittaa) laitteen lukemaa (laitteelle kirjoitettavaa) tietoa laiteohjaimella olevien datarekistereiden (muistialue’data’) avulla Kontrolli-, status- ja datarekisteri kolmikko muodostaa ”I/O-portin” suorittimen näkökulmasta ks. laiteohjainkuva (ed. kalvo) 2/27/2021 Liisa Marttinen kevät 2005 4

Siirrännän hierarkia sovellusohjelmataso n n n loogisia kokonaisuuksia, tietueita ja tiedostoja ohjelman sisäisiä nimiä

Siirrännän hierarkia sovellusohjelmataso n n n loogisia kokonaisuuksia, tietueita ja tiedostoja ohjelman sisäisiä nimiä Readln (File 1, X) Open (Tdsto, RW) käyttöjärjestelmätaso laitteisto 2/27/2021 Liisa Marttinen kevät 2005 5

n n sovellusohjelmataso käyttöjärjestelmätaso n n rutiinit, jotka toteuttavat ja valvovat siirräntää laiteriippumaton siirräntä

n n sovellusohjelmataso käyttöjärjestelmätaso n n rutiinit, jotka toteuttavat ja valvovat siirräntää laiteriippumaton siirräntä n sovellukselle yhtenäinen tapa käyttää kaikkia siirräntäpalveluita laiteriippuva siirräntä n laitteiden todelliseen käyttöön liittyvä ohjausohjelmisto n koodattu laiteajureihin laitteisto 2/27/2021 Liisa Marttinen kevät 2005 6

n n n sovellusohjelmataso käyttöjärjestelmätaso laitteisto n n 2/27/2021 siirräntä voidaan toteuttaa kokonaan prosessorin

n n n sovellusohjelmataso käyttöjärjestelmätaso laitteisto n n 2/27/2021 siirräntä voidaan toteuttaa kokonaan prosessorin valvonnassa n ei hyödynnetä rinnakkaisuutta laiteohjain (siirräntään erikoistunut prosessori) huolehtii itsenäisesti siirrännästä n prosessorin ja ohjainten välinen kommunikointi Liisa Marttinen kevät 2005 7

SIIRRÄNNÄN HIERARKIA muuttujat SOVELLUS laiteriippumaton taso KÄYTTÖJÄRJESTELMÄ keskeytys laiteajurit LAITEOHJAIMET tulostus syöttö 2/27/2021 Liisa

SIIRRÄNNÄN HIERARKIA muuttujat SOVELLUS laiteriippumaton taso KÄYTTÖJÄRJESTELMÄ keskeytys laiteajurit LAITEOHJAIMET tulostus syöttö 2/27/2021 Liisa Marttinen kevät 2005 8

n laitekuvaaja n n yksi kutakin laitetyyppiä varten talletettavat tiedot riippuvat laitteesta n n

n laitekuvaaja n n yksi kutakin laitetyyppiä varten talletettavat tiedot riippuvat laitteesta n n n 2/27/2021 n laitteen yksilöivä tunnus (väyläosoite) ohjeet laitteen käytöstä n urien, sektorien ja levypintojen määrä, lohkon koko viitteet näppäimistön merkinmuunnostauluihin laitteen tilatietoa n varattu/vapaa/rikki laitteeseen liittyvät semaforit viitteet jonottaviin palvelupyyntöihin viite laitetta Liisa käyttävän prosessin kuvaajaan Marttinen kevät 2005 9

laiteriippumattoman siirrännän tehtäviä n n n loogisesta tiedostonimestä => käytettävän laitteen tyyppi pitää kirjaa

laiteriippumattoman siirrännän tehtäviä n n n loogisesta tiedostonimestä => käytettävän laitteen tyyppi pitää kirjaa levytilan vapaista ja varatuista alueista siirrännän puskurointi (levylohko) luku/kirjoituskohdan ylläpito tarvittaessa käynnistää fyysisen siirrännän n antaa laiteajurille tehtävän 2/27/2021 Liisa Marttinen kevät 2005 10

laiteajurin tehtäviä n tehtävät riippuvat laitteesta n muodostaa parametrien ja laitekuvaajan perusteella laitetta ohjaavat

laiteajurin tehtäviä n tehtävät riippuvat laitteesta n muodostaa parametrien ja laitekuvaajan perusteella laitetta ohjaavat käskyt n n n 2/27/2021 esim. levylohkonumeroiden muuttaminen levypinnan, uran ja sektorin numeroiksi levypyyntöjen optimointi ohjaimella tehtävän fyysisen siirrännän käynnistys siirrännän kirjanpito siirron oikeellisuuden tarkistukset ja virheiden korjausyritykset Liisa Marttinen kevät 2005 11

AJURIPROSESSI MUISTI LEVYOHJAIN laiterekisterit -data -ohjaus -ok MUISTIINKUVATTU I/O: siirrettävä tieto + ohjaustiedot keskusmuistiin

AJURIPROSESSI MUISTI LEVYOHJAIN laiterekisterit -data -ohjaus -ok MUISTIINKUVATTU I/O: siirrettävä tieto + ohjaustiedot keskusmuistiin ‘kommunikointialueelle’ 2/27/2021 Liisa Marttinen kevät 2005 LEVY 12

PROSESSORI MUISTI LEVYOHJAIN puskuri osoite lkm DMA-SIIRTO: ohjain siirtää itsenäisesti tietoa levyltä keskusmuistiin 2/27/2021

PROSESSORI MUISTI LEVYOHJAIN puskuri osoite lkm DMA-SIIRTO: ohjain siirtää itsenäisesti tietoa levyltä keskusmuistiin 2/27/2021 Liisa Marttinen kevät 2005 LEVY 13

I/O-pyyntöjen käsittely n sovellusprosessi n n n sovellusprosessi käsittelee muuttujia, tietueita, tiedostoja, . .

I/O-pyyntöjen käsittely n sovellusprosessi n n n sovellusprosessi käsittelee muuttujia, tietueita, tiedostoja, . . käyttää kirjastorutiineja n Readln(File 1, X) n Open (Tdsto. X, RW) oheislaitteet sovellukselle erikoistiedostoja käyttöjärjestelmä laiteohjain 2/27/2021 Liisa Marttinen kevät 2005 14

n Käyttöjärjestelmä n laiteriippumaton taso n n laiteajurit n n n kaikille laitteille yhteiset

n Käyttöjärjestelmä n laiteriippumaton taso n n laiteajurit n n n kaikille laitteille yhteiset toiminnot jokaiselle laitteelle oma ajuri huolehtii kunkin laitteen erityispiirteistä Laiteohjain n suorittaa fyysisen siirron laitteen ja keskusmuistin välillä 2/27/2021 Liisa Marttinen kevät 2005 15

Sovellus DATAALUE KÄYTTÖJÄRJESTELMÄ laiteajuri 1 laiteriippumaton laitetaso ajuri 2 laiteajuri 3. . . Sovellus

Sovellus DATAALUE KÄYTTÖJÄRJESTELMÄ laiteajuri 1 laiteriippumaton laitetaso ajuri 2 laiteajuri 3. . . Sovellus DATAALUE lohkopuskurit 2/27/2021 laiteajuri n Liisa Marttinen kevät 2005 16

Sovellus dataalue siirtopyyntö aiheuttaa keskeytyksen ja vie prosessin WAIT-jonoon siirron valmistuminen vie prosessin READY-jonoon

Sovellus dataalue siirtopyyntö aiheuttaa keskeytyksen ja vie prosessin WAIT-jonoon siirron valmistuminen vie prosessin READY-jonoon ja aikanaan suoritukseen 2/27/2021 Laiteriippumaton taso Laiteajuri Lohkopuskurit Käyttöjärjestelmä Liisa Marttinen kevät 2005 Laiteriippumaton taso valmistelee ja käynnistää siirron ja jää odottamaan siirron valmistumista Laiteajuri käynnistää pyydettäessä fyysisen I/O: n ja jää odottamaan siirron valmistumista Laiteohjain suorittaa pyydetyn siirron Laiteohjain data laitteella 17

Esim. tiedostonlukupyyntö n n Read(tiedostonro, paljonko, minne) Esim. luetaan tiedostosta nro 2 100 tavua

Esim. tiedostonlukupyyntö n n Read(tiedostonro, paljonko, minne) Esim. luetaan tiedostosta nro 2 100 tavua muistipaikkaan 200 n = muistialueelle Taulu[0, 99], joka alkaa muistipaikasta 200 Read (2, 100, 200) 2/27/2021 Liisa Marttinen kevät 2005 18

Käyttöjärjestelmän toiminta lukupyynnön yhteydessä n laiteriippumaton taso n suorittaa kaikki siirräntään liittyvät yleiset toiminnot

Käyttöjärjestelmän toiminta lukupyynnön yhteydessä n laiteriippumaton taso n suorittaa kaikki siirräntään liittyvät yleiset toiminnot n n n selvittää mikä laite on kyseessä määrittää mikä levylohko on kyseessä tutkii, onko siirräntä yleensä edes tarpeen n n luettava tieto jo valmiina lohkopuskurissa kirjoitettavaa tietoa ei ole lainkaan muutettu tarvittaessa käynnistää siirrännän ja jää odottamaan sen valmistumista eri laitteita varten omat laiteajurit 2/27/2021 Liisa Marttinen kevät 2005 19

n käyttöjärjestelmä: n laiteriippumaton taso tutkii mikä laite on kyseessä prosessin kuvaaja PCB tiedostokuvaajataulu

n käyttöjärjestelmä: n laiteriippumaton taso tutkii mikä laite on kyseessä prosessin kuvaaja PCB tiedostokuvaajataulu 0 1 2 3 4. . . käytettävä laiteajuri; lohkon koko laitekuvaajat avoimet tiedostot -taulu 2/27/2021 nimi, laitenumero =‘levynro’ uid, gid rwx-bitit r/w-positio lohkonumerot …. Liisa Marttinen kevät 2005 20

n käyttöjärjestelmä: laiteriippumaton taso n lukupositio ja lohkon koko => monesko tiedoston lohko =>

n käyttöjärjestelmä: laiteriippumaton taso n lukupositio ja lohkon koko => monesko tiedoston lohko => lohko 0 n n lukupositio = 0 => tiedoston alku etsi numeron perusteella lohkopuskurista n n jo löytyy, luetaan sieltä jos ei löydy varaudutaan levylukuun lohkoa 0 ei löydy lohkopuskurista 2/27/2021 lohkopuskureita lohko 6 lohko 10 lohko 3 Liisa Marttinen kevät 2005 21

n käyttöjärjestelmä: laiteriippumaton taso n n levyltä lukeminen varataan lohkolle puskuri muodostetaan ko. laitteen

n käyttöjärjestelmä: laiteriippumaton taso n n levyltä lukeminen varataan lohkolle puskuri muodostetaan ko. laitteen ajuria varten pyyntöpaketti (lue, puskurin osoite, lohkonumero) viedään paketti ajurin jonoon lohkopuskureita lohko 6 lohko 3 2/27/2021 varataan lohkolle 0 puskuri 1 Liisa Marttinen kevät 2005 22

levyn laiteajurin työjono lue, puskurinro (=1) lohkonro (=0) Laiteriippumaton taso herättää laiteajurin ja jää

levyn laiteajurin työjono lue, puskurinro (=1) lohkonro (=0) Laiteriippumaton taso herättää laiteajurin ja jää odottamaan siirron valmistumista Up(Pyyntö_odottaa) *herätä ajuri Down (Pyyntö_palveltu) * jää odottamaan 2/27/2021 Liisa Marttinen kevät 2005 23

n Laiteajuri toista Down(Pyyntö_odottaa) ; odota pyyntöpakettia Ota pyyntöpaketti jonosta muuta se laiteohjaimen ymmärtämään

n Laiteajuri toista Down(Pyyntö_odottaa) ; odota pyyntöpakettia Ota pyyntöpaketti jonosta muuta se laiteohjaimen ymmärtämään levypinta, ura, sektori, tavujen muotoon; lkm, lohkopuskuri, lue käynnistä fyysinen I/O; Down(Siirto_valmis) ; odota siirron valmistumista jos virhe, niin ilmoita ylöspäin Up(Pyyntö_palveltu) ; ilmoita laiteriippumattomalle tuhoa palvelupyyntöpaketti n ikuisesti 2/27/2021 Liisa Marttinen kevät 2005 n 24

Laiteohjaimen ymmärtämään muotoon n Laske laitekuvaajassa olevan tiedon perusteella tiedon sijainti levyllä n n

Laiteohjaimen ymmärtämään muotoon n Laske laitekuvaajassa olevan tiedon perusteella tiedon sijainti levyllä n n levypinta, ura, sektori ja siirrettävien sektoreiden määrä ilmoita laiteohjaimelle n n 2/27/2021 mistä = levyosoite minne = lohkopuskurin osoite paljonko = lohkon koko (esim. levyn sektoreina) operaatio = lue Liisa Marttinen kevät 2005 25

Laiteohjain n Tutki tehtävät operaatiot laiterekistereistä n n Tee fyysinen DMA-siirto n n n

Laiteohjain n Tutki tehtävät operaatiot laiterekistereistä n n Tee fyysinen DMA-siirto n n n prosessorin ja ohjaimen välinen kommunikointialue n mistä = levyosoite n minne = lohkopuskurin osoite n paljonko = lohkon koko n operaatio = lue ensin laitteelta omaan puskuriin ja sieltä vähitellen keskusmuistin lohkopuskuriin Talleta tieto onnistumisesta laiterekisteriin Aiheuta keskeytys 2/27/2021 Liisa Marttinen kevät 2005 26

keskeytys ja sen käsittely n n n laitekeskeytys selvitä keskeyttäneen laitteen numero etsi laitteen

keskeytys ja sen käsittely n n n laitekeskeytys selvitä keskeyttäneen laitteen numero etsi laitteen (=levyn) laitekuvaaja n n mikä ajuri kyseessä Up(Siirto_valmis) 2/27/2021 * herättää juuri tätä * siirtoa odottavan * ajurin Liisa Marttinen kevät 2005 27