Nyíregyházi Főiskola Matematika és Informatika Intézete
10
Fájl rendszer (implementáció) Fájl rendszer struktúra Allokációs módszerek Szabad hely kezelése Directory implementáció Helyreállítás
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
1
Nyíregyházi Főiskola Matematika és Informatika Intézete
10
Fájl rendszer struktúra A fájl rendszer rétegekből (layers) áll, ezek a következők:
-
Alkalmazói programok: A fájl létrehozásával, olvasásával, módosításával kapcsolatos igények forrása.
-
Logikai fájl rendszer: A fájljegyzék (directory) felhasználásával, a fájl nevéből kiindulva ez határozza meg a szükséges információkat a szervezési modul számára. Felelős a fájl védelméért.
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
2
Nyíregyházi Főiskola Matematika és Informatika Intézete
10
-
Fájl szervezési modul: Ez ismeri és implementálja a kapcsolatot a logikai és fizikai rekordok között. Ismerve a fájl szervezési módját és allokációját a logikai rekord címeket fizikai blokkokra történő hivatkozássá alakítja. Adminisztrálja a szabad helyeket.
-
Alap fájl rendszer: Ez alakítja ki és adja ki a megfelelő device drivernek a megfelelő magas szintű parancsot egy blokk írására és olvasására. Cilinder, sáv, szektor logikában "gondolkodik".
-
I/O vezérlés: Device driverek, megszakítási kezelők (interrupt handlers)
Ezek a modulok inputja viszonylag magas szintű utasításokból (pl. "read block B8A0") áll, az outputja pedig alacsony szintű, hardver specifikus bitképletekből áll (ezek a "portokba" kerülnek). -
Fizikai berendezés: Különböző I/O eszközök: floppy, merevlemezek, SSD-megjatók, CD/DVD-lemezek, kártyák, pen-drivek, stb.
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
3
Nyíregyházi Főiskola Matematika és Informatika Intézete
10
Fájl megnyitás és lezárás: Dos/Windows: OS rendszerben (egy) és processzus szintű (több) Open File Table (OFT),
Egy tipikus fájl vezérlő blokk (File Control Block) ahol ACL- Access Control List Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
4
Nyíregyházi Főiskola Matematika és Informatika Intézete
10
UNIX: OFT (apps.)+OFT(OS) + INODE (Index-NODE rövidítése) bejegyzésekből álló tábla (ILIST). Az INODE egy bejegyzés egy információs táblán (i-list). Minden fájlnak egyedi saját INODE-ja van. Maga a tábla pedig OS szintű.
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
5
Nyíregyházi Főiskola Matematika és Informatika Intézete
10
Az INODE írja le egy fájl lemezen való elhelyezkedését, a fájl tulajdonosát, a hozzáférési jogosultságokat és időket. Minden fájl egy és csak is egy INODE-dal rendelkezik. A Linux ext2 fájlrendszerében az INODE a következő információkat tartalmazza: Tulajdonosazonosító. Csoporttulajdonos-azonosító. Típus: közönséges fájl, katalógus, karakter vagy blokk eszközmeghajtó, csővezeték, szimbolikus link. Hozzáférési jogok. A hozzáférési jogok három osztályba sorolhatók: a tulajdonos, a tulajdonos csoporttársa és bárki más jogai. Mindhárom osztályra megadható írási, olvasási és végrehajtási jog. Katalógusok esetén a végrehajtási jog a katalógusban való keresési jogot jelent. A fájl utolsó módosításának és hozzáférésének időpontja A fájlhoz tartozó nevek (link-ek) száma. A fájl mérete. A fájl által elfoglalt lemezblokkok táblázata. A fájl törlésének időpontja. Stb.
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
6
Nyíregyházi Főiskola Matematika és Informatika Intézete
10
UNIX file rendszer logikai felépítése
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
7
Nyíregyházi Főiskola Matematika és Informatika Intézete
10
Fájl rendszer mountolás What is meant by mounting a drive? Before your computer can use any kind of storage device (such as a hard drive, CD-ROM, or network share), you or your operating system must make it accessible through the computer's file system. This process is called mounting. You can access only files on mounted media.
Tehát: a 'mountolás' egy adathordozó logikai illesztése a (fájl-) rendszerbe. Csak a sikeres mountolás után válnak elérhetővé a rajta lévő adatok (fájlok). Mountolás példa:
+
=
Felismert adathordozó
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
8
Nyíregyházi Főiskola Matematika és Informatika Intézete
10
Allokációs módszerek Folytonos (folyamatos) (Contiguous Allocation) A fájl egy folytonos fizikai blokk sorozatot foglal el. Hozzáférés egyszerű és gyors HDD esetén (a sáv folytonosan olvasható a forgó lemezről). Növekvő méretű fájloknak a helyfoglalás problémás: Milyen méretű szabad helyet allokáljunk? Új fájlok számára megfelelő szabad hely megtalálása nehéz, külső tördelődés lép fel. Fájl törlése után a méretének megfelelő számú blokk felszabadul. Erre a helyre kisebb vagy egyenlő méretű fájl írható. Ugyan azokat az algoritmusokat használhatjuk, mint a memória foglalás során (First fit, Next fit, Best fit, Worst fit). Növekvő fájlok: A Best fit allokációs stratégia különösen veszélyes. A fájl nagyobb szabad helyre másolása (erőforrás igényes). Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
9
Nyíregyházi Főiskola Matematika és Informatika Intézete
10
Külső tördelődés csökkentése: Teljes másolás egy üres diszkre majd vissza (offline).Rendszerleállással jár. Hosszú ideig tart és erőforrás igényes. Futási idejű (on-line) töredezettség csökkentés (defragmentation). Példa
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
10
Nyíregyházi Főiskola Matematika és Informatika Intézete
10
Linkelt (Linked, Láncolt) A könyvtárakat leíró adatstruktúrák tartalmazzák az első és az utolsó blokk azonosítóját. Minden blokk tartalmazza a következő blokk azonosítóját A fájlhoz tartozó blokkok tetszőleges helyen lehetnek a diszken. Nincs külső töredezettség. Problémák: Szekvenciális fájl elérésre alkalmas, a fájlba indexelni viszont nehéz (pl. egy N-dik blokk direkt elérése esetén). A blokkokban lévő azonosítók helyet foglalnak. Sérülékeny (azonosítók fűzik a blokkokat össze). Sok pozicionálást (fejmozgás időigényes) okoz (seek művelet), a blokkok el vannak szórva a diszken. Pl. a FAT fájlrendszer ezt használja. Töredezettség mentesség ebben az esetben mást jelent: Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
11
Nyíregyházi Főiskola Matematika és Informatika Intézete
10
Cél a fejmozgás minimalizálása egy file olvasása során. A fájlok egymás utáni blokkokon történő tárolását tűzi ki célul. Ezt is defragmentation-nak hívják... Ilyen célból ajánlott időnként pl. a Windows operációs rendszerek alatt a töredezettség mentesítő programok futtatása. Jelentősen nőhet a fájlkezelés sebessége. Az írást is gyorsítja, nem csak az olvasást!
data
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
12
Nyíregyházi Főiskola Matematika és Informatika Intézete
10
Indexelt (Indexed): Index blokkok használatán alapszik:
Egyes blokkokat (clusters) fájlokhoz tartozó indexek (blokk azonosító) tárolására kell használni. Szekvenciális és indexelt elérésre is alkalmas. Összetettebb és sérülékeny (az index blokkok sérülése a fájlt elérhetetlenné teszi). Az index blokkokat viszont könnyű többszörözni (replikálni). Sok fejmozgást okoz (seek művelet), a blokkok el vannak szórva a diszken.
Itt is lehet a láncolt listás töredezettség mentesítéshez hasonló algoritmusokat használni a fejmozgás minimalizálására.
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
13
Nyíregyházi Főiskola Matematika és Informatika Intézete
10
Minden fájlnak van saját indexblokkja
Indexblokk
Indexblokk Fájl azonosító
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
14
Nyíregyházi Főiskola Matematika és Informatika Intézete
10
Szabad hely kezelés (free‐space management) Bit térkép / vektor (bitmap, bitvector). Diszk minden blokkjához egy-egy bitet rendelünk, a bit értéke mutatja az adott blokk foglaltságát Láncolt lista (linked list). Láncolt lista a szabad blokkokról. Szabad helyek csoportjainak listája (Grouping). Valamely kritérium alapján csoportosított blokkok listája. Pl. egy-egy cilinderhez/sávhoz tartozó szabad blokkok. Egybefüggő szabad területek nyilvántartása (Space maps). Egymás mellett lévő szabad blokkok nyilvántartása.
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
15
Nyíregyházi Főiskola Matematika és Informatika Intézete
10
Linked list
Dr. Bajalinov Erik
bitvektor
Operációs rendszerek (PMB1206)
16
Nyíregyházi Főiskola Matematika és Informatika Intézete
10
Directory implementáció A jegyzék maga is egy fájl, ami bejegyzéseket tartalmaz más fájlokról. A bejegyzésekben a fájlok attribútumait tárolhatjuk. Miután a jegyzék is fájl, blokkok tartoznak hozzá is. Blokkjain belül vannak a bejegyzések, ezek lehetnek állandó, vagy változó hosszúságúak. A bejegyzésekben az attribútumok között a legfontosabb a fájlnév. A bejegyzések struktúrája lehet: Lineáris (vagy ’szekvenciális’) o nem rendezett bejegyzéseken alapszik, ezek a bejegyzések között nem foglalt bejegyzések is lehetnek (a törölt fájlokra); o rendezett, „hézagok” nélküli bejegyzéseken, ahol is gyorsabb keresési módszerek is megvalósíthatók; Hash táblás: a szokásos szekvenciális bejegyzések mellett egy hash táblát is implementálnak, ami a gyorsabb keresést segíti. Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
17
Nyíregyházi Főiskola Matematika és Informatika Intézete
10
Hashing, hash tábla Egy olyan adatszerkezet, amely egy Hash függvény segítségével állapítja meg, hogy melyik kulcshoz milyen érték tartozik - így implementál egy érték-táblát (asszociatív tömb). A hash függvény segítségével a kulcsot leképezzük az adatokat tároló tömb egy adott indexére, ahol a keresett érték fellelhető. Ideális esetben minden értelmezett kulcsra egyedi hash-t állít elő a hashelő függvény, de ez a gyakorlatban ritkán megvalósítható - így számolnunk kell azzal, hogy két különböző kulcsra ugyanazt a hash-t kapjuk, és kezelnünk kell az ilyenkor fellépő hash ütközést (collision). Sok esetben a hash táblák teljesítménye elég magas, ezért széles körben használják asszociatív tömbök implementációjában, adatbázisok indexelésében, illetve a Cache memória felépítésében.
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
18
Nyíregyházi Főiskola Matematika és Informatika Intézete
10
Helyreállítás Törölt fájlok, partíciók, mappák helyreállítása. Adatok biztonsági másolatainak készítése (Backup) és az alapján történő visszaállítás (Restore). Stratégiák: Fontos megjegyezni, hogy nincs olyan fájlrendszer, amely tökéletesen megfelelne mindenféle alkalmazáshoz. Minden fájlrendszernek vannak erősségei és gyengéi, amelyeket figyelembe kell venni. Emellett még a legkifinomultabb fájlrendszer sem helyettesíthet egy józan mentési stratégiát.
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
19
Nyíregyházi Főiskola Matematika és Informatika Intézete
10
Alapvetően két fő típusa van a biztonsági mentéseknek (Backup). Az egyik (Rendszermentés) a rendszerprogramokat és a rendszer alapbeállításait menti, egy az eltávolítás után biztonságos helyen tárolható adathordozóra, a másik mentéstípus (Adatmentés) az adatok és az alkalmazások mentésére szolgál. A kettőt kombinálhatjuk is, de nem minden esetben érdemes. Jobb különválasztani az alapvető rendszerprogramokat és rendszerbeállításokat a felhasználói programoktól és adatterülettől. Az első típusba (Rendszermentés) tartozó biztonsági mentést akkor érdemes elkészíteni, amikor a rendszert először üzembe állítják, és perifériáit, hálózati és egyéb adatkapcsolatait már megfelelő módon beüzemelték. Ugyancsak e mentéskörbe tartozik a számítógép felhasználóinak adatbázisa és a Registry.
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
20