Dateisysteme
Dateisysteme Dateisysteme
Kapitel 7 Dateisysteme Betriebssysteme SS07, S.Gerhold, M.Sonnenfroh, P. Schulthess
- Seite 2 und 3: Dateisysteme ? 1 Wie könnte die De
- Seite 4 und 5: Dateisysteme Hierarchische Struktur
- Seite 6 und 7: Dateisysteme Dateizugriff ● seque
- Seite 8 und 9: Dateisysteme Festplatte revisited A
- Seite 10 und 11: Dateisysteme ? 1 Gegeben sei ein Fe
- Seite 12 und 13: Dateisysteme Festplatte Zugriffssch
- Seite 14 und 15: Dateisysteme Festplatte Zugriffssch
- Seite 16 und 17: Dateisysteme Festplatte Zugriffssch
- Seite 18 und 19: Dateisysteme FAT-Dateisystem Überb
- Seite 20 und 21: Dateisysteme FAT-Dateisystem Verzei
- Seite 22 und 23: Dateisysteme UNIX-Dateisystem Über
- Seite 24 und 25: Dateisysteme UNIX-Dateisystem Inode
- Seite 26 und 27: Dateisysteme ? 1 Ist es möglich, m
- Seite 28 und 29: UNIX-Dateisystem Berkeley Fast Fill
- Seite 30 und 31: UNIX-Dateisystem Linux Ext2 Fast Fi
- Seite 32 und 33: Dateisysteme NTFS-Dateisystem MFT 0
- Seite 34 und 35: Dateisysteme NTFS-Dateisystem Eine
- Seite 36 und 37: Dateisysteme NTFS-Dateisystem Verze
- Seite 38 und 39: Dateisysteme NTFS-Dateisystem ADS D
- Seite 40 und 41: Dateisysteme Journaling O 1 O2 O3 O
- Seite 42 und 43: Dateisysteme RAID ● Level 4 ● L
- Seite 44 und 45: Dateisysteme ? 1 Wie könnte die De
- Seite 46 und 47: Dateisysteme Hierarchische Struktur
- Seite 48 und 49: Dateisysteme Dateizugriff ● seque
- Seite 50 und 51: Dateisysteme Festplatte revisited A
Kapitel 7<br />
<strong>Dateisysteme</strong><br />
Betriebssysteme SS07, S.Gerhold, M.Sonnenfroh, P. Schulthess
<strong>Dateisysteme</strong><br />
?<br />
1 Wie könnte die Definition für eine Datei<br />
lauten?<br />
2 Was macht ein Dateisystem aus?<br />
Betriebssysteme SS07, S.Gerhold, M.Sonnenfroh, P. Schulthess
<strong>Dateisysteme</strong><br />
!<br />
1 „Benannter Behälter zur dauerhaften<br />
Speicherung beliebiger Informationen.“<br />
2 „Einen strukturierten, effizienten und<br />
von der Hardware abstrahierten Zugriff<br />
auf Dateien, die auf einem Massen-<br />
speicher liegen“<br />
Betriebssysteme SS07, S.Gerhold, M.Sonnenfroh, P. Schulthess
<strong>Dateisysteme</strong><br />
Hierarchische Strukturierung<br />
Konzept<br />
/<br />
config.sys<br />
command.com<br />
BS-Folien/<br />
BS_Kapitel1.txt<br />
BS_Kapitel2.txt<br />
BS_Kapitel3.txt<br />
3D/<br />
Rechner.blend<br />
Betriebssysteme SS07, S.Gerhold, M.Sonnenfroh, P. Schulthess
<strong>Dateisysteme</strong><br />
Hierarchische Strukturierung<br />
Links<br />
/<br />
config.sys<br />
command.com<br />
BS-Folien/<br />
BS_Kapitel1.txt<br />
BS_Kapitel2.txt<br />
config.sys<br />
3D/<br />
Rechner.blend<br />
Betriebssysteme SS07, S.Gerhold, M.Sonnenfroh, P. Schulthess
<strong>Dateisysteme</strong><br />
Dateizugriff<br />
● sequentielle<br />
● wahlfrei<br />
T 0 T 1 T 2<br />
T 0 T n<br />
● index-sequentiell<br />
T 2<br />
Datei<br />
Datei<br />
T 1<br />
T n<br />
Betriebssysteme SS07, S.Gerhold, M.Sonnenfroh, P. Schulthess
<strong>Dateisysteme</strong><br />
Dateiattribute<br />
● Name<br />
● Größe<br />
● Eigentümer<br />
● Erstellungsdatum<br />
● Aktualisierungsdatum<br />
● Schreib- / Leserechte<br />
● Zugriffsbits<br />
● ...<br />
Betriebssysteme SS07, S.Gerhold, M.Sonnenfroh, P. Schulthess
<strong>Dateisysteme</strong><br />
Festplatte revisited<br />
Aufbau<br />
Spur<br />
Cluster<br />
Sektor<br />
Kopf<br />
Betriebssysteme SS07, S.Gerhold, M.Sonnenfroh, P. Schulthess
<strong>Dateisysteme</strong><br />
Festplatte revisited<br />
Zugriffszeiten & Transferrate<br />
● mittlere Gesamtzugriffszeit<br />
1<br />
Tgz = Tmp + +<br />
2r<br />
Rotationsverzögerung<br />
b<br />
rN<br />
Positionierungszeit<br />
r = Rotationsgeschwindigkeit<br />
b = zu übertragene Bytes<br />
N = Bytes pro Spur<br />
T mp = mittlere Positionierungszeit<br />
Betriebssysteme SS07, S.Gerhold, M.Sonnenfroh, P. Schulthess
<strong>Dateisysteme</strong><br />
?<br />
1 Gegeben sei ein Festplatte mit einer<br />
mittleren Zugriffszeit von 10ms,<br />
10000rpm, einer Sektorgröße von<br />
512Byte und 256 Sektoren pro Spur.<br />
Berechnen Sie die mittlere Gesamt-<br />
zugriffszeit für das sequentielle und<br />
wahlfreie Lesen von 512KB Daten.<br />
Betriebssysteme SS07, S.Gerhold, M.Sonnenfroh, P. Schulthess
<strong>Dateisysteme</strong><br />
1 Rechnung:<br />
!<br />
1<br />
131072 Byte<br />
Tseq = 10ms + ( + )*4<br />
2*10000rpm 10000rpm*131072 Byte<br />
= 10ms + (3ms + 6ms)*4<br />
= 23ms<br />
1<br />
512 Byte<br />
Tran = (10ms + + )*1024<br />
2*10000rpm 10000rpm*131072 Byte<br />
= (10ms + 3ms + 0.018ms)*1024<br />
= 13,32s<br />
Betriebssysteme SS07, S.Gerhold, M.Sonnenfroh, P. Schulthess
<strong>Dateisysteme</strong><br />
Festplatte Zugriffsscheduling<br />
Problemstellung<br />
E/A Puffer<br />
20<br />
50<br />
115<br />
70<br />
50<br />
30<br />
90<br />
80<br />
100<br />
Betriebssysteme SS07, S.Gerhold, M.Sonnenfroh, P. Schulthess
<strong>Dateisysteme</strong><br />
Festplatte Zugriffsscheduling<br />
FIFO<br />
E/A Puffer<br />
20<br />
50<br />
115<br />
70<br />
50<br />
30<br />
90<br />
80<br />
100<br />
Spur<br />
100<br />
80<br />
60<br />
40<br />
20<br />
0<br />
Zeit<br />
Betriebssysteme SS07, S.Gerhold, M.Sonnenfroh, P. Schulthess
<strong>Dateisysteme</strong><br />
Festplatte Zugriffsscheduling<br />
SSTF<br />
E/A Puffer<br />
20<br />
50<br />
115<br />
70<br />
50<br />
30<br />
90<br />
80<br />
100<br />
Spur<br />
100<br />
80<br />
60<br />
40<br />
20<br />
0<br />
Zeit<br />
Betriebssysteme SS07, S.Gerhold, M.Sonnenfroh, P. Schulthess
<strong>Dateisysteme</strong><br />
Festplatte Zugriffsscheduling<br />
SCAN<br />
E/A Puffer<br />
20<br />
50<br />
115<br />
70<br />
50<br />
30<br />
90<br />
80<br />
100<br />
Spur<br />
100<br />
80<br />
60<br />
40<br />
20<br />
0<br />
Zeit<br />
Betriebssysteme SS07, S.Gerhold, M.Sonnenfroh, P. Schulthess
<strong>Dateisysteme</strong><br />
Festplatte Zugriffsscheduling<br />
N-step-SCAN & C-SCAN<br />
E/A Puffer<br />
20<br />
50<br />
115<br />
70<br />
50<br />
30<br />
90<br />
80<br />
100<br />
Spur<br />
100<br />
80<br />
60<br />
40<br />
20<br />
0<br />
Zeit<br />
Betriebssysteme SS07, S.Gerhold, M.Sonnenfroh, P. Schulthess
<strong>Dateisysteme</strong><br />
Einordnung<br />
<strong>Dateisysteme</strong><br />
boot<br />
record<br />
● beginnen mit dem boot sector<br />
● durch Partition begrenzt<br />
NTFS EXT2 FAT32<br />
boot<br />
sector<br />
Partition<br />
disc<br />
Betriebssysteme SS07, S.Gerhold, M.Sonnenfroh, P. Schulthess
<strong>Dateisysteme</strong><br />
FAT-Dateisystem<br />
Überblick<br />
FAT1 FAT2<br />
● 1980 FAT12, 1983 FAT16, 1997 FAT32<br />
● einfache Dateiattribute<br />
● weit verbreitet<br />
root<br />
directory<br />
clusters<br />
disc<br />
Betriebssysteme SS07, S.Gerhold, M.Sonnenfroh, P. Schulthess
<strong>Dateisysteme</strong><br />
FAT-Dateisystem<br />
FAT<br />
FAT1 FAT2<br />
root<br />
directory<br />
0 0xFFF7 4 5 3 Test.txt<br />
9 0 0 0xFFFF<br />
7 Hallo.txt<br />
10 11 12 0xFFFF<br />
0 0 0xFFF7 0<br />
disc<br />
Betriebssysteme SS07, S.Gerhold, M.Sonnenfroh, P. Schulthess
<strong>Dateisysteme</strong><br />
FAT-Dateisystem<br />
Verzeichnisstruktur<br />
FAT1 FAT2<br />
Test txt 1F 000000000000000000 051F561F 3 3000<br />
Hallo txt 1F 000000000000000000 052F562F 7 514<br />
Dateiname Endung<br />
root<br />
directory<br />
Attribute<br />
reserviert<br />
Erstellungsuhrzeit<br />
Erstellungsdatum<br />
disc<br />
Länge<br />
Startcluster<br />
Betriebssysteme SS07, S.Gerhold, M.Sonnenfroh, P. Schulthess
<strong>Dateisysteme</strong><br />
FAT-Dateisystem<br />
Fragmentierung<br />
FAT1 FAT2<br />
root<br />
directory<br />
0 0xFFF7 6 6<br />
9 13 8 16<br />
10 11 12 0xFFFF<br />
14 0xFFFF 0xFFF7 0xFFFF<br />
disc<br />
Betriebssysteme SS07, S.Gerhold, M.Sonnenfroh, P. Schulthess
<strong>Dateisysteme</strong><br />
UNIX-Dateisystem<br />
Überblick<br />
super<br />
block<br />
I-Node<br />
Liste<br />
● ExtFS, ExtFS2, ReiserFS, ...<br />
● umfangreiche Dateiattribute<br />
● Benutzerrechte<br />
data blocks<br />
disc<br />
Betriebssysteme SS07, S.Gerhold, M.Sonnenfroh, P. Schulthess
<strong>Dateisysteme</strong><br />
UNIX-Dateisystem<br />
Superblock<br />
super<br />
block<br />
I-Node<br />
Liste<br />
# I-Nodes<br />
# blocks<br />
# free blocks<br />
# free I-Nodes<br />
first free I-Node<br />
first free block<br />
first data block<br />
...<br />
data blocks<br />
disc<br />
Betriebssysteme SS07, S.Gerhold, M.Sonnenfroh, P. Schulthess
<strong>Dateisysteme</strong><br />
UNIX-Dateisystem<br />
Inodes<br />
type<br />
owner info<br />
timestamps<br />
size<br />
direct blocks<br />
indirect blocks<br />
double indirect<br />
triple indirect<br />
I-Node<br />
Liste<br />
disc<br />
Betriebssysteme SS07, S.Gerhold, M.Sonnenfroh, P. Schulthess
<strong>Dateisysteme</strong><br />
UNIX-Dateisystem<br />
Verzeichnisse<br />
„/“ I-Node<br />
directory<br />
root<br />
...<br />
1<br />
„/etc“ I-Node<br />
directory<br />
root<br />
...<br />
4<br />
Block<br />
Nummer<br />
I-Node<br />
Liste<br />
disc<br />
I-Node<br />
Nummer<br />
1<br />
1<br />
8<br />
22<br />
4<br />
8<br />
1<br />
33<br />
11<br />
102<br />
Dateiname<br />
.<br />
..<br />
etc<br />
dev<br />
home<br />
.<br />
..<br />
passwd<br />
fstab<br />
timezone<br />
Betriebssysteme SS07, S.Gerhold, M.Sonnenfroh, P. Schulthess
<strong>Dateisysteme</strong><br />
?<br />
1 Ist es möglich, mit FAT32 einen Link<br />
auf eine Datei zu erstellen? Begründen<br />
Sie Ihre Entscheidung!<br />
2 Wie sind I-Node Nummer und<br />
Blocknummer mit einander verknüpft?<br />
Betriebssysteme SS07, S.Gerhold, M.Sonnenfroh, P. Schulthess
<strong>Dateisysteme</strong><br />
!<br />
1 Theoretisch Ja, da aber keine Vor-<br />
bereitungen getroffen sind ( Link<br />
Counter) nur mit sehr hohem Aufwand!<br />
2 Zwischen diesen beiden Nummern<br />
besteht kein logischer Zusammenhang!<br />
Betriebssysteme SS07, S.Gerhold, M.Sonnenfroh, P. Schulthess
UNIX-Dateisystem<br />
Berkeley Fast Filling System - CGB<br />
Super<br />
Block<br />
CGB<br />
I-Node<br />
Liste<br />
Super<br />
Block<br />
I-Node<br />
Liste<br />
disc<br />
erste Zylindergruppe zweite Zylindergruppe<br />
Betriebssysteme SS07, S.Gerhold, M.Sonnenfroh, P. Schulthess
UNIX-Dateisystem<br />
Berkeley Fast Filling System - Fragmentierung<br />
Super<br />
Block<br />
XXX00000<br />
Fragment<br />
Bitmap<br />
CGB<br />
I-Node<br />
Liste<br />
Fragmente<br />
Super<br />
Block<br />
I-Node<br />
Liste<br />
disc<br />
Betriebssysteme SS07, S.Gerhold, M.Sonnenfroh, P. Schulthess
UNIX-Dateisystem<br />
Linux Ext2 Fast File System<br />
Super<br />
Block<br />
Block Deskriptor<br />
I-Node<br />
Liste<br />
Super<br />
Block<br />
I-Node<br />
Liste<br />
erste Blockgruppe zweite Blockgruppe<br />
disc<br />
Betriebssysteme SS07, S.Gerhold, M.Sonnenfroh, P. Schulthess
<strong>Dateisysteme</strong><br />
NTFS-Dateisystem<br />
Überblick<br />
MFT<br />
Systemdateien<br />
● 1993 erste NTFS-Version mit NT3.1<br />
● ACL<br />
● Verschlüsselung & Komprimierung<br />
● Journaling File System<br />
disc<br />
Betriebssysteme SS07, S.Gerhold, M.Sonnenfroh, P. Schulthess
<strong>Dateisysteme</strong><br />
NTFS-Dateisystem<br />
MFT<br />
0<br />
1<br />
2<br />
3<br />
4<br />
5<br />
6<br />
7<br />
8<br />
9<br />
10<br />
11<br />
12<br />
13<br />
14<br />
15<br />
16<br />
MFT<br />
$MFT Master File Table<br />
$MFTMirr Spiegelung der MFT<br />
$LogFile Log Datei<br />
$Volume Volumedateifile<br />
$AttrDef Attribute Definitionen<br />
$ Wurzelverzeichnis<br />
$Bitmap Block-Bitmap<br />
$Boot Boot strap loader<br />
$BadClus Liste fehlerhafter Clusters<br />
$Secure Sicherheits Deskriptoren<br />
$Upcase Case conversion table<br />
$Extend<br />
reserviert<br />
reserviert<br />
reserviert<br />
reserviert<br />
Extensions<br />
Erste Benutzerdatei ...<br />
...<br />
1KB<br />
Systemdateien<br />
Betriebssysteme SS07, S.Gerhold, M.Sonnenfroh, P. Schulthess
<strong>Dateisysteme</strong><br />
NTFS-Dateisystem<br />
MFT-Record<br />
Record<br />
Kopf<br />
●Standardinformation<br />
●Dateiname<br />
●Sicherheitsdeskriptor<br />
●Attributliste<br />
●ObjektID<br />
●Reparse Point<br />
●Volume Name<br />
●Volume Informationen<br />
●Indexwurzel<br />
●Indexallozierung<br />
●Bitmap<br />
●Logstrom<br />
●Daten<br />
Attributschlüssel<br />
Attribut<br />
Attributwert<br />
MFT record<br />
Betriebssysteme SS07, S.Gerhold, M.Sonnenfroh, P. Schulthess
<strong>Dateisysteme</strong><br />
NTFS-Dateisystem<br />
Eine kleine Datei<br />
Standard<br />
Info<br />
Daten<br />
Header<br />
Dateiname 0 6 11 2 20 1 80 3<br />
Header<br />
run<br />
#1<br />
MFT<br />
run<br />
#2<br />
Systemdateien<br />
run<br />
#3<br />
MFT record<br />
Betriebssysteme SS07, S.Gerhold, M.Sonnenfroh, P. Schulthess
<strong>Dateisysteme</strong><br />
NTFS-Dateisystem<br />
Eine große Datei<br />
108<br />
107<br />
106<br />
105<br />
104<br />
103<br />
102<br />
Run #k+1 ...<br />
Run #m<br />
SI DN MFT 107 MFT 103<br />
Run #1 ... Run #k<br />
Run #m+1 ...<br />
Run #n<br />
Betriebssysteme SS07, S.Gerhold, M.Sonnenfroh, P. Schulthess
<strong>Dateisysteme</strong><br />
NTFS-Dateisystem<br />
Verzeichnisse<br />
Standard<br />
Info<br />
Index<br />
Header<br />
Verzeichniseintrag<br />
MFT record<br />
Betriebssysteme SS07, S.Gerhold, M.Sonnenfroh, P. Schulthess
<strong>Dateisysteme</strong><br />
NTFS-Dateisystem<br />
Verzeichnisse<br />
Standard<br />
Info<br />
Index<br />
Header<br />
Verzeichniseintrag<br />
Bitmap<br />
Header<br />
Bitmap<br />
MFT record<br />
Indexallozierung<br />
Bitmap<br />
Header<br />
Betriebssysteme SS07, S.Gerhold, M.Sonnenfroh, P. Schulthess
<strong>Dateisysteme</strong><br />
NTFS-Dateisystem<br />
ADS<br />
Datei<br />
unbenannter Stream<br />
Stream 1<br />
...<br />
Stream n<br />
c:\>edit hello.txt:MySecretStream<br />
unbenannter Stream<br />
MySecretStream<br />
hello.txt<br />
Betriebssysteme SS07, S.Gerhold, M.Sonnenfroh, P. Schulthess
<strong>Dateisysteme</strong><br />
Journaling<br />
O 1<br />
O2<br />
O3<br />
O 4<br />
O 5<br />
Check<br />
O 6<br />
O 7<br />
O8<br />
O 1<br />
O 2<br />
O 3<br />
O 4<br />
O 5<br />
O 6<br />
Journal Dateisystem<br />
Betriebssysteme SS07, S.Gerhold, M.Sonnenfroh, P. Schulthess
<strong>Dateisysteme</strong><br />
Journaling<br />
O 1<br />
O2<br />
O3<br />
O 4<br />
O 5<br />
Check<br />
O 6<br />
O 7<br />
O8<br />
O 1<br />
O 2<br />
O 3<br />
O 4<br />
O 5<br />
Journal Dateisystem<br />
Wiederaufsetzen<br />
Betriebssysteme SS07, S.Gerhold, M.Sonnenfroh, P. Schulthess
<strong>Dateisysteme</strong><br />
RAID<br />
● Level 0<br />
● Level 1<br />
A1<br />
A3<br />
A5<br />
A7<br />
A1<br />
A2<br />
A3<br />
A4<br />
A2<br />
A4<br />
A6<br />
A8<br />
A1<br />
A2<br />
A3<br />
A4<br />
Betriebssysteme SS07, S.Gerhold, M.Sonnenfroh, P. Schulthess
<strong>Dateisysteme</strong><br />
RAID<br />
● Level 4<br />
● Level 5<br />
A1<br />
A4<br />
A7<br />
A10<br />
A1<br />
A4<br />
A7<br />
P(10-12)<br />
A2<br />
A5<br />
A8<br />
A11<br />
A2<br />
A5<br />
P(7-9)<br />
A10<br />
A3<br />
A6<br />
A9<br />
A12<br />
A3<br />
P(4-6)<br />
A8<br />
A11<br />
P(1-3)<br />
P(4-6)<br />
P(7-9)<br />
P(10-12)<br />
P(1-3)<br />
A6<br />
A9<br />
A12<br />
Betriebssysteme SS07, S.Gerhold, M.Sonnenfroh, P. Schulthess
Kapitel 7<br />
<strong>Dateisysteme</strong><br />
Betriebssysteme SS07, S.Gerhold, M.Sonnenfroh, P. Schulthess
<strong>Dateisysteme</strong><br />
?<br />
1 Wie könnte die Definition für eine Datei<br />
lauten?<br />
2 Was macht ein Dateisystem aus?<br />
Betriebssysteme SS07, S.Gerhold, M.Sonnenfroh, P. Schulthess
<strong>Dateisysteme</strong><br />
!<br />
1 „Benannter Behälter zur dauerhaften<br />
Speicherung beliebiger Informationen.“<br />
2 „Einen strukturierten, effizienten und<br />
von der Hardware abstrahierten Zugriff<br />
auf Dateien, die auf einem Massen-<br />
speicher liegen“<br />
Betriebssysteme SS07, S.Gerhold, M.Sonnenfroh, P. Schulthess
<strong>Dateisysteme</strong><br />
Hierarchische Strukturierung<br />
Konzept<br />
/<br />
config.sys<br />
command.com<br />
BS-Folien/<br />
BS_Kapitel1.txt<br />
BS_Kapitel2.txt<br />
BS_Kapitel3.txt<br />
3D/<br />
Rechner.blend<br />
Betriebssysteme SS07, S.Gerhold, M.Sonnenfroh, P. Schulthess<br />
● <strong>Dateisysteme</strong> bieten dem Nutzer die Möglichkeit,<br />
eine hierarchische Strukturierung durchzuführen<br />
● Verzeichnisse sind dabei im wesentlichen spezielle<br />
Dateien, die eine Liste der ihnen untergeordneten<br />
„richtigen“ Dateien enthält<br />
● Zugriff auf Dateien mit Hilfe eines Pfades, der<br />
meistens als Konkatenation der Verzeichnisnamen<br />
und des Dateinamens inkl. etwaiger Trennzeichen<br />
(URL)
<strong>Dateisysteme</strong><br />
Hierarchische Strukturierung<br />
Links<br />
/<br />
config.sys<br />
command.com<br />
BS-Folien/<br />
BS_Kapitel1.txt<br />
BS_Kapitel2.txt<br />
config.sys<br />
3D/<br />
Rechner.blend<br />
Betriebssysteme SS07, S.Gerhold, M.Sonnenfroh, P. Schulthess<br />
● Verweise bilden eine Möglichkeit, transparent auf<br />
eine bestehende Datei zu verweisen. Zugriffe auf<br />
den Link werden automatisch an die verknüpfte<br />
Datei weitergeleitet<br />
● verschiedene Arten von Links möglich: hard links<br />
verweisen auf die tatsächliche Position der Datei<br />
auf dem Massenspeicher, soft links verweisen auf<br />
den Dateipfad
<strong>Dateisysteme</strong><br />
Dateizugriff<br />
● sequentielle<br />
● wahlfrei<br />
T 0 T 1 T 2<br />
T 0 T n<br />
● index-sequentiell<br />
T 2<br />
Datei<br />
Datei<br />
T 1<br />
T n<br />
Betriebssysteme SS07, S.Gerhold, M.Sonnenfroh, P. Schulthess<br />
● bei einem sequentiellen Zugriff wird immer in<br />
Vorwärtsrichtung gelesen (z.B. Streamer)<br />
● bei wahlfreiem Zugriff können auf die Daten einer<br />
Datei in einer beliebigen Reihenfolge zugegriffen<br />
werden, entsprechende Medien vorausgesetzt<br />
● index-sequentielle Zugriff werden von Datenbanken<br />
verwendet, Zugriff auf den Inhalt einer Datei wird<br />
durch verschiedene Indextabellen beschleunigt,<br />
benötigt Informationen über den Aufbau der Datei!
<strong>Dateisysteme</strong><br />
Dateiattribute<br />
● Name<br />
● Größe<br />
● Eigentümer<br />
● Erstellungsdatum<br />
● Aktualisierungsdatum<br />
● Schreib- / Leserechte<br />
● Zugriffsbits<br />
● ...<br />
Betriebssysteme SS07, S.Gerhold, M.Sonnenfroh, P. Schulthess<br />
● die Dateiattribute geben zusätzliche Informationen<br />
zu einer Datei an und werden vom Dateisystem<br />
verwaltet.<br />
● die Attribute werden im Dateisystem gespeichert,<br />
nicht in der Datei!<br />
● Dateiattribute werden auch häufig Metadaten<br />
genannt
<strong>Dateisysteme</strong><br />
Festplatte revisited<br />
Aufbau<br />
Spur<br />
Cluster<br />
Sektor<br />
Kopf<br />
Betriebssysteme SS07, S.Gerhold, M.Sonnenfroh, P. Schulthess<br />
● Die Festplatte ist in verschiedene Sektoren und<br />
Spuren unterteilt. Ein Cluster besteht aus<br />
mindestens einem Sektor.<br />
● Cluster sind die kleinste Zuordnungseinheit für<br />
<strong>Dateisysteme</strong>.<br />
● Die Schreibleseköpfe werden über den<br />
verschiedenen Spuren positioniert um die Sektoren<br />
einer Spur zu lesen.
<strong>Dateisysteme</strong><br />
Festplatte revisited<br />
Zugriffszeiten & Transferrate<br />
● mittlere Gesamtzugriffszeit<br />
1<br />
Tgz = Tmp + +<br />
2r<br />
Rotationsverzögerung<br />
b<br />
rN<br />
Positionierungszeit<br />
r = Rotationsgeschwindigkeit<br />
b = zu übertragene Bytes<br />
N = Bytes pro Spur<br />
T mp = mittlere Positionierungszeit<br />
Betriebssysteme SS07, S.Gerhold, M.Sonnenfroh, P. Schulthess<br />
● Positionierungszeit ist die Zeit, die der Kopf<br />
benötigt, um sich von der aktuellen Spur zur<br />
gewünschten Spur zu bewegen.<br />
● Als Rotationsverzögerung bezeichnet man die Zeit,<br />
die verstreicht, bis der gewünschte Sektor unter<br />
dem Kopf erscheint.<br />
● die mittlere Gesamtzugriffszeit gibt die zu<br />
erwartende Zugriffsdauer für eine sequentielle<br />
Lese- / Schreiboperation an!
<strong>Dateisysteme</strong><br />
?<br />
1 Gegeben sei ein Festplatte mit einer<br />
mittleren Zugriffszeit von 10ms,<br />
10000rpm, einer Sektorgröße von<br />
512Byte und 256 Sektoren pro Spur.<br />
Berechnen Sie die mittlere Gesamt-<br />
zugriffszeit für das sequentielle und<br />
wahlfreie Lesen von 512KB Daten.<br />
Betriebssysteme SS07, S.Gerhold, M.Sonnenfroh, P. Schulthess
<strong>Dateisysteme</strong><br />
1 Rechnung:<br />
!<br />
1<br />
131072 Byte<br />
Tseq = 10ms + ( + )*4<br />
2*10000rpm 10000rpm*131072 Byte<br />
= 10ms + (3ms + 6ms)*4<br />
= 23ms<br />
1<br />
512 Byte<br />
Tran = (10ms + + )*1024<br />
2*10000rpm 10000rpm*131072 Byte<br />
= (10ms + 3ms + 0.018ms)*1024<br />
= 13,32s<br />
Betriebssysteme SS07, S.Gerhold, M.Sonnenfroh, P. Schulthess
<strong>Dateisysteme</strong><br />
Festplatte Zugriffsscheduling<br />
Problemstellung<br />
E/A Puffer<br />
20<br />
50<br />
115<br />
70<br />
50<br />
30<br />
90<br />
80<br />
100<br />
Betriebssysteme SS07, S.Gerhold, M.Sonnenfroh, P. Schulthess<br />
● Meistens wird nicht nur ein einzelner Sektor bzw.<br />
eine Spur von der Platte gelesen, sondern<br />
meistens mehrere hintereinander (z.B. große<br />
Dateien, Laden einer Anwendung etc.)<br />
● Die Anfragen an die Festplatte werden gepuffert<br />
und es wird versucht eine Ausführungsreihenfolge<br />
zu finden, die sowohl Latenz als auch<br />
Positionierungszeiten minimiert<br />
● die unterste Grenze stellt der wahlfreier Zugriffe dar
<strong>Dateisysteme</strong><br />
Festplatte Zugriffsscheduling<br />
FIFO<br />
E/A Puffer<br />
20<br />
50<br />
115<br />
70<br />
50<br />
30<br />
90<br />
80<br />
100<br />
Spur<br />
100<br />
80<br />
60<br />
40<br />
20<br />
0<br />
Zeit<br />
Betriebssysteme SS07, S.Gerhold, M.Sonnenfroh, P. Schulthess<br />
● First In First Out Scheduling arbeitet die E/A<br />
Anforderung nach Ankunftsreihenfolge in der<br />
Queue ab
<strong>Dateisysteme</strong><br />
Festplatte Zugriffsscheduling<br />
SSTF<br />
E/A Puffer<br />
20<br />
50<br />
115<br />
70<br />
50<br />
30<br />
90<br />
80<br />
100<br />
Spur<br />
100<br />
80<br />
60<br />
40<br />
20<br />
0<br />
Zeit<br />
Betriebssysteme SS07, S.Gerhold, M.Sonnenfroh, P. Schulthess<br />
● Bei Shortest Seek Time First wird immer die Spur<br />
als nächstes angefahren, die am nächsten zur<br />
gegenwärtigen Position liegt<br />
● die Lokalität der Anfragen wird hier sehr gut genutzt<br />
● bei diesem Algorithmus kann es aber zu<br />
Aushungerungen kommen!
<strong>Dateisysteme</strong><br />
Festplatte Zugriffsscheduling<br />
SCAN<br />
E/A Puffer<br />
20<br />
50<br />
115<br />
70<br />
50<br />
30<br />
90<br />
80<br />
100<br />
Spur<br />
100<br />
80<br />
60<br />
40<br />
20<br />
0<br />
Zeit<br />
Betriebssysteme SS07, S.Gerhold, M.Sonnenfroh, P. Schulthess<br />
● Bei SCAN bewegt sich der Kopf kontinuierlich über<br />
die Platte unabhängig von den angeforderten<br />
Spuren immer in eine Richtung, bis die letzte Spur<br />
erreicht ist<br />
● eine Erweiterung stellt der LOOK-Algorithmus dar,<br />
bei dem die Richtung gewechselt wird, sobald<br />
keine weiteren Aufträge in dieser Richtung mehr im<br />
Puffer vorhanden sind<br />
● die Lokalität der Anfragen wird nicht näher<br />
betrachtet und Aufträge auf den äußeren bzw.<br />
inneren Spuren werden bevorzugt, auch werden<br />
die Aufträge, die zuletzt in die Warteschlange<br />
eingestellt wurden, u.U. bevorzugt
<strong>Dateisysteme</strong><br />
Festplatte Zugriffsscheduling<br />
N-step-SCAN & C-SCAN<br />
E/A Puffer<br />
20<br />
50<br />
115<br />
70<br />
50<br />
30<br />
90<br />
80<br />
100<br />
Spur<br />
100<br />
80<br />
60<br />
40<br />
20<br />
0<br />
Zeit<br />
Betriebssysteme SS07, S.Gerhold, M.Sonnenfroh, P. Schulthess<br />
● Bei C-SCAN bewegt sich der Kopf nur in eine<br />
Richtung und wird bei Erreichen der letzten Spur<br />
wieder direkt an das andere Ende gefahren (vgl.<br />
vertical retrace bei CRT), verhindert die<br />
Bevorzugung der äußeren bzw. inneren Spuren<br />
● Bei N-step-SCAN wird der Puffer in N verschiedene<br />
Partitionen unterteilt, die jeweils eigenständig mit<br />
SCAN behandelt werden
<strong>Dateisysteme</strong><br />
Einordnung<br />
<strong>Dateisysteme</strong><br />
boot<br />
record<br />
● beginnen mit dem boot sector<br />
● durch Partition begrenzt<br />
NTFS EXT2 FAT32<br />
boot<br />
sector<br />
Partition<br />
disc<br />
Betriebssysteme SS07, S.Gerhold, M.Sonnenfroh, P. Schulthess<br />
● jede Platte besteht bei IBM-PCs mindestens aus<br />
dem MBR und einer Partition<br />
● der erste Sektor einer Partition enthält meistens<br />
einen boot sector, der vom boot strap loader<br />
verwendet wird um das Betriebssystem zu starten.<br />
● Inhalt einer Partition wird durch das entsprechende<br />
Dateisystem verwaltet, Typ ist im Partitionstabelleneintrag<br />
vermerkt
<strong>Dateisysteme</strong><br />
FAT-Dateisystem<br />
Überblick<br />
FAT1 FAT2<br />
● 1980 FAT12, 1983 FAT16, 1997 FAT32<br />
● einfache Dateiattribute<br />
● weit verbreitet<br />
root<br />
directory<br />
clusters<br />
disc<br />
Betriebssysteme SS07, S.Gerhold, M.Sonnenfroh, P. Schulthess<br />
● FAT12 wurde 1980 mit QDOS eingeführt, FAT16<br />
wurde 1983 mit MS-DOS eingeführt, FAT32 1997<br />
von Microsoft<br />
● Belegungseinheiten in Clustergröße (z.B.<br />
512,1024,4096 Bytes), ein Cluster besteht aus<br />
mindestens einem Sektor<br />
● FAT-Dateisystem heute noch sehr gebräuchlich für<br />
Wechselmedien, da es ein sehr einfaches und<br />
weitverbreitetes Verfahren ist
<strong>Dateisysteme</strong><br />
FAT-Dateisystem<br />
FAT<br />
FAT1 FAT2<br />
root<br />
directory<br />
0 0xFFF7 4 5 3 Test.txt<br />
9 0 0 0xFFFF<br />
7 Hallo.txt<br />
10 11 12 0xFFFF<br />
0 0 0xFFF7 0<br />
disc<br />
Betriebssysteme SS07, S.Gerhold, M.Sonnenfroh, P. Schulthess<br />
● die FAT ist im Wesentlichen ein Belegungs-Bitmap,<br />
welches angibt, ob ein Cluster belegt oder frei ist.<br />
Die Cluster einer Datei sind in der FAT einfach<br />
miteinander verkettet.<br />
● FAT12 hat 12Bit pro FAT-Eintrag, FAT16 16 und<br />
FAT32 28<br />
● Der Wert 0 in der FAT spezifiziert einen freien<br />
Cluster, 0xFFF7 einen defekten Cluster und<br />
0xFFFF das Ende einer Datei
<strong>Dateisysteme</strong><br />
FAT-Dateisystem<br />
Verzeichnisstruktur<br />
FAT1 FAT2<br />
Test txt 1F 000000000000000000 051F561F 3 3000<br />
Hallo txt 1F 000000000000000000 052F562F 7 514<br />
Dateiname Endung<br />
root<br />
directory<br />
Attribute<br />
reserviert<br />
Erstellungsuhrzeit<br />
Erstellungsdatum<br />
disc<br />
Länge<br />
Startcluster<br />
Betriebssysteme SS07, S.Gerhold, M.Sonnenfroh, P. Schulthess<br />
● Verzeichnisse sind normale Dateien mit einer<br />
speziellen, dem Dateisystem bekannten Struktur<br />
● VFAT-Erweiterung ermöglicht Dateinamen mit bis<br />
zu 255 Zeichen<br />
● durch 4 Byte Längenfeld ist die Dateigröße auf 4GB<br />
beschränkt.<br />
● Nur wenige Attributbits, keine Benutzerrechte
<strong>Dateisysteme</strong><br />
FAT-Dateisystem<br />
Fragmentierung<br />
FAT1 FAT2<br />
root<br />
directory<br />
0 0xFFF7 6 6<br />
9 13 8 16<br />
10 11 12 0xFFFF<br />
14 0xFFFF 0xFFF7 0xFFFF<br />
disc<br />
Betriebssysteme SS07, S.Gerhold, M.Sonnenfroh, P. Schulthess<br />
● durch dynamische Dateierweiterung sowie durch<br />
Lösch- und Neuerstellungsoperationen zersplittern<br />
die Dateien immer mehr<br />
● die Sektoren einer Datei können nun meistens nicht<br />
mehr sequentiell von der Platte gelesen werden =><br />
hoher Leistungsverlust<br />
● Defragmentierer sorgen dafür, dass die Dateien<br />
wieder sequentiell auf der Platte liegen, aber sehr<br />
hoher Aufwand
<strong>Dateisysteme</strong><br />
UNIX-Dateisystem<br />
Überblick<br />
super<br />
block<br />
I-Node<br />
Liste<br />
● ExtFS, ExtFS2, ReiserFS, ...<br />
● umfangreiche Dateiattribute<br />
● Benutzerrechte<br />
data blocks<br />
disc<br />
Betriebssysteme SS07, S.Gerhold, M.Sonnenfroh, P. Schulthess<br />
● statt Cluster wird im UNIX-Umfeld das Synonym<br />
Block verwendet<br />
● der Superblock in einem UNIX-Dateisystem enthält<br />
die Konfigurationsinformationen des Dateisystems<br />
● der prinzipielle Aufbau des Dateisystems sowie die<br />
I-Nodes sind bei allen UNIX-<strong>Dateisysteme</strong>n gleich
<strong>Dateisysteme</strong><br />
UNIX-Dateisystem<br />
Superblock<br />
super<br />
block<br />
I-Node<br />
Liste<br />
# I-Nodes<br />
# blocks<br />
# free blocks<br />
# free I-Nodes<br />
first free I-Node<br />
first free block<br />
first data block<br />
...<br />
data blocks<br />
disc<br />
Betriebssysteme SS07, S.Gerhold, M.Sonnenfroh, P. Schulthess<br />
● statt Cluster wird im Unix Umfeld das Synonym<br />
Block verwendet<br />
● der Superblock in einem UNIX-Dateisystem enthält<br />
die Konfigurations Informationen des Dateisystems<br />
● der prinzipielle Aufbau des Dateisystems sowie die<br />
I-Nodes sind bei allen UNIX-<strong>Dateisysteme</strong>n gleich
<strong>Dateisysteme</strong><br />
UNIX-Dateisystem<br />
Inodes<br />
type<br />
owner info<br />
timestamps<br />
size<br />
direct blocks<br />
indirect blocks<br />
double indirect<br />
triple indirect<br />
I-Node<br />
Liste<br />
disc<br />
Betriebssysteme SS07, S.Gerhold, M.Sonnenfroh, P. Schulthess<br />
● I-Node enthält alle Metainformationen der Datei<br />
außer dem Dateinamen<br />
● das Typfeld gibt Aufschluss, um welche Art von I-<br />
Node Objekt es sich handelt bzw. was für eine Art<br />
von Datei referenziert wird<br />
● I-Nodes enthalten mehrere direkte Verweise auf<br />
Datenblöcke, sowie jeweils einen direkten,<br />
zweifach indirekten und dreifach indirekten<br />
Verweis.<br />
● die indirekten Verweise zeigen auf spezielle I-<br />
Nodes, die nur Referenzen enthalten<br />
● I-Nodes besitzen eine feste Größe und werden<br />
oftmals mit einer festen Anzahl durch die logische<br />
Formatierung alloziert
<strong>Dateisysteme</strong><br />
UNIX-Dateisystem<br />
Verzeichnisse<br />
„/“ I-Node<br />
directory<br />
root<br />
...<br />
1<br />
„/etc“ I-Node<br />
directory<br />
root<br />
...<br />
4<br />
Block<br />
Nummer<br />
I-Node<br />
Liste<br />
disc<br />
I-Node<br />
Nummer<br />
1<br />
1<br />
8<br />
22<br />
4<br />
8<br />
1<br />
33<br />
11<br />
102<br />
Dateiname<br />
.<br />
..<br />
etc<br />
dev<br />
home<br />
.<br />
..<br />
passwd<br />
fstab<br />
timezone<br />
Betriebssysteme SS07, S.Gerhold, M.Sonnenfroh, P. Schulthess<br />
● Verzeichnisse sind als Dateien implementiert, sie<br />
enthalten als Daten eine Liste mit (I-Node-Nummer,<br />
Dateiname)-Tupeln<br />
● das Wurzelverzeichnis ist meistens über den ersten<br />
I-Node zu erreichen<br />
● durch die Entkopplung von Name und I-Node, kann<br />
eine Datei durch verschiedene Namen referenziert<br />
werden
<strong>Dateisysteme</strong><br />
?<br />
1 Ist es möglich, mit FAT32 einen Link<br />
auf eine Datei zu erstellen? Begründen<br />
Sie Ihre Entscheidung!<br />
2 Wie sind I-Node Nummer und<br />
Blocknummer mit einander verknüpft?<br />
Betriebssysteme SS07, S.Gerhold, M.Sonnenfroh, P. Schulthess
<strong>Dateisysteme</strong><br />
!<br />
1 Theoretisch Ja, da aber keine Vor-<br />
bereitungen getroffen sind ( Link<br />
Counter) nur mit sehr hohem Aufwand!<br />
2 Zwischen diesen beiden Nummern<br />
besteht kein logischer Zusammenhang!<br />
Betriebssysteme SS07, S.Gerhold, M.Sonnenfroh, P. Schulthess
UNIX-Dateisystem<br />
Berkeley Fast Filling System - CGB<br />
Super<br />
Block<br />
CGB<br />
I-Node<br />
Liste<br />
Super<br />
Block<br />
I-Node<br />
Liste<br />
disc<br />
erste Zylindergruppe zweite Zylindergruppe<br />
Betriebssysteme SS07, S.Gerhold, M.Sonnenfroh, P. Schulthess<br />
● 1984 eingeführt<br />
● Optimierung zum Standard UNIX-Dateisystem<br />
● Partitionen werden in Cylinder Groups unterteilt,<br />
um die Distanz zwischen I-Nodes und Daten gering<br />
zu halten<br />
● jede Zylindergruppe enthält eine Kopie des<br />
Superblocks aus Redundanzgründen<br />
● pro Zylindergruppe maximal 2048 I-Nodes
UNIX-Dateisystem<br />
Berkeley Fast Filling System - Fragmentierung<br />
Super<br />
Block<br />
XXX00000<br />
Fragment<br />
Bitmap<br />
CGB<br />
I-Node<br />
Liste<br />
Fragmente<br />
Super<br />
Block<br />
I-Node<br />
Liste<br />
disc<br />
Betriebssysteme SS07, S.Gerhold, M.Sonnenfroh, P. Schulthess<br />
● große Datenblöcke erlauben eine hohe<br />
Transferrate, führen aber zu einer starken internen<br />
Fragmentierung<br />
● FFS unterteilt einen Datenblock in bis zu acht<br />
Fragmente, um Fragmentierung zu verringern<br />
● nur der letzte Datenblock einer Datei kann<br />
fragmentiert sein, ggf. Umkopieren
UNIX-Dateisystem<br />
Linux Ext2 Fast File System<br />
Super<br />
Block<br />
Block Deskriptor<br />
I-Node<br />
Liste<br />
Super<br />
Block<br />
I-Node<br />
Liste<br />
erste Blockgruppe zweite Blockgruppe<br />
disc<br />
Betriebssysteme SS07, S.Gerhold, M.Sonnenfroh, P. Schulthess<br />
● verwendet Blockgruppen, die unabhängig von der<br />
Hardware sind, trägt dem Trend der Plattenhersteller<br />
Rechung, die den internen Aufbau mehr<br />
und mehr verbergen<br />
● Erhöhung der Lokalität von I-Node und Datenblock<br />
● Block-Deskriptor enthält Bitmaps für Datenblöcke<br />
und I-Nodes, Bitmaps belegen immer einen Block<br />
● Superblock und Blockdeskriptoren sind über alle<br />
Blockgruppen repliziert (bis auf Bitmaps)<br />
● keine Blockfragmentierung!
<strong>Dateisysteme</strong><br />
NTFS-Dateisystem<br />
Überblick<br />
MFT<br />
Systemdateien<br />
● 1993 erste NTFS-Version mit NT3.1<br />
● ACL<br />
● Verschlüsselung & Komprimierung<br />
● Journaling File System<br />
disc<br />
Betriebssysteme SS07, S.Gerhold, M.Sonnenfroh, P. Schulthess<br />
● vollständige Neuentwicklung<br />
● erste Version wurde mit Windows NT 3.1<br />
ausgeliefert<br />
● komplexe Access Control List pro Datei ermöglicht<br />
sehr feingranulare Rechtvergabe<br />
● Journaling Funktion biteten Sicherheit im<br />
Absturzfall
<strong>Dateisysteme</strong><br />
NTFS-Dateisystem<br />
MFT<br />
0<br />
1<br />
2<br />
3<br />
4<br />
5<br />
6<br />
7<br />
8<br />
9<br />
10<br />
11<br />
12<br />
13<br />
14<br />
15<br />
16<br />
MFT<br />
$MFT Master File Table<br />
$MFTMirr Spiegelung der MFT<br />
$LogFile Log Datei<br />
$Volume Volumedateifile<br />
$AttrDef Attribute Definitionen<br />
$ Wurzelverzeichnis<br />
$Bitmap Block-Bitmap<br />
$Boot Boot strap loader<br />
$BadClus Liste fehlerhafter Clusters<br />
$Secure Sicherheits Deskriptoren<br />
$Upcase Case conversion table<br />
$Extend Extensions<br />
reserviert<br />
reserviert<br />
reserviert<br />
reserviert<br />
Erste Benutzerdatei ...<br />
...<br />
1KB<br />
Systemdateien<br />
Betriebssysteme SS07, S.Gerhold, M.Sonnenfroh, P. Schulthess<br />
● MFT besteht aus 1KB großen Einträgen<br />
● die ersten 16 Einträge sind vordefiniert<br />
● die MFT selbst wird in der MFT als Datei behandelt<br />
● meistens ca. 12,5% des Volumes für die MFT<br />
reserviert
<strong>Dateisysteme</strong><br />
NTFS-Dateisystem<br />
MFT-Record<br />
Record<br />
Kopf<br />
●Standardinformation<br />
●Dateiname<br />
●Sicherheitsdeskriptor<br />
●Attributliste<br />
●ObjektID<br />
●Reparse Point<br />
●Volume Name<br />
●Volume Informationen<br />
●Indexwurzel<br />
●Indexallozierung<br />
●Bitmap<br />
●Logstrom<br />
●Daten<br />
Attributschlüssel<br />
Attribut<br />
Attributwert<br />
MFT record<br />
Betriebssysteme SS07, S.Gerhold, M.Sonnenfroh, P. Schulthess<br />
● ein MFT-Eintrag besteht aus einem Kopfeintrag<br />
und beliebigen (Schlüssel,Wert)-Tupeln<br />
● der Kopfeintrag enthält z.B. eine Sequenznummer<br />
(wird bei jeder Neubelegung inkrementiert) ,<br />
Referenzzähler, belegte Bytes im Eintrag, etc.<br />
● die Attribute können über die Attributdefinition<br />
erweitert werden
<strong>Dateisysteme</strong><br />
NTFS-Dateisystem<br />
Eine kleine Datei<br />
Standard<br />
Info<br />
Daten<br />
Header<br />
Dateiname 0 6 11 2 20 1 80 3<br />
Header<br />
run<br />
#1<br />
MFT<br />
run<br />
#2<br />
Systemdateien<br />
run<br />
#3<br />
MFT record<br />
Betriebssysteme SS07, S.Gerhold, M.Sonnenfroh, P. Schulthess<br />
● unter Standardinformationen fallen z.B. die<br />
Zugriffsbit von FAT, Zeitstempel, Dateibesitzer, etc.<br />
● ganz kleine Dateien (bis ca 900 Bytes) werden<br />
direkt in der MFT gespeichert<br />
● bei größeren Dateien werden sogenannte runs in<br />
der MFT gespeichert, die die Position und Anzahl<br />
an Clustern definieren
<strong>Dateisysteme</strong><br />
NTFS-Dateisystem<br />
Eine große Datei<br />
108<br />
107<br />
106<br />
105<br />
104<br />
103<br />
102<br />
Run #k+1 ...<br />
Run #m<br />
SI DN MFT 107 MFT 103<br />
Run #1 ... Run #k<br />
Run #m+1 ...<br />
Run #n<br />
Betriebssysteme SS07, S.Gerhold, M.Sonnenfroh, P. Schulthess<br />
● wenn ein MFT-Eintrag für eine Datei nicht genügt,<br />
werden weitere MFT-Einträge verwendet<br />
(extension MFT records)
<strong>Dateisysteme</strong><br />
NTFS-Dateisystem<br />
Verzeichnisse<br />
Standard<br />
Info<br />
Index<br />
Header<br />
Verzeichniseintrag<br />
MFT record<br />
Betriebssysteme SS07, S.Gerhold, M.Sonnenfroh, P. Schulthess<br />
● kleine Verzeichnis sind eine List von<br />
Verzeichniseinträgen, die bei einer Suche linear<br />
durchlaufen werden<br />
● ein Verzeichniseintrag beinhaltet einen Index auf<br />
den MFT-Eintrag der Datei/Verzeichnis, den<br />
Dateinamen und zusätzliche Flags<br />
● Replikation des Dateinamens!
<strong>Dateisysteme</strong><br />
NTFS-Dateisystem<br />
Verzeichnisse<br />
Standard<br />
Info<br />
Index<br />
Header<br />
Verzeichniseintrag<br />
Bitmap<br />
Header<br />
Bitmap<br />
MFT record<br />
Indexallozierung<br />
Bitmap<br />
Header<br />
Betriebssysteme SS07, S.Gerhold, M.Sonnenfroh, P. Schulthess<br />
● kleine Verzeichnis sind als Liste von<br />
Verzeichniseinträgen direkt in der MFT abgelegt,<br />
die bei einer Suche linear durchlaufen werden<br />
● ein Verzeichniseintrag beinhaltet einen Index auf<br />
den MFT-Eintrag der Datei/Verzeichnis, den<br />
Dateinamen und zusätzliche Flags<br />
● Replikation des Dateinamens!<br />
● Bei großen Verzeichnissen, die nicht mehr in einen<br />
MFT-Eintrag passen, werden die zusätzlichen<br />
Daten in Datenblöcken abgelegt und über den<br />
Indexallozierungseintrag referenziert, Index ist als<br />
B*-Baum implementiert<br />
● kein B*-Baum über das gesamte Volume!
<strong>Dateisysteme</strong><br />
NTFS-Dateisystem<br />
ADS<br />
unbenannter Stream<br />
Stream 1<br />
...<br />
Stream n<br />
c:\>edit hello.txt:MySecretStream<br />
unbenannter Stream<br />
MySecretStream<br />
Datei<br />
hello.txt<br />
Betriebssysteme SS07, S.Gerhold, M.Sonnenfroh, P. Schulthess<br />
● bei NTFS kann eine Datei aus mehreren<br />
unabhängigen Datenströmen bestehen (alternate<br />
data streams)<br />
● der unbenannte Standardstream stellt die „normale“<br />
im Dateisystem ersichtliche Datei dar<br />
● die Streams können nur indirekt angesprochen<br />
werden und sind im Dateisystem nicht sichtbar und<br />
können mit Standardmitteln auch nicht gelöscht<br />
werden<br />
● ab Windows XP Service Pack 2 wird die ADS-<br />
Funktionalität vom Internet Explorer genutzt, um<br />
aus dem Internet heruntergeladene Dateien zu<br />
markieren und ggf. eine Warnmeldung zu erzeugen
<strong>Dateisysteme</strong><br />
Journaling<br />
O1<br />
O2<br />
O 3<br />
O4<br />
O5<br />
Check<br />
O6<br />
O7<br />
O8<br />
O1<br />
O2<br />
O3<br />
O4<br />
O5<br />
O6<br />
Journal Dateisystem<br />
Betriebssysteme SS07, S.Gerhold, M.Sonnenfroh, P. Schulthess<br />
● beim Systemabsturz können unvollständig<br />
Änderungen an den Dateisystemmetadaten zu<br />
Inkonsistenzen führen<br />
● Bei Journaling werden die einzelnen Operationen<br />
vor der Durchführung in einem Journal verzeichnet,<br />
in regelmäßigen Abständen werden Sicherungspunkte<br />
geschrieben, die jeweils einen konsistenten<br />
Zustand des Dateisystems darstellen<br />
● Bei NTFS werden die einzelnen Operationen, die<br />
zur Durchführung einer Dateisystemoperation nötig<br />
sind, in einer Transaktionen zusammengefasst,<br />
welche entweder ganz oder gar nicht durchgeführt<br />
wird<br />
● Das Dateisystem logged die Operationen und kann<br />
im Fehlerfall nicht ausgeführte bzw. ausgeführte<br />
Teiloperationen vervollständigen bzw. rückgängig<br />
machen.
<strong>Dateisysteme</strong><br />
Journaling<br />
O1<br />
O2<br />
O 3<br />
O4<br />
O5<br />
Check<br />
O6<br />
O7<br />
O8<br />
O1<br />
O2<br />
O3<br />
O4<br />
O5<br />
Journal Dateisystem<br />
Wiederaufsetzen<br />
Betriebssysteme SS07, S.Gerhold, M.Sonnenfroh, P. Schulthess<br />
● Metadaten-Journaling sorgt nur für die Konsistenz<br />
der Metadaten<br />
● Full Journaling versucht auch die Konsistenz der<br />
Dateidaten zu erhalten<br />
● physikalische Logs zeichnen Datenblöcke auf, die<br />
später auf Platte geschrieben werden<br />
● logische Logs zeichnen die Metadatenänderungen<br />
in einem kompakten Format auf
<strong>Dateisysteme</strong><br />
RAID<br />
● Level 0<br />
● Level 1<br />
A1<br />
A3<br />
A5<br />
A7<br />
A1<br />
A2<br />
A3<br />
A4<br />
A2<br />
A4<br />
A6<br />
A8<br />
A1<br />
A2<br />
A3<br />
A4<br />
Betriebssysteme SS07, S.Gerhold, M.Sonnenfroh, P. Schulthess<br />
● redundant array of inexpensive disks oder<br />
redundant array of independent disks<br />
● organisiert mehrere physikalische Platten in ein<br />
logisches Laufwerk<br />
● Erhöhung der Leistung bzw. der Ausfallsicherheit<br />
● Raid 0 verteilt die Daten auf mehrere Platten, sorgt<br />
für eine Erhöhung der Schreib- und Leseleistung,<br />
aber keine Redundanz<br />
● Bei Raid 1 werden die Daten auf der zweiten Platte<br />
exakt dupliziert, Ausfall einer Platte kann verkraftet<br />
werden, Leseleistung wird erhöht.
<strong>Dateisysteme</strong><br />
RAID<br />
● Level 4<br />
● Level 5<br />
A1<br />
A4<br />
A7<br />
A10<br />
A1<br />
A4<br />
A7<br />
P(10-12)<br />
A2<br />
A5<br />
A8<br />
A11<br />
A2<br />
A5<br />
P(7-9)<br />
A10<br />
A3<br />
A6<br />
A9<br />
A12<br />
A3<br />
P(4-6)<br />
A8<br />
A11<br />
P(1-3)<br />
P(4-6)<br />
P(7-9)<br />
P(10-12)<br />
P(1-3)<br />
A6<br />
A9<br />
A12<br />
Betriebssysteme SS07, S.Gerhold, M.Sonnenfroh, P. Schulthess<br />
● Bei Raid 4 wird eine Checksumme (XOR) auf einer<br />
extra Platte vorgehalten, Paritätsplatte bildet<br />
Flaschenhals<br />
● Raid 5 verteilt die Checksumme über alle Platten,<br />
beseitigt den Flaschenhals von Raid 4