poglavje 5 datotečni sistemi - university of...
TRANSCRIPT
-
1
Datotečni sistemi
Poglavje 5
5.1 Datoteke 5.2 Direktoriji 5.3 Implementacija datotečnik sistemov 5.4 Upravljanje z datotečnimi sistemi5.5 Primeri datotečnih sistemov
-
2
Shranjevanje podatkov
1. Datotečni sistemi morajo shranjevati velike količine podatkov.
2. Shranjeni podatki morajo preživeti ustavitev procesa, ki jih uporablja.
3. Več procesov mora dostopati do podatkov vzporedno.
-
3
Imena datotek
Tipiči podaljški datotek.
-
4
Datotečna struktura
• Trije tipi datotek– Sekvenca zlogov– Sekvenca zapisov– Drevo
-
5
Tipi datotek
(a) Izvedljiva datoteka (b) Arhiv
-
6
Dostop do datotek• Sekvenčni dostop
– Preberi vse zloge/zapise od začetka– Ne moremo skakati okoli, lahko pa začnemo spet na
začetku– Vedno uporaben medij
• Naključen dostop– Zloge/zapise lahko beremo v poljubnem vrstnem redu– Ključen za podatkovne baze– Branje je lahko …
• Premakni kazalec datoteke (seek), potem preberi …• Preberi in potem premakni kazalec datoteke
-
7
Atributi datoteke
-
8
Operacije nad datotekami
• Najbolj pogosti sistemski klici – create, delete– open, close– read, write, append– seek– get-attributes, set-attributes– rename
-
9
Primer programa, ki uporablja sistemske klice za delo z datotekami (1/2)
-
10
Primer programa, ki uporablja sistemske klice za delo z datotekami (2/2)
-
11
Datoteke preslikane v spomin
(a) segmentiran proces pred preslikavo na svoj naslovni prostor(b) Proces po preslikavi
obstoječa datoteka abc je v enem segmentu kreiranje novega segmenta za xyz
-
12
DirektorijiEno-nivojski direktorijski sistem
• Eno-nivojski direktorijski sistem– Vsebuje 4 datoteke– Lastniki so 3 različni uporabniki: A, B, in C
-
13
Dvo-nivojski direktorijski sistem
Črke določajo lastnika direktorijev in datotek
-
14
Hierarhični direktorijski sistem
Hierarhični direktorijski sistem
-
15UNIX drevo direktorijev
Imena poti
-
16
Operacije na direktorijih
1. Create2. Delete3. Opendir4. Closedir
1. Readdir2. Rename3. Link4. Unlink
-
17
Implementacija dat. sistema
Možen načrt datotečnega sistema
-
18
Implementacija datotek (1)
(a) zvezna alokacija diskovnega prostora za 7 datotek(b) stanje diska po tem, ko so datoteke D in E zbrisane
-
19
Implementacija datotek (2)
Shranjevanje datotek s povezanim seznamom blokov
-
20
Implementacija datotek (3)
Alokacija povezanega seznama z uporabo alokacijske tabele datoteke (FAT-file alocation table) v RAM
-
21
Lastnosti FAT
• Nimamo več fragmentacije zaradi zvezne alokacije blokov
• Ni možno več hitro sekvenčno branje• Cela tabela mora biti v spominu
– 200 GB disk, 1K blok => 200MB indeksov => 3 B/indeks => 600-800 MB pomnilnika !
• Možen precej hiter direkten dostop– Potrebno je pregledati celoten seznam
• FAT ni za velike diske
-
22
Implementacija datotek (4)
Primer i-vozlišča
-
23
Implementacija direktorijev (1)
(a) Enostaven direktorijzapisi fiksne dolžinediskovni naslovi in atributi zapisa direktorija
(b) Direktorij kjer vsak zapis kaže na i-vozlišče
-
24
Implementacija direktorijev (2)
• Dva načina za delo z dolgimi imeni datotek v direktoriju– (a) In-line– (b) na kopici
-
25
Skupne datoteke (1)
Datotečni sistem, ki vsebuje skupne datoteke
-
26
Skupne datoteke (2)
• Implementacija skupnih datotek– Uporabimo dva zapisa v direktoriju– Če zapis direktorija vsebuje kazalce na bloke
datotek potem imamo problem• Sprememba bloka (dodajanje) je lokalno
– Rešitve:• Kazalec na poseben blok datoteke (i-vozlišče)• Simbolični link, ki vsebuje pot do datoteke
-
27
Skupne datoteke (3)
(a) Situacija pred povezovanjem(b) Po tem, ko je povezava kreirana(c) Po tem ko originalni lastnik izbriše datoteko
-
28
Dnevniški sistem (1)
• Osnovna ideja– Shranjevanje dnevniških zapisov sprememb
preden so spremembe zapisane na disk– V tem primeru je možno restavrirati stanje diska
ob sistemski napaki• Dnevnik datotečnega sistema
– NTFS, ReiserFS, ext3, ext4
-
29
Dnevniški sistem (2)
• Brisanje datoteke (Unix)– 1) brisanje iz direktorija, 2) i-vozlišče datoteke
se da med prosta vozlišča, 3) sproščanje vseh blokov datoteke.
– Windows deluje podobno• Kaj če se vmes zgodi napaka?
– V času 1), 2) ali 3) ?– V vsakem primeru bo datotečni sistem
poškodovan
-
30
Dnevniški sistem (3)
• Dnevniški sistem zapiše dnevniški zapis pred popravkom– Iz dnevniških zapisov je možno rekonstruirati stanje
datotečnega sistema ob napaki– Operacija brisanja se izvede do konca
• Koncept atomične transakcije– Sekvenca akcij obdana z začetkom in koncem
transakcije– Akcija se zgodi v celoti ali se ne zgodi nobeden del
akcije– Podoben koncept je implementiran v sistemih za
delo s podatkovnimi bazami
-
31
Virtualen datotečni sistem (1)
• Poskus poenotenja datotečnih sistemov• VFS (virtual file system)
– Sun Microsystems• VFS je ovojnica podrejenih datotečnih
sistemov• Nizkonivojski VFS vmesnik
– FS mora implementirati množico funkcij, da bi se priključil
– Objektno-usmerjena arhitektura
-
32
Virtualen datotečni sistem (2)
-
33
Virtualen datotečni sistem (3)
-
34
Upravljanje datotečnega sistema
• Upravljanje diskovnega prostora• Varnostne kopije• Konsistenca datotečnega sistema• Performanse datotečnega sistema• Defragmentacija diska
-
35
Upravljanje diskovnega prostora (1)
• Temna črta (merilo na levi) podaja hitrost prenosa diska• Črtkana črta (merilo na desni) podaja prostorsko učinkovitost• Vse datoteke imajo 4KB
Velikost bloka
-
36
Upravljanje diskovnega prostora (2)
(a) Shranjevanje seznama prostih blokov(b) Bitni vektor
-
37
Upravljanje diskovnega prostora (3)
• Bitna predstavitev je večinoma manjša– 1 blok = 1 bit, 1 blok = 32 bitov– Seznam je boljši, ko je disk blizu napolnjenosti– Lahko shranjujemo samo vrzeli– Več dela ob fragmentaciji
• Bitni nizi omogočajo bolj zvezno alokacijo• Seznam kazalcev je realiziran z bloki kazalcev
– Če je blok čisto poln...– Sproščanje in ponovno odpiranje majhne datoteke
zahteva dva dodatna dostopa do diska
-
38
Upravljanje diskovnega prostora (4)
(a) Skoraj poln blok kazalcev na proste bloke v RAM- trije bloki kazalcev na disk
(b) Rezultat sproščanja datoteke s tremi bloki(c) Alternativne strategije za delo s tremi prostimi bloki
- osenčeni objekti so kazalci na prost diskovne bloke
-
39
Upravljanje diskovnega prostora (5)
Kvote za beleženje porabljenega uporabniškega prostora
-
40
Varnostne kopije (1)
• Pomembnost varnostnih kopij– Zaradi hujše napake strojne opreme– Zaradi neumnosti
• Kdaj delamo varnostne kopije?• Veliko opcij
– Delamo celotne/inkrementalne varnostne kopije?– Celotne kopije omogočajo selektivno vračanje– Kompresiranje? Kako velike dele?– Varnost kopij? Kdo ima dostop?
-
41
Varnostne kopije (2)
• Fizično shranjevanje diska– Ukaz dump: shranjevanje sektorjev 0..N
• Lahko zelo hitra operacija– Dostop do prostih/zasedenih blokov pohitri
shranjevanje• Logično shranjevanje varnostnih kopij
– Od korenskega direktorija rekurzivno po vseh datotekah
– Shranimo samo spremenjene datoteke?• Inkrementalno kopiranje ne omogoča restavracijo
izbrisanih datotek
-
42
Varnostne kopije (3)
• Datotečni sistem pred izpisom– Kvadrati so direktoriji, krogi so datoteke– Osenčeni objekti, spremenjeni od zadnjega shranjevanja– Vsak direktorij & datoteka je označena s številko i-vozlišča
File that hasnot changed
-
43
Varnostne kopije (4)
Bitni vektorji uporabljeni za logično strukturiranje diska pred shranjevanjem
-
44
Varnostne kopije (5)
• Dodatni problemi pri logičnem shranjevanju– Nismo shranjevali podatkov o praznem prostoru– Linki na direktorije in datoteke
• Datoteko shranimo samo enkrat– Prazen prostor v binarnih datotekah
-
45
Zanesljivost datotečnega sistema (1)
• fsck, scandisk, chkdsk• Podatke o zasedenosti blokov dobimo iz
dveh strani– Sledimo začetnemu i-bloku vsake datoteke– Sledimo seznamu praznih blokov– Primerjamo dobljene podatke
• Možne napake– (b) manjkajoč blok– (c) podvojen blok v seznamu praznih blokov– (d) podvojen podatkovni blok
-
46
Zanesljivost datotečnega sistema (2)
• Stanja datotečnega sistema(a) konsistentno(b) manjkajoč blok(c) podvojen blok v prostem seznamu(d) podvojen blok
-
47
Učinkovitost datotečnega sistema (1)• Branje 32-bitne besede:
– 10ns RAM, 5-10 ms čas dostopa + 100 MB/s => RAM 106 x hitrejši
• Predpomnilnik (angl. Cache)– Algoritem:
• get-page() pogleda najprej v predpomnilnik• Če strani ni jo prebere v predpomnilnik in prepiše• Če je jo samo prepiše uporabniku• Zamenjevanje strani ob polnem predpomnilniku
– FIFO, LRU, Ura, ...
-
48
• Razlike med alg. za zamenjavo strani v virt. spominu in predpomnilniku– Dostop do predpomnilnika je precej bolj redek– Dvojno-povezan seznam
• Dobimo natančen LRU kar pa se izkaže, da ni zaželjeno – i-vozlišča: redek dostop + potrebno takoj zapisati– Nekatere strani je potrebno obravnavati drugače
• Kako pogosto je stran dostopana?• Kako pomembna je za konsistenco dat.sistema?
– Klasifikacija strani:• i-bloki, direkt.strani, polne strani, pol prazne strani, ...
Učinkovitost datotečnega sistema (2)
-
49
• Takojšnje zapisovanje kritičnih strani• Vseeno se lahko zgodi, da so strani dolgo v
predpomnilniku nezapisane– UNIX: sync(), update() - periodični sync 30s– Windows: Write-thrught predpomnilnik
Učinkovitost datotečnega sistema (3)
-
50
Učinkovitost datotečnega sistema (4)
Struktura vmesnega pomnilnika blokov
-
51
• Branje blokov vnaprej– Datoteke običajno beremo sekvenčno
• Sekvenčno in naključno branje – Ob branju bloka k preberemo več blokov (iz iste
datoteke)• Sekvenčno branje je hitrejše
– Vrsta branja se poskuša ugotoviti• Ob večkratnem sekvenčnem branju se bit prižge• Ob seek() se bit resetira
Učinkovitost datotečnega sistema (5)
-
52
• Optimizacija premikanja bralne glave diska– Ob zapisovanje datoteke na disk se poskuša zapisati
datoteko čimbolj zaporedno • Išče se čim večje sekvence blokov • Če je možno na istem cilindru• Enostavneje z bitnim vektorjem in težje s seznamom
• Obravnavanje i-vozlišč– Branje majhne datoteke zahteva: i-vozlišče + podatki– i-vozlišča damo na začetno sled (a)– Lahko jih damo na isti cilineder (dobimo izsek (b))
Učinkovitost datotečnega sistema (6)
slot:
-
53
Učinkovitost datotečnega sistema (7)
• I-vozlišča so na začetku diska• Disk je razdeljen na skupine cilindrov
– Vsak ima svoj blok in i-vozlišča
-
54
Dnevniško strukturiran datotečni sistem
• CPU-ji so hitrejši, spomin večji– Diskovni vmesniki so tudi lahko večji– Povečevanje števila zahtev za branje lahko pride iz
vmesnega pomnilnika– Torej, večina zahtev po disku bo pisanje
• LFS strategija strukturira celoten disk v dnevnik– Vsa pisanja so začetno samo v vmesni pomnilnik– Periodično zapisujemo na koncu diskovnega dnevnika– Ko se datoteka odpre, poišči i-vozlišče, potem poišči
blok
-
55
Primeri datotečnih sistemovCD-ROM datotečni sistem
ISO 9660 direktorijski zapis
-
56
CP/M datotečni sistem (1)
Načrt spomina CP/M
-
57
CP/M datotečni sistem (2)
Format CP/M direktorijskega zapisa
-
58
MS-DOS datotečni sistem (1)
Direktorijski zapis MS-DOS
-
59
MS-DOS datotečni sistem (2)
• Maksimalna particija za različne velikosti blokov• Prazni pravokotniki predstavljajo prepovedane kombinacije
-
60
Windows 98 datotečni sistem (1)
Razširjen MS-DOS direktorijski zapis uporabljen v Windows 98
Bytes
-
61
Windows 98 datotečni sistem (2)
Zapis za (del) dolgega imena datoteke v Windows 98
Bytes
Checksum
-
62
Windows 98 datotečni sistem (3)
Primer kako je dolgo ime shranjeno v Windows 98
-
63
UNIX V7 datotečni sistem (1)
Direktorijski zapis UNIX V7
-
64
UNIX V7 datotečni sistem (2)
UNIX i-vozlišče
-
65
UNIX V7 datotečni sistem (3)
Koraki pri iskanju /usr/ast/mbox
File SystemsLong-term Information StorageFile NamingFile StructureFile TypesFile AccessSlide 7Slide 8An Example Program Using File System Calls (1/2)An Example Program Using File System Calls (2/2)Memory-Mapped FilesDirectories Single-Level Directory SystemsTwo-level Directory SystemsHierarchical Directory SystemsPath NamesDirectory OperationsFile System ImplementationImplementing Files (1)Implementing Files (2)Implementing Files (3)Slide 21Implementing Files (4)Implementing Directories (1)Implementing Directories (2)Shared Files (1)Slide 26Shared Files (2)Slide 28Slide 29Slide 30Slide 31Slide 32Slide 33Slide 34Disk Space Management (1)Disk Space Management (2)Slide 37Disk Space Management (3)Disk Space Management (4)Slide 40Slide 41File System Reliability (1)File System Reliability (2)Slide 44Slide 45File System Reliability (3)Slide 47Slide 48Slide 49File System Performance (1)Slide 51Slide 52File System Performance (2)Log-Structured File SystemsExample File Systems CD-ROM File SystemsThe CP/M File System (1)The CP/M File System (2)The MS-DOS File System (1)The MS-DOS File System (2)The Windows 98 File System (1)The Windows 98 File System (2)The Windows 98 File System (3)The UNIX V7 File System (1)The UNIX V7 File System (2)The UNIX V7 File System (3)