Systeme 1 Kapitel 3 Dateisysteme WS 2009/101. Letzte Vorlesung Dateisysteme – Hauptaufgaben –...

30
Systeme 1 Kapitel 3 Dateisysteme WS 2009/10 1

Transcript of Systeme 1 Kapitel 3 Dateisysteme WS 2009/101. Letzte Vorlesung Dateisysteme – Hauptaufgaben –...

Page 1: Systeme 1 Kapitel 3 Dateisysteme WS 2009/101. Letzte Vorlesung Dateisysteme – Hauptaufgaben – Persistente Dateisysteme (FAT, NTFS, ext3, ext4) Dateien.

Systeme 1

Kapitel 3Dateisysteme

WS 2009/10 1

Page 2: Systeme 1 Kapitel 3 Dateisysteme WS 2009/101. Letzte Vorlesung Dateisysteme – Hauptaufgaben – Persistente Dateisysteme (FAT, NTFS, ext3, ext4) Dateien.

Letzte Vorlesung• Dateisysteme

– Hauptaufgaben– Persistente Dateisysteme (FAT, NTFS, ext3, ext4)

• Dateien– Kleinste logische Einheit eines Dateisystems– Dateitypen– Dateiattribute

• Besitzer• Zugriffsrechte

• Rechteverwaltung– Dateien– Verzeichnisse– Sonderrechte (SUID, SGID, SVTX)

WS 2009/10 2

Page 3: Systeme 1 Kapitel 3 Dateisysteme WS 2009/101. Letzte Vorlesung Dateisysteme – Hauptaufgaben – Persistente Dateisysteme (FAT, NTFS, ext3, ext4) Dateien.

Letzte Vorlesung• Verzeichnisbaum– Absolute Pfade– Relative Pfade

• Dateizugriff– Sequentieller Zugriff– Random-Access

• Dateinoperationen– Create, Delete, Open, Close, …

• Verzeichnissoperationen– Kein Write

WS 2009/10 3

Page 4: Systeme 1 Kapitel 3 Dateisysteme WS 2009/101. Letzte Vorlesung Dateisysteme – Hauptaufgaben – Persistente Dateisysteme (FAT, NTFS, ext3, ext4) Dateien.

Systeme 1

Kapitel 3.1Implementierung von

Dateisystemen

WS 2009/10 4

Page 5: Systeme 1 Kapitel 3 Dateisysteme WS 2009/101. Letzte Vorlesung Dateisysteme – Hauptaufgaben – Persistente Dateisysteme (FAT, NTFS, ext3, ext4) Dateien.

Festplatten

• Dateisystem z.B. auf Festplatten• Festplatten bestehen aus mehreren Platten

• Platte ist eingeteilt in Sektoren

WS 2009/10 5

Page 6: Systeme 1 Kapitel 3 Dateisysteme WS 2009/101. Letzte Vorlesung Dateisysteme – Hauptaufgaben – Persistente Dateisysteme (FAT, NTFS, ext3, ext4) Dateien.

Festplatten Layout

• Sektor 0 der Platte enthält MBR (Master Boot Record).– Verwendet beim Booten– Partitionstabelle mit Anfangs- und Endadresse jeder Partition– Eine aktive Partition

• Bootvorgang:– BIOS liest MBR ein.– Lokalisierung der aktiven Partition– Einlesen und Ausführen des Bootblocks der aktiven Partition– Bootblock enthält den Bootloader, dieser lädt das Betriebssystem (-> hat Kenntnis über

Dateisystem)

WS 2009/10 6

Page 7: Systeme 1 Kapitel 3 Dateisysteme WS 2009/101. Letzte Vorlesung Dateisysteme – Hauptaufgaben – Persistente Dateisysteme (FAT, NTFS, ext3, ext4) Dateien.

Festplatten Layout

• Bootblock lädt Dateisystem der Partition.• Superblock des Dateisystems enthält Schlüsselparameter des

Dateisystems (z.B. Schreibschutzmarkierung, Name des Dateisystemtyps etc.).

• Freispeicherverwaltung: Informationen über freie Blöcke im Dateisystem• I-Nodes:

– Liste von Datenstrukturen– Eine Datenstruktur pro Datei mit wesentlichen Informationen über Datei

• Datenblöcke: Eigentliche Inhalte der Dateien.WS 2009/10 7

Page 8: Systeme 1 Kapitel 3 Dateisysteme WS 2009/101. Letzte Vorlesung Dateisysteme – Hauptaufgaben – Persistente Dateisysteme (FAT, NTFS, ext3, ext4) Dateien.

Realisierung von Dateien

• 3 verschiedene Alternativen zur Realisierung von Dateien:– Zusammenhängende Belegung– Belegung durch verkettete Listen– I-Nodes

WS 2009/10 8

Page 9: Systeme 1 Kapitel 3 Dateisysteme WS 2009/101. Letzte Vorlesung Dateisysteme – Hauptaufgaben – Persistente Dateisysteme (FAT, NTFS, ext3, ext4) Dateien.

Realisierung von Dateien

• Abspeicherung von Dateien als zusammen-hängende Menge von Plattenblöcken:

WS 2009/10 9

Page 10: Systeme 1 Kapitel 3 Dateisysteme WS 2009/101. Letzte Vorlesung Dateisysteme – Hauptaufgaben – Persistente Dateisysteme (FAT, NTFS, ext3, ext4) Dateien.

Realisierung von Dateien• Abspeicherung von Dateien als

zusammenhängende Menge von Plattenblöcken:

• Vorteil:• schnelles sequentielles Lesen• einfache ImplementierungWS 2009/10 10

Page 11: Systeme 1 Kapitel 3 Dateisysteme WS 2009/101. Letzte Vorlesung Dateisysteme – Hauptaufgaben – Persistente Dateisysteme (FAT, NTFS, ext3, ext4) Dateien.

Realisierung von Dateien• Abspeicherung von Dateien als zusammenhängende Menge von

Plattenblöcken:Problem: Löschen von Dateien D und F

Fragmentierung der Platte!• Verschiebung der Blöcke?• Verwaltung der entstehenden Löcher in Freilisten?• Was passiert, wenn man eine Datei erzeugt, deren Größe aber noch

unbekannt ist? Zusammenhängende Belegung im Allgemeinen keine gute Idee!• Aber: Benutzt bei Spezialfällen wie Dateisystemen für CD-ROMs

WS 2009/10 11

Page 12: Systeme 1 Kapitel 3 Dateisysteme WS 2009/101. Letzte Vorlesung Dateisysteme – Hauptaufgaben – Persistente Dateisysteme (FAT, NTFS, ext3, ext4) Dateien.

Realisierung von Dateien

• Speichere Dateien als verkettete Listen von Platten-blöcken– Dateiinhalt wird auf Blöcke gleicher Größer verteilt

WS 2009/10 12

Page 13: Systeme 1 Kapitel 3 Dateisysteme WS 2009/101. Letzte Vorlesung Dateisysteme – Hauptaufgaben – Persistente Dateisysteme (FAT, NTFS, ext3, ext4) Dateien.

Realisierung von Dateien

• Speichere Datei als verkettete Listen von Plattenblöcken– Dateiinhalt wird auf Blöcke gleicher Größer verteilt

• Vorteile– Keine Fragmentierung– Sequentielles Lesen

• Nachteile– Wahlfreier Zugriff

• Zugriff auf Block n: Starte bei Block 0 und verfolge alle Blöcke n-1 Blöcke

=> n-1 langsame Lesezugriffe auf die Platte

WS 2009/10 13

Page 14: Systeme 1 Kapitel 3 Dateisysteme WS 2009/101. Letzte Vorlesung Dateisysteme – Hauptaufgaben – Persistente Dateisysteme (FAT, NTFS, ext3, ext4) Dateien.

Realisierung von Dateien (FAT)Speichere Datei als verkettete Listen von Plattenblöcken• Verbesserung:– Halte Information über Verkettung der Blöcke im

Hauptspeicher– Ersetze bei wahlfreiem Zugriff Plattenzugriffe durch

(schnellere) Hauptspeicherzugriffe Datei-Allokationstabelle bzw. FAT im Hauptspeicher

• Methode benutzt in – MS-DOS (FAT-12, FAT-16, FAT-32)– Windows 95, Windows 98 (FAT-32)– Windows 2000 (u.a. FAT-32)

WS 2009/10 14

Page 15: Systeme 1 Kapitel 3 Dateisysteme WS 2009/101. Letzte Vorlesung Dateisysteme – Hauptaufgaben – Persistente Dateisysteme (FAT, NTFS, ext3, ext4) Dateien.

Realisierung von Dateien (FAT)

WS 2009/10 15

Page 16: Systeme 1 Kapitel 3 Dateisysteme WS 2009/101. Letzte Vorlesung Dateisysteme – Hauptaufgaben – Persistente Dateisysteme (FAT, NTFS, ext3, ext4) Dateien.

Realisierung von Dateien (FAT)Speichere Datei als verkettete Listen von Plattenblöcken• Vorteil:

– Da FAT im Hauptspeicher abgelegt, muss bei wahlfreiem Zugriff auf Block n nur eine Kette von Verweisen im Hauptspeicher verfolgt werden

• Nachteil:– Größe der FAT im Speicher!– Anzahl der Einträge = Gesamtzahl der Plattenblöcke– Auch wenn Platte fast komplett unbelegt!

• Beobachtung:– Man braucht Verkettung der Plattenblöcke nur für aktuell bearbeitete

Dateien!-> I-Node-Konzept (UNIX, LINUX)

WS 2009/10 16

Page 17: Systeme 1 Kapitel 3 Dateisysteme WS 2009/101. Letzte Vorlesung Dateisysteme – Hauptaufgaben – Persistente Dateisysteme (FAT, NTFS, ext3, ext4) Dateien.

Realisierung von Dateien (I-Node)

• Zu jeder Datei gehört eine Datenstruktur der sog. I-Node (Index-Node)

• I-Node ermöglicht Zugriff auf alle Blöcke der Datei.

• I-Node muss nur dann im Speicher sein, wenn eine Datei offen ist.– Wenn k Dateien offen und I-Node n Bytes

benötigt, dann nur k * n Byte insgesamt.

WS 2009/10 17

Page 18: Systeme 1 Kapitel 3 Dateisysteme WS 2009/101. Letzte Vorlesung Dateisysteme – Hauptaufgaben – Persistente Dateisysteme (FAT, NTFS, ext3, ext4) Dateien.

Bsp.: UNIX System VI-Node einer Datei enthält– alle Attribute der Datei– m Adressen von Plattenblöcken– (UNIX System V: m = 10)

WS 2009/10 18

Page 19: Systeme 1 Kapitel 3 Dateisysteme WS 2009/101. Letzte Vorlesung Dateisysteme – Hauptaufgaben – Persistente Dateisysteme (FAT, NTFS, ext3, ext4) Dateien.

Realisierung von Dateien (I-Node)

• Kleine Dateien bis 10 x 1 KByte (bei Blockgröße 1 KByte):

WS 2009/10 19

Page 20: Systeme 1 Kapitel 3 Dateisysteme WS 2009/101. Letzte Vorlesung Dateisysteme – Hauptaufgaben – Persistente Dateisysteme (FAT, NTFS, ext3, ext4) Dateien.

Realisierung von Dateien (I-Node)

• Für größere Dateien werden Datenblöcke zur Speicherung von weiteren Plattenadressen genutzt

• Bsp.: – Blockgröße 1 KByte– Größe eines Zeigers auf Plattenblock: 4 Byte

-> 256 Zeiger passen in einen Plattenblock– Nach 10 (direkten) Plattenadressen gibt es im I-Node

Zeiger auf Block mit 256 weiteren Plattenadressen -> Insgesamt Dateien bis zu

(10 + 256) x 1 KByte = 266 KByte möglich.

WS 2009/10 20

Page 21: Systeme 1 Kapitel 3 Dateisysteme WS 2009/101. Letzte Vorlesung Dateisysteme – Hauptaufgaben – Persistente Dateisysteme (FAT, NTFS, ext3, ext4) Dateien.

Realisierung von Dateien (I-Node)

WS 2009/10 21

Page 22: Systeme 1 Kapitel 3 Dateisysteme WS 2009/101. Letzte Vorlesung Dateisysteme – Hauptaufgaben – Persistente Dateisysteme (FAT, NTFS, ext3, ext4) Dateien.

Realisierung von Dateien (I-Node)

• Noch größere Dateien.

WS 2009/10 22

Page 23: Systeme 1 Kapitel 3 Dateisysteme WS 2009/101. Letzte Vorlesung Dateisysteme – Hauptaufgaben – Persistente Dateisysteme (FAT, NTFS, ext3, ext4) Dateien.

Realisierung von Dateien (I-Node)

• Bei – Blockgröße 1 KB,– Zeigergröße 4 Byte – erhält man über doppelt indirekten Block 256 x 256 =

65536 Zeiger auf Datenblöcke.• Zusätzlich noch dreifach indirekter Block …

• Frage: Wie groß ist mit diesen Parametern die maximale Dateigröße?Übung

WS 2009/10 23

Page 24: Systeme 1 Kapitel 3 Dateisysteme WS 2009/101. Letzte Vorlesung Dateisysteme – Hauptaufgaben – Persistente Dateisysteme (FAT, NTFS, ext3, ext4) Dateien.

Realisierung von Dateien (I-Node)

• Attribut-Informationen von I-Nodes

* Hier 3-Bytes für eine Adresse

*

WS 2009/10 24

Page 25: Systeme 1 Kapitel 3 Dateisysteme WS 2009/101. Letzte Vorlesung Dateisysteme – Hauptaufgaben – Persistente Dateisysteme (FAT, NTFS, ext3, ext4) Dateien.

Realisierung von Verzeichnissen

• Verzeichnisse sind ebenfalls Dateien!• Sie liefern eine Abbildung von – Datei- bzw. Verzeichnisnamen – auf I-Node-Nummern.• Jeder Verzeichniseintrag ist ein Paar aus Name und I-

Node-Nummer.

• Über I-Nodes kommt man dann zu Dateiinhalten.

WS 2009/10 25

Page 26: Systeme 1 Kapitel 3 Dateisysteme WS 2009/101. Letzte Vorlesung Dateisysteme – Hauptaufgaben – Persistente Dateisysteme (FAT, NTFS, ext3, ext4) Dateien.

Realisierung von Verzeichnissen

tmp etc var usr lib home

bin man lib meier mueller schulze

games mail news work

/

WS 2009/10 26

Page 27: Systeme 1 Kapitel 3 Dateisysteme WS 2009/101. Letzte Vorlesung Dateisysteme – Hauptaufgaben – Persistente Dateisysteme (FAT, NTFS, ext3, ext4) Dateien.

Verwaltung freier Plattenblöcke• Datenblöcke im Dateisystem an beliebigen

Stellen genutzt.• Nicht notwendigerweise aufeinander folgend.• Verwaltung freier Blöcke:– Über Freibereichsliste als verkettete Liste:

• Speichere Nummern von freien Plattenblöcken• Benutze zum Speichern der Nummern freie Plattenblöcke,

die miteinander verkettet werden– Bitmap

• Bitmap mit 1 Bit für jeden Plattenblock• Plattenblock frei , entsprechendes Bit = 1

WS 2009/10 27

Page 28: Systeme 1 Kapitel 3 Dateisysteme WS 2009/101. Letzte Vorlesung Dateisysteme – Hauptaufgaben – Persistente Dateisysteme (FAT, NTFS, ext3, ext4) Dateien.

Verwaltung freier Plattenblöcke

WS 2009/10 28

Page 29: Systeme 1 Kapitel 3 Dateisysteme WS 2009/101. Letzte Vorlesung Dateisysteme – Hauptaufgaben – Persistente Dateisysteme (FAT, NTFS, ext3, ext4) Dateien.

Belegung des Dateisystems• Belegung gegeben durch Anzahl genutzter I-Nodes und

Datenblöcke.• Dateisystem voll, wenn

– Keine I-Nodes mehr frei oder– Keine Datenblöcke mehr frei.

• Überprüfung mittels df:

$ df -iFilesystem Inodes IUsed IFree IUse% Mounted on/dev/hda2 64512 6437 58075 10% //dev/hda1 6024 33 5991 1% /boot

WS 2009/10 29

Page 30: Systeme 1 Kapitel 3 Dateisysteme WS 2009/101. Letzte Vorlesung Dateisysteme – Hauptaufgaben – Persistente Dateisysteme (FAT, NTFS, ext3, ext4) Dateien.

Zusammenfassung• Objekte zur Datenspeicherung werden meist in

Verzeichnisbäumen in Form von Dateieinträgen verwaltet.

• Dateien und Verzeichnisse vom Dateisystem bereitgestellt

• Der Verzeichnisbaum wird aus mehreren Dateisystemen zusammengebaut

• Verschiedene Implementierungsvarianten für Dateisysteme

• Unterschiede liegen in Effizienz (Speicher und Laufzeit)• Geeignete Wahl des Dateisystems bestimmt durch

Eigenschaften des physikalischen Speichermediums.

WS 2009/10 30