Stallings, Luku I/O-laitteiden luokittelua, siirtonopeuksia Siirrännän perustekniikat Siirrännän kehittyminen

Samankaltaiset tiedostot
Sisältö SIIRRÄNTÄ. I/O-laitteiden luokittelua. Yleistä siirrännästä. Siirrännän perustekniikat. Siirtonopeuksia (teoreettisia) Kuva 11.

NTÄ. Luento 8: SIIRRÄNT. Osio 3: Siirräntä ja tiedostojärjestelmä. ltö. Yleistä siirrännästä. Siirtonopeuksia (teoreettisia) Kuva 11.1.

Osio 3: Siirräntä ja tiedostojärjestelmä

Stallings, Luku

KJ-I I S2004 / Tiina Niklander, kalvot Auvo Häkkinen Stallings, Luku

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

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

Jakso 8 Ohjelman suoritus järjestelmässä

Jakso 8 Ohjelman suoritus järjestelmässä

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

LUENTO 9. u kannattaa minimoida siirrot. u huonoja, eivät huomioi hakuvarren nykyistä positiota. (Fig 11.6 [Stal05])

Levy I/O Linux ja W2000 levy I/O

Luento 2: LAITTEISTOSTA

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

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

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

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

D B. Levykön rakenne. pyöriviä levyjä ura. lohko. Hakuvarsi. sektori. luku-/kirjoituspää

u saantimenetelmät u kirjanpito vapaista lohkoista (taltiolla!) u hierarkkinen hakemistorakenne: kirjanpito tdstoista u tdstojen käyttö

Luento 9 Järjestelmän ulkoinen muisti

Luento 9 Järjestelmän ulkoinen muisti

Luento 9 Järjestelmän ulkoinen muisti

u saantimenetelmät Kenttä (field) u bittien / tavujen muodostama looginen kokonaisuus u yksi arvo, jolla tyyppi ja pituus Tietue (record)

RJESTELMÄ Stallings, Luku KJ-I I S2005 / Tiina Niklander, kalvot Auvo HäkkinenH

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. Ohjelman muistiosoitteet (3) Virtuaalimuisti (3) Virtuaalimuistin toteutus.

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

RJESTELMÄ OSA 2 Stallings, Luku PALVELUPYYNNÖT. KJ-I I S2005 / Tiina Niklander, kalvot Auvo HäkkinenH

D B. Levytiedostojen käsittely. Levytiedostojen käsittely

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

Järjestelmän ulkoinen muisti I/O

Luento 9 Järjestelmän ulkoinen muisti

Luento 9 Järjestelmän ulkoinen muisti

Osio 3: Prosessit, siirräntä ja tiedostojärjestelmä

Luento 9 Järjestelmän ulkoinen muisti

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

Väylät. Prosessorin tie ulkomaailmaan Pienissä järjestelmissä vain yksi väylä. Osoite, data ja ohjaussignaalit Prosessori ainoa herra (master)

Luento 9 Järjestelmän ulkoinen muisti

Käyttöjärjestelmät II

Käyttöjärjestelmän rajapinnat

Käyttöjärjestelmän rajapinnat. Siirräntä: Laiteajurit ja keskeytys. I/O-ohjain. I/O-ohjain. Siirtomenetelmät. Käyttöjärjestelmän rakenne

Stallings, Luku 1. KJ-I S2043 / Tiina Niklander Auvo Häkkisen kalvojen pohjalta 2-2. KJ-I S2003 / Auvo Häkkinen 2-1

Muistihierarkia (4) 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

Käyttöjärjestelmät II

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

Muistihierarkia Kiintolevyt I/O:n toteutus

Luento 9 Järjestelmän ulkoinen muisti

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

Käyttöjärjestelmät TIEDOSTOJÄRJESTELMÄ. Stallings, Luku KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 8-1

Sisältöä. Milloin? Vuorotus. Kiinteä ja vaihteleva prioriteetti. Kertaus. Käyttöjärjestelmät. Syksy 2006 / Luento

Käyttöjärjestelmät LUENTO 23. Kertaus

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

Luento 3: PROSESSIT JA NIIDEN HALLINTA

Muistihierarkia Kiintolevyt I/O:n toteutus

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

ltö Luento 6: VIRTUAALIMUISTI Luento 7: Segmentointi Segmentointi ja sivutus yhdistettynä Yhteiskäytöstä Suoritus virtuaalimuistissa

Luento 6: VIRTUAALIMUISTI

TIEDOSTOJÄRJESTELMÄ. Sisältöä. Stallings, Luku Peruskäsitteistöä, tehtäviä ja tavoitteita Järjestelmän rakenne Tiedostojen organisointi

Sisältöä TIEDOSTOJÄRJESTELMÄ. Perustermit. Peruskäsitteistöä. Perustermit. KJ:n tiedostojärjestelmä. Käyttöjärjestelmät, Luento 16

PROSESSIT JA NIIDEN HALLINTA

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

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

Sisältöä. Kertaus. Vuorotus I/O Tiedostojärjestelmä Hajautettu prosessi Tietoturva. Käyttöjärjestelmät, Luento 24. Syksy 2007, Tiina Niklander 24-1

Sisältöä. Milloin? Vuorotus. Kiinteä ja vaihteleva prioriteetti. Käyttöjärjestelmät, Luento 24. Kertaus. Syksy 2007, Tiina Niklander 24-1

Käyttöjärjestelmät, 8 op

Kurssin asema Käyttöjärjestelmät, 8 op. Kurssikirja. Kurssin tavoite. Kurssin rakenne: Kurssin suorittaminen. Käyttöjärjestelmät - Luento 1

Osio 2: Luennot 5-8 Muistinhallinta

Käyttöjärjestelmät, 8 op

Kurssin asema Käyttöjärjestelmät, 8 op. Siirtymävaiheen vastaavuudet. Kurssin tavoite. Kurssikirja. Kurssin rakenne:

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

TIEDOSTOJÄRJESTELMÄ. Sisältöä. Stallings, Luku Peruskäsitteistöä, tehtäviä ja tavoitteita Järjestelmän rakenne Tiedostojen organisointi

Sisältöä TIEDOSTOJÄRJESTELMÄ. Perustermit. Peruskäsitteistöä. Perustermit. KJ:n tiedostojärjestelmä. Käyttöjärjestelmät

D B. Tiedostojen käsittely

Yleistä. Esimerkki. Yhden palvelimen jono. palvelin. saapuvat asiakkaat. poistuvat asiakkaat. odotushuone, jonotuspaikat

Ongelma(t): Jotta tietokone olisi mahdollisimman yleiskäyttöinen ja suorituskykyinen, niin miten tietokoneen resurssit tulisi tarjota ohjelmoijalle,

Käyttöjärjestelmän rakenne

Osio 2: Luennot 4-7 Muistinhallinta

Prosessi perinteisesti

Työasema- ja palvelinarkkitehtuurit (IC130301) Apumuistit. Kiintolevyt. 5 opintopistettä. Petri Nuutinen

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

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

Jakso 8 Ohjelman toteutus järjestelmässä

Luento 5: YKSINKERTAINEN SEGMENTOINTI JA SIVUTUS

Tietokoneen toiminta, K Tavoitteet (4)

Tervetuloa! (2 ov,, 4 op) KJ on tärkein tietokoneessa pörräävistä ohjelmista

TIES530 TIES530. Moniprosessorijärjestelmät. Moniprosessorijärjestelmät. Miksi moniprosessorijärjestelmä?

Käyttöjärjestelmät: poissulkeminen ja synkronointi

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

Jakso 12 Yhteenveto. Keskeiset asiat Teemu Kerola, K2000

Sisältöä SÄIKEET, SMP

2 Konekieli, aliohjelmat, keskeytykset

Luento 1 Tietokonejärjestelmän rakenne

VUOROTTAMINEN YKSI CPU

Käyttöjärjestelmät: prosessit

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

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

Transkriptio:

LUENTO 14 SIIRRÄNTÄ Stallings, Luku 11.1-11.4 1 Sisältö Yleistä I/O-laitteiden luokittelua, siirtonopeuksia Siirrännän perustekniikat Siirrännän kehittyminen DMA-siirto Huomioita siirrännästä mm. hierarkia Puskurointi Lohkopuskurit 2 Syksy 2007, Tiina Niklander 14-1

Yleistä siirrännästä 3 I/O-laitteiden luokittelua Tieto esitettävä ihmisen / koneen luettavassa muodossa Syöttö- ja tulostus näyttö, näppäimistö, hiiri, kirjoitin,... sensori, skanneri, kamera, mikrofoni... Pysyvä tallennus levy, nauha, CD-ROM... Tiedonsiirto modeemi, verkkokortit,... Eroja nopeudessa, ohjaustarpeessa, siirtoyksiköissä, tiedon esittämisessä ja virhetilanteiden hallinnassa 4 Syksy 2007, Tiina Niklander 14-2

Siirtonopeuksia (teoreettisia) Kuva 11.1 HUOM: Logaritminen asteikko 5 Siirrännän perustekniikat Suora I/O (Programmed I/O) CPU tutkii toistuvasti ohjaimen statusrekisteristä onko siirto valmis (busy-wait) Epäsuora I/O (Interrupt-driven I/O) CPU antaa siirtotehtävän ohjaimelle ja jatkaa suorittamalla muita prosesseja ohjain keskeyttää, kun siirto valmis CPU siirtää ohjaimen ja muistin välillä DMA-siirto (Direct Memory Access) DMA-ohjain osaa siirtää muistin ja laitteen välillä keskeytys vasta, kun koko siirto valmis 6 Syksy 2007, Tiina Niklander 14-3

Kuva 1.19 Siirrännän kehittyminen 1/2 1 CPU (=KJ) huolehtii laitteen ohjauksesta Lue KJ = laiteajuri 2 Erillinen I/O-ohjain ohjaa yhtä tai useampaa laitetta, suora I/O CPU (=KJ) tarkkailee koko ajan statusrekisteriä Laitteen yksityiskohdat eivät enää KJ:n murheena 3 Ohjain oppii käyttämään keskeytystä Programmed I/O Interrupt-driven I/O CPU (=KJ) ei odottele aktivisesti siirron valmistumista 4 Ohjain oppii siirtämään perille saakka = DMA CPU (=KJ) vain käynnistää siirron ja tarkistaa onnistumisen 8 Syksy 2007, Tiina Niklander 14-4

Siirrännän kehittyminen 2/2 5 Erillinen I/O-prosessori + DMA I/O channel oma käskykanta suorittaa keskusmuistissa olevaa I/O-ohjelmaa CPU (=KJ) voi määritellä siirräntätehtävät monipuolisesti keskeytys, kun kaikki tehty 6 Erillinen I/O-prosessori + oma muisti + DMA ei käytä CPU-väylää I/O-ohjelmansa suorittamiseen esim. näytönohjaimella oma prosessori ja muistia Yksityiskohdat siirretty KJ:ltä laitteistolle tehokas toteutus I/O processor 9 DMA Direct Memory Access 10 Syksy 2007, Tiina Niklander 14-5

DMA-siirto Ohjain osaa siirtää ison määrän tietoa suoraan laitteen ja keskusmuistin välillä Keskeytys vasta, kun koko siirto valmis Käyttää muistiin viitatessa prosessoriväylää Kilpailu väylän varaamisesta ajoitus s.e. ei häiritse CPU MEM siirtoja CPU tarvitsee väylää käskynoudossa, operandien noudossa ja tuloksen talletuksessa välimuistin käyttö vähentää väylän käyttöä Huom. väylän varaus laitetoiminto, ei aiheuta keskeytystä 11 DMA:n ajoitus Kuva 11.3 [Stal01] 12 Syksy 2007, Tiina Niklander 14-6

DMA-ohjaimen rakenne Kuva 11.2 CPU ja muisti x x Ohjattava laite/laitteet 13 DMA Käynnistys: KJ (ajuri) kertoo DMA-ohjaimelle suunta: read vai write mitä I/O-laitetta siirto koskee (jos useita) laiteosoite: esim. levypinta, ura, sektori montako tavua siirretään keskusmuistialueen alkuosoite Kun siirto valmis, KJ (ajuri) tarkastaa statuksen Prosessoriväylän varaamisia voi vähentää integroimalla DMA-ohjaimen suoraan laiteohjaimeen kytkemällä I/O-laitteet omaan väyläänsä, jolloin niiden välinen siirto ilman CPU-väylän käyttöä 14 Syksy 2007, Tiina Niklander 14-7

Erillinen DMA-ohjain Fig 11.3 [Stal05] Kaikki jakavat yhteisen väylän DMA-ohjain keskustelee myös laiteohjaimen kanssa käyttäen prosessoriväylää 15 DMA- ja laiteohjain yhdessä DMA ei tarvitse prosessoriväylää keskustellessaan laiteohjaimen kanssa DMA-ohjain ohjaa yhtä tai useampaa laitetta Fig 11.3 [Stal05] 16 Syksy 2007, Tiina Niklander 14-8

DMA ja erillinen I/O-väylä Suora siirto laitteelta toiselle käyttämättä prosessoriväylää Fig 11.3 [Stal05] ei häiritse CPU:ta Helppo laajentaa 17 Huomioita siirrännästä: hierarkia 18 Syksy 2007, Tiina Niklander 14-9

Huomioita siirrännästä Siirräntä järjestelmän suurin pullonkaula Siirräntä oheislaitteille erittäin hidasta verrattuna CPU:n ja keskusmuistin välisiin siirtoihin (esim. levy ~ 1 : 1.000.000) Siirräntä ei pysy koskaan CPU:n vauhdissa prosessin odoteltava siirräntää Moniajon ansiosta CPU voi suorittaa odotusaikana muita prosesseja Myös KJ:n tekemä sivutus ja heittovaihto aiheuttaa siirräntää 19 Huomioita siirrännästä Levysiirto tärkein tehostettava kohde puskurointi siirrä kerralla enemmän (levylohko) lohkopuskurit (block cache) eli levyvälimuisti (disk cache) ennaltanouto tdsto käsitellään yleensä peräkkäisjärjestyksessä pyyntöjen uudelleenjärjestely minimoi hakuvarren siirrot pyynnöt jonottavat ajurin jonossa 20 Syksy 2007, Tiina Niklander 14-10

Huomioita siirrännästä Siirrännän toteutus yhdenmukaisesti kaikille laitteille samanlainen liitäntä prosessien sekä KJ:n ylimpien tasojen suuntaan myös laitteita käsitellään tdstojärjestelmän kautta (laitetdstot) Sovelluksen käyttöön yhdenmukaiset operaatiot kaikille laitteille open(), close(), read(), write(), lock(), unlock()... kaikki eivät mielekkäitä kaikille laitteille Eroavat yksityiskohdat alemmille tasoille loogisen nimen liittäminen fyysiseen laitteeseen tdsto vs. kirjoitin välitasoilla esim. puskurointi ja tiedonsiirron protokollat alimpana varsinaiset laiteajurit ohjaavat laiteohjaimen avulla laitetta 21 Siirrännän hierarkia Looginen I/O (laiteriippumaton I/O) prosessi käyttää esim. tdston loogista nimeä tdston rakenne = jono peräkkäisiä tavuja operaatiot: open(), close(), read(), write(), Välitasoilla mm. puskurointi yms. loogisen I/O:n ja fyysisen I/O:n yksiköt erilaisia lue tavu vs. siirrä levylohko tarkista käyttöoikeudet lohkonumero levypinta, ura, sektori pyyntöjen järjestely (hakuvarren siirtojen minimointi) Fyysinen I/O siirrä hakuvartta, DMA... 22 Syksy 2007, Tiina Niklander 14-11

Palvelupyynnöt Laiteriippumaton taso - tdstojärjestelmä - puskurointi Laiteriippuva taso - laiteajurit - jonotus, järjestys - keskeytyskäsittely Laitteisto - siirto, DMA - keskeytys Kuva 11.4 Siirrännän hierarkia Tan01 Kuva 5-16 24 Syksy 2007, Tiina Niklander 14-12

Laiteajurit Erityyppisille laitteille omat ajurinsa Etsi ajuri laitenumeron perusteella laitekuvaajalistasta siirtoa käynnistettäessä siirron päättyessä (keskeytys!) Laitekuvaaja laitteen tunnistus, device id tilatietoa, kenelle laite varattu mitä ajuria käyttää mitä ajurin funktiota (handler) kutsuttava missäkin tilanteessa open(), read(), write(), close(), keskeytys jono pyynnöistä parametreineen mm. linkki pyynnön tehneen prosessin PCB:hen 25 Laiteajurit Fig. 5-11 [Tan01] 26 Syksy 2007, Tiina Niklander 14-13

I/O-ohjain Ohjain puskuroi väylältä tulevan / väylälle menevän datan datarekistereihinsä sisäisen ja ulkoisen väylän nopeusero Status- ja ohjausrekisteri(t) statustietoa ohjaimen / siirron tilasta siirtokäskyt, osoitteet (lähde/kohde), tavumäärä Väylän varaus ja CPU:n keskeytys ohjausväylää käyttäen Liittymä laitteeseen vaihtelee tarpeen mukaan 27 Puskurointi 28 Syksy 2007, Tiina Niklander 14-14

Siirrännän puskurointi Tarve Prosessi odottaa Blocked-tilassa siirron valmistumista Alue, jonne siirretään oltava silti muistissa Lohkoperustainen Levyt, nauhat kirjanpito vapaasta / varatusta tilasta lohkoittain siirto laitteen ja muistin välillä lohko kerrallaan hajakäsittely mahdollista (nauha?) Tavuperustainen pääteyhteys, kirjoitin, hiiri, tiedonsiirtolinja,... tiedon käsittely tavu kerrallaan vain peräkkäiskäsittely 29 Ei puskurointia Fig 11.5 [Stal05] Siirto suoraan prosessin alueelle! Prosessin muistialuetta ei voi heittovaihtaa (lukittava!) Tieto käsiteltävä samankokoisina yksikköinä prosessissa ja laitteella Käyttöä esim. reaaliaikajärjestelmissä 30 Syksy 2007, Tiina Niklander 14-15

Yksi puskuri Fig 11.5 [Stal05] Ohjain siirtää tiedon KJ:n puskuriin KJ siirtää ohjelman alueelle (=muuttujaan) 31 Yksi puskuri Ennaltanouto (read-ahead) KJ voi täyttää puskurin etukäteen koska peräkkäiskäsittely yleisintä Viivästetty kirjoitus (delayed write) prosessin kirjoittama data kootaan puskuriin laitteelle vasta, kun puskuri täysi, tai kun prosessi sulkee laitteen (viim. lohko voi olla vajaa) Prosessin voi heittovaihtaa kokonaan siirräntä käyttää aina KJ:n aluetta Sopii sekä lohko- että tavuperustaiseen käyttötapaan 32 Syksy 2007, Tiina Niklander 14-16

Kaksoispuskurointi Kun prosessi käsittelee toisessa puskurissa olevaa tietoa, ohjain lukee toiseen Kun ohjain kirjoittaa puskurista laitteelle, prosessi voi täyttää toista puskuria Tuottaja - puskuri - kuluttaja -> synkronointi 33 Puskurien käyttö renkaana Jos tuottajan ja kuluttajan nopeudessa satunnaisia eroja, useamman kuin kahden puskurin käytöstä voi olla hyötyä esim. verkkoyhteydet 34 Syksy 2007, Tiina Niklander 14-17

Levypyyntöjen järjestely Ch 11.5 [Stal 05] 35 Levyhaku (Fig 11.6 [Stal05]) Laitteen vapautumisen odotus ohjain käsittelee yhden pyynnön kerrallaan Siirtokanavan odotus jos useita levyjä samassa väylässä Hakuvarren siirto-aika (seek time) hakuvarsi oikealle uralle Pyörähdysviive (rotational delay/latency) odota, että oikea sektori pyörähtää kohdalle Siirtoaika (transfer time) yhden lohkon kirjoittamiseen/lukemiseen kuluva aika? Näihin voi vaikuttaa saantiaika (access time) Tähän ei voi vaikuttaa 36 Syksy 2007, Tiina Niklander 14-18

Algoritmeja Hakuvarren siirtoaika pisin kannattaa minimoida siirrot Random? FIFO? PRI? LIFO? huonoja, eivät huomioi hakuvarren nykyistä positiota Ota huomioon hakuvarren sijainti SSTF SCAN C-SCAN N-step-SCAN ja FSCAN Esimerkeissä: 200 uraa, hakuvarsi uralla 100, hae urilta 55, 58, 39, 18, 90, 160, 150, 38, 184 Nyt 100; hakujonossa 55, 58, 39, 18, 90, 160, 150, 38, 184 37 First-in-first-out, FIFO Käsittele saapumisjärjestyksessä Tasapuolinen kaikille prosesseille Prosessin levypyynnöt usein toistensa lähialueilta FIFO ei ihan yhtä huono kuin Random! Ei hyvä, koska ei ota huomioon levyn tilaa Tbl 11.2 [Stal 05]) ei mukana hakuvarren kiihdytystä tai hidastusta keskim 55.3 uran ylitystä Nyt 100; hae 55, 58, 39, 18, 90, 160, 150, 38, 184 (Fig 11.7 [Stal 05]) 38 Syksy 2007, Tiina Niklander 14-19

Prioriteetti, PRI Käytä prosessin suoritin prioriteettia myös levyprioriteettina Prosessin prioriteetti määräytyy muiden tekijöiden (suoritin!) kuin levyhakujen perusteella Lyhyillä erätöillä usein suuri (suoritin) prioriteetti minimoi läpimenoaikaa Interaktiivisilla hyvä (suoritin) prioriteetti minimoi vastausaikaa Ei hyvä, koska ei ota huomioon levyn tilaa 39 LIFO, Last-in-first-out Palvele viimeksi tullut pyyntö ennen muita anna laite aina aktiivisimmalle prosessille idea: vähentää hakuvarren siirtotarvetta, erityisesti peräkkäistiedostoja käsiteltäessä (paikallisuusilmiö) Nälkiintymisvaara jos paljon I/O-sidonnaisia prosesseja, vanha pyyntö voi jäädä jalkoihin non-blocking write aina läpi blocking read voi odottaa kauan Ei hyvä, koska ei ota huomioon levyn tilaa 40 Syksy 2007, Tiina Niklander 14-20

SSTF, Shortest Service Time First Palvele pyyntö, jossa selvitään lyhyimmällä hakuvarren siirrolla Esiintyy myös nimellä Shortest Seek First (SSF) Vanhat voi jäädä jalkoihin, kun paljon uusia töitä I/O sid. työ (korkea CPU prioriteetti)? lue uralta 25 käytä CPU:ta lue uralta 25 Tbl 11.2 [Stal 05]) keskim 27.5 uran ylitystä Nyt 100; hae 55, 58, 39, 18, 90, 160, 150, 38, 184 (Fig 11.7 [Stal 05]) 41 SCAN ja LOOK Siirrä hakuvartta samaan suuntaan kunnes reuna vastaan Vaihda sen jälkeen hakuvarren suunta, ja palvele matkan varrelle osuvat pyynnöt Suosii keskiurille osuvia pyyntöjä ja uusia töitä Myös nimellä elevator (hissi) LOOK-versio: käänny takaisin heti, jos edessä ei työtä ei mennä reunalle asti keskim 27.8 uran ylitystä Tbl 11.2 [Stal 05]) reunalle asti vai ei? LOOK Nyt 100; hae 55, 58, 39, 18, 90, 160, 150, 38, 184 X (Fig 11.7 [Stal 05]) 42 Syksy 2007, Tiina Niklander 14-21

Circular-Scan, C-SCAN Siirrä hakuvartta käsittelyn aikana aina samaan suuntaan Kun ko. suunnassa ei ole enää palveltavia, palauta hakuvarsi takaisin ja aloita uudelleen Hukka-aika varren palauttamiseen? Kaikilla urilla sama palvelu C-LOOK versio: ei mennä reunalle asti, jos ei tarvitse Tbl 11.2 [Stal 05]) ei hakuja paluumatkalla keskim 35.8 uran ylitystä X C-LOOK? Nyt 100; hae 55, 58, 39, 18, 90, 160, 150, 38, 184 (Fig 11.7 [Stal 05]) 43 FSCAN Ongelma: paljon uusia töitä samalle uralle vanhat työt odottavat ja odottavat Ratkaisu: Kaksi jonoa (S ja Q, eli Service ja Queue) palvele S-jonoa (SCAN-algoritmilla) näiden palvelun aikana kaikki uudet työt jäävät jonoon kerää Q-jonoon sillä aikaa tulevat pyynnöt kerralla palvellaan kaikki edellisen S-jonon käsittelyn aikana tulleet työt Vasteajan varianssi pienempi kuinscan illa 44 Syksy 2007, Tiina Niklander 14-22

N-step-SCAN Ongelma: paljon uusia töitä samalle uralle vanhat työt odottavat ja odottavat S-jono hyvin pitkä, jolloin sen alussa olevat työt voivat joutua odottamaan paljon, kunnes oma vuoro tulee Ratkaisu: kaksi jonoa (S ja Q, Service ja Queue) palvele S-jonoa (SCAN algoritmilla) näiden palvelun aikana kaikki uudet työt jäävät jonoon kerää Q-jonon loppuun sillä aikaa tulevat pyynnöt ota uuteen S-jonoon n ensimmäistä jonottajaa Q-jonosta tai kaikki, jos vähemmän kuin n kerralla palvellaan korkeintaan n työtä n = 1 FIFO n = SCAN miksi nimi N-step-SCAN? 45 Levyn vuorotusalgoritmeja 46 Syksy 2007, Tiina Niklander 14-23

Algoritmien vertailu Tbl. 11.2 [Stal 05] Hyvyyden mitta? läpikäytyjen urien lkm? Parempi hyvyyden mitta hakuvarren siirtoaika yhteensä? ei ole lineaarinen ylitettävien urien suhteen kokonaisaika? pyörähdysviive? vasteaika? Yhteenveto Tbl. 11.3 [Stal 05] Seek Time 80GB 400GB Average (1/3) 12 4.2 Track-to-track 2.5 2.0 Full stroke 23 21 ms 47 Pyörähdysviive mukaan - realismia SLTF Shortest Latency Time First minimoi pyörähdysviive oma jono joka sektorille (uralle), sector queueing SPTF Shortest Positioning Time First minimoi hakuvarren siirtoaika + pyörähdysviive etusija keskiurille, sisä- ja ulkoreunoja sorsitaan (ks. [DDC 04]) SATF - Shortest Access Time First minimoi hakuvarren siirtoaika + pyörähdysviive + tiedonsiirtoaika (tässä access time = tiedon sijainnin etsintä + siirtoaika) etusija keskiurille, sisä- ja ulkoreunoja sorsitaan etusija pienillä töillä Rot. delay 80GB 400GB Rot. speed 4800 7200 rpm Aver. rot. delay 6.25 4.2 ms 48 Syksy 2007, Tiina Niklander 14-24

Loogiset sektorit Peräkkäiset sektorinumerot eivät välttämättä tarkoita, että sektorit olisivat fyysisesti peräkkäin ylimääräiset sektorit virheenkorjausta ja havaitsemista varten viallinen sektori 123? Otetaan tilalle varasektori 9876, jonka looginen osoite on silti 123 eivät näy ulospäin lainkaan, levyohjaimen sisäistä tietoa laiteajuri ei voi ottaa huomioon! laiteajurin (kernelin) tekemä optimointi voi perustua väärään tietoon Joissakin levyissä voidaan kysellä todellista sektorien sijaintia Joissakin levyissä levyohjain toteuttaa omaa optimointiaan ottaa huomioon myös loogiset sektorit ajuri ei silloin optimoi (toivottavasti) 49 Syksy 2007, Tiina Niklander 14-25