Operációs rendszerek I/O és fájlkezel alrendszer
Operációs rendszerek
1
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.
Operációs rendszerek
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.)
Operációs rendszerek
3
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 Operációs rendszerek
4
I/O rendszer a felhasználó szemszögébl • 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. Operációs rendszerek
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. Operációs rendszerek
6
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.
Operációs rendszerek
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
File table Count 1 R Count 1 R
4 5 6
Inode list
Count 3 /etc/passwd Count 1 Count 1
RW
Count 1
./local
W
Count 1
./private
Proc B descriptor table 1
Count 1 R
2 3 4 5 6
A kernel globális táblái
Operációs rendszerek
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élszeren elosztott a hibakezelés, szinkronitás-aszinkronitás biztosítása, osztható és dedikált eszközök, fájlok is kezelhetk.
Operációs rendszerek
9
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ó Adatfolyamok Adatfolyamok leképzése (blokk allokáció) szrése (vezérl szrés nélküli karakterek továbbítása Diszk buffer cache (diszk elérés átalakítása) gyorsítása) Disk drivers
Disk drivers
Device drivers
Operációs rendszerek
Device drivers 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
Operációs rendszerek
12
NT I/O Manager alrendszer
Operációs rendszerek
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 Device drivers
File system
Operációs rendszerek
13
Az eszköz „driverek” • Rutinkészlet + táblázatok + pufferek • “Megszólíthatók“: – felülrl (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).
Operációs rendszerek
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 Operációs rendszerek
15
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érdezs (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 Operációs rendszerek
16
Az eszköz driverek „alsó” rétege • IT kezelk: értelemszeren • 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
Operációs rendszerek
17
A DLLs & VxDs • DLL: Dynamic Link Library – Csak ha kérelem van, akkor töltdik 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ínleg nem IT-vel szólítódnak meg (hanem call jelleggel, pl. IRP-vel) – Elvileg lehet DLL
Operációs rendszerek
18
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 szrés lehet. Diszk is kezelhet karakteresen.
• Strukturált (blokkos) eszközök (diszkek). – blokkos I/O-val is kezelhetk, – fájl-rendszer is alakíthatók ki rajtuk, – a buffer cache gyorsító mechanizmuson át használjuk
Operációs rendszerek
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épezhetk folyamatos logikai blokkcímekre (ezt a kontroller végezheti): felülrl 0-n-ig számozott blokkok sorának láthatjuk. • Logical Disk képezhet a fizikai diszkre. Oka: egységesítés, egyszerbb driverek.
Operációs rendszerek
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 (errl 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). Operációs rendszerek
21
A particionálás • Részben az OS-tl 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. Operációs rendszerek
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 ...
Operációs rendszerek
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.
Operációs rendszerek
24
Partíciókra osztás Unixban 0
1
2
3
4
5
6
7
8
n
9
/dev/dsk/0s0
/dev/dsk/0s1
/dev/dsk/0s2 /dev/dsk/0s3
/dev/dsk/0s4
/dev/dsk/0s5
/dev/dsk/0s6 Operációs rendszerek
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 mezk. 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 mezk a rekordokban kulcsmezk, ezek rendezettek, a rekordok gyors keresését teszik lehetvé. Nem minden OS biztosítja.
Operációs rendszerek
26
A fájlok • A fájl elérés: – soros elérés: egy adatelem (byte, rekord) eléréséhez az elzeken “á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. Indexelt, fix rekordhosszúságú rekord és szekvenciális szervezettségnél. Változó rekordhossz esetén nem lehetséges. (A Unix seek hívással lehetvé teszi. )
• Fájl típusok a tartalmuk szerint is kialakíthatók (text, dokumentum, futtatható, bináris, jegyzék, fifo stb.) Operációs rendszerek
27
A fájlok • Fájl attribútumok: – – – – – – – –
név, készítési, módosítási, elérési dátumok/idk, tulajdonossági és védelmi információk, szervezettségi adatok (hossz, rekordhossz, blokkolási tényezk stb.), néha a tartalom szerinti típusukra vonatkozó adatok, a logikai diszken való elhelyezkedésükre vonatkozó információk stb. Operációs rendszerek
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áfzni, 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. Operációs rendszerek
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ületekbl (best-, worst-, next fit) – Nehézkes a hozzáfzés (append) meglév fájlhoz. – Fregmentálódik a partíció, idnké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? Operációs rendszerek
30
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áfzé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.
Operációs rendszerek
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
Operációs rendszerek
b második blokkja 12
NULL b utolsó blokkja 28
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 ketts 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 lehetségeket Operációs rendszerek
33
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 ...
NULL 7 12 x
y … NULL ...
Operációs rendszerek
blokkok 0 1 2 3 4 5 6 7 8 9 10 11 12 13 … 28 ...
a utolsó blokkja a els blokkja b els blokkja a második blokkja
b második blokkja … b utolsó blokkja ...
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.
Operációs rendszerek
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.)
Operációs rendszerek
36
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 blokk/cluster menedzsel térkép: egy bejegyzés harmadik funkciója: a foglaltság jelzése. – Tetszleges allokációs politikát kiszolgálhat. Operációs rendszerek
37
Szabad blokk menedzselés (B) Láncolt listás szabad blokk menedzselés – Kötött helyrl indulva mutató egy szabad blokkra, melyben mutató van a következ szabad blokkra s.í.t. – Hátránya, hogy a lista kezelése lassú (diszkmveletek kellenek). – Egyszer allokációs politikája lehet: lista elejérl allokálunk, lista elejére tesszük a felszabadulót. (Esetleg a végére.)
Operációs rendszerek
38
Szabad blokk menedzselés (C) Szabad helyek csoportjainak listája – (Az elz teljesítményének javítására) – Kötött helyrl 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 mvelet. – Ha a lánc eleji blokkról „kifogytak” a szabad blokkok, maga a lánc eleme is felhasználható (Unix s5fs megoldás)! Operációs rendszerek
39
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
Operációs rendszerek
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.
Operációs rendszerek
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. Operációs rendszerek
42
Egy Unix partíció szerkezete 0
boot block
1
super block
2
i-bög tábla (i-list)
. .
data blocks
n
Operációs rendszerek
43
Directory
file1
i-bög
A Unix i-bög szerkezete
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õ
Operációs rendszerek
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
Operációs rendszerek
45
Hogyan “szerzik“ meg az i-bögöt? • A namei algoritmus. – Elemzi az ösvény egy-egy komponensét, minden nevet az ösvénybl 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ékbl 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!
Operációs rendszerek
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 idit.
– Ismered blokkjainak sorrendjét és helyét.
Operációs rendszerek
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! Operációs rendszerek
48
Hard link-soft link > ln /usr/joe/foo /usr/sue/bar 2. i-bög
/usr/joe foo
> ln -s /usr/joe/foo /usr/sue/bar
2
2. i-bög
/usr/joe foo
16. i-bög
2
/usr/sue
/usr/sue bar
/usr/joe/foo
link=2
2
bar
16
A szimbolikus link
A hard link
Operációs rendszerek
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; jelz, hogy történt-e módosítás ind a szuperblokkban. Operációs rendszerek
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
...
Operációs rendszerek
51
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ébl (alloc).
Az ialloc algoritmus • Szabad i-bög igénylés a lista közepérl. • Szabad i-bög igénylés, amikor a lista üres. Operációs rendszerek
52
Szabad i-bög allokálás index
(a) Igénylés - a lista közepérl 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 Kiindulás Szuper blokk szabad i-bög lista 470 Megjegyzett i-bög
Szuper blokk szabad i-bög lista 535 534 ... Operációs rendszerek
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).
Operációs rendszerek
54
Az ifree algoritmus index
Megjegyzett i-bög Szuper blokk szabad i-bög lista 535 534 ...
Kiindulás
Felszabadult Megjegyzett a 499-es bög i-bög (499 < rem-i-bög) Szuper blokk szabad i-bög lista 499 534 ...
index
471
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
Operációs rendszerek
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 ...
Operációs rendszerek
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
301
214
304
(e) Újabb szabad blokkot igényeltek: a 109-est megkapták ... de annak listája felmásolódott a szuperblokkba Operációs rendszerek
57
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. Operációs rendszerek
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 /usr # cd /usr/lib # cd ../../..
su
/ i-list
bin
etc
lib
Operációs rendszerek
59
data blocks
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.
Operációs rendszerek
60
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
Operációs rendszerek
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 lehetsé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
Operációs rendszerek
62
Operációs rendszerek I/O és fájlkezel alrendszer
Operációs rendszerek
63