poglavje 5 datotečni sistemi - university of...

65
1 Datotečni sistemi Poglavje 5 5.1 Datoteke 5.2 Direktoriji 5.3 Implementacija datotečnik sistemov 5.4 Upravljanje z datotečnimi sistemi 5.5 Primeri datotečnih sistemov

Upload: others

Post on 24-Jan-2021

0 views

Category:

Documents


0 download

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)