K_Kap11B: Files, Filesysteme Datenstrukturen

Transcription

K_Kap11B: Files, Filesysteme Datenstrukturen
Betriebssysteme
K_Kap11B: Files, Filesysteme
Datenstrukturen
Mühlbacher
BS: Files, Filesysteme: Datenstrukturen
1
Files als lineare Liste
 File
angeordnet als verkette Liste von
Blöcken
Jeder Block enthält Zeiger zum Nachfolger
Zeiger = Adresse des Blocks
 Directory
enthält Zeiger auf ersten Block
Allenfalls auch auf letzten Block
 Fazit:
Klassiche Implementierung einer Liste
Mühlbacher
BS: Files, Filesysteme: Datenstrukturen
2
Files als lineare Liste
FILE START
XX.Y
9
25
0
1
2
3
4
5
6
7
8
9
10
11
12
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
BS: Files, Filesysteme: Datenstrukturen
13
Mühlbacher
END
3
Files als lineare Liste
Einzelschritte
 create:
Neuen Eintrag im Directory eröffen
Zeiger auf NIL setzen
File-Anfangsgrösse: 0
 write
Finde eine freien Block auf Disk
» Dazu: Komponente des BS
Setze Zeiger dorthin
Schreibe in den bereitgestellten Block
Mühlbacher
BS: Files, Filesysteme: Datenstrukturen
4
File Allocation Table
(FAT)
FAT Konzept: Einfache und effiziente
Umsetzung von verketteten Listen
 Eingeführt bei MS-DOS
und (wegen Rückwärtskompatibilität)
in der Windows Familie und praktisch alles
anderen Betriebssystemen
 Idee: Ergänze das Directory um ein gesondertes Verzeichnis (FAT) für jede Partition

 Enthält die Nummern der zu einem File gehörigen
Cluster
 Zugriffsoptimierung: „cache FAT“ !
Mühlbacher
BS: Files, Filesysteme: Datenstrukturen
5
File Allocation Table
(FAT)
 FAT
entspricht verketteter Liste
 FAT
für jeden Cluster einen Eintrag
Frei: “0”
Letzter eines Files: “EOF” (z.B. FFF816)
Defekt: „BAD“(z.B. FFF716)
Ansonsten: Nummer des Folgecluster
Mühlbacher
BS: Files, Filesysteme: Datenstrukturen
6
FAT: Directory-Einträge
 Jeder
Directory Eintrag enthält
Clusternummer des Startcluster des
jeweiligen Files
 Außerdem Metadaten
Dateiname
Attribute wie read only, hidden, system-file
Zeitstempel
Dateigröße
Mühlbacher
BS: Files, Filesysteme: Datenstrukturen
7
File Allocation Table
(FAT)
FILE START
XX.txt
9
Directory
Eintrag
File Daten
25
9
...
E
O
F
.....
10
.....
Teil1 Teil3 . . . . .
8
FAT
Mühlbacher
27
9
10
..
Teil2
25
26
27
Allocation Units = Clusters
BS: Files, Filesysteme: Datenstrukturen
8
FAT Versionen
(Auszug)

FAT 12






„8.3“ Dateinamen
12-Bit Clusternummern -> 212 = 4096 Cluster
Clustergröße 512 bis 4096 Bytes
Partitionen bis 16 MB möglich
Typisch für 3,5 Zoll Disketten
FAT 16




Mühlbacher
„8.3“ Dateinamen
216 - 12 = 65524 Cluster (12 speziell reserv.)
Clustergröße 512 bis 32 KByte
Partitionen bis 2GB (Windows-NT bis 4GB)
BS: Files, Filesysteme: Datenstrukturen
9
FAT Versionen
(Auszug)

VFAT (Virtual File Allocation Table)
 Erweiterng von FAT 16
 Lange Dateinamen
 Unicode

FAT 32




32 Bit (28 verwendet; 218 Cluster), 268.435.456 Cluster
Clustergröße 512Bytes bis 32KB
Dateigröße max 4GB (-1 Byte)
Partitionsgröße bis ca 8TB (im Prinzip)
» Format unterstützt nur 32GB Dateisysteme
» Gesonderte Tools für größere erforderlich
 Rootverzeichnis kann variabel groß sein

exFAT für Flashspeicher
 Unter Windows CE 6.0 eingeführt
 VISTA unterstützt exFAT
Mühlbacher
BS: Files, Filesysteme: Datenstrukturen
10
Indizierte Anordnung:
Grundidee
 Anstatt
einer blockweisen Verkettung
werden alle Zeiger in einem Index
gehalten
Jeder File hat eigenen Index
Index selbst ist ein Block (Cluster) auf dem
Massenspeicher
 Zeiger
vom Directory zum Indexblock
 Der j-te Eintrag im Index-Block zeigt auf
den j-ten Block (Cluster) des Files
Mühlbacher
BS: Files, Filesysteme: Datenstrukturen
11
Speicherung mit Index
FILE
XX.Y
0
1
4
5
8
9
1
2
3
6
7
10
4
14
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
BS: Files, Filesysteme: Datenstrukturen
16
2
5
15
11
12
13
Mühlbacher
3
INDEX
15
12
Index
Spezielle Probleme
 Wird
ein File groß, enthält er viele Blöcke
Blöcke haben feste Größe
Auch der Indexblock selbst
 Großer
Indexblock:
» Platzverschwendung für kleine Files

Kleiner Block:
BS kann keine großen Files verwalten
Mühlbacher
BS: Files, Filesysteme: Datenstrukturen
13
UNIX
Verwendet “Inodes”

Jedem File ein spezieller Indexblock zugeordnet: Kombination
der Index-Idee
 Inode
»
»
Inodes als Liste angeordnet
Länge der Liste steht im „Superblock“
vgl.: Partition Boot Record PBR
 Enthält Metadaten
 Enthält Zeiger auf File-Blöcke
und Zeiger auf indirekte Blöcke
»
»
»
Mühlbacher
(typisch) 15 Zeiger in einem Inode
12 davon zeigen direkt auf Blöcke des Files,
Gut geeignet für kleine Files
die nächsten 3 Zeiger verweisen auf Indexblöcke (“Indirekte Blöcke”)
der erste auf einen “single indirect block”
der zweite auf einen “double indirect block”
der dritte auf einen “ triple indirect block”
BS: Files, Filesysteme: Datenstrukturen
14
UNIX/Linux
INODE
size, owner,
time/date, ...
1
12
direct 0
DATA
..
..
.
..
..
..
direct x
DATA
DATA
13
14
15
single
double
triple
reference
count
Mühlbacher
..
.
DATA
DATA
..
.
..
.
DATA
DATA
..
.
BS: Files, Filesysteme: Datenstrukturen
DATA
15
Verzeichnis
in UNIX/Linux
 Datei
mit festem Format
 Einträge:
Dateiname
Länge der Datei
Inode- Nummer (4 Bytes)
Zeiger auf nächsten Eintrag
Mühlbacher
BS: Files, Filesysteme: Datenstrukturen
16
Links
Reference counter
n File – Einträge (auch
aus verschiedenen
Directories) verweisen
auf den selben File
(link auf Inode)
\dir2\
file2.txt
Link
Link
….…………
size, owner,
time/date, ...
Erst wenn
referencecount =0
kann File wirklich
gelöscht werden
direct 0
DATA
..
..
.
..
..
..
direct x
DATA
\dir1\subdir1\
file1.txt
DATA
reference
count
single
..
.
double
DATA
triple
2
DATA
..
.
..
.
DATA
DATA
..
.
DATA
Mühlbacher
BS: Files, Filesysteme: Datenstrukturen
17
Globale Struktur
eines UNIX Filesystems
boot Super Inode Cluster
Sys Block Bitmap Bitmap

Inode
Tabelle
Cluster
Eingebettet in eine aktive Partition folgender logischer
Aufbau:






Mühlbacher
Bootblock: Startroutine des BS
Superblock: Allgemeine Verwaltungsinformation
Inode Bitmap: Benutzt/nicht benutzt
Cluster-Bitmap: Für jeden Block „frei“/“belegt“
Inode Tabelle: Alle Inodes
Cluster: Eigentliche Nutzdaten
» Dateien und Verzeichnisse
BS: Files, Filesysteme: Datenstrukturen
18
NTFS-Modell
MFT
 Verwaltung
der Disk (Volume) erfolgt
über eine relationale Datenbank:
Master File Table (MFT)
 MFT:
Zeilen von Eintragungen
Eine Zeile pro File oder Directory Eintrag
Für MFT selbst ist Zeile 0 vorgesehen
Die Spalten sind die Attribute des File
» Die (bisher gewohnten Daten) sind nur ein
spezielles Attribut
Größe je Eintrag: 2KB
Mühlbacher
BS: Files, Filesysteme: Datenstrukturen
19
MFT Struktur
allgemein
MFT
File x
Standard
information
File
name
Data
Security
descriptor
EAs = Extended
Attributes
Mühlbacher
BS: Files, Filesysteme: Datenstrukturen
20
Kleine und große
Files
MFT
smallFile
largerFile
smallFile
Das ist eine sehr kleine Datei!
Dateiname
Dateiinhalt
Dateiname
largerFile
Cluster
c1
c2
c3
c4
run 1
Mühlbacher
c5
…
(Verweis auf) Dateiinhalt
5
1
2
…
c7
(Runs)
c8
run 3
BS: Files, Filesysteme: Datenstrukturen
…
c6
run 2
21
NTFS-Modell
MFT
 File
kann mehrere Namen haben:
long Name, MS-DOS name
 MFT
enthält auch die Einträge für
directories
Demnach entspricht einem (sub-) directory
wieder eine Zeile im MFT
Mühlbacher
BS: Files, Filesysteme: Datenstrukturen
22
MFT Struktur
Eintrag für kleines
Directory
MFT
directory
Standard
information
Mühlbacher
File
name
Security
descriptor
index root
index of files
index
root
f1, f2, f3, ..........
BS: Files, Filesysteme: Datenstrukturen
other
23
Großes directory mit
Unterverzeichnis
MFT
Verzeichnis dir1
Datei file1
Verzeichnisname
Verzeichnis dir2
dir1
dir2, file1, file2
Index of files
file4
…
file9
file5, file6, file7
file10, file11, file12
Organisation als
B-Baum
Mühlbacher
BS: Files, Filesysteme: Datenstrukturen
24