Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

10. Siirräntäjärjestelmät

Samankaltaiset esitykset


Esitys aiheesta: "10. Siirräntäjärjestelmät"— Esityksen transkriptio:

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

2 Tietokonejärjestelmä
Keskusyksikkö (CPU) prosessori eli suoritin keskusmuisti väylät ohjaimet oheislaitteet

3 Laiteohjain (I/O Moduuli)
suoritin käyttäjäprosessi Muisti laiteajuri KJ-prosessi, (tai aliohjelma?) väylä data c/s laiteohjain laite laite laiteohjainprosessi (device controller, device controller process)

4 Laitteiden käytön toteutus
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)

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

6 käyttöjärjestelmätaso
sovellusohjelmataso käyttöjärjestelmätaso rutiinit, jotka toteuttavat ja valvovat siirräntää laiteriippumaton siirräntä sovellukselle yhtenäinen tapa käyttää kaikkia siirräntäpalveluita laiteriippuva siirräntä laitteiden todelliseen käyttöön liittyvä ohjausohjelmisto koodattu laiteajureihin laitteisto

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

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

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

10 laiteriippumattoman siirrännän tehtäviä
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 antaa laiteajurille tehtävän 18/09/2018 Liisa Marttinen kevät 2005

11 laiteajurin tehtäviä tehtävät riippuvat laitteesta
muodostaa parametrien ja laitekuvaajan perusteella laitetta ohjaavat käskyt 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 18/09/2018 Liisa Marttinen kevät 2005

12 AJURI- PROSESSI MUISTI LEVYOHJAIN laiterekisterit -data -ohjaus -ok MUISTIINKUVATTU I/O: siirrettävä tieto + ohjaustiedot keskusmuistiin ‘kommunikointialueelle’ LEVY

13 PROSESSORI MUISTI LEVYOHJAIN puskuri osoite lkm DMA-SIIRTO: ohjain siirtää itsenäisesti tietoa levyltä keskusmuistiin LEVY

14 I/O-pyyntöjen käsittely
sovellusprosessi sovellusprosessi käsittelee muuttujia, tietueita, tiedostoja,.. käyttää kirjastorutiineja Readln(File1,X) Open (TdstoX,RW) oheislaitteet sovellukselle erikoistiedostoja käyttöjärjestelmä laiteohjain 18/09/2018 Liisa Marttinen kevät 2005

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

16 KÄYTTÖJÄRJESTELMÄ laite- ajuri 1 laiteriippumaton taso laite- ajuri 2
Sovellus DATA- ALUE laiteriippumaton taso laite- ajuri 2 laite- ajuri 3 Sovellus DATA- ALUE ... laite- ajuri n lohkopuskurit 18/09/2018 Liisa Marttinen kevät 2005

17 Laite- Sovellus riippu- maton taso data- alue Laite- ajuri Laite-
Laiteriippumaton taso valmistelee ja käynnistää siirron ja jää odottamaan siirron valmistumista Laite- riippu- maton taso Sovellus data- alue Laiteajuri käynnistää pyydettäessä fyysisen I/O:n ja jää odottamaan siirron valmistumista siirtopyyntö aiheuttaa keskeytyksen ja vie prosessin WAIT-jonoon siirron valmistu- minen vie prosessin READY-jonoon ja aikanaan suoritukseen Laite- ajuri Laiteohjain suorittaa pyydetyn siirron Laite- ohjain Lohkopuskurit Käyttöjärjestelmä data laitteella 18/09/2018 Liisa Marttinen kevät 2005

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

19 Käyttöjärjestelmän toiminta lukupyynnön yhteydessä
laiteriippumaton taso suorittaa kaikki siirräntään liittyvät yleiset toiminnot selvittää mikä laite on kyseessä määrittää mikä levylohko on kyseessä tutkii, onko siirräntä yleensä edes tarpeen 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 18/09/2018 Liisa Marttinen kevät 2005

20 käyttöjärjestelmä: laiteriippumaton taso tutkii mikä laite on kyseessä
prosessin kuvaaja PCB käytettävä laiteajuri; lohkon koko tiedostokuvaajataulu laitekuvaajat nimi, laitenumero =‘levynro’ uid, gid rwx-bitit r/w-positio lohkonumerot avoimet tiedostot -taulu ….

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

22 käyttöjärjestelmä: laiteriippumaton taso
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 varataan lohkolle 0 puskuri 1 18/09/2018 Liisa Marttinen kevät 2005

23 Down (Pyyntö_palveltu * jää odottamaan
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 18/09/2018 Liisa Marttinen kevät 2005

24 Laiteajuri toista Down(Pyyntö_odottaa) Ota pyyntöpaketti jonosta
muuta se laiteohjaimen ymmärtämään muotoon; käynnistä fyysinen I/O; Down(Siirto_valmis) jos virhe, niin ilmoita ylöspäin Up(Pyyntö_palveltu) tuhoa palvelupyyntöpaketti ikuisesti

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

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

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


Lataa ppt "10. Siirräntäjärjestelmät"

Samankaltaiset esitykset


Iklan oleh Google