Nyíregyházi Főiskola Matematika és Informatika Intézete
09
Fájl rendszer Fájl koncepció Elérési módok Könyvtár szerkezet Védelem Konzisztencia szemantika
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
1
Nyíregyházi Főiskola Matematika és Informatika Intézete
09
Fájl koncepció A számítógépek az adatokat különböző fizikai háttértárakon tárolhatják (pl. mágnes lemez, mágnesszalag, lyukszalag, lyukkártya, optikai lemez, flash-kártya, pendrive, stb.). A számítógép kényelmes használhatósága érdekében az operációs rendszerek egy egységes logikai szemléletet vezetnek be az adattárolásra és adattárakra: az operációs rendszer elvonatkoztatva a tároló eszköz és a tárolt adat fizikai tulajdonságaitól, egy logikai tároló egységet (adatállomány – fájl – file) használ. A fájlokat az operációs rendszer képezi le a konkrét fizikai tároló berendezésre. Felhasználói szemszögből: a fájl összetartozó adatok egy kollekciója, amelyeket egy másodlagos tárban tárolunk. A fájl a felhasználó számára az adattárolás legkisebb allokációs egysége: felhasználói adatot a háttértáron csak valamilyen fájlban tárolhatunk. Az operációs rendszer támogatást nyújthat a fájl tartalmának kezelésében, a fájl szerkezetének (adatszerkezet) létrehozásában:
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
2
Nyíregyházi Főiskola Matematika és Informatika Intézete
09
Fájl attribútumok Az operációs rendszer a fájl kezeléséhez szükséges információkat (attribútumokat) is tárolja a háttértárban. Pl. egy elkülönített helyen, a szótárban, fájl jegyzékben – directory-ban. - Név – a fájl azonosítására szolgál (szimbolikus fájlnév, név hossza, osztott nevek, kisbetűk/nagybetűk szerepe). - Típus – az egyes típusokhoz (szöveg, script, forráskód, bináris program, kép, média, adatbázis, stb.) különböző operációs rendszer szolgáltatásokat lehet rendelni. - Lokáció – a fájl fizikai elhelyezkedésével kapcsolatos adatok (háttértár címek). - Méret – aktuális / maximális méret (bájtokban, kilóbájtokban, stb.) - Védelem – a fájlhoz történő hozzáférés vezérlése. - Idő, dátum – létrehozási/módosítási időpont, - felhasználó azonosítás –felhasználó rendszerbeli neve.
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
3
Nyíregyházi Főiskola Matematika és Informatika Intézete
09
Filename (Fájlnév) Az MS-DOS a fájlneveknél nem tesz különbséget kis és nagybetűk között. Betűkből csak angol ábécében szereplőket használhatjuk. Ezenkívül, a következő speciális karakterek: ~ ! @ # $ % ^ & ( ) _ – { } ` UNIX esetén a fájlnevek hossza 255 karakter lehet, és a UNIX különbséget teszt kis és nagybetűk között. A WINDOWS kétféle elnevezést használ, a DOS kompatibilitás miatt. Van egy 8+3-as fájlnév és van egy 250 karakter hosszú fájlnév, ugyancsak maximum 3 karakteres kiterjesztéssel. A WIN alkalmazások ezt a hosszú nevet látják, ebből képezik a rövid nevet úgy, hogy eltávolítják a szóközöket majd az első 6 karakter után egy elválasztójelet („ ~”) és egy sorszámot adnak. Pl: a c:\Program Files\Borland\Projects\Az elso Delphi Alkalmazas.Exe
helyett lesz AZELSO~1.EXE
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
4
Nyíregyházi Főiskola Matematika és Informatika Intézete
09
Fájl műveletek A fájl műveleteket, mint egy absztrakt adattípuson végezhető műveleteket kell tekintenünk. Az operációs rendszer ezeket rendszer-hívások segítségével teszi elérhetővé. Alapműveletek: 1. Létrehozás (create) – terület allokálás + új bejegyzés a directoryba. 2. Írás (write) – adatok mentése, 3. Olvasás (read) – adatok beolvasása, 4. Újrapozícionálás (repositioning) 5. Törlés (deleting) 6. Csonkítás (truncate) – levágás az aktuális pozíciótól kezdve További műveletek: bővítés (append), átnevezés (rename), másolás (copy), áthelyezés (move), az attribútumok leolvasása (getattr) és megváltoztatása (setattr). Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
5
Nyíregyházi Főiskola Matematika és Informatika Intézete
09
Fájl típusok (kiterjesztés alapján) bat, exe, com, dll doc, rtf, txt, tex jpg, gif, bmp mp3, wav avi, mpg, mpeg, mkv epub, fb2, djvu, pdb htm, html pac, bas, c, cpp, ccs dat, dsk, iso, gbi, ncd, nrg, sli fbl, kml, map, ntm rar, zip, arj mps, lp Dr. Bajalinov Erik
– futatható fájlok – szöveges dokumentumok – kép fájlok – zene, hang fájlok – film fájlok – elektronikai könyvek – Internet web oldal fájlok – forráskódok – lemez képfájlok – navigáció, térképek – tömörített fájl-csomagok – mátrixok, lineáris programozási feladatok Operációs rendszerek (PMB1206)
6
Nyíregyházi Főiskola Matematika és Informatika Intézete
09
Fájl szerkezetek Általános esetben a fájl típus indikálja a fájl struktúráját. A fájllétrehozónak és a fájlfeldolgozónak ezt ismernie kell. Pl. forrásnyelvi-, tárgynyelvi- (object), ill. végrehajtható (bináris) programokat tartalmazó állományok szerkezete kötött. Kérdés: Mennyire ismerje az operációs rendszer az egyes fájlok belső szerkezetét? Egy szerkezetet (végrehajtható program) biztosan ismernie kell! Egyébként olyan mértékben ismeri, amennyire a fájlkezeléshez "központi támogatást" akar nyújtani. UNIX - minden fájlt bájtok egyszerű sorozatának tekint, ez a feldolgozó programoknak nagy flexibilitást, de minimális támogatást jelent. Szolgáltat ugyanakkor egy mechanizmust (rendszer hívás) a fájl típus meghatározására. (Pl.: magic number – a futatható fájltípus felismeréséhez használható numerikus azonosító). Különböző típusú fájlok támogatása két szinten: operációs rendszer (főleg futatható fájlok) + alkalmazások (Avi – médialejátszó, Dbf – adatbázis kezelés, XLS – táblázatkezelés, stb.) Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
7
Nyíregyházi Főiskola Matematika és Informatika Intézete
09
Elérési módok 1.
Szekvenciális elérési mód (Sequential access) read next – következő (az olvasó/író fej aktuális pozíciójától kezdve) blokk / adat olvasása write next – következő blokk / adat írása reset (vagy rewind ) – az olvasó/író fej pozícionálása a fájl elejére rewrite – a létező fájl felülírása
2.
Direkt elérési mód (Random access) read n write n seek n (pozicionálás az n-edik rekordra) read next write next rewrite n ahol n = a relatív blokk / adat sorszám
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
8
Nyíregyházi Főiskola Matematika és Informatika Intézete
09
Könyvtár szerkezet Bejegyzések (node) együttese, amely információt tárol a fájlokról. A könyvtárszerkezet és a fájlok is a lemezen a háttértáron tárolódnak. Kapcsolódó fogalmak: kötet (volume), partíció (partition), VTOC (Volume Table of Contents, IBM mainframes). Egy directory-ban (fájl-jegyzékben) tárolt információ: név, típus, cím, aktuális hossz, maximális hossz, legutóbbi elérés (access) időpontja, legutóbbi módosítás (update) időpontja, tulajdonos azonosító (owner ID), védelemmel kapcsolatos adatok (kinek mire milyen jogosultsága van).
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
9
Nyíregyházi Főiskola Matematika és Informatika Intézete
09
Egy directory-val kapcsolatban végrehajtható műveletek: fájl keresés (file search), fájl létrehozás (create), fájl törlés (delete), directory listázás (dir, list, ls), fájl átnevezés (rename), a fájl rendszer pásztázása (traverse), bejárása. A könyvtárszervezéssel szemben támasztott elvárások: -
Hatékonyság: minden fájl könnyen visszakereshető legyen. Névadás (naming): Egynél több user használhassa ugyanazt a nevet más fájlokhoz. Ugyanannak a fájlnak lehessenek különböző azonosítói. Csoportosítás (grouping): fájlok csoportosítása tulajdonságaik alapján. (com, bat, pss, nfs ntfs, ... dtv)
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
10
Nyíregyházi Főiskola Matematika és Informatika Intézete
09
Egyszintű directory – Az összes felhasználó állományai egyetlen jegyzéket (directory) alkotnak. – Névadási- (névütközési-) és csoportosítási problémák
4 fájl közvetlenül a gyökér (root) alatt Egy vagy több tulajdonos (owner)
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
11
Nyíregyházi Főiskola Matematika és Informatika Intézete
09
Kétszintű directory – Egy-egy felhasználó állományai elkülönített jegyzéket (directory) alkotnak. – Szintek: MFD - UFD (master/user file directory) – Megoldja a névütközés problémáját, de nincs csoportosítás. – A felhasználók nem tudnak kooperálni (nehéz egymás állományait elérni). – Új fogalom jelenik meg: elérési út (path) – A rendszer fájlok (programok) használatának problémája
Minden User-nek van saját „könyvtára”
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
12
Nyíregyházi Főiskola Matematika és Informatika Intézete
09
Fa-szerkezetű directory
Egy fájljegyzék bizonyos elemei lehetnek újabb fájljegyzékek, így fájljegyzékeknek egy hierarchikus rendszere jön létre. Egy fájljegyzék által (fájlként) tartalmazott fájljegyzék = alfájljegyzék (subdirectory, folder mappa). Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
13
Nyíregyházi Főiskola Matematika és Informatika Intézete
09
A jegyzékben minden esetben egy speciális bit jelezheti, hogy fájlról, vagy aljegyzékről (mappáról, alkönyvtárról) van-e szó. Fájljegyzéket létrehozni és törölni speciális rendszer-hívásokkal lehet. Pl. make: mkdir; remove: rmdir. Aktuális directory váltás: cd. Abszolút- és relatív elérési út, keresési utak, pásztázás (traverse). Megoldja a névütközés problémáját, és lehet csoportosítani. Az elérési utak megadása sokszor körülményes. Egy megoldás: DeskTop file (Mac) vagy DeskTop mappa (Windows) Keresési út (search path) fogalma. Pl. MS-DOS: PATH környezeti változó (environment variable) - keresési útvonal beállítása, a futtatható fájlokhoz. Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
14
Nyíregyházi Főiskola Matematika és Informatika Intézete
09
Egy Windows-os Desktop – munkaasztal
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
15
Nyíregyházi Főiskola Matematika és Informatika Intézete
09
és megfelelő mappa
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
16
Nyíregyházi Főiskola Matematika és Informatika Intézete
09
UNIX – könyvtárak szerkezete Minden USER-nek van saját könyvtára
Minden USER saját könyvtárrendszert hoz létre
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
17
Nyíregyházi Főiskola Matematika és Informatika Intézete
09
FAT (File Allocation Table) tábla A legismertebb fájlrendszer (MS-DOS, MS-Windows) által használt formátum. Biztosítja, hogy elérhető legyen egy fix méretű blokkokból (block size, blokk méret) álló sorozat (file). Ezeket az általában 512 byte méretű (vagy k*512 byte, ahol k =1,2,3, …) blokkokat gyakran szektoroknak is nevezik. Lásd ábrát a következő oldalon! ). A fájlrendszer szoftvere biztosítja, hogy ezeket a szektorokat fájlokká és a katalógusokká szervezze össze, és tartsa nyilván, melyik szektor melyik fájlhoz tartozik, és melyik szektorok nem használhatók már tárolásra. Változatai: FAT-12, FAT-16, FAT-32. Klaszter (cluster) a fájlrendszerek legkisebb (nem fragmentalható!) címezhető foglalási egysége fájlok és könyvtárak számára. Egy vagy több egymás után következő szektorokból álló adategységet jelent.
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
18
Nyíregyházi Főiskola Matematika és Informatika Intézete
09
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
19
Nyíregyházi Főiskola Matematika és Informatika Intézete
09
A FAT tábla tartalmazza azokat az adatokat, hogy egy fájl tartalmának végigolvasásához melyik klaszter után melyik klasztert kell olvasni. Fat rekord (bejegyzés):
Attribútum – 8 bites mező
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
20
Nyíregyházi Főiskola Matematika és Informatika Intézete
09
A FAT tábla minden bejegyzése tehát egy klaszterre mutat. A 12 bites FAT tábla 12 bites számokkal azonosította a klasztereket, tehát maximum 212=4096 klasztert tudott kijelölni. A hajlékonylemezeknél (floppy disk) alkalmazták. A 16 bites FAT tábla már 216=65536 klasztert azonosíthatott, maximum 2GB-os partíciókat lehetett vele kezelni. A FAT táblából fontossága miatt két példányt is eltároltak a lemezen, így az egyik megsérülése esetén a másikat lehetett használni. Manapság a FAT típusú rendszerekből csak a 32 bitest használjuk, mely a 32 bitből 26-ot használ a klaszterek kijelölésére (226=?).
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
21
Nyíregyházi Főiskola Matematika és Informatika Intézete
09
Attribútum byte felépítése
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
22
Nyíregyházi Főiskola Matematika és Informatika Intézete
09
Fájlok tárolása a klaszterekben
Dr. Bajalinov Erik
Operációs rendszerek (PMB1206)
23