Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Periféria kezelés.

Hasonló előadás


Az előadások a következő témára: "Periféria kezelés."— Előadás másolata:

1 Periféria kezelés

2 1. példa Processzorunk órajel frekvenciája 100MHz. A számítógéphez egy billentyűzetet kötünk, melyen átlagosan 10 karaktert ütnek le másodpercenként, de két leütés akár 50 ms-onként is követheti egymást. A billentyűzet állapotának lekérdezése (mely tartalmazza a lenyomott gomb kódját is) 500 órajelet igényel. Az interrupt feldolgozási idő ezen felül még 100 órajel. A feladatok a következők: (a) Hányszor kell másodpercenként lekérdezni a billentyűzetet, hogy ne maradjunk le semmiről? (b) Mekkora terhelést jelent a processzor számára, ha a billentyűzet kezelésére polling-ot használ? (a) Ha nem akarunk lemaradni egyetlen gombnyomásról sem, 50 ms-onként kell lekérdeznünk a billentyűzetet. Vagyis a kérdésre a válasz: 1 lekérdezés = 1 s / 50 ms = 20, azaz 20-szor kell lekérdezni (b) Először számoljuk ki, hány órajel megy el másodpercenként a billentyűzet kérdezgetésére: 20 lekérdezés/s * 500 órajel/lekérdezés = 104 órajel/s Mivel a processzor órajel frekvenciája 100MHz (108 órajel/s), a terhelés: ( 104 órajel/s ) / ( 108 órajel/s ) = = 0.01%.

3 Processzorunk órajel frekvenciája 100MHz
Processzorunk órajel frekvenciája 100MHz. A számítógéphez egy billentyűzetet kötünk, melyen átlagosan 10 karaktert ütnek le másodpercenként, de két leütés akár 50 ms-onként is követheti egymást. A billentyűzet állapotának lekérdezése (mely tartalmazza a lenyomott gomb kódját is) 500 órajelet igényel. Az interrupt feldolgozási idő ezen felül még 100 órajel. A feladatok a következő: (c) Mekkora terhelést jelent a processzor számára, ha a billentyűzet kezelésére interrupt-ot használ? c) Interrupt használatával csak akkor kell a billentyűzethez fordulni, ha tényleges leütés történt (10-szer másodpercenként). Ekkor azonban mind az interrupt feldolgozási idő, mind a gomb kódjának kiolvasása terheli a processzort. A terhelés tehát: 10 leütés/s * (100 órajel/leütés órajel/leütés) = 6000 órajel 6*103 / 108 = 6*10-5 = 0.006%.

4 2. példa Processzorunk órajel frekvenciája 1GHz. A számítógéphez egy 100 Mbit/s sebességű hálózati interfészt kötünk, melyen 1500 bájtos (=12000 bit) csomagok közlekednek. A periféria állapotának lekérdezése (mely nem tartalmazza a hálózati csomag tartalmát) 600 órajelet igényel. Az interrupt feldolgozási idő 400 órajel. Ha jött csomag, annak átvitele 5000 órajelet vesz igénybe. Jelenleg épp egy 24 Mbit/s sebességű letöltés van folyamatban a hálózaton. Válaszolja meg az alábbi kérdéseket! (a) Hány ms-onként kell lekérdezni a perifériát, hogy biztosan ne maradjunk le egy csomag érkezéséről? (a) Pont annyi időnként kell lekérdezni, amennyi időnként elméletileg jöhet csomag. Tehát csak azt kell kiszámolnunk, hogy a 100 Mbit/s sebességű hálózati interfészen mennyi idő szükséges egy csomag (12000 bit) átviteléhez: 12000 bit/csomag / 100*106 bit/s = 0.12*10-3s/csomag, azaz a perifériát 0.12 ms-onként kell lekérdezni.

5 Processzorunk órajel frekvenciája 1GHz
Processzorunk órajel frekvenciája 1GHz. A számítógéphez egy 100 Mbit/s sebességű hálózati interfészt kötünk, melyen 1500 bájtos (=12000 bit) csomagok közlekednek. A periféria állapotának lekérdezése (mely nem tartalmazza a hálózati csomag tartalmát) 600 órajelet igényel. Az interrupt feldolgozási idő 400 órajel. Ha jött csomag, annak átvitele 5000 órajelet vesz igénybe. Jelenleg épp egy 24 Mbit/s sebességű letöltés van folyamatban a hálózaton. Válaszolja meg az alábbi kérdéseket! (b) Mekkora terhelést jelent a periféria kezelése a processzor számára, ha a csomagok érkezését polling-al figyeljük? (b) A processzor terhelése ebben az esetben két részből áll: az állandó kérdezgetésből, hogy volt-e csomag, valamint ha volt, akkor a csomag tartalmának átvételéből. A lekérdezésre fordított idő kiszámolható az alábbi módon. 1/0.12*10-3 lekérdezés/s * 600 órajel/lekérdezés = 5*106 órajel/s. Ha érkezett csomag, az át is kell venni. Először lássuk, hogy 24 Mbit/s sebesség mellett milyen gyakran jönnek csomagok: 24*106 bit/s / bit/csomag = 2000 csomag/s, vagyis a csomagok átvételéhez szükséges órajelek száma: 2000 csomag/s * 5000 órajel/csomag = 10*106 órajel/s. Összesen tehát a terhelés: 5*106 órajel/s +10*106 órajel/s / 109 órajel/s = = 1.5%, mivel 1GHz = 109 órajel/s.

6 Processzorunk órajel frekvenciája 1GHz
Processzorunk órajel frekvenciája 1GHz. A számítógéphez egy 100 Mbit/s sebességű hálózati interfészt kötünk, melyen 1500 bájtos (=12000 bit) csomagok közlekednek. A periféria állapotának lekérdezése (mely nem tartalmazza a hálózati csomag tartalmát) 600 órajelet igényel. Az interrupt feldolgozási idő 400 órajel. Ha jött csomag, annak átvitele 5000 órajelet vesz igénybe. Jelenleg épp egy 24 Mbit/s sebességű letöltés van folyamatban a hálózaton. Válaszolja meg az alábbi kérdéseket! (c) Mekkora terhelést jelent a processzor számára, ha interrupt-ot használunk a csomag érkezések jelzésére? (c) Előbb kiszámoltuk, hogy 24 Mbit/s mellett 2000 csomag/s sebességgel jönnek a csomagok. Minden csomag érkezésekor interrupt keletkezik, mely az interrupt feldolgozási idővel és a csomag átviteli idővel terheli a processzort. A processzor terhelése tehát 2000 csomag/s * (400 órajel/csomag+5000 órajel/csomag) / 109 órajel/s = = 1.08%.

7 3. példa Egy speciális számítógép egy 100MHz órajel frekvenciával hajtott processzort, egy melegedésre hajlamos, de ideiglenesen kikapcsolható perifériát, valamint egy hőérséklet érzékelőt tartalmaz. A hőmérséklet érzékelő bármikor leolvasható (egy leolvasás 500 órajelet vesz igénybe), de be lehet állítani úgy is, hogy egy hőmérsékleti küszöb túllépésekor kérjen megszakítást (a megszakítás kiszolgálása 120 órajelet vesz igénybe). Túlmelegedés átlagosan percenként egyszer következik be, amikor is a processzor kikapcsolja a túlhevült perifériát, majd nem sokkal ezután újra bekapcsolja azt. (a) Ha nem használunk megszakítást, hányszor kell másodpercenként lekérdezni a hőmérőt, ha a rendszerünk mindössze 1ms ideig tolerálja a túlhevülést? (a) Ha 1 ms-ig tolerálja a rendszer a túlhevülést, akkor 1ms-onként kell lekérdezni a hőmérőt, vagyis másodpercenként 1000-szer.

8 Egy speciális számítógép egy 100MHz órajel frekvenciával hajtott processzort, egy melegedésre hajlamos, de ideiglenesen kikapcsolható perifériát, valamint egy hőérséklet érzékelőt tartalmaz. A hőmérséklet érzékelő bármikor leolvasható (egy leolvasás 500 órajelet vesz igénybe), de be lehet állítani úgy is, hogy egy hőmérsékleti küszöb túllépésekor kérjen megszakítást (a megszakítás kiszolgálása 120 órajelet vesz igénybe). Túlmelegedés átlagosan percenként egyszer következik be, amikor is a processzor kikapcsolja a túlhevült perifériát, majd nem sokkal ezután újra bekapcsolja azt. (b) Mekkora átlagos késéssel értesülünk a túlhevülésről, ha nem használunk megszakítást? (ms-ban kifejezve) (b) Lehet, hogy a lekérdezéssel épp elkaptuk a túlhevülés pillanatát, ekkor 0 ms a késleltetés, de az is lehet, hogy épp a lekérdezés után következett be, ekkor 1 ms lesz a késleltetés. A kérdésre a válasz a kettő átlaga, vagyis 0.5 ms.

9 Egy speciális számítógép egy 100MHz órajel frekvenciával hajtott processzort, egy melegedésre hajlamos, de ideiglenesen kikapcsolható perifériát, valamint egy hőérséklet érzékelőt tartalmaz. A hőmérséklet érzékelő bármikor leolvasható (egy leolvasás 500 órajelet vesz igénybe), de be lehet állítani úgy is, hogy egy hőmérsékleti küszöb túllépésekor kérjen megszakítást (a megszakítás kiszolgálása 120 órajelet vesz igénybe). Túlmelegedés átlagosan percenként egyszer következik be, amikor is a processzor kikapcsolja a túlhevült perifériát, majd nem sokkal ezután újra bekapcsolja azt. (c) Ha nem használunk megszakítást, mekkora terhelést jelent a processzornak a hőmérő folyamatos lekérdezése? (%-ban kifejezve) (c) Másodpercenként 1000 lekérdezéssel és 500 órajeles lekérdezési idővel számolva a terhelés 1000 lekérdezés/s * 500 órajel/lekérdezés / 100*106 órajel/s = = 0.5%, hiszen a processzor sebessége 100MHz= 100*106 órajel/s.

10 Egy speciális számítógép egy 100MHz órajel frekvenciával hajtott processzort, egy melegedésre hajlamos, de ideiglenesen kikapcsolható perifériát, valamint egy hőérséklet érzékelőt tartalmaz. A hőmérséklet érzékelő bármikor leolvasható (egy leolvasás 500 órajelet vesz igénybe), de be lehet állítani úgy is, hogy egy hőmérsékleti küszöb túllépésekor kérjen megszakítást (a megszakítás kiszolgálása 120 órajelet vesz igénybe). Túlmelegedés átlagosan percenként egyszer következik be, amikor is a processzor kikapcsolja a túlhevült perifériát, majd nem sokkal ezután újra bekapcsolja azt. (d) Mekkora terhelést jelent a processzornak (%-ban), ha a túlhevülés figyelését megszakításkezeléssel oldjuk meg? (d) Megszakítás esetén csak a 120 órajeles interrupt feldolgozási idővel kell számolnunk, hiszen az interruptból már eleve értesülünk az eseményről, nem kell a hőmérőt is leolvasnunk. Mivel átlagosan percenként egyszer kapunk interrupt-ot, a terhelés ( 1/60 interrupt/s * 120 órajel/interrupt ) / 100*106 órajel/s = 2* 10-8 = %.

11 Merevlemez példák

12 4. példa Egy merevlemez 3 db kétoldalas lemezt tartalmaz, melyek mindegyikén sáv található, minden sávban 1000 szektorral. A szektorok mérete 500 bájt. ZBR nincs, az adatátviteli interfész sebessége pedig 500*106 bájt/s. A parancsfeldolgozási késleltetés olyan kicsi, hogy nullának tekintjük. Az átlagos seek idő 8 ms, a lemez forgási sebessége fordulat/perc. A feladatok a következők: (a) Adjuk meg CHS koordináta rendszerben a lemez kapacitását! (a) A cilinderek száma megegyezik a sávok számával, vagyis C = Mivel három lemezünk van, mindegyiken két adathordozó réteggel, a fejek száma H = 6. A sávonkénti szektorok száma pedig S = 1000.

13 Egy merevlemez 3 db kétoldalas lemezt tartalmaz, melyek mindegyikén sáv található, minden sávban 1000 szektorral. A szektorok mérete 500 bájt. ZBR nincs, az adatátviteli interfész sebessége pedig 500*106 bájt/s. A parancsfeldolgozási késleltetés olyan kicsi, hogy nullának tekintjük. Az átlagos seek idő 8 ms, a lemez forgási sebessége fordulat/perc. A feladatok a következők: (b) Mekkora a merevlemez kapacitása bájtokban mérve? (b) A merevlemez kapacitása: 3 lemez/merevlemez * 2 hordozóréteg/lemez * sáv/hordozóréteg * 1000 szektor/sáv * 500 bájt/szektor = 150*109bájt/merevlemez

14 Egy merevlemez 3 db kétoldalas lemezt tartalmaz, melyek mindegyikén sáv található, minden sávban 1000 szektorral. A szektorok mérete 500 bájt. ZBR nincs, az adatátviteli interfész sebessége pedig 500*106 bájt/s. A parancsfeldolgozási késleltetés olyan kicsi, hogy nullának tekintjük. Az átlagos seek idő 8 ms, a lemez forgási sebessége fordulat/perc. A feladatok a következők: (c) Mennyi a lemezek teljes körülfordulási ideje? (c) A körülfordulási idő a forgási sebességből számítható: 1/ perc/fordulat x ms/perc = 6 ms

15 Egy merevlemez 3 db kétoldalas lemezt tartalmaz, melyek mindegyikén sáv található, minden sávban 1000 szektorral. A szektorok mérete 500 bájt. ZBR nincs, az adatátviteli interfész sebessége pedig 500*106 bájt/s. A parancsfeldolgozási késleltetés olyan kicsi, hogy nullának tekintjük. Az átlagos seek idő 8 ms, a lemez forgási sebessége fordulat/perc. A feladatok a következők: (d) Mennyivel lassabb egy 100 egymásutáni szektorra vonatkozó olvasási kérés teljes kiszolgálási ideje, mint egy 1 szektorra vonatkozó kérésé? (d) A feladat megválaszolásához célszerű kiszámolni a kiszolgálási idő komponenseit: parancsfeldolgozási idő = 0 átlagos seek idő = 8ms átlagos forgási késleltetés = ½ * 1/10000 perc/fordulat * ms/perc = 3 ms egy szektor leolvasási ideje = 1/1000-ed fordulat ideje = ms adatátviteli idő = 500 bájt/szektor / 500*106 bájt/s = ms Ezek alapján az egyetlen szektor olvasására vonatkozó kérés teljes kiszolgálási ideje: 8ms +3ms ms ms = ms. Ha 100 egymás utáni szektort kell beolvasni, akkor csak egyszer kell seek-elni és a forgási késleltetést megvárni. Továbbá, a szektor leolvasási idő és az adatátviteli idő átlapolhatók, vagyis az első szektor átvitele közben már lehet a második szektort leolvasni a lemezről. Az átlapolás miatt a leolvasás + átvitel együttesen 100* 0.006ms ms ideig tart (a második tag az utolsó szektor átviteli ideje, azt nem lehet átlapolni). A teljes kiszolgálási idő tehát 8ms +3ms +100*0.006ms ms = ms.

16 Egy merevlemez 3 db kétoldalas lemezt tartalmaz, melyek mindegyikén sáv található, minden sávban 1000 szektorral. A szektorok mérete 500 bájt. ZBR nincs, az adatátviteli interfész sebessége pedig 500*106 bájt/s. A parancsfeldolgozási késleltetés olyan kicsi, hogy nullának tekintjük. Az átlagos seek idő 8 ms, a lemez forgási sebessége fordulat/perc. A feladatok a következők: (e) Mekkora seek idővel érhetjük el, hogy egy szektor teljes kiszolgálási ideje ugyanakkora maradjon, ha a lemezt fele olyan gyorsan forgatjuk? (ms-ban kifejezve) (e) Ha a lemez fele olyan gyorsan forog, akkor a forgási késleltetés 6 ms-ra nő, a szektor leolvasási idő pedig ms-ra. A kérdésre a választ az alábbi egyenlet megoldásából kapjuk: x +6 ms ms ms = ms, amiből a kívánatos seek időre x = ms adódik.

17 3. Példa Egy merevlemez 3 db kétoldalas lemezt tartalmaz, melyek mindegyikén sáv található. A sávok két zónára oszlanak(ZBR) 1-től ig sávonként 2000, től ig sávonként 1000 szektorral. A szektorok mérete 500 bájt. Az adatátviteli interfész sebessége 250 x 106 bájt/s. A parancsfeldolgozási késleltetés 1 ms. Az átlagos seek idő 5 ms. A lemez forgási sebessége 6000 ford/perc.. A feladatok a következők: Mekkora a lemez kapacitása bájtokban mérve? (a) Kapacitás: 3 lemez/egység x 2 réteg/lemez x (50000 sáv/réteg x 1000 szektor/sáv sáv/réteg x 2000 szektor/sáv ) x 500 bájt / szektor = 450 x 109 bájt/lemezegység

18 3. Példa Egy merevlemez 3 db kétoldalas lemezt tartalmaz, melyek mindegyikén sáv található. A sávok két zónára oszlanak(ZBR) 1-től ig sávonként 2000, től ig sávonként 1000 szektorral. A szektorok mérete 500 bájt. Az adatátviteli interfész sebessége 250 x 106 bájt/s. A parancsfeldolgozási késleltetés 1 ms. Az átlagos seek idő 5 ms. A lemez forgási sebessége 6000 ford/perc.. A feladatok a következők: b) Mennyi a lemezek teljes körülfordulási ideje? (b) A forgási sebességből számítva: 1/6000 perc/fordulat x ms/perc = 10 ms

19 3. Példa Egy merevlemez 3 db kétoldalas lemezt tartalmaz, melyek mindegyikén sáv található. A sávok két zónára oszlanak(ZBR) 1-től ig sávonként 2000, től ig sávonként 1000 szektorral. A szektorok mérete 500 bájt. Az adatátviteli interfész sebessége 250 x 106 bájt/s. A parancsfeldolgozási késleltetés 1 ms. Az átlagos seek idő 5 ms. A lemez forgási sebessége 6000 ford/perc.. A feladatok a következők: c) Mennyi az egyetlen szektorra vonatkozó olvasási kérés átlagos kiszolgálási ideje, ha a szektor a es sávba esik? (c) Egy szektor leolvasási ideje az első zónában: 10 ms/fordulat / 2000 szektor/fordulat = ms/szektor 500 bájt átviteli ideje: 500 bájt / 250x106 bájt/sec = 2x10-6 s=0.002ms Teljes idő: parancsfeldolgozás+seek+forgási késl.+olvasás+átvitel, azaz 1 ms + 5 ms + 5 ms ms ms = ms

20 3. Példa Egy merevlemez 3 db kétoldalas lemezt tartalmaz, melyek mindegyikén sáv található. A sávok két zónára oszlanak(ZBR) 1-től ig sávonként 2000, től ig sávonként 1000 szektorral. A szektorok mérete 500 bájt. Az adatátviteli interfész sebessége 250 x 106 bájt/s. A parancsfeldolgozási késleltetés 1 ms. Az átlagos seek idő 5 ms. A lemez forgási sebessége 6000 ford/perc.. A feladatok a következők: d) Mennyi az egyetlen szektorra vonatkozó olvasási kérés átlagos kiszolgálási ideje, ha a szektor a es sávba esik? (d) A különbség az olvasási időben van, ez az előző kétszerese lesz, mivel csak feleannyi szektor van egy sávon Egy szektor leolvasási ideje az első zónában: 10 ms/fordulat / 1000 szektor/fordulat = 0.01 ms/szektor 500 bájt átviteli ideje: 500 bájt / 250x106 bájt/sec = 2x10-6 s=0.002ms Teljes idő: parancsfeldolgozás+seek+fogási késl.+olvasás+átvitel, azaz 1 ms + 5 ms + 5 ms ms ms = ms

21 4. példa Egy merevlemez 3 db kétoldalas lemezt tartalmaz, melyek mindegyikén sáv található, minden sávban 1000 szektorral. A szektorok mérete 500 bájt. ZBR nincs. Az átlagos seek idő 4 ms. Mérésekkel megállapítottuk, hogy az egy szektorra vonatkozó olvasási kérések kiszolgálási ideje 10 ms. A feladatok a következők: (a) Mekkora a merevlemez kapacitása CHS koordináta rendszerben kifejezve? Az egységben 3 darab kétoldalas lemez van, tehát a fejek száma H = 3 x 2 = 6 A cilinderek számát a sávok határozzák meg, azaz C = A szektorok száma sávonként 1000, azaz S = 1000

22 4. példa Egy merevlemez 3 db kétoldalas lemezt tartalmaz, melyek mindegyikén sáv található, minden sávban 1000 szektorral. A szektorok mérete 500 bájt. ZBR nincs. Az átlagos seek idő 4 ms. Mérésekkel megállapítottuk, hogy az egy szektorra vonatkozó olvasási kérések kiszolgálási ideje 10 ms. A feladatok a következők: (b) Ha a parancsfeldolgozási késleltetéstől és az interfészen való átviteli időtől eltekintünk, milyen gyorsan forog a lemez? (fordulat/perc-ben megadva) (b) A feladat megoldásához tudni kell, hogy a forgási késleltetés a lemez körülfordulási idejének (x) a fele (x/2), a szektorok leolvasási idejét pedig úgy kaphatjuk meg, hogy a körülfordulási időt elosztjuk az egy sávban található szektorok számával (x/1000). Így x-re az alábbi egyenletet kapjuk: 4+ x / 2+ x / 1000 = 10, amiből x = 6000 / 501 ms adódik. Ezt átváltva fordulat/perc-re a kérdésre a válasz ms/perc / 6000 / 501 ms/fordulat = 5010 fordulat/perc.

23 4. példa Egy merevlemez 3 db kétoldalas lemezt tartalmaz, melyek mindegyikén sáv található, minden sávban 1000 szektorral. A szektorok mérete 500 bájt. ZBR nincs. Az átlagos seek idő 4 ms. Mérésekkel megállapítottuk, hogy az egy szektorra vonatkozó olvasási kérések kiszolgálási ideje 10 ms. A feladatok a következők: (c) Meddig tart egy szektor leolvasása az adathordozóról? (Ha már ott van a fej) (c) Ha már ott van a fej, a leolvasási időt úgy kapjuk meg, hogy a körülfordulási időt elosztjuk az egy sávon lévő szektorok számával: 6000 / 501 ms / 1000 = 6 / 501 ms = ms

24 4. példa Egy merevlemez 3 db kétoldalas lemezt tartalmaz, melyek mindegyikén sáv található, minden sávban 1000 szektorral. A szektorok mérete 500 bájt. ZBR nincs. Az átlagos seek idő 4 ms. Mérésekkel megállapítottuk, hogy az egy szektorra vonatkozó olvasási kérések kiszolgálási ideje 10 ms. A feladatok a következők: (d) Ha a parancsfeldolgozási idő 0.1 ms, az adatátviteli interfész sebessége pedig 50x106 bájt/s, akkor mennyi a 2000bájtos blokkokra vonatkozó (véletlen) adatátviteli sebesség? Mennyi az 50x106 bájtos blokkokra vonatkozó (folytonos) adatátviteli sebesség? (d) Egy szektor átviteli ideje: 500 bájt/szektor / 50x106 bájt/s = 10-5s=0.01 ms. Mivel ez kisebb, mint egy szektor olvasási ideje, át lehet lapolni, így a kiszolgálási idő: ½ x 6000/ x = ms. Egy másodperc alatt 1000/10.146= kérést tud a lemezegység kiszolgálni, tehát az adatátviteli sebesség x 2000 = bájt/s. Folytonos átvitel esetén 50x106/500= szektor átvitele szükséges, ennek ideje: ½ x 6000/ x = ms. Egy másodperc alatt 1000/1207.7=0.828 kérést tud a lemezegység kiszolgálni, tehát az adatátviteli sebesség x 50x106 = 41.4x106 bájt/s.

25 4. példa Egy merevlemez 3 db kétoldalas lemezt tartalmaz, melyek mindegyikén sáv található, minden sávban 1000 szektorral. A szektorok mérete 500 bájt. ZBR nincs. Az átlagos seek idő 4 ms. Mérésekkel megállapítottuk, hogy az egy szektorra vonatkozó olvasási kérések kiszolgálási ideje 10 ms. A feladatok a következők: (e) Ha a parancsfeldolgozási idő 0.1 ms, az adatátviteli interfész sebessége pedig 50*106 bájt/s, akkor átlagosan mennyi ideig tart egy 2000 bájtos kérés teljes kiszolgálása? (e) Már csak egyetlen összetevőt nem számoltunk ki eddig: a szektorok átviteli idejét. Egy 50*106 bájt/s-os interfészen egy 500 bájtos szektor átviteli ideje: 500 bájt/szektor / 50*106 bájt/s = 10-5 s = 0.01 ms. Mivel ez az érték kisebb, mint a szektor leolvasási idő, az átlapolás kihasználásával a kérdésre a válasz: /501 * 1/2 + 4 * = ms, hiszen 2000 bájt 4 szektor átvitelét jelenti.

26 5. feladat Egy 8 blokkból álló SSD pillanatnyi állapota az alábbi ábrán látható. A blokkok bal felső sarkában a blokk sorszáma, a jobb felsőben pedig az eddigi törlések száma látható. Minden blokk 4 lapot tárol, melyekhez nyilvántartjuk az állapotukat (”H”=használatban, ”É”=érvénytelen, ”T”=törölt), valamint, ha volt már rájuk írás, akkor az, hogy melyik LBA cím vonatkozik rájuk (most tekintsünk el attól, hogy a szektorméret és a lapméret nem egyenlő). A kiinduló állapotban az 1-es, 3-mas és 7-es blokkok törölt állapotban vannak, az írási front pedig a 6-os blokk. (a) Hogyan változik az SSD állapota, ha sorban egymás után az 5-ös, a 13-mas és a 2-es LBA címekre érkezik írási kérés? Ha új írási frontra van szükség, az SSD válassza azt, amelyik a lehető legegyenletesebb kopáshoz vezet!

27 5. feladat Egy 8 blokkból álló SSD pillanatnyi állapota az alábbi ábrán látható. A kiinduló állapotban az 1-es, 3-mas és 7-es blokkok törölt állapotban vannak, az írási front pedig a 6-os blokk. (a) Hogyan változik az SSD állapota, ha sorban egymás után az 5-ös, a 13-mas és a 2-es LBA címekre érkezik írási kérés? Ha új írási frontra van szükség, az SSD válassza azt, amelyik a lehető legegyenletesebb kopáshoz vezet! Az 5-ös LBA cím új tartalmát az írási front végére kell írni (6-os blokk, 4-es lap), és a régi változatát érvényteleníteni kell (8-as blokk, 2-es lap). Ezután az írási front betelik, újat kell keresni. Annak érdekében, hogy az SSD kopása a lehető legegyenletesebb legyen, a szabad blokkok közül (1-es, 3-mas, 7-es) azt választjuk, amelyik a legkevésbé kopott, vagyis a legkisebb a törlésszámlálója. Így a 7-es blokk lesz az új írási front. A 13-mas LBA cím tartalma már ide kerül (régi helyén, a 4-es blokk 1-es lapján érvénytelenítjük), és végül ide kerül a 2-es LBA címre szánt adat is. A végállapot tehát:

28 5. feladat (a) Hogyan változik az SSD állapota, ha sorban egymás után az 5-ös, a 13-mas és a 2-es LBA címekre érkezik írási kérés? Ha új írási frontra van szükség, az SSD válassza azt, amelyik a lehető legegyenletesebb kopáshoz vezet! Az 5-ös LBA cím új tartalmát az írási front végére kell írni (6-os blokk, 4-es lap), és a régi változatát érvényteleníteni kell (8-as blokk, 2-es lap). Ezután az írási front betelik, újat kell keresni. Annak érdekében, hogy az SSD kopása a lehető legegyenletesebb legyen, a szabad blokkok közül (1-es, 3-mas, 7-es) azt választjuk, amelyik a legkevésbé kopott, vagyis a legkisebb a törlésszámlálója. Így a 7-es blokk lesz az új írási front. A 13-mas LBA cím tartalma már ide kerül (régi helyén, a 4-es blokk 1-es lapján érvénytelenítjük), és végül ide kerül a 2-es LBA címre szánt adat is. A végállapot tehát:

29 5. feladat Egy 8 blokkból álló SSD pillanatnyi állapota az alábbi ábrán látható. A blokkok bal felső sarkában a blokk sorszáma, a jobb felsőben pedig az eddigi törlések száma látható. Minden blokk 4 lapot tárol, melyekhez nyilvántartjuk az állapotukat (”H”=használatban, ”É”=érvénytelen, ”T”=törölt), valamint, ha volt már rájuk írás, akkor az, hogy melyik LBA cím vonatkozik rájuk (most tekintsünk el attól, hogy a szektorméret és a lapméret nem egyenlő). A kiinduló állapotban az 1-es, 3-mas és 7-es blokkok törölt állapotban vannak, az írási front pedig a 6-os blokk. (b) Hogyan változik az SSD állapota, ha a kiindulási állapotban bekapcsol a szemétgyűjtő algoritmus, és meg sem áll, amíg a törölt blokkok listája eggyel nem nő (vagyis négy törölt blokk nem lesz)? (A szemétgyűjtő válassza mindig a legtöbb érvénytelen lapot tartalmazó blokkot, ha több ilyen is van, akkor azon közül a legkevésbé kopottat.)

30 5. feladat (b) Hogyan változik az SSD állapota, ha a kiindulási állapotban bekapcsol a szemétgyűjtő algoritmus, és meg sem áll, amíg a törölt blokkok listája eggyel nem nő (vagyis négy törölt blokk nem lesz)? (A szemétgyűjtő válassza mindig a legtöbb érvénytelen lapot tartalmazó blokkot, ha több ilyen is van, akkor azon közül a legkevésbé kopottat.) #3 T H 3 T T T H 1 (b) A szemétgyűjtő algoritmus négy olyan blokkot is talál, melyen két érvénytelen lap van, ezek közül a 2-es a legkevésbé kopott, ezért ezt teszi rendbe. A 2-es blokk 1-es lapját az írási frontra másolja, új írási frontra vált (ez lesz a 7-es blokk), és oda másolja a 3-as lapot. Ezzel a 2-es blokk csupa haszontalan adatot tartalmaz, törölhető. (Ne felejtsük növelni a törlések számát a jobb felső sarokban!) Sajnos még mindig csak 3 törölt lap van, nem lett több, mint volt, tehát a szemétgyűjtés folytatódik. A következő rendrakásra kijelölt blokk az 5-ös. Két használatban lévő blokkját az írási frontra, vagyis a 7-es blokkra másoljuk, aztán ezt a blokkot is töröljük. Most már eggyel több törölt blokkunk van, a szemétgyűjtés befejeződik, az SSD állapota pedig a következő:

31 5. feladat (b) Hogyan változik az SSD állapota, ha a kiindulási állapotban bekapcsol a szemétgyűjtő algoritmus, és meg sem áll, amíg a törölt blokkok listája eggyel nem nő (vagyis négy törölt blokk nem lesz)? (A szemétgyűjtő válassza mindig a legtöbb érvénytelen lapot tartalmazó blokkot, ha több ilyen is van, akkor azon közül a legkevésbbé kopottat.) (b) A szemétgyűjtő algoritmus négy olyan blokkot is talál, melyen két érvénytelen lap van, ezek közül a 2-es a legkevésbé kopott, ezért ezt teszi rendbe. A 2-es blokk 1-es lapját az írási frontra másolja, új írási frontra vált (ez lesz a 7-es blokk), és oda másolja a 3-as lapot. Ezzel a 2-es blokk csupa haszontalan adatot tartalmaz, törölhető. (Ne felejtsük növelni a törlések számát a jobb felső sarokban!) Sajnos még mindig csak 3 törölt lap van, nem lett több, mint volt, tehát a szemétgyűjtés folytatódik. A következő rendrakásra kijelölt blokk az 5-ös. Két használatban lévő blokkját az írási frontra, vagyis a 7-es blokkra másoljuk, aztán ezt a blokkot is töröljük. Most már eggyel több törölt blokkunk van, a szemétgyűjtés befejeződik, az SSD állapota pedig a következő:


Letölteni ppt "Periféria kezelés."

Hasonló előadás


Google Hirdetések