Operációs rendszerek. A mai program. Az I/O alrendszer feladatai. I/O és fájlkezelő alrendszer



Hasonló dokumentumok
Operációs rendszerek. A mai program

Operációs rendszerek. UNIX fájlrendszer

UNIX: fájlrendszerek

Nyíregyházi Egyetem Matematika és Informatika Intézete. Fájl rendszer

Operációs rendszerek. UNIX/Linux fájlrendszerek

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

UNIX fájlrendszerek alapismeretei

Operációs Rendszerek II. Első verzió: 2009/2010. I. szemeszter Ez a verzió: 2009/2010. II. szemeszter

Operációs rendszerek 1.

Operációs rendszerek. Elvárások az NTFS-sel szemben

Előadás_#13. Egy lemez írási művelet kiszolgálása

OPERÁCIÓS RENDSZEREK I. HÁTTÉRTÁRAK

Operációs rendszerek III.

Fájl rendszer. Fájl koncepció Elérési módok Könyvtár szerkezet Védelem Konzisztencia szemantika

Informatikai Rendszerek Intézete Gábor Dénes Foiskola. Operációs rendszerek oldal LINUX

Operációs rendszerek. A mai program. Az NTFS fájlrendszer. Eset-tanulmányok fájlrendszerekről. Az NTFS fájlrendszer Unix fájlrendszerekről adalékok

Legfontosabb tulajdonságai. UNIX rendszer felhasználói és fejlesztői felülete (1-4. ea.) Unix hagymahéj struktúrája. Legfontosabb tulajdonságai

Nyíregyházi Egyetem Matematika és Informatika Intézete. Fájl rendszer

9. Állományok kezelése. Operációs rendszerek. Állomány (file) Könyvtár. Az állománykezelő feladatai. Az állományrendszer réteges implementációja

Linux alapismeretek. Felhasználó Felhasználói programok (folyamatok) Rendszerkönyvtárak (rendszerhívások) Segédprogramok (utility)

UNIX fájlrendszerek alapismeretei

Informatika szintmérő-érettségi tételek február

Operációs rendszerek. Az NT memóriakezelése

Operációs rendszerek. A Windows NT file-rendszere (NTFS) NTFS: Windows NT File System

Bevitel-Kivitel. Eddig a számítógép agyáról volt szó. Szükség van eszközökre. Processzusok, memória, stb

A L I N U X f e l é p í t é s e

Alternatív processz állapot és statisztika lekérdezési módszer a Linux kernelben

12. Másodlagos tár szerkezet

SQL*Plus. Felhasználók: SYS: rendszergazda SCOTT: demonstrációs adatbázis, táblái: EMP (dolgozó), DEPT (osztály) "közönséges" felhasználók

Máté: Számítógép architektúrák

Operációs rendszerek. Az Executive és a kernel Policy és mechanizmusok szeparálása Executive: policy - objektum kezelés Kernel: mechanizmusok:

Operációs rendszerek. A Windows NT felépítése

Operációs rendszerek gyakorlat

Operációs rendszerek. Folyamatok kezelése a UNIX-ban

Operációs rendszerek. Az NT folyamatok kezelése

II. Mérés SZÉCHENYI ISTVÁN EGYETEM GYŐR TÁVKÖZLÉSI TANSZÉK

Operációs rendszerek. Bemutatkozás

Adatbáziskezelés. Indexek, normalizálás NZS 1

Linux fájlrendszerek. Papp Zsolt. Rendszermérnök, Novell PSH.

Operációs rendszerek I. IIII. gyakorlat

Hálózatok építése és üzemeltetése

Operációs rendszerek gyak.

19. Hasításos technikák (hash-elés)

Operációs rendszerek MINB240. Bevitel-Kivitel. 6. előadás Input és Output. Perifériák csoportosításá, használat szerint

Operációs rendszerek gyakorlat

Operációs rendszerek. 3. gyakorlat. Jogosultságkezelés, linkelés, csővezeték UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

UNIX: folyamatok kommunikációja

OPERÁCIÓS RENDSZEREK. Célkitűzések, tárgyfelépítés. Módszerek. OS fogalom, struktúrák. 2005/2006. tanév II. félév Dr. Vadász Dénes

Programok, statikus linkelés

Virtualizációs Technológiák Operációs rendszer szintű virtualizáció Konténerek Forrás, BME-VIK Virtualizációs technológiák

Unix-Linux alapok I. gyakorlatvezető: Lutár Patrícia

Algoritmusok és adatszerkezetek gyakorlat 06 Adatszerkezetek

Laborgyakorlat: Partíció létrehozása Windows XP Professional operációs rendszerben

Memóriakezelés (Memory management)

Operációs rendszerek. Windows NT. A Windows NT

Az Oracle rendszer komponensei

Operációs rendszerek II. kidolgozott tételsor Verzió 1.0 (Build: )

Debreceni Egyetem Matematikai és Informatikai Intézet. 13. Védelem

I. Felzárkoztató Mérés SZÉCHENYI ISTVÁN EGYETEM GYŐR TÁVKÖZLÉSI TANSZÉK

Fájlszervezés. Adatbázisok tervezése, megvalósítása és menedzselése

Programozás alapjai. 8. előadás

Hálózati operációs rendszerek II. Kötetek kezelése

386 processzor címzés

Adatbázis-kezelő rendszerek. dr. Siki Zoltán

Egyirányban láncolt lista

Nyíregyházi Egyetem Matematika és Informatika Intézete. Input/Output

Utolsó módosítás:

OPERÁCIÓS RENDSZEREK 1. ÁTIRÁNYÍTÁSOK, SZŰRŐK

Operációs rendszerek gyakorlat

Számítógép architektúrák

SZOFTVEREK (programok)

Adatbázisok* tulajdonságai

ALAPOK. 0 és 255 közé eső számértékek tárolására. Számértékek, például távolságok, pontszámok, darabszámok.

Adatszerkezetek Adatszerkezet fogalma. Az értékhalmaz struktúrája

Mutatók és címek (ism.) Programozás alapjai C nyelv 8. gyakorlat. Indirekció (ism) Néhány dolog érthetőbb (ism.) Változók a memóriában

Miről lesz ma szó? A PROGAMOZÁS ALAPJAI 1. Dinamikus változók. Dinamikus változók. Dinamikus változók. Dinamikus változók. 7.

10. Fájl rendszer interfész

Fájlrendszerek. A Windows operációs rendszerek fájlrendszere

Uniprogramozás. várakozás. várakozás. Program A. Idő. A programnak várakoznia kell az I/Outasítások végrehajtására mielőtt továbbfuthatna

A legfontosabb DOS parancsok

Programozás alapjai C nyelv 8. gyakorlat. Mutatók és címek (ism.) Indirekció (ism)

4. Laborgyakorlat. A fájlokról ezeket az adatokat, a fájlrendszer tárolja. Számunkra az 1, 3, 4. oszlopok lesznek az érdekesek.

2016/06/09 13:15 1/108 Linux parancssor

Adatbázis rendszerek. dr. Siki Zoltán

Operációs rendszerek. 6. gyakorlat: Processzusok közti kommunikáció (osztott memória, üzenetsor)

Operációs rendszerek

A Linux operációs rendszer 2017.

3. Ezután a jobb oldali képernyő részen megjelenik az adatbázistábla, melynek először a rövid nevét adjuk meg, pl.: demo_tabla

Processzusok (Processes), Szálak (Threads), Kommunikáció (IPC, Inter-Process Communication)

Operációs rendszerek. A védelem célja. A fenyegetés forrásai. Védelmi tartományok. Belső biztonság. Tartalom

Listák, szótárak, fájlok Listák, szótárak, fájlok

Occam 1. Készítette: Szabó Éva

Pénzügyi algoritmusok

8. Memória management

Léteznek nagyon jó integrált szoftver termékek a feladatra. Ezek többnyire drágák, és az üzemeltetésük sem túl egyszerű.

A programozás alapjai előadás. [<struktúra változó azonosítók>] ; Dinamikus adatszerkezetek:

terminológia, értelmezések, fogalmak

Operációs rendszerek gyakorlat

w w w. h a n s a g i i s k. h u 1

Operációs rendszerek MINB240 V2+2+0

Átírás:

Operációs rendszerek I/O és fájlkezelő alrendszer A mai program Az I/O alrendszer, különböző látásmódokkal Eszközök osztályai, eszköz-driverek Logikai diszk, partíció fogalom Fájlok, szervezettség, elérés Fájlrendszer megvalósítási feladatok jegyzékstruktúra megvalósítás, blokk hozzárendelés fájlokhoz, szabad blokk menedzselés. Unix fájlrendszer. Vadász 2 Az I/O alrendszer feladatai Elrejteni az eszközök specialitásait Kényelmessé tenni az eszközhasználatot Menedzselni az eszközöket, fájlokat védeni azokat, ütemezni, konkurens vagy kizárólagos hozzáféréseket biztosítani. (A fájl absztrakció a felhasználók által leginkább ismert és használt absztrakció, amit az operációs rendszer nyújtani tud.) Vadász 3 1

Eszközök, másodlagos tárolók, fájlrendszer I/O alrendszer, eszközök Hozzáférések Eszköz driverek Másodlagos tárolók Buffer cache Fájlrendszer megvalósítás Jegyzékstruktúra, attribútumok rögzítése Blokkhozzárendelés Blokkmenedzselés Vadász 4 I/O rendszer a felhasználó szemszögéből Szimbolikus neveken látja az eszközöket, fájlokat Lát eszközöket (köztük logikai eszközöket), látja a fájlok halmazát (file pool), lát hierarchiát (ösvény, jegyzék stb. fogalmak, ezek rendeznek ), fájl névteret. A felhasználói felülettel (burok, v. GUI és segédprogramok) kezeli ezeket (készít, töröl, másol, mozgat, eszközt kezel stb.) Ismer tulajdonossági és hozzáférési kategóriákat (védelem), beállít ilyeneket. Bizonyos OS-ekben észlel fájl szervezési és fájl elérési módokat. Vadász 5 A programozó látásmódja (Nyitott) csatornákat (stream) lát. Ezek azonosítója: fájl-leíró/pointer. Nyithat/zárhat csatornákat (open, fopen, close, fclose). Nyitni: több dolgot jelent: csatorna azonosítót kreál, pozíció indikátorral, a csatornát összeköti szimbolikus névvel, védelmeket kezel, beállít. Azonosított csatornákon adatokat (byte/karakter, rekord, blokk stb.) mozgat. Ez függ az elérési módtól: szekvenciális eléréssel, direkt eléréssel. Vadász 6 2

A programozó látásmódja Fájl nyitó-záró rendszerhívások A fájlleíró processzenkénti objektum Az adatmozgató rendszerhívások: read, write, put, get, putchar, getchar, seek stb. Néha külön rendszerhívások a jegyzékekre opendir, readdir, rewinddir, mkdir, rmdir stb. Vadász 7 A programozó látásmódja Proc A fd1=open( /etc/passwd, O_READONLY) fd2=open( local, O_RDWR) fd3=open( /etc/passwd, O_WRONLY) Proc B fd1=open( /etc/passwd, O_READONLY) fd2=open( private, O_RDWR) Proc A descriptor table 1 2 3 4 5 6 Proc B descriptor table 1 2 3 4 5 6 File table Inode list Count 1 R Count 1 R Count 3 /etc/passwd Count 1 RW Count 1./local Count 1 W Count 1./private Count 1 R A kernel globális táblái Vadász 8 Az OS I/O alrendszere A kernel struktúráknál láttuk: van külön I/O alrendszer Ennek feladata: vezérlés, interfész biztosítás, védelem és menedzsment biztosítás. Alapelvek: Réteges struktúra, eszközfüggetlenség biztosítása, célszerűen elosztott a hibakezelés, szinkronitás-aszinkronitás biztosítása, osztható és dedikált eszközök, fájlok is kezelhetők. Vadász 9 3

I/O alrendszer szerkezet Névtér kezelés (dirs, paths), védelem kezelés (rwx), adatfolyamok azonosítása Adatfolyamok kezelése, elérések (seek, direkt (random) elérés, soros elérés) Az adatfolyamok blokkokra való leképzése (blokk allokáció) Diszk buffer cache (diszk elérés gyorsítása) Disk drivers Disk drivers Adatfolyamok szűrése (vezérlő karakterek átalakítása) Device drivers Adatfolyamok szűrés nélküli továbbítása Device drivers Vadász 10 Unix I/O alrendszer system call interface to the kernel socket network protocols network drivers plain file file system cooked disk interface block buffer cache block device drivers raw disk interface raw tty interface character device drivers cooked tty line disciplines hardware Vadász 11 NT I/O Manager alrendszer Vadász 12 4

A Linux többrétegű fájlrendszere Process 1 Process 2 Process n User mode VIRTUAL FILE SYSTEM Kernel mode ext2 msdos minix proc Buffer cache Device drivers File system Vadász 13 Az eszköz driverek Rutinkészlet + táblázatok + pufferek Megszólíthatók : felülről (call, IRPs), alulról (IT). Három fő részük: Auto-konfigurációs, inicializáló rutinok (egyszer futnak, az eszközt inicializálják), I/O hívások rutinjai (Call-lal többször is megszólítódnak, alapvető szolgáltatók), IT handlerek (IT-vel többször is). Vadász 14 Az eszköz driverek felső rétege Setup: paramétereket juttat a driverhez automatic detection a setup argumentumokkal Init: eszköz jelenlétét teszteli Hívódik a kernel inicializáláskor belső adatstruktúrákat, regisztereket generál az eszköz számára open & release: inicializál standard értékekkel hogy adminisztrálni lehessen az eszközt visszaad/megszüntet egy leírót az eszközhöz processz nyithat kizárólagosan magának, vagy osztottnak Vadász 15 5

Az eszköz driverek középső rétege Read & Write: a szokásos szolgáltatások IOCTL: eszköz-specifikus parancsok készlete Select: vizsgáló vizsgálja, hogy lehet-e írni, olvasni a lekérdezős (polling) technikához jó nem minden eszközhöz, és lehet az IOCTL-ben Mmap: leképzés a felhasználói címtartományra nincs minden eszköznél, de fájlrendszert tartalmazónál hasznos lehet Lseek: indikátor mozgató Nincs minden driver-nél, lehet IOCTL-ben Vadász 16 Az eszköz driverek alsó rétege IT kezelők: értelemszerűen Check_media_change & revalidate: blokkos cserélhető eszközhöz észreveszi a medium cserét, annak paramétereivel aktualizálja az adatstruktúrákat kérdés, hogy ne a felső réteghez tartozónak vegyük-e Vadász 17 A DLLs & VxDs DLL: Dynamic Link Library Csak ha kérelem van, akkor töltődik be (egyfajta overlay) Kérelmeket fogad és szolgál ki (sokszor úgy, hogy a kérelmeket speciális formában továbbadja) VxD: Virtual anything Device A rétegezettségi koncepció miatt virtuális eszközöket valósít meg A "kezelő" rutinjai valószínűleg nem IT-vel szólítódnak meg (hanem call jelleggel, pl. IRP-vel) Elvileg lehet DLL Vadász 18 6

Milyen eszközök vannak? Karakteres eszközök (pl. billentyű, soros port, képernyő, analóg-digital átalakító stb.). Strukturálatlanul (pl. karakter-folyamként) kezel, (Néha sor (line) strukturáltság van!) De! A driver fölött szűrés lehet. Diszk is kezelhető karakteresen. Strukturált (blokkos) eszközök (diszkek). blokkos I/O-val is kezelhetők, fájl-rendszer is alakíthatók ki rajtuk, a buffer cache gyorsító mechanizmuson át használjuk Vadász 19 Diszkek, blokk orientált eszközök Blokknyi egységben történik az adatáramlás. Oldal-sáv-(cilinder)-szektor (blokk) fogalmak adattárolási egység a szektor (blokk), oldal-sáv-szektor címek léteznek, Az oldal-sáv-szektor címek leképezhetők folyamatos logikai blokkcímekre (ezt a kontroller végezheti): felülről 0-n-ig számozott blokkok sorának láthatjuk. Logical Disk képezhető a fizikai diszkre. Oka: egységesítés, egyszerűbb driverek. Vadász 20 Logikai diszk, partíció Egy fizikai diszken több 0-n i -ig számozott blokk sora, több logikai diszk a képzet. Mindegyiknek saját szimbolikus neve van. Mindegyiknek saját driver-e van. A partíciók (egyes OS-eknél) átlapolódhatnak. Egy partíciót kijelölhetünk egy OS boot területének (erről indítunk), kilapozási/kisöprési területnek (virt. mem.), egy OS fájlrendszer területének, hibás blokkok helyettesítő területének (ma már nem szükséges). Vadász 21 7

A particionálás Részben az OS-től független dolog! Alacsonyabb szintű SW-ek kellenek a partíció létrehozásához, a boot partíció kijelöléséhez, a magasabb driver-ek támogatásához. Alacsonyabb? Mi általában egy OS-t használunk. ezek a SW-ek szinte minden OS-ben megvannak, használhatók (akár más OS javára ). A partíciókat az OS-ek nem egyformán kezelik. Vannak OS-ek, melyek pl. kötött számú partíciót engednek, nem mindig látják egymás fájlrendszereit stb. Vadász 22 Diszkek, partíciók - kötetek Partícionálással egy nagy diszket részekre osztunk Néha szükség lenne kisebb diszkeket (partíciókat) összevonva, egyetlen nagy diszkként "látni": ez a kötetesítés Némely OS tudja ezt pl. AIX, Windows, NT A kötet: logikai diszk, szervezhető rá fájlrendszer van drivere Vadász 23 A Unix eszközök szimbolikus nevei Unix-ban minden fájl. Az eszközök: speciális fájlok, a /dev/ jegyzékben, aljegyzékeiben Tartalmuk (rövid): major device number: azonosítja a kontrollert, minor device number: azonosítja a tényleges eszközt (pl. logikai diszket), és a device driver-t. Vadász 24 8

Partíciókra osztás Unixban 0 1 2 3 4 5 6 7 8 9 n /dev/dsk/0s0 /dev/dsk/0s1 /dev/dsk/0s2 /dev/dsk/0s3 /dev/dsk/0s4 /dev/dsk/0s5 /dev/dsk/0s6 Vadász 25 A fájlok Mi a fájl? Fájl szervezettség (organisation) lehet Byte-ok sora (nincs szervezettség), csakis a processzek strukturálhatnak. Rekordok sora (szekvenciális). A rekordokban mezők. Fix, változó rekordhossz, rekordok blokkokba csoportosítva stb., mindezek a fájlban (fájlrendszeren) rögzítettek. Nem minden OS biztosítja. Index-szekvenciális szervezettségű rekordok: egyes mezők a rekordokban kulcsmezők, ezek rendezettek, a rekordok gyors keresését teszik lehetővé. Nem minden OS biztosítja. Vadász 26 A fájlok A fájl elérés: soros elérés: egy adatelem (byte, rekord) eléréséhez az előzőeken át kell jutni. Minden szervezettségnél lehetséges. direkt (random) elérés: egy adatelem eléréséhez nem kell a többiekkel foglakozni. Csak az elt és bizonyos szekvenciális (fix rekordhosszúságú) szekvenciális szervezettségnél. (A Unix seek hívással lehetővé teszi. ) Fájl típusok a tartalmuk szerint is kialakíthatók (text, dokumentum, futtatható, bináris, jegyzék, fifo stb.) Vadász 27 9

A fájlok Fájl attribútumok: név, készítési, módosítási, elérési dátumok/idők, tulajdonossági és védelmi információk, szervezettségi adatok (hossz, rekordhossz, blokkolási tényezők stb.), néha a tartalom szerinti típusukra vonatkozó adatok, a logikai diszken való elhelyezkedésükre vonatkozó információk stb. Vadász 28 Fájlrendszer megvalósítások Partíciókra szervezhetünk fájlrendszert. 3 dolgot kell megoldani valahogy: adott (szimbolikus) fájlnévhez hogyan rendelhetjük az attribútumokat, kiváltképp a fájl testét képező blokkokat? (Megfelelő sorrendben persze.) (Keresni, hozzáfűzni, elengedni blokkokat) A partíción a szabad blokkok menedzselése hogyan történjen? (Keresni szabad blokkokat, elengedni (szabaddá tenni) blokkokat.) Kiindulás: jegyzékstruktúra alakítandó ki. Rögzíteni kell az attribútumokat is. Vadász 29 Blokkhozzárendelés fájlokhoz (A) Folyamatos allokáció Jegyzékben a név mellet a kezdő blokk cím és a hossz. A fájl blokkjai egymás után, folyamatosan Egyszerű, teljesítményre optimalizált allokáció Fájlkészítésnél megbecsülni a várható hosszt, választani a lehetséges szabad folytonos területekből (best-, worst-, next fit) Nehézkes a hozzáfűzés (append) meglévő fájlhoz. Fregmentálódik a partíció, időnként compaction szükséges Tisztán ezt ma már nem használják HPFS/NTFS kiterjesztésein (extent, run) folyamatos allokáció van. Annyira mégsem elavult? Vadász 30 10

Blokkhozzárendelés fájlokhoz (B) Láncolt (lista) allokáció Jegyzékben a név mellett az első blokk címe (esetleg hossz). Az adott blokkban mutató a következő blokkra. Az utolsó blokkban a mutató a véget jelez(het)i. Egyszerű, nincs partíció-fregmentáció, van ugyan fájlfregmentáció, könnyű a hozzáfűzés stb. Gond: hosszú fájlok végének eléréséhez végig kell menni a láncolt listán. Gond: A mutató a blokkokon elvesz területet a fájl adataitól. Hossz-számítás. Vadász 31 Blokkhozzárendelés fájlokhoz (B) Láncolt listás allokáció File a, starts at 4 File b, starts at 6 7 a első blokkja a második blokkja NULL a utolsó blokkja 4 7 2 12 b első blokkja b második blokkja NULL b utolsó blokkja 6 12 28 Vadász 32 Blokkhozzárendelés fájlokhoz (C) Indextáblás allokáció A jegyzékben az első blokk/első (és a hossz). Indextábla: egy bejegyzése egy-az-egy megfeleltetésben a blokkokkal (i-edik bejegyzéshez az i-edik blokk tartozik). Az tábla kötött helyen a diszken. Egy bejegyzés az táblában kettős jelentésű: a bejegyzés -száma jelzi, az ugyanolyan számú blokk a fájl blokkja. maga a bejegyzés a soron következő blokk (egyben is), vagy a lista vége. Tulajdonképp láncolt lista, de a mutatók ki vannak emelve az táblába. Nem zárja ki az optimalizált allokációs lehetőségeket Vadász 33 11

0 1 2 3 File a, starts at 4 4 5 File b, starts at 6 6 7 8 9 10 11 12 13 28 Indextáblás allokáció tábla NULL 7 12 x y NULL 0 1 2 3 4 5 6 7 8 9 10 11 12 13 28 blokkok a utolsó blokkja a első blokkja b első blokkja a második blokkja b második blokkja b utolsó blokkja Vadász 34 Blokkhozzárendelés fájlokhoz (C) Indextáblás allokáció (folyt) Egyszerű. Ma is használatos. Közepesen gyors hosszú fájloknál is (Csak az táblát kell végigolvasni). Gond: nagy blokkszámnál nagy az tábla. Megoldása: Blokkokat cluster -ekbe szervezik, az tábla ezeket címezi. Persze, területvesztés lehet itt. In-core tábla pedig gyorsítja az elérést. Ilyen a VAX/VMS, és tulajdonképpen a DOS FAT is. Vadász 35 Blokkhozzárendelés fájlokhoz (D) I es, i-bögös, i-listás allokáció (i, inode, i-list) (Unix, Linux ext2 stb.) Egyéb, vegyes, i-listához hasonló bögös megoldások (HPFS, NTFS stb.) Vadász 36 12

Szabad blokk menedzselés (A) Bit térképes (bitmap) Kötött helyen a bit-térkép. Lehet elosztott térkép is. Egy-az-egyes megfeleltetés egy bit és a blokkok (clusterek) között. Ha egy bit bebillentett: azt jelenti, a hozzá tartozó blokk foglalt. Ilyen a VAX/VMS, HPFS, NTFS, Linux ext2 Bit térkép helyett mező-térképes is lehet (ilyen a DOS FAT, a VFAT). A FAT egybevont tábla és szabad bokk/cluster menedzselő térkép: egy bejegyzés harmadik funkciója: a foglaltság jelzése. Tetszőleges allokációs politikát kiszolgálhat. Vadász 37 Szabad blokk menedzselés (B) Láncolt listás szabad blokk menedzselés Kötött helyről indulva mutató egy szabad blokkra, melyben mutató van a következő szabad blokkra s.í.t. Hátránya, hogy a lista kezelése lassú (diszkműveletek kellenek). Egyszerű allokációs politikája lehet: lista elejéről allokálunk, lista elejére tesszük a felszabadulót. (Esetleg a végére.) Vadász 38 Szabad blokk menedzselés (C) Szabad helyek csoportjainak listája (Az előző teljesítményének javítására) Kötött helyről indulva egy blokk mutatókat tartalmaz szabad blokkokra, egy mutatója viszont további olyan blokkra mutat, ami további szabad blokkok csoportját jegyzi fel s.í.t. Blokk foglalás esetén a lista elején lévő blokkon feljegyzett szabad blokkokat allokáljuk, blokk felszabadításkor ide tesszük a felszabadult blokkok mutatóit. Belátható a teljesítmény javulás: kevesebb I/O művelet. Ha a lánc eleji blokkról kifogytak a szabad blokkok, maga a lánc eleme is felhasználható (Unix s5fs megoldás)! Vadász 39 13

Szabad blokk menedzselés (D) Egybefüggő szabad területek nyilvántartása Kötött helyen lévő táblázat bejegyzései az egyre magasabb című, egybefüggő szabad blokkcsoportok kezdő mutatóját és blokkban mért hosszát tárolják. Hozzá illő allokációs politika a folyamatos allokáció (best-, worst-, next fit). A lapozó eszköz menedzselésénél szokták alkalmazni Vadász 40 Jegyzék implementációk A jegyzék is fájl. Blokkhozzárendelés jegyzékhez akár a szokásos fájlhoz való blokkhozzárendeléssel, akár speciálisan történhet. Tartalma: bejegyzései fájlneveket, kezdő címet (hosszat, esetleg bizonyos attribútumokat) tartalmaz. Kötött vagy változó hosszú lehet. A bejegyzések struktúrája befolyásolja a keresést: lineáris keresés (nem rendezett, hézagos bejegyzések), hash táblás keresés, b-fás (rendezett) jegyzékben a keresés. Vadász 41 Unix fájlrendszer Itt minden fájl: az eszközök is a fájlrendszerben, a fájlrendszer pedig blokkos eszközre (partícióra, kötetre) szervezett. Minden fájlhoz tartozik ún. i-bög (i-node). Az i-bögök az ún. i-listán vannak. Egy i-bög szinte mindent tartalmaz a hozzá tartozó fájlról. Ha ismered: elérheted a fájl blokkjait. A szabad blokk menedzselést az ún. szuperblokkból kiinduló szabad blokkok listája segíti: ezen lista eleme maga is szabad blokk. Vadász 42 14

Egy Unix partíció szerkezete 0 1 boot block super block 2. i-bög tábla (i-list). data blocks n Vadász 43 Directory file1 A Unix i-bög szerkezete Direkt i-bög mode & védelem linkek száma tulajdonos uid gid fájl méret Adat blokk mutatók Single indirekt Double indirekt Triple indirekt Utolsó hozzáf. Utolsó mód. Készítési idõ Vadász 44 Unix jegyzékek SVID-ben 16 bájt hosszúak a bejegyzések (névhossz max. 14) BSD-ben a chunk -ok 255 kar. hosszú neveket is megengednek. SVID szerkezet BSD szerkezet Directory blokk 3 névvel 2 14 bytes # # # 16 file1 3 f2 6 f3 16 file1 chunk száma i-bög fájlnév Üres directory blokk 0 Vadász 45 15

Hogyan szerzik meg az i-bögöt? A namei algoritmus. Elemzi az ösvény egy-egy komponensét, minden nevet az ösvényből i-böggé konvertál, a bög segítségével megnézi, jegyzék-e. Ha nem az visszatér jelezve ezt a tényt. Ha jegyzék veszi i-bögjét, a jegyzékben keresi a következő komponenst, sít. Végül visszatér az input ösvény i-bögével, vagy hibajelzéssel. root jegyzék i-böge a szuperblokkban, jegyzékből kikeresi a nevet, veszi az i et, és ezzel megragadta a következő jegyzéket-fájlt, s.í.t. Gyors kereséshez: in-core-i-node lista! Az aktuális jegyzék i-böge processzenként feljegyezve! Vadász 46 Miért kell az i-bög? Ha egy fájl i-bögét ismered, szinte mindent tudsz róla ismered attribútumait típusát & védelmi maszkját, tulajdonosi viszonyait, hosszát, linkjeinek számát, készítési és hozzáférési időit. Ismered blokkjainak sorrendjét és helyét. Vadász 47 A fájl link Célja: már meglévő fájlra más névvel is hivatkozhassunk. Hard link: új dir-bejegyzés készül, a már létező fájl i ével! Csak ugyanazon a fájlrendszeren! Hozzáférések? Törléskor a linkek száma csökken! Szoft link (symbolic link): új fájl készül (új i-böggel), ebben az eredeti abszolút ösvényneve. Mount-olt fájlrendszeren is! Korrektebb védelmek! Vadász 48 16

Hard link-soft link > ln /usr/joe/foo /usr/sue/bar > ln -s /usr/joe/foo /usr/sue/bar /usr/joe 2. i-bög /usr/joe 2. i-bög 16. i-bög foo 2 foo 2 link=2 /usr/sue /usr/sue /usr/joe/foo bar 2 bar 16 A hard link A szimbolikus link Vadász 49 A szuperblokk tartalma a fájlrendszer mérete; a szabad blokkok száma; a szabad blokkok listája + a listán; az i-lista mérete; a szabad i-bögök száma; ind a szabad i-bögök listája + a listához; lock mező a két listához; ind jelző, hogy történt-e módosítás a szuperblokkban. Vadász 50 Szabad blokkok listája szuper-blokk 109 105 103 100 109-es blokk 211 208 205 202 211-es blokk 310 307 304 301 310-es blokk 409 406 403 400 112 214 313 Vadász 51 17

Fájlkészítés forgatókönyve Beírni a nevet a jegyzékbe; allokálni i-bögöt a fájlhoz (ialloc), ezt is beírni a jegyzékbe; tölteni az i-bögöt; ahogy a fájl "növekszik", allokálni neki blokkokat a szabad blokkok készletéből (alloc). Az ialloc algoritmus Szabad i-bög igénylés a lista közepéről. Szabad i-bög igénylés, amikor a lista üres. Vadász 52 Szabad i-bög allokálás (a) Igénylés - a lista közepéről Szuper blokk szabad i-bög lista Kiindulás 470 83 48 Szuper blokk szabad i-bög lista Eredmény 470 83 Megjegyzett i-bög (b) Igénylés - a lista üres Szuper blokk szabad i-bög lista Kiindulás 470 Szuper blokk szabad i-bög lista 535 534 Eredmény 471 Vadász 53 A fájltörlés forgatókönyve Az i-bögben a linkek számát csökkenteni, továbbá a jegyzék bejegyzést törölni; ha a linkszám elérte a 0-t, akkor a fájl blokkjait szabad listára tenni; az i-bögöt szabad listára tenni (ifree). Vadász 54 18

Az ifree algoritmus Felszabadult a 499-es bög (499 < rem-i-bög) Felszabadult a 601-es bög (601 > rem-i-bög) Megjegyzett i-bög Szuper blokk szabad i-bög lista 535 534 Megjegyzett i-bög Megjegyzett i-bög Szuper blokk szabad i-bög lista 499 534 Szuper blokk szabad i-bög lista 499 534 Kiindulás 471 Csak a rem-i-bög változott 471 Semmi sem változott 471 Vadász 55 Blokk felszabadítás szuper-blokk 109 Felszabadult a 409-es blokk 109-es blokk 211 208 205 202 (a) Kiindulási állapot szuper-blokk 109 409 112 109-es blokk 211 208 205 202 112 (b) A 409-es blokk felszabadulása utáni állapot Vadász 56 Blokk foglalás Egy szabad blokkot igényeltek Újabb szabad blokkot igényelnek szuper-blokk 109 109-es blokk 211 208 205 202 112 (d) Egy szabad blokkot igényeltek: a 409-est kapták Szuper blokk 211 208 205 202 112 211-es blokk 310 307 304 301 214 (e) Újabb szabad blokkot igényeltek: a 109-est megkapták de annak listája felmásolódott a szuperblokkba Vadász 57 19

Fájlrendszer kialakítás A rendszergazda (su) az mkfs paranccsal: # mkfs logical-disk size A használatba vétel: a mountolás A rendszergazda (su) a mount paranccsal: # /etc/mount log-disk empty-dir Az umount parancs: megszüntet. A mount tábla: /etc/mnttab. Vadász 58 A root file system / usr tmp dev etc / A mountolás /dev/du0 su i-list data blocks /dev/hd1 file system su i-list A mount-olás: # mount /dev/hd1 /usr # cd /usr/lib # cd../../.. bin etc lib data blocks mount elõtt csak a blokkok érhetõk el! Vadász 59 A mount tábla egy bejegyzése A partíció száma a szuperblokk bufferére mutató pointer a mount jegyzék i-böge (mount point) a gyökér jegyzék i-böge. Vadász 60 20

Fogalmak Eredeti fájlrendszer (root/original/mounted on fs) mountolt eszköz, ennek spec. fájlneve (mounted fs) mountolt eszköz logikai száma (major+minor)=fsnumber mountolt eszköz gyökér jegyzéke, ennek i-böge mount jegyzék (mount point) mount jegyzék i-böge Vadász 61 Összefoglalás OS-ek I/O alrendszere, fájlrendszere A eszköz-driverek, partíciók, kötetek A fájlrendszer implementációk 3 alapfeladata és ezek megoldási lehetőségei Jegyzék implementáció Attribútum és blokkhozzárendelés a fájlokhoz A szabad blokkok menedzselése Unix partíciók, szuperblokk, i-bög, i-lista Unix link, mount Vadász 62 Operációs rendszerek I/O és fájlkezelő alrendszer 21