Dateisysteme

Dateisysteme Dateisysteme

vs.informatik.uni.ulm.de
von vs.informatik.uni.ulm.de Mehr von diesem Publisher
03.03.2013 Aufrufe

Kapitel 7 Dateisysteme 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


<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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!