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
Inode list
File table
1 2
Count 1 R
3
Count 1 R
4
Count 3 /etc/passwd
5 6
Count 1 RW
Count 1
./local
Count 1 W
Count 1
./private
Proc B descriptor table 1
Count 1 R
2 3 4 5 6
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 Adatfolyamok Adatfolyamok való leképzése (blokk allokáció) szűrése szűrés nélküli (vezérlő továbbítása Diszk buffer cache (diszk elérés karakterek gyorsítása) átalakítása) Disk drivers
Disk drivers
Device drivers Device drivers Vadász
10
Unix I/O alrendszer system call interface to the kernel socket network protocols
plain file
cooked disk interface
file system
raw disk interface
raw tty interface
cooked tty
line disciplines
block buffer cache network drivers
block device drivers
character device drivers
hardware
11
Vadász
12
NT I/O Manager alrendszer
Vadász
4
A Linux többrétegű fájlrendszere Process 1
Process 2
Process n
User mode Kernel mode
VIRTUAL FILE SYSTEM ext2
msdos
minix
…
proc
Buffer cache File system
Device drivers
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-ni -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 indexelt é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
7 a első blokkja 4
a második blokkja 7
File b, starts at 6
NULL a utolsó blokkja
12 b első blokkja
2
6
b második blokkja 12
NULL b utolsó blokkja 28
Vadász
32
Blokkhozzárendelés fájlokhoz (C) Indextáblás allokáció – A jegyzékben az első blokk/első index (é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 indextábla kötött helyen a diszken. – Egy bejegyzés az indextáblában kettős jelentésű: • a bejegyzés index-száma jelzi, az ugyanolyan számú blokk a fájl blokkja. • maga a bejegyzés a soron következő blokk (egyben index is), vagy a lista vége.
– Tulajdonképp láncolt lista, de a mutatók ki vannak emelve az indextáblába. – Nem zárja ki az optimalizált allokációs lehetőségeket Vadász
33
11
Indextáblás allokáció indextábla 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 ...
blokkok 0 1 2 3 4 5 6 7 8 9 10 11 12 13 … 28 ...
NULL 7 12 x
y … NULL ...
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 indextáblát kell végigolvasni). – Gond: nagy blokkszámnál nagy az indextábla. Megoldása: • Blokkokat “cluster“-ekbe szervezik, az indextábla ezeket címezi. • Persze, területvesztés lehet itt. • In-core indextá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 indexes, 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 indextá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
boot block
1
super block
2
i-bög tábla (i-list)
. .
data blocks
n
Vadász
43
Directory
file1
A Unix i-bög szerkezete
i-bög mode & védelem linkek száma tulajdonos uid gid fájl méret
Adat blokk
Direkt 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. BSD szerkezet
Directory blokk 3 névvel
SVID szerkezet 14 bytes
2
...
#
16
chunk száma
file1
#
3
f2
#
6
f3
fájlnév i-bög
16
file1 ... Ü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 indexet, é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 indexé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 -s /usr/joe/foo /usr/sue/bar
> ln /usr/joe/foo /usr/sue/bar 2. i-bög
/usr/joe foo
2. i-bög
/usr/joe
2
foo
16. i-bög
2
/usr/sue
/usr/sue bar
/usr/joe/foo
link=2
bar
2
16
A szimbolikus link
A hard link
Vadász
49
A szuperblokk tartalma ... • • • • • • • •
a fájlrendszer mérete; a szabad blokkok száma; a szabad blokkok listája + index a listán; az i-lista mérete; ind a szabad i-bögök száma; a szabad i-bögök listája + index 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 index
szuper-blokk 109 105 103
100
109-es blokk 211 208 205
202
112
211-es blokk 310 307 304
301
214
310-es blokk 409 406 403
400
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 index
(a) Igénylés - a lista közepéről Szuper blokk szabad i-bög lista 470 ... 83 48
Kiindulás
Szuper blokk szabad i-bög lista 470 ... 83
Eredmény
index
index
(b) Igénylés - a lista üres Szuper blokk szabad i-bög lista Kiindulás 470 Megjegyzett i-bög
Szuper blokk szabad i-bög lista 535 534 ... Vadász
Eredmény 471 index
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 index
Megjegyzett i-bög Szuper blokk szabad i-bög lista 535 534 ... Felszabadult Megjegyzett a 499-es bög i-bög (499 < rem-i-bög) Szuper blokk szabad i-bög lista 499 534 ...
Kiindulás 471 index
Csak a rem-i-bög változott
Felszabadult Megjegyzett a 601-es bög i-bög (601 > rem-i-bög) Szuper blokk szabad i-bög lista 499 534 ...
471 index
Semmi sem változott 471
Vadász
55
Blokk felszabadítás ... index
szuper-blokk 109 109-es blokk 211 208 205
202
112
(a) Kiindulási állapot ...
Felszabadult a 409-es blokk
index
szuper-blokk 109 409 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
index
szuper-blokk 109 109-es blokk 211 208 205
Újabb szabad blokkot igényelnek
202
112
(d) Egy szabad blokkot igényeltek: a 409-est kapták ...
index
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 mountolás /dev/du0 A root file system su
/ i-list
usr
tmp
dev
etc data blocks
A mount-olás:
/dev/hd1 file system
# # #
mount /dev/hd1 cd /usr/lib cd ../../..
/usr
su
/ i-list
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