next up previous contents
Next: Memóriakezelés Up: Bevezetés Previous: Folyamatok

Fájlok

Minden számítógépet felszerelnek valamilyen háttértárral, ami adatokat képes tárolni hosszabb idon keresztül ( fájlok "formájában"). Ezeknek a fájloknak neveket adhatunk. Az, hogy a név hány és milyen karaktert tartalmazhat, nagyon eltéro lehet a különbözo operációs rendszerekben. A fájlok kezelését végzo operációs rendszer komponenseket gyakran hívják fájlrendszer kezelonek.

Egy kisebb méretu UNIX rendszerben alaphelyzetben kb. 3000-10000 kisebb-nagyobb fájl van a háttértáron, ezért az ott tárolt fájlokat valahogyan rendszerezni kell. A kialakult legelfogadhatóbb megoldást a hierarchikus directory-szerkezet (directory szó jelentése katalógus) jelenti. Ekkor a valamilyen szempont szerint összetartozó fájlok kerülnek egy közös directoryba. A hierarchikusság abban áll, hogy minden egyes directory tartalmazhat ún. aldirectorykat, amik szintén tartalmazhatnak aldirectorykat ...

Az egyetemeken ez például úgy használható ki, hogy a felhasználókat két csoportba osztva (pl. oktatók csoportjába ill. hallgatók csoportjába; persze lehet sok más csoport, ez inkább csak példa értéku) mindkét csoportnak egy-egy külön directoryja lehet, így a hallgatók fájljai védve vannak a kíváncsi oktatók elol (és természetesen fordítva is).

A hierarchikus directory-szerkezetet biztosító operációs rendszerekben az egyes fájlokra úgy hivatkozhatunk, hogy eloször meg kell adni azt, hogy a fájlt tartalmazó directoryt melyik directorykon keresztül érhetjük el a hierarchikus directory-szerkezet gyökerétol kiindulva, majd meg kell adni a fájlt tartalmazó directory nevét és magának a fájlnak a nevét is. (Ezt nevezik a fájl pathname-jének.) Ha például van egy user nevu directory (tegyük fel, hogy ez a directory a directory-szerkezet gyökerében van), aminek van egy student nevu aldirectoryja, akkor az abban az aldirectoryban levo xyz nevu fájlra a /user/student/xyz névvel hivatkozhatunk. (A UNIX operációs rendszerben a pathname egyes tagjait a / jel választja el egymástól, és a fájlnévben a legelso / jel a hierarchia tetején levo ún. gyökér-directoryt jelöli, amely egyetlen más directorynak sem aldirectoryja.) Ha minden egyes fájlra csak ilyen "hosszú módon" (ún. abszolút pathname segítségével) hivatkozhatnánk, akkor nagyon nehéz lenne az élet (és kényelmetlen is!). Ezért alakították ki a munka-directory (working directory) fogalmát. Ez azt jelenti, hogy van egy ún. munka-directory, amelyben a fájlokat a gyökértol hozzájuk vezeto minden egyes aldirectory nevének felsorolása nélkül érhetjük el. Csak azoknak a directoryknak a nevét kell felsorolni, amely a hierarchiában a munka-directory alatt van. (Az ilyen, a munkadirectoryból kiinduló pathname-eket relatív pathname-nek szokás nevezni.)

Még egy fontos elv van a fájlrendszerekkel kapcsolatban: a készülékfüggetlenség. Eszerint az elv szerint a programokat úgy kell megírni, hogy muködni tudjanak attól függetlenül, hogy az inputjukat és az outputjukat képezo fájlok egy floppy-lemezen vagy egy winchesteren vannak (vagy esetleg az input a billentyuzetrol lesz beadva ...).

Egyes operációs rendszerek a fájlokról nem feltételeznek semmiféle belso struktúrát: egyszeruen egy byte-folyamnak tekintik azokat (ilyen a UNIX). Más rendszerekben a fájlok mondjuk fix vagy változó számú byteot tartalmazó rekordok sorozata - ez gyakori volt a lyukkártyás idoszakban: minden fájl 80 byteos rekordokból állt. Ma egyre inkább a byte-folyam jellegu fájl kép kerül elotérbe, és a fájlok belso szerkezetét pedig az azt feldolgozó programok "saját belátásuk szerint" alakíthatják ki.

A fájlokhoz minden operációs rendszer nyilvántart bizonyos ún. fájl-attributumokat. Ezek a fájllal együtt a háttértáron lesznek tárolva. Ilyen fájl-attributumok például a következok (nem minden operációs rendszer ad lehetoséget az itt felsorolt összes fájl-attributum nyilvántartását):

Sok operációs rendszer a fájlokat vagy legalább egy részüket használatuk közben a memóriában tartja. Ezt cache-elésnek nevezik, és a memóriának azt a (gyakran dinamikusan változó méretu) részét, amit az operációs rendszer erre felhasznál cache-memóriának nevezik.

Sok fájlrendszer lehetoséget nyújt a fájlok " memóriába ágyazására" (memory mapped files). Ez azt jelenti, hogy a folyamatok a memória valamelyik szegmensén (részén) keresztül a fájlba tudnak írni, illetve onnan tudnak olvasni: ha a program a memóriaszegmens 0., 1., 2. ... byteját mondjuk megváltoztatja, akkor vele együtt meg fog változni a háttértárolón tárolt fájl 0., 1., 2. ... byteja is. Ez a megoldás tehát egységessé teszi a fájl- és memóriahozzáférés módját, kapcsolatot teremtve az operációs rendszer fájlrendszere és a memóriakezelo komponense között.

Az operációs rendszer feladata a fájlrendszer konzisztensségének a biztosítása is: ez például magába foglalja azt is, hogy az operációs nehogy kétszer ugyanazt a diszk-szektort használja fel egy fájl különbözo részeinek a tárolására, mert így adatok vesznének el.



next up previous contents
Next: Memóriakezelés Up: Bevezetés Previous: Folyamatok



Csizmazia Balazs
Tue Apr 2 00:06:27 MET DST 1996