16. tétel Flashcards
(16 cards)
Háttértárak szükségessége
Háttértárakra azért van szükség, mert a központi tár drága és kicsi a tárolókapacitása. Ezen kívül a kikapcsolással az információk elvesznek a központi tárban.
Háttértár típusok
- Mágneslemez: vékony mágneses réteggel bevont lemezek (merev- vagy hajlékony lemez). Az olvasó fej egy vékony légrétegen fut a lemez felett.
- Mágnesszalag: nagy adatmennyiség tárolására alkalmas. Nincs véletlen hozzáférés, lassú a keresés, de az átvitel a lemezekéhez hasonló sebességű. Gazdaságos, főként mentési és archiválási célokra alkalmazzák.
- Magneto-optikai lemez:
o Merev, mágneses réteggel bevont lemez üveg védőréteggel. A fej távolabb van, mint a mágneses lemeznél.
o Írás: lézerrel felmelegítenek egy pontot, ami 1 bitnek felel meg, mely ezután már rögzíti az információt.
o Olvasás: lézerrel megvilágítjuk a mágneses pontot, amelyről a visszaverődő lézersugár polarizációja tartalmazza az információt (Kerr-effektus). - Optikai lemez:
o Írható / olvasható:
▪ A lemez anyaga vagy kristályos (áttetsző), vagy amorf (opálos), amely alatt fényvisszaverő réteg található.
▪ Pl.: CD-RW, DVD-RW.
o Egyszer írható:
▪ Vékony alumínium fólia, üveg védőréteg alatt.
▪ WORM típusú (write-once, read-many-times).
▪ Írás: lézerrel lyuk égetése a fóliába.
▪ Olvasás: visszaverődés mérése.
▪ Pl.: CD-R, DVD-R
o Csak olvasható:
▪ Működése hasonló a WORM lemezekéhez, csak az írást nem lézerrel, hanem nyomtatással állítják elő.
▪ Pl.: CD-ROM, DVD-ROM - Flash:
o Egy speciális EEPROM. Az információ egy MOSFET tranzisztor szigetelt elektródján (GATE1) tárolt töltés formájában tárolódik.
o Olvasás: GATE2-re adott vezérlő (olvasó) feszültség hatását módosítja a GATE1en tárolt töltés.
o Írás / törlés: nagy feszültséget ráadnak (alagút effektus).
o Egyes kialakításai (NOR) bitenként is olvashatók, mások (NAND) csak blokkonként.
o Korlátozott élettartamúak (kb. 1millió írás / törlés). - Holografikus rögzítés: kísérleti stádiumban van. A hologram egy 3D-s mátrixnak tekinthető. Minden pixel egy bit. Nagyon gyors, egy lézervillanással egy egész kép rögíthető.
- MEMS (micro-electronic mechanical systems) tárolás: több ezer kis író / olvasó fej, felettük 1 cm2 mágneses tároló felület van. A felület mozgatható a fejek felet, így ezek elérhetik az információt, ill. a mozgatás alatt pedig írni és olvasni is tudnak.
Merevlemez felépítése
Mágneses bevonatú korongok, melyek felett író / olvasó fej van.
Sáv: a lemezterület / gyűrű azon része, amelyet a fej elmozdulás nélkül egy fordulat alatt elér.
Cilinder: az összes fej alatti sáv.
Szektor: a sáv azonos méretű blokkokra osztva. Az információátvitel legkisebb egysége: a lemezvezérlő egy teljes szektort olvas vagy ír. A szektorban az információ tárolás soros elérésű. A könnyebbség kedvéért a lemez 3-4 szektort együtt szokott kezelni, ezek a szektorcsoportok (cluster).
Szektorok címzése: a nulladik szektor a legkülső cilinder első sávjának első szektora. A többi szektorok ugyanezen a sávon egymás után következnek, míg el nem fogy a sáv. Ezután ugyanezen a cilinderen belül a következő sáv következik (a következő fej alatt), amíg el nem fogy az összes sáv a cilinderen belül. Ezután a következő cilinder következik.
Az átvitel kiszolgálásának ideje:
* Fejmozgási idő: az az idő, amely alatt a fej a kívánt sávra (cilinderre) áll.
* Elfordulási idő: az az idő, amely alatt a kívánt szektor a fej alá fordul.
* Az információ átviteli ideje.
Az idők között nagyságrendi különbségek vannak, a fejmozgási idő a leghosszabb.
Lemezműveletek ütemezése
Egyszerre több folyamat verseng a háttértár perifériáért és egyszerre több kérés is várakozhat kiszolgálásra. Emiatt cél az átlagos fejmozgási és elfordulási idő csökkentése. Egyes folyamatok rosszul is járhatnak így, de a cél a globális teljesítmény növelése.
A teljesítmény értékelési szempontjai:
* Átbocsátó képesség: időegység alatt lebonyolított átvitelek száma.
* Átlagos válaszidő: a kéréstől a végrehajtásig eltelt idő.
* Válaszidő szórása: a folyamatok előre látható sebességgel fussanak, ne ingadozzon nagyon rajtuk kívül álló okok miatt a futásuk.
A fejmozgás ütemezése:
* Sorrendi kiszolgálás (FCFS – First Come First Served): a kéréseket érkezésük sorrendjében szolgáljuk ki. Kicsi az átbocsátó képessége és nagy az átlagos válaszideje. Szórása viszonylag kicsi.
* Legrövidebb fejmozgatási idő (SSTF – Shortest Seek Time First): az aktuálishoz legközelebb lévő cilinderhez tartozó kérést szolgálja ki. Teljesítménye jobb, mint az FCFS-é. A válaszidők szórása nagy. Fennáll a kiéhezés veszélye, távoli cilinderre vonatkozó kérést a folyamatosan érkező közeli kérések mindig megelőzik.
* Pásztázó (SCAN, LOOK): a fej az egyik irányba elindul és ha van kérés, kiszolgálja. Ha véget ért, akkor elindul visszafele. Jobb, mint az SSTF, a szórása kisebb. Sajátossága, hogy a középső cilindereket gyakrabban látogatja.
* N-lépéses pásztázó (N-SCAN): egy irányban mozogva csak azt az N darab kérést szolgálja ki, amelyek a pásztázás elején már megvoltak. A pásztázás közben érkező kéréseket csak az irányváltás után szolgálja ki. Szórása kisebb a SCAN-nél. A válaszidő akkor sem nő meg, ha az aktuális cilinderre sok kérés érkezik.
* Egyirányú pásztázó (Circular SCAN): a kérések mindig csak az egyik irányú fejmozgásnál történik. A másik irányba a fej a legtávolabbi kérés cilinderére ugrik. Az algoritmus elkerüli a középső sávoknak a külsőkhöz viszonyított magasabb fokú látogatottságot.
* Kombinált módszerek: a terhelés függvényében változtatja a stratégiákat. Pl.: alacsony terhelésnél SCAN, közepesnél C-SCAN, nagy terhelésnél C-SCAN és elfordulási idő optimalizálás.
Az elfordulási idő optimalizálása: az egy cilinderen belüli kérések a lemezek aktuális pozíciójának, valamint a szektorok sorrendjének ismeretében a kiszolgálás előtt sorba állíthatók.
Szervezési elvek
- Az egymáshoz tartozó blokkokat a lemezen fizikailag is egymás mellé kell elhelyezni. A lokalitás miatt egy folyamat várhatóan az egymáshoz közeli blokkokat igényli. Multiprogramozott rendszerekben nem biztos, hogy ez gyorsulást eredményez. A legtöbb idő a fejmozgással megy el.
- Adattömörítés: a lemezen az információt tömörített formában tároljuk. Visszaállítása csak a beolvasáskor történik meg, amit egy perifériakezelő program vagy célhardver végez. Ezzel a módszerrel kevesebb blokkot kell átvinni ugyanahhoz az adatmennyiséghez.
- Redundáns adattárolás: az adatokat több példányban különböző cilindereken helyezzük el, így minden fejállásnál kiválaszthatunk egy közel lévő cilindert. Ez első sorban nem változó adatoknál használható.
- Blokkok átmeneti tárolása: a gyakran vagy a közeljövőben várhatóan szükséges blokkokat igyekszünk egy gyors átmeneti tárolóban tartani (cache).
RAID
A lemez tartalmát időnként más háttértárra kell menteni, ahonnan szükség esetén visszaállítható. Az átmeneti tárban lévő változásokat is a lemezre kell írni. Erre találták ki a RAID (Redundant Array of Independent / Inexpensive Diskd) technológiát. Egy nagy kapacitású lemezegység helyett több kicsit használunk, amelyekre az információt hibajavító kódolással megtoldva szétterítik. Egy egység kiesése esetén az információ még visszaállítható. Célja az adattárolás biztonságának növelése mellett az adatátviteli sebesség növelése is.
Típusai:
* RAID 0: az egymás utáni blokkok külön háttértárakon helyezkednek el, nincs redundancia. Az adatátvitel sebessége nő, a biztonság némileg csökken.
* RAID 1: minden háttértárnak van egy tükre. Hiba esetén a tükrön lévő adat használható, a hibás egység erről helyreállítható. Sokkal nagyobb a biztonság, de a sebesség nem nő.
* RAID 2: minden bitet más tároló tárol. Paritás biteket használ. 1 bit hiba a paritás bitekből javítható. Nagy sávszélességű és biztonságú, kisebb redundanciával.
* RAID 3: RAID 2 továbbfejlesztése. A hiba detektálása minden háttértáron önállóan működik, mivel elég csak 1 paritás bit a javításhoz. Nagy sávszélességű és biztonságú, kisebb redundanciával.
* RAID 4: hasonló, mint a RAID 3, csak blokkos szervezésű. Az egyik háttértár paritásblokkokat tartalmaz. Biztonságos, nagy adathalmaz kezelésénél nő az átviteli sávszélesség (kis adatméretek esetén nem nő).
* RAID 5: hasonló, mint a RAID 4, de a paritás blokkok elosztva vannak. Ennek az oka, hogy RAID 4 esetén a paritás tárolót aránytalanul sokat használjuk és hamarabb meghibásodik (itt már kiegyenlítődik a terhelés).
* RAID 6: mint a RAID 5, de több paritás blokkot tartalmaz. Véd a többszörös lemezhibák ellen is.
Állományok kezelése, alapfogalmak
Állomány (fájl): a létrehozó által összetartozónak ítélt információk gyűjteménye. Az állományokat a hozzájuk rendelt egyedi azonosító (név) különbözteti meg egymástól.
Könyvtár: az állományok csoportosítása az OS és a felhasználó szerint. A könyvtár tartalmát a katalógus írja le.
Az állományok tárolása a lemezen:
Az operációs rendszer a lemezterületet blokkonként (néhány szektor) kezeli. Az állományok tárolásához blokkok kellenek, ezeket nyomon kell követni a szabad blokkok nyilvántartásával és a blokkok allokációjával.
Szabad blokkok nyilvántartása
- Bittérkép: minden blokkra egy bit jelzi, hogy szabad-e. A bittérkép a lemez kijelölt helyén van. A bitvektort a memóriában kell tárolni, különben nem elég hatékony (a sok blokk sok memóriát igényel).
- Láncolt lista: az első szabad blokk címét tárolja, majd minden szabad blokk tartalmaz egy hivatkozást a következő szabad blokkra. Nem hatékony, lassú a sok lemez művelet miatt.
- Szabad helyek csoportjainak listája: a láncolt lista javítása. Minden blokk n darab szabad blokkra hivatkozik. n-1 darab ténylegesen szabad, az n. a lista új elemére mutat.
- Egybefüggő szabad területek nyilvántartása: egy táblázatban tároljuk az összefüggő szabad blokkok címét. Tárolni kell az első blokk sorszámát és az egymás után következő szabad blokkok számát.
Állomány blokkok allokációja
Az állományok tárolásához a szabad blokkok közül kell választani. Tárolni kell az összetartozó blokkok címét és azok sorrendjét. A legismertebb módszerek:
* Folytonos terület allokációja: az összetartozó információkat egymás melletti blokkokban tároljuk. Az első blokk sorszámát és a blokkok számát kell tárolni. Előnye, hogy a tárolt információ soros és közvetlen elérése is lehetséges. Jól használható tárcsere által kirakott szegmensekre. Hátránya, hogy fennáll a külső tördelődés. A nagy mértékű tördelődés esetén tömöríteni kell. Ezen kívül sokszor nem tudjuk előre, hogy hány blokkra lesz szükségünk. Lefoglaláskor becsülni kell, a rossz becslés pedig gondot okozhat.
* Láncolt listás tárolás: a blokkokat egyenként allokáljuk, minden blokkban fenntartva egy helyet a következő blokk sorszámának. A rendszer az első és az utolsó blokk sorszámát tárolja. Előnye, hogy nincs külső tördelődés, valamint, hogy a lefoglalt terület növekedhet, csak a szabad blokkok száma szab határt. Hátránya, hogy csak soros elérésű lehet. A blokkok sorszámaival nő az állomány mérete. Ezen kívül nagyon sérülékeny, mivel egyetlen láncszem hibája a tárolt információ jelentős részének elvesztését jelenti.
* Módosított láncolt tárolás: állomány allokációs táblával (FAT) működik. A láncelemeket az állományoktól elkülönítve tároljuk a táblázatban. A táblázat minden eleme a lemez
egy blokkjához tartozik, itt tárolhatjuk a következő blokk címét. Csak a legelső blokk címét kell tárolni.
* Indexelt tárolás: az állományhoz tartozó blokkok címei egy indextáblában vannak. Minden állománynak saját indextáblája van, melyek az adatterületen helyezkednek el. Előnye, hogy sérülés esetén csak az aktuális állomány veszik el. Lyukas állományokat is tárol (nem minden blokk tartalmaz valós információt és az üres blokkokhoz nem kell blokkot lefoglalni). Hátránya, hogy egy blokk minden állományhoz kell. Az indextábla mérete előre nem ismert, növekednie kell az állomány növekedésével együtt.
* Kombinált módszerek:
o Hozzáférési módja szerint: soros hozzáférés esetén láncolt allokációt, míg közvetlen hozzáférés esetén folytonos allokációt használ.
o Méret szerint: kis állomány esetén folytonos allokációt, míg nagy állományok esetén indexelést használ.
Műveletek állományokon
- Állomány megnyitása (open):
o Szerepe: az állomány megkeresése, fizikai elhelyezkedés meghatározása.
o Az operációs rendszer sikeres megnyitás esetén felépít egy adatszerkezetet a központi tárban. Minden további művelet erre vonatkozik. - Állomány lezárása (close): az átviteli műveletek befejezése. Puffer esetén a ki nem írt információt még kiírja, osztott állománykezelésnél az állományt felszabadítja.
- Állomány végrehajtása (execution): az operációs rendszer létrehoz egy új folyamatot. A programállományt betölti a folyamat tárterületére és elindítja.
- Átvitel, írás, olvasás: közvetlen átvitel esetén az információ címe szükséges. Soros hozzáférésnél az aktuális pozíciót a rendszer növeli és tárolja. Szimultán írás-olvasás esetén soros hozzáférésnél közös vagy több pozíciót használja.
- Hozzáadás (append): az állomány végéhez új információt írunk. Mérete növekszik, esetlegesen új blokkot lefoglal.
- Pozícionálás: soros hozzáférés esetén megadhatjuk az aktuális pozíciót.
- Állomány létrehozása (create): új bejegyzés létrehozása és blokkok lefoglalása.
- Állomány törlése (delete): bejegyzés megszűntetése és blokkok felszabadítása.
Osztott állománykezelés
Az állomány felfogható olyan erőforrásnak, amelyet egyidejűleg több folyamat is használni akar. Csak olvasás esetén használható osztottan gond nélkül. Írás esetén kölcsönös kizárással kell védeni a folyamatot. Az állományt először megnyitó folyamat definiálja, hogy a későbbi megnyitási kérelmekből mit engedélyezhetünk. A többi folyamat csak olvashatja az állományt, az írást csak írási joggal teheti meg. Ha legalább egy folyamat írja az állományt, akkor meg kell adni, hogy az olvasó folyamatok mikor veszik észre a változást.
Az egész állományra vonatkozó kizárás néha túlzottan óvatos. Az állományok belső szerkezete szerint a folyamatok az állománynak csak egy részét foglalják le. Az átvitel után a lefoglalt rekordokat felszabadítja. Kölcsönös kizárás csak a használt részekre lehetséges. Felléphet a holtpont ill. a kiéheztetés veszélye.
Hozzáférés szabályozás
Célja, hogy a jogosulatlanok ne férjenek hozzá az állományokhoz, ne végezhessenek rajtuk bizonyos műveleteket. A jogokat a létrehozója vagy speciális jogokkal rendelkező felhasználó definiálja. Az állományokat folyamatok hozzák létre. A létrehozó az a felhasználó, aki a folyamatot elindította.
Tipikus jogosultságok állományokra: írás, olvasás, végrehajtás, hozzáírás, törlés.
Tipikus jogosultságok könyvtárakra: módosítás, listázás, keresés, új állomány létrehozása, törlés.
A jogosultság tartozhat állományokhoz, ill. elérési útvonalakhoz is (különböző elérésekhez más-más jogosultságok). A jogosultság definiálható felhasználóként, ill. felhasználói csoportként. Csoportok lehetnek pl.: operációs rendszer, rendszergazda, tulajdonos, adott csoport, bárki.
Elosztott állománykezelés
A helyi operációs rendszer állománykezelési szolgáltatásainak kiterjesztése egymással kommunikációs csatornán keresztül kapcsolódó számítógépek halmazára.
Az állomány lehet helyi, ill. távoli. Az állományt tároló számítógép a szolgáltató (szerver) az ügyfelek (kliens) számára szolgáltatásként műveleteket biztosít az állományain. Az osztott állománykezelés lassabb az állományok megtalálása és átvitele miatt. A teljesítmény viszont speciális hardverelemekkel és/vagy szoftver módszerekkel növelhető.
Állománynév leképezés
A név egyedileg azonosítja az állományt. A felhasználó elől elrejti a tárolás részleteit. Két szintet különböztetünk meg az állományok azonosításával: a felhasználói szintű neveket és a rendszerszintű neveket. Az állománykezelő feladata a két különböző szintű azonosító egymáshoz rendelése.
A rejtett elhelyezkedésű állománynév nem utal arra, hogy melyik gépen található. A név leképezése statikus táblázatok alapján történik.
Az elhelyezkedés-függetlenségű állománynév nem változik meg, ha átkerül egy másik gépre. Dinamikusan változó leképezési információt kell használni, ami kevésbé támogatott és lényegesen bonyolultabb. A név elrejt minden fizikai tárolással kapcsolatos információt. Állomány vándorlás az elosztott rendszer kezdeményezésére történik, ennek segítségével az elosztott operációs rendszer az egész háttértárat egységesen kezeli, a szabad területekkel rendszer szinten gazdálkodik. A háttértárak kihasználtságát dinamikusan kiegyensúlyozza. Az elnevezési rendszer teljesen független a kapcsolódás konkrét szerkezetétől, nem szükséges speciális állományokat előre kijelölt csomópontokon tárolni.
Megnevezési módszerek:
* Csomópont explicit megnevezése: az állományhivatkozás a csomópont megnevezéséből és a helyi állományrendszerben lévő állomány nevéből áll. A rejtett elhelyezkedés követelményeinek nem felel meg.
* Mount: a távoli állományrendszert a helyi könyvtár-hierarchia egy pontjára képzik. A művelet után a távoli állományok a helyiekkel azonos módon kezelhetők (pl.: NFS). Csak a távoli gépen felajánlott hierarchia-részek láthatóak. Egy állomány elérési útja különbözik az egyes gépeken.
* Globális elnevezés: az állományokra globális, a rendszer egészére érvényes nevekkel hivatkozhatunk.
Elosztott állománynév-rendszer implementációja
Az elnevezési rendszer feladata, hogy a felhasználói neveket leképezze konkrét csomópontokra és az azon belüli fizikai elhelyezkedésre. 3 féle módja:
* Állománycsoportok szerinti leképezés: a leképezési tábla túl nagy lenne, ha minden állomány szerepelne benne. Az állományokat csoportokba szervezi, a leképezést ezekre a csoportokra együtt végezzük. Pl.: NFS rendszerekben ilyen csoportok a távoli könyvtár-hierarchiák.
* Leképezési táblák többszörözése: a táblához minden csomópontnak hozzá kell férnie, a központosítás veszélyes. Csomópontonként csak a szükséges részeket tárolja átmenetileg (caching). Az állományok vándorlásánál minden másolatban aktualizálni kell a szükséges információkat.
* Kétszintű leképezési táblák: bevezet alacsony szintű elhelyezkedés-független azonosítókat. A felső szintű azonosítók a felhasználói neveket ezekre az azonosítókra képzik le. Ezek tartalmazzák, hogy melyik csoportba tartozik. Egy másik leképezés végzi a csoportok csomópontokra való leképezését.
Műveletek távoli állományokon
A felhasználó a helyi állománykezelésnek megfelelő műveleteket akarja elvégezni az állományon (, miután a rendszer megtalálta a hivatkozott állományt).
A műveletek elvégzésének a módjai:
* Távoli szolgáltatásokon keresztül: a felhasználói műveletek kérésként jelennek meg a szolgáltató csomópontnál.
* Helyi átmeneti tárak segítségével: a teljesítmény növelése és a hálózati adatforgalom csökkentése érdekében a helyi gépek a szükséges adatállományokat átmenetileg tárolják, a műveleteket azon végzik.
Távoli szolgáltatások igénybevétele:
* Távoli eljáráshívás (RPC):
o Minden művelethez tartozik egy távoli eljárás. Az ügyfél határozza meg az eljárás paramétereit, a szolgáltató válasza az eljárás visszatérési értéke. A szolgáltatói oldalon minden távoli eljáráshoz tartozik egy speciális démon folyamat, melynek feladata a kliensek felől érkező kérések kiszolgálása. A folyamat egy hozzá rendelt kaput figyel, az azon érkező kérést végrehajtja, majd a választ a kérésből megállapítható feladónak küldi vissza. A kliens folyamat és a démon között aszimmetrikus kommunikáció van (vagyis az ügyfélnek meg kell neveznie a kaput és ezzel a hozzá tartozó démont).
o Problémái:
▪ A hálózati kommunikáció nem megbízható. Fontos, hogy minden kérés pontosan egyszer hajtódjon végre. A kéréseket a kliensek sorszámozzák és időbélyeget fűznek hozzá. Az egyszer már kiszolgált sorszámú kérést a szerver ignorálja.
▪ Kliens oldalon a távoli eljárásokat a megfelelő kapukra kell képezni, itt a megfelelő démon várakozik. A leképezés lehet statikus (minden művelethez előre kijelölt kapu tartozik) és dinamikus (műveletenként a kapu számát egy kötött kapuban lévő démon szolgáltatja).
* Helyi átmeneti tárak:
o A teljesítmény növelése és a hálózati adatforgalom csökkentése érdekében a helyi gépek a szükséges adatállományokat átmenetileg tárolják, a műveleteket azon végzik.
o Az elv azonos a virtuális tárkezelésben is alkalmazott átmeneti tárkezeléssel (caching). Ha szükséges, az új információknak helyet csinálunk. A szükséges információt a hálózaton keresztül az átmeneti tárba töltjük. A műveleteket a helyi másolaton végezzük el. Változás esetén az információkat visszaírjuk.
o Problémái:
▪ Az átviteli egység meghatározása
▪ Hol legyen az átmeneti tárolás: helyi gép központi memóriájában vagy a helyi gép háttértárjában.
▪ A változások érvényre juttatása (update): a módosításokat a szolgáltatóval közölni kell. Visszaírás is történhet (pl.: ha szükség van helyre az átmeneti tárban).
▪ Az átmeneti tár konzisztenciája: egy állományt több kliens is használhat, módosítás után az állomány már nem aktuális. Aktualizálni kell a kliens kérésére, ill. a szolgáltató kezdeményezésére.