Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
KiadtaFruzsina Borosné Megváltozta több, mint 10 éve
1
Operációs Rendszerek II. 10. előadás 2007. április 16.
2
I/O kezelés I/O eszközök I/O szervezés Operációs rendszeri elvárások Diszkek kezelése –RAID Fájlrendszerek
3
I/O eszközök csoportosítása Csoportosítás kapcsolódás fajtája szerint –Felhasználói kapcsolat (bevitel és kivitel is) –Gép általi kapcsolat (pl. HDD, tape) –Kommunikáció (gép-gép közötti) A fenti csoportokba tartozó eszközök között is jelentős eltérések lehetnek további jellemzők vizsgálata szükséges!
4
I/O eszközök jellemzői 1.Adatátviteli sebesség (Data rate) 2.Felhasználási terület (Application) 3.Vezérlés összetettsége (Complexity of control) 4.Adatátvitel egysége (Unit of transfer) 5.Adatok megjelenése (Data representation) 6.Hibalehetőségek (Error conditions)
5
Adatátviteli sebesség Különféle eszközök átviteli sebessége között több nagyságrendi eltérés is lehet –Billentyűzet kevesebb, mint 100 bps –Ethernet: 10 9 bit/sec A sávszélesség nem köthető a kapcsolat fajtájához! EszközÁtviteli sebesség (10 n bps) Giga ethernet9 Grafikus megjelenítő10 (PCI Express) HDD9 (Seagate: 78 MB/s)
6
Felhasználási mód (terület) Az eszköz felhasználási területe befolyásolja, hogy az operációs rendszernek milyen módon kell azt kezelnie – Például a lemezegységek használatához általában fájlkezelő rendszer szükséges, azonban ha a lemezegységet a memória lapok tárolására használjuk (másodlagos memória) a fájlkezelés helyett másfajta lemezkezelésre lesz szükség
7
További jellemzők Vezérlés összetettsége: egy mátrixnyomtató kezelése viszonylag egyszerű feladatot ró az operációs rendszerre, ugyanakkor egy lemezegység kezelése meglehetősen összetett feladat. Az átvitel egysége: adatokat bájtok vagy karakterek folyamaként is átvihetjük, de kezelhetjük az adatokat összefüggő blokkokban is. Az adatok megjelenése: különböző eszközök az adatokat más-más kódolásban igényelhetik (karakterkódok, paritás, stb.). Hibalehetőségek: hibák jellege, a hibajelentés módja, és a hiba fellépése esetén elvégzendő intézkedések fajtáji eszközről-eszközre változnak. A változatosság ellenére azt várjuk, hogy az operációs rendszer az I/O kezelést egységes, eszközfüggetlen interfészen keresztül biztosítsa számunkra
8
I/O szervezés lehetőségei I/O kezelési technikák –Programozott I/O –Megszakítás vezérelt I/O –DMA alapú I/O Az I/O funkciók fejlődése –A processzor direkt vezérli az eszközöket –Kontroller (I/O modul) hardver hozzáadása –Megszakítások kezelése (I/O modul) –DMA megjelenése –Az I/O modul egy programozható célprocesszorként jelenik meg. A központi CPU feladata a programkód megadása és a folyamat indítása (I/O csatorna) –Az I/O processzor nem a központi memóriát használja, hanem dedikált memóriával rendelkezik
9
Operációs rendszer elvárások Hatékonyság –az I/O eszközök többsége a CPU-hoz képest lassú –az I/O kezelő funkciókat úgy kell elkészíteni, hogy a lassú eszköz miatti várakozás során más folyamat futhasson –ma már léteznek olyan gyors perifériák, amelyek kiszolgálása jelentős teljesítmény-optimalizálást igényel Általánosság: sokszínűségük ellenére egységes periféria-kezelési megoldás –OS szintjén (belső struktúrák) –folyamatok felé nyújtott interfészen (read, write, open, close, lock, unlock) keresztül –megoldást a hierarchikus struktúrák alkalmazása jelenti
10
I/O funkciók logikai struktúrája Klasszikus megoldás: hierarchikus megközelítés, az egyes rétegek csak a saját feladatukért „felelnek” –Logikai I/O: általános I/O funkciók szolgáltatása a folyamatok felé –Eszköz I/O: I/O kérések „lefordítása” eszköz specifikus parancs-szekvenciákra –Ütemezés, vezérlés: I/O műveletek sorba állítása, ütemezés (pl. IRQ-k kezelése)
12
I/O Pufferelés Ha az eszközök közvetlenül „csatoltak” a folyamathoz, akkor: –az érintett memória lapok nem lapozhatók –a művelet befejeztéig a folyamatnak várnia kell (az adott terület nem módosítható) –beviteli műveletek esetén csak az „igény szerinti” (on- demand) működés képzelhető el Pufferelés: egy kernel területén található átmeneti tár közbeiktatásával szétválasztjuk az eszközt és a folyamatot
13
Pufferelési módok Egyszeres puffer Dupla puffer Cirkuláris pufferek
14
Pufferelési módok Egyszeres puffer –A műveletek egy kernel puffer- be/ből történnek. –A kernel-user címtér utáni mozgatás után a puffer felszabadul (kezdődhet a következő művelet) –A user címtér lapozható (de a memória menedzsment elbonyolódik) Dupla puffer Cirkuláris pufferek
15
Pufferelési módok Egyszeres puffer Dupla puffer –Két puffert használunk, az egyiket az OS, a másikat a user folyamat „fogja” –Két művelet történhet egy időben –Gyorsabb, mint az egyszeres – de bonyolultabb is Cirkuláris pufferek
16
Pufferelési módok Egyszeres puffer Dupla puffer Cirkuláris pufferek –A dupla pufferelés továbbgondolása, a kernel n puffert rendel egy folyamathoz –Bizonyos esetekben tovább gyorsít –A megoldás a „termelők-fogyasztók” modellel írható le
17
Diszk I/O Probléma: diszk és CPU/Mem közötti sebesség különbség folyamatosan növekedett az elmúlt időben (és valószínűleg ez így is marad): –diszkek több nagyságrenddel „lassabbak” a CPU-nál Mivel a leggyakoribb I/O művelet a diszkekkel kapcsolatos (fájl, VM) a diszkkezelés hatékonysága alapvető fontosságú az operációs rendszerek számára
18
Diszkek teljesítményének elemei Elemek –Seek time: a fej mozgásának ideje (megfelelő track fölé) –Forgási késleltetés: amíg a track-on belül a kívánt blokk befordul –Átviteli idő: a konkért írás vagy olvasás A seek time és a forgási késleltetés összege adja az elérési időt. A fenti időkön túl még számolni kell: –az eszközre való várakozás ideje –I/O csatornára való várakozás ideje (ha az osztott)
19
Idők, értékek Seek time –A fej mozgásához szükséges idő. Ez a mozgás nem teljesen lineáris. A mai kisebb diszkek esetén rövidebb, mint a régi nagyobb (pl. 14 inch) lemezeknél. Mai jellemző érték 4…10 ms. Forgási késleltetés –A lemez forgási sebességétől függ –Mai HDD-k esetén a 3.600 és a 15.000 közötti percenkénti fordulatszám a jellemző (a 3.600 csak a low-end, hordozható eszközökben) –15k esetén egy teljes fordulat ideje 4ms, így az átlag 2ms! Átviteli idő: –Szintén a fordulatszám függvénye. Egy track-en belül számítható: T = b/(rN) –b: átviendő bájtok, r: forgási sebesség, N: track mérete (byte)
20
Játék a számokkal Példadiszk –átlagos seek idő: 4ms –fordulatszám: 15.000 (full: 4 ms) –szektorméret: 512 byte –szektor/track: 500 (16 us) Feladat: 2500 szektor (1.28 MB beolvasása) Scenario 1: összefüggő elhelyezkedés – 5 track –1. track: seek + forgás + 500 rekord olvasása = 10 ms –2...5. track: 4x(forgás + olvasás) /no seek/ = 24 ms –Összesen: 34 ms
21
Játék a számokkal Példadiszk –átlagos seek idő: 4ms –fordulatszám: 15.000 (full: 4 ms) –szektorméret: 512 byte –szektor/track: 500 (16 us) Feladat: 2500 szektor (1.28 MB beolvasása) Scenario 2: véletlenszerű elhelyezkedés –2500 x (átlagos seek + átl. Forgás + olvasás) –2500 x (4m+2m+16u) = 14.6s! –Összesen: 14.6 s
22
Játék a számokkal - tanulságok 34 msec vs. 14.6 sec Fájlrendszereket célszerű úgy szervezni, hogy a fájlok elhelyezkedése ne legyen teljesen véletlenszerű! Multiprogramozott rendszerek esetén az egymástól független I/O műveletek esetén érdemes optimalizációt végezni!
23
Diszk ütemezés diszk kérések hatékony kiszolgálása (multiprg. rendszerekben) –Tökéletes megoldás nincs Algoritmusok –FIFO –Prioritásos –LIFO –SSTF –Scan (és változatai)
24
Diszk ütemezési algoritmusok FIFO: kiszolgálás a beérkezés sorrendjében. –Korrekt ütemezés, kevés számú folyamatnál hatékony is lehet –Sok folyamatnál hatékonysága drasztikusan romlik Prioritásos: mindig a legnagyobb prioritású kérést –Kiéheztetés lehetséges LIFO: Mindig a legfrissebb kérést szolgálja ki –Filozófiája lényege, hogy az utolsó kérés az előző közelében lehet – így gyorsan kiszolgálható –Sok folyamatnál ez nem feltétlenül igaz –Kiéheztetés lehetséges SSTF: mindig a legrövidebb kiszolgálási időt igénylő (legkisebb fejmozgás) tartozó kérést szolgálja ki –A megoldás nem garantálja, a fejmozgások globális minimumát –Kiéheztetés lehetséges
25
Folytatás, SCAN verziók Scan: –Cél a hatékonyság növelése a a kiéheztetést elkerülése mellett (ezt eddig csak a FIFO oldotta meg) –A fej fel-le mozog, és minden útjába akadó kérést kiszolgál. középső részeket favorizálja tömeges kérésekkel „leragasztható” C-Scan: mindig csak egy irányba megy, –a Scan első problémáját megoldja N-step-Scan: a diszk sort N nagyságú részekre osztja, egyszerre csak egy N-est dolgoz fel FSCAN: két sor van. Amíg az egyikből dolgozik, a kérések a másikba gyűlnek –e két megoldás a leragadást oldja meg
26
NévLeírásMegjegyzés A kiválasztás a művelet igénylőjétől függ FIFOFIFO elvA legkorrektebb PrioritásosA folyamat prioritása alapjánFüggetlen a diszk ütemezőtől LIFO A lokalitás maximalizálja A kiválasztás a kért elemek függvénye SSTFShortest Service Time FirstMagas kihasználtság SCANFelvonókéntKorrekt, de gyengékkel CSCANEgyirányú gyűjtőliftMegjósolhatóbb szolgáltatás N-Step-SCANFix számú rekordot dolgoz felGarantált szolgáltatás FSCANVáltozó rekordszámÉrzékeny a terhelésre
27
RAID Diszk (másodlagos tároló) problémák –Teljesítményük növekedési rátája szignifikánsabban alacsonyabb a CPU növekedésnél –a tárolt adatok fontossága miatt a nagy kapacitású diszkek hibája egyre nagyobb üzleti kockázattal járt –A nagy kapacitású diszkek sem „eléggé nagyok” RAID koncepciója: nagy kapacitású és teljesítményű drága diszkek helyett kisebb (olcsóbb) diszkeket használva érjük el célunkat, azaz: –Kapacitás növelése –Teljesítmény növelése –Megbízhatóság növelése
28
RAID Az elnevezés a Berkley egyetem kutatóitól származik (1988) – akkor ők ezt a „Redundant array of Inexpensive Disks” szavakból állították össze. A névben később az „Inexpensive” szó „Independent”-re változott… Dióhéjban: úgy kapcsolunk össze több diszket, hogy –az operációs rendszer számára egy diszknek látszanak –az adatot szétosztjuk a diszkek között, –a diszk hibák ellen paritás információ tárolásával védekezzünk (ezt –két megoldás nem elégíti ki) A szabvány 5+1 szintet definiál –a „+1” nem redundáns és 3 terjedt el –különböző gyártók további szinteket is definiálnak –szint-kombinációkat is alkalmazunk A különböző megoldások a szükséges tárolóterület overhead-ben, a megoldás teljesítményigényében és a biztonság szintjében térnek el
29
RAID szintek RAID-0 (striping) –Redundancia nélküli megoldás RAID-1 (tükrözés) –Adatduplikáláson alapul (nem paritás alapú) RAID-2 –Speciális, Hamming kód alapú –Gyakorlatilag kihalt RAID-3 –Kizáró vagy műveletre épít, egy blokk az összes diszkre szét van osztva –Erős hardver támogatást igényel! RAID-4 –Kizáró vagy műveletre épít, egy blokk csak egy diszken található –Dedikált paritás diszket használ RAID-5 –Hasonló a RAID-4 megoldáshoz, de itt a paritás is szét van osztva a diszkek között
30
RAID – háttér információk A diszkek átviteli jellemzőjének tényezői –a mechanikai működésből adódó késleltetés –az adatátvitel végrehajtásának teljesítménye (átviteli sebesség) A terhelés jellege –Kevés számú, kis párhuzamosságú, de nagy mennyiségű adatot mozgató terhelése (pl. kötegelt feldolgozás) –Nagy számú, magas párhuzamosságú, de kicsi adatmennyiséget érintő terhelés (tranzakciós rendszerek) Kapcsolat a fentiek között –Nagy mennyiségű adatot mozgató terhelésnél az adatátvitel teljesítménye domináns –Nagy tranzakciószámnál a késleltetések sokkal fontosabbak
31
RAID – háttér információk Olvasás és írás műveletek különbsége redundáns tároláskor –olvasáskor csak annyi adatot kell beolvasni, ami elegendő a kért adatblokk biztosításához –íráskor az adatblokkhoz tartozó összes részt aktualizálni kell Vizsgáljuk –Tárolás módja –Viselkedés íráskor és olvasáskor Példák –Diszkek száma: N –Egy diszk átviteli sebessége: T
32
RAID-0 Tárolás módja –Nagyméretű csíkok, egy blokk egyetlen diszken tárolódik. –Redundancia nincs a rendszerben. –Hasznos terület: N. Olvasás –Egy időben ~N független olvasási tranzakció szolgálható ki. Tranzakciónkénti átviteli sebesség: T –Hiba esetén: működésképtelen! Írás –Egy időben ~N független írása tranzakció szolgálható ki. Tranzakciónkénti átviteli sebesség: T –Hiba esetén: működésképtelen!
33
RAID-1 Tárolás módja –Nagyméretű csíkok, egy blokk egyetlen diszken tárolódik. –A redundanciát a teljes adat duplikálása eredményezi. –Tipikusan N=2, hasznos terület: N/2. Olvasás –Egy időben ~N független olvasási tranzakció szolgálható ki. Tranzakciónkénti átviteli sebesség: T –Hiba esetén: egy időben ~(N-1) független olvasási tranzakció szolgálható ki. Tranzakciónkénti átviteli sebesség: T Írás –Egy időben 1 írási tranzakció szolgálható ki. Tranzakciónkénti átviteli sebesség: =< T –Hiba esetén: Egy időben 1 írási tranzakció szolgálható ki. Tranzakciónkénti átviteli sebesség: =< T
34
RAID-3 Tárolás módja –Byte szintű csíkok, a blokkok az összes diszkre szét vannak osztva. –Byte szintű paritás képzés XOR művelettel történik, –a megoldás dedikált paritás diszket használ. N>2, hasznos terület: N-1. Olvasás –Egy időben 1 olvasási tranzakció szolgálható ki Tranzakciónkénti átviteli sebesség: (N-1)*T –Hiba esetén: egy időben 1 olvasási tranzakció szolgálható ki Tranzakciónkénti átviteli sebesség: < (N-1)*T (számolni kell) Írás –Egy időben 1 írási tranzakció szolgálható ki. Tranzakciónkénti átviteli sebesség: <= (N-1)*T (számolni is kell) –Hiba esetén: egy időben 1 írási tranzakció szolgálható ki. Tranzakciónkénti átviteli sebesség: <= (N-1)*T (számolni is kell)
35
RAID-4 Tárolás módja –Nagyméretű csíkok, egy blokk egyetlen diszken tárolódik. –Blokk szintű paritás képzés XOR művelettel történik, a megoldás dedikált paritás diszket használ. –N>2, hasznos terület: N-1. Olvasás –Egy időben (N-1) független olvasási tranzakció szolgálható ki. Tranzakciónkénti átviteli sebesség: T –Hiba esetén: az olvasási tranzakciók száma akár egyre is lecsökkenhet, mert a hibás diszkeken található adatok előállításához az összes többi diszkblokk adata szükséges! Írás –Egy időben 1 írási tranzakció szolgálható ki. Tranzakciónkénti átviteli sebesség << T. Egy blokk kiírása után a teljes sor paritását újra kell számolni –Hiba esetén: 1 írási tranzakció szolgálható ki. Tranzakciónkénti átviteli sebesség << T
36
RAID-5 Tárolás módja –Nagyméretű csíkok, egy blokk egyetlen diszken tárolódik. –Blokk szintű paritás képzés XOR művelettel történik, a paritás blokkok is szét vannak osztva a diszkek között. –N>2, hasznos terület: N-1. Olvasás –Egy időben (N-1)...(N) független olvasási tranzakció Tranzakciónkénti átviteli sebesség: T –Hiba esetén: az olvasási tranzakciók száma akár egyre is lecsökkenhet, mert a hibás diszkeken található adatok előállításához az összes többi diszkblokk adata szükséges! Írás –Egy időben 1 írási tranzakció szolgálható ki. Tranzakciónkénti átviteli sebesség << T –Hiba esetén: 1 írási tranzakció szolgálható ki. Tranzakciónkénti átviteli sebesség << T
37
További RAID szintek Raid-6 –Két paritás blokk használatával (n+2 konfig) nagyobb hibatűrést biztosít –Az írás során jelentős overhead –Nem igazán terjedt el Raid-S –EMC Symmetrix diszktömbökben használt technológia. –Raid-5 szerű, de speciális, teljesítményt növelő eljárásokat alkalmaz Kombinált Raid: 1+0 és 0+1 –0+1: összetükrözi a stripe-ot –1+0: tükröket stripe-ol
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.