Dateisysteme

Transcription

Dateisysteme
Systeme I:
Betriebssysteme
Kapitel 3
Dateisysteme
Maren Bennewitz
Version 14.11.2012
1
Inhalt Vorlesung
§ 
Aufbau einfacher Rechner
§ 
Überblick: Aufgabe, Historische Entwicklung,
unterschiedliche Arten von Betriebssystemen
§ 
Verschiedene Komponenten / Konzepte von
Betriebssystemen
§ 
§ 
§ 
§ 
§ 
§ 
Dateisysteme
Prozesse
Nebenläufigkeit und wechselseitiger Ausschluss
Deadlocks
Scheduling
Speicherverwaltung
2
Dateisysteme
§ 
Eine der Grundaufgaben eines
Betriebssystems: Dauerhaftes Speichern
von Informationen
§ 
Speichern von Daten auf externen Medien
(USB-Stick, Festplatten, CDs, ...)
§ 
Organisationseinheiten auf externem
Medium: Dateien (Files)
§ 
Dateisystem = Betriebssystemteil, der sich
mit Dateien befasst
3
Zwei Sichtweisen
§ 
Externe Sicht: Vom Dateisystem
angebotene Funktionalität
§ 
Interne Sicht: Implementierung von
Dateisystemen
4
Externe Sicht auf Dateisysteme
§ 
Aufgabe von Dateisystemen: Dauerhafte
Speicherung von Daten auf Medien wie
Festplatten, CDs usw. in Form benannter
Objekte
§ 
Konzept
§ 
Bereiche auf dem Medium werden mit einem so
genannten Dateisystem versehen
§ 
Dateisystem stellt die Verwaltungsstruktur für
Objekte bereit
5
Eigenschaften der
Verwaltungsstruktur
§ 
Hierarchische Strukturierung: Verzeichnisse
mit Objekten
§ 
Beispiele für Objekte:
§ 
Reguläre Dateien (Files): Text-, Binärdateien
§ 
Verzeichnisse (Directories)
§ 
Gerätedateien: Schnittstelle zwischen
Gerätetreibern und Anwendungsprogrammen
§ 
Links: Verweise auf Dateien
§ 
Pipes: Unidirektionaler Datenstrom zwischen
Prozessen
6
Benennung von Dateien (1)
§ 
Benennung durch Dateinamen
§ 
Zugriff über Namen
§ 
Regeln für die Benennung variieren von
System zu System
7
Benennung von Dateien (2)
MS-DOS: Dateinamen bestehen aus
§ 
Eigentlichem Namen (bis zu 8 gültige
Zeichen, beginnend mit Buchstaben)
§ 
Dateierweiterung nach Punkt: Bis zu
drei Zeichen, gibt den Typ an
§ 
Keine Unterscheidung zwischen Großund Kleinschreibung
§ 
Beispiele: PROG.C, HALLO.TXT
8
Benennung von Dateien (3)
Windows (ab 95) : Dateien bestehen aus
§ 
Name bis zu 256 Zeichen
§ 
Mehrere Punkte möglich, letzter legt
Dateityp fest: z.B. mein.prog.c, hilfe.jetzt.pdf
§ 
Keine Unterscheidung zwischen Großund Kleinschreibung
§ 
Nicht erlaubt: Einzelne Sonderzeichen,
reservierte Wörter: z.B. aux.c, q"uote"s.txt,
NUL.txt
9
Benennung von Dateien (4)
Unix / Linux: Dateien bestehen aus
§ 
Name bis zu 255 Zeichen, mehrere Punkte
erlaubt
§ 
Dateierweiterung: nur Konvention zur
Übersichtlichkeit
§ 
Unterscheidung zwischen Groß- und
Kleinschreibung
§ 
Beispiele: prog.c, Prog.c, prog.c.Z
§ 
Dateien oder Verzeichnisse, die mit einem Punkt
beginnen, sind „versteckte“ Dateien und werden
nur angezeigt, wenn der Benutzer dies explizit
angibt (ls –a)
10
Dateitypen (1)
§ 
Reguläre Dateien:
§ 
Textdateien: Folge von Zeilen unterschiedlicher
Länge, Inhalt interpretierbar gemäß Zeichensatz
(z.B. ASCII, Unicode), mit Texteditor editierbar
§ 
Binärdateien: Interpretation
anwendungsabhängig, Verwendungszweck
meist als Dateiendung angegeben, Programme
12
Dateitypen (2)
§ 
Verzeichnisse: Systemdateien zur
Strukturierung des Dateisystems
§ 
Modellierung von E/A-Geräten durch
Gerätedateien:
§ 
Spezielle Zeichendateien zur Modellierung
serieller Geräte, z.B. Drucker, Netzwerke
§ 
Spezielle Blockdateien zur Modellierung von
Plattenspeicher, z.B. Festplatten
13
Dateiattribute
§ 
Zusatzinformationen über Datei, die das
Betriebssystem speichert
§ 
Beispiele:
§ 
Entstehungszeitpunkt (Datum, Uhrzeit)
§ 
Dateigröße
§ 
Zugriffsrechte: Wer darf in welcher Weise auf die
Datei zugreifen?
14
Zugriffsrechte (1)
§ 
Dateieigentümer, Gruppe des Eigentümers
§ 
Zugriffsarten:
§ 
§ 
Lesender Zugriff
§ 
Schreibender Zugriff
§ 
Ausführung
Zugreifender
§ 
Dateieigentümer
§ 
Benutzergruppe des Dateieigentümers
§ 
Alle Benutzer
15
Zugriffsrechte (2)
§ 
Sicht des Benutzers (Bsp. Unix / Linux):
$ ls –l
drwxr-xr-x 6 maren users 238 Oct 18 12:13 systeme-slides
drwxr-x–- 1 maren users 204 Oct 2 11:10 systeme-uebungen
-rw------- 1 maren users 29696 Feb 29 2012 zeitplan.xls
§ 
Bedeutung der Felder:
§ 
§ 
§ 
§ 
§ 
§ 
§ 
Typ des Eintrags: Datei, Verzeichnis
Rechte: Besitzer, Gruppenbesitzer, alle anderen
Anzahl Einträge (Verzeichnis), Anzahl Referenzen
(Datei)
Besitzer, Gruppenbesitzer
Speicherplatzverbrauch
Datum der letzten Modifikation
Name
16
Mögliche Dateiattribute
17
Rechteverwaltung Unix (1)
Standardrechte
§ 
Dateien
§ 
§ 
§ 
§ 
r: Datei darf gelesen werden (read)
w: Datei darf geändert werden (write)
x: Datei darf als Programm ausgeführt werden
(execute)
Verzeichnisse
§ 
§ 
§ 
r: Der Inhalt des Verzeichnisses darf gelesen
werden
w: Der Inhalt des Verzeichnisses darf geändert
werden: Dateien anlegen, umbenennen, löschen
x: Man darf in das Verzeichnis wechseln und
seine Objekte benutzen
18
Rechteverwaltung Unix (2)
Sonderrechte
§ 
SUID (set user ID):
§ 
Erweitertes Zugriffsrecht für Dateien
§ 
Unprivilegierte Benutzer erlangen kontrollierten
Zugriff auf privilegierte Ressourcen
§ 
Ausführung mit den Rechten des Besitzers der
Datei (anstatt mit den Rechten des ausführenden
Benutzers)
§ 
Optische Notation bei ls:
-rwsr-x---
19
Rechteverwaltung Unix (2)
§ 
root-User: Hat Zugriff auf alles (Superuser)
§ 
Beispiel SUID:
-r-sr-xr-x … root root … /usr/bin/passwd
§ 
Beim Aufruf von 'passwd' läuft das Programm mit
der uid des Besitzers (in dem Fall root) und darf in
/etc/shadow schreiben
§ 
SUID-root-Programme sind sicherheitskritisch!
20
Rechteverwaltung Unix (3)
Sonderrechte
§ 
Analog: SGID (set group ID)
§ 
Ausführung mit den Rechten der Gruppe, der die
Datei/das Verzeichnis gehört (anstatt mit den
Rechten der Gruppe, die ausführt)
§ 
Verzeichnisse: Neu angelegte Dateien gehören
der Gruppe, der auch das Verzeichnis gehört
(anstatt der Gruppe, die eine Datei erzeugt)
§ 
Optische Notation bei ls:
drwxrws---
21
Rechteverwaltung Unix (4)
Sonderrechte
Beispiel:
§ 
Verzeichnis systeme gehört der Gruppe hrl
drwxrwxr-x maren hrl systeme
§ 
User rist gehört zur Gruppe ais (standard) aber
auch zu Gruppe hrl
§ 
Anlegen einer Datei von rist in systeme setzt die
Gruppe der Datei auf ais:
-rw-rw-r-- rist ais test.txt
§ 
Gruppe hrl kann in diese Datei nicht schreiben!
22
Rechteverwaltung Unix (5)
Sonderrechte
§ 
Dies kann verhindert werden durch SGID:
chmod g+s systeme:
drwxrwsr-x maren hrl systeme
§ 
Anlegen einer Datei von rist in systeme setzt nun
die Gruppe der Datei auf hrl:
-rw-rw-r-- rist hrl test.txt
§ 
Gruppe hrl kann jetzt in die Datei schreiben
§ 
Alternativ könnte User rist die Schreibrechte für
alle Benutzer setzen, dies ist u.U. aber nicht
gewünscht!
§ 
Beispiel: Homepage auf Webserver
23
Rechteverwaltung Unix (6)
Sonderrechte
§ 
SVTX (save text bit, sticky bit):
§ 
§ 
§ 
Zum Löschen der Datei in einem Verzeichnis
muss der Benutzer der Eigentümer der Datei
oder des Verzeichnissen sein
Optische Notation: drwxrwxrwt
Beispiel:
drwxrwxrwt … root root … /tmp
SVTX verhindert, dass jeder alles löschen darf
24
Rechteverwaltung Unix (7)
§ 
Ergänzende, komplexere Zugriffsrechte:
Access Control Lists (ACLs)
§ 
Einzelnen Nutzern (oder auch Gruppen)
können gezielt Rechte an einzelnen Dateien
gegeben bzw. entzogen werden
§ 
Damit ist z.B. Folgendes möglich
§ 
§ 
§ 
Zwei User haben das Schreibrecht
Sonst keiner
Optische Notation: -rw-r--r--+
25
Vorsicht!
26
Verzeichnisbaum
Baumartige hierarchische Strukturierung
§ 
Wurzelverzeichnis (root directory)
§ 
Restliche Verzeichnisse baumartig
angehängt
/
tmp
etc
var
usr
lib
home
bin man lib meier mueller schulze
27
Verzeichnisse
§ 
Absolute Pfade beginnen mit /,
z.B. /home/meier
§ 
Relative Pfade beziehen sich auf das
aktuelle Arbeitsverzeichnis (working
directory).
§ 
Relative Pfade beginnen nicht mit /,
z.B. mein_verzeichnis
§ 
Wechsel des aktuellen Arbeitsverzeichnisses
durch cd (change directory)
28
Verzeichnisse/Verzeichnisbaum
Graphische Repräsentation (hier: Windows)
29
Zusammenbau von
Verzeichnisbäumen (1)
§ 
Temporäres, manuelles Anhängen
(Mounten) von Dateisystemen
§ 
mount /dev/sda1 /home/maren/extern
§ 
Hängt Dateisystem in /dev/sda1 an das
Verzeichnis /home/maren/extern im
bestehenden Verzeichnisbaum an
§ 
/home/maren/extern heißt Mountpoint
30
Zusammenbau von
Verzeichnisbäumen (2)
§ 
Evtl. vorhandene Einträge in /home/maren/
extern werden temporär verdeckt und sind
nach Abhängen wieder zugreifbar
§ 
Abhängen mit umount /home/maren/extern
§ 
Geht nur, wenn keine Datei im angehängten
Dateisystem geöffnet ist
31
Zusammenbau von
Verzeichnisbäumen (3)
Graphische Oberfläche:
§ 
Das Mounten von Wechseldatenträgern wie
USB-Sticks, CDs, externen Festplatten, etc.
geschieht meist automatisch
§ 
Typischerweise im Verzeichnis /media oder
/Volumes
32
Symbolische Links (1)
§ 
Zweck von Links: Ansprechen desselben
Objekts mit mehreren Namen
§ 
Beispiel: User meier befindet sich in
Arbeitsverzeichnis /home/meier
§ 
User will bequem auf ausführbare Datei
/home/mueller/mytools/Text/m_format
zugreifen
§ 
Anlegen eines Links im Verzeichnis
/home/meier:
ln –s /home/mueller/mytools/Text/m_format m_format
33
Symbolische Links (2)
§ 
ls –l m_format
§ 
lrwxrwxrwx 1 meier users … m_format ->
/home/mueller/mytools/Text/m_format
§ 
Aufruf durch m_format in Verzeichnis
/home/meier nun möglich
34
Symbolische Links (3)
§ 
§ 
§ 
§ 
§ 
§ 
§ 
ln –s quelle ziel
Enthalten Pfade zu Referenzobjekten
Löschen/Verschieben/Umbenennen von
Referenzobjekt: Link zeigt ins Leere
Löschen von Link: Referenzobjekt ist
unverändert
Rechte am Link: Entsprechend
Referenzobjekt
Zulässiges Referenzobjekt: Beliebiges
Objekt im Dateibaum
Technische Realisierung: später
35
Harte Links
§ 
ln quelle ziel (eher selten)
§ 
Erstellt Verzeichniseintrag in Dateisystem
mit weiterem Namen für Dateiobjekt
§ 
Zulässiges Referenzobjekt: Dateiobjekt im
selben Dateisystem (Festplattenpartition)
§ 
Bei Umbenennen/Verschieben funktioniert
Link noch
§ 
Technische Realisierung: später
36
Harte Links: Linkzähler
§ 
Dateiobjekt mit n Hardlinks hat Linkzähler
n+1
§ 
Löschen eines Links: Dekrementieren des
Linkzählers
§ 
Löschen des Dateiobjekts: Dekrementieren
des Linkzählers
§ 
Dateiobjekt wird erst dann wirklich
gelöscht, wenn Linkzähler auf 0
37
Sequentieller Dateizugriff
§ 
Alle Bytes einer Datei können nur
nacheinander am Anfang beginnend vom
Speichermedium gelesen werden
§ 
Kein Überspringen möglich
§ 
Zurückspulen möglich, um Dateien so oft
wie nötig zu lesen
39
Wahlfreier Dateizugriff
§ 
Random-Access-Dateien
§ 
Bytes/Datensätze in beliebiger Reihenfolge
auslesen
§ 
Mithilfe von seek: Legt die aktuelle Position
fest
§ 
Nach seek-Aufruf, kann die Datei sequentiell
von dieser Position gelesen werden
§ 
Für viele Anwendungen unentbehrlich (z.B.
Datenbanksysteme)
40
Mögliche Operationen auf
Dateien (Systemaufrufe)
§ 
Create: Erzeugen
§ 
Delete: Löschen
§ 
Open: Öffnen
§ 
Close: Schließen
§ 
Read: Lesen von aktueller Position
§ 
Write: Schreiben an aktuelle Position
41
Mögliche Operationen auf
Dateien (Systemaufrufe)
§ 
Append: Anhängen an Dateiende
§ 
Seek: Position bestimmen bei RandomAccess-Dateien
§ 
Get attributes: Lesen der Dateiattribute
§ 
Set attributes: Verändern der Dateiattribute
§ 
Rename: Umbenennen
42
Mögliche Operationen auf
Verzeichnisse (Systemaufrufe)
§ 
Create: Erzeugen
§ 
Delete: Löschen
§ 
Opendir: Öffnen
§ 
Closedir: Schließen
§ 
Readdir: Nächsten Verzeichniseintrag lesen
§ 
Get attributes: Lesen der
Verzeichnisattribute
§ 
Set attributes: Verändern der
Verzeichnisattribute
§ 
Rename: Umbenennen
43
Implementierung von
Dateisystem (Festplatte)
§ 
Eine Festplatte besteht aus mehreren
Platten
§ 
Festplatten können in eine oder mehrere
Partitionen unterteilt werden
§ 
Einzelne Partitionen können unabhängige
Dateisysteme besitzen (z.B. Windows und
Linux Dateisystem)
44
Implementierung von
Dateisystem (Festplatte)
§ 
Platten sind eingeteilt in Sektoren (Blöcke),
alle Sektoren der Festplatte sind
durchnummeriert
01
2
3
4
5
45
Layout eines Dateisystems (1)
Ganze Platte
Partitionstabelle
Plattenpartitionen
MBR
§ 
§ 
§ 
Sektor 0 der Platte enthält MBR (Master
Boot Record), das beim Bootvorgang
verwendet wird
Partitionstabelle mit Anfangs- und
Endadresse jeder Partition
Eine aktive Partition
46
Layout eines Dateisystems (2)
Ganze Platte
Partitionstabelle
Plattenpartitionen
MBR
§ 
Bootvorgang:
§ 
BIOS (Basic Input Output System) liest MBR ein
§ 
Aktive Partition wird lokalisiert
§ 
Bootblock der aktiven Partition wird eingelesen
und ausgeführt
§ 
Bootblock liest das Betriebssystem von der
aktiven Partition ein und startet es
47
Layout eines Dateisystems (3)
Ganze Platte
Partitionstabelle
MBR
Plattenpartitionen
aktive Partition
Bootblock Superblock Freispeicherverw. I-Nodes Datenblöcke: Dateien, Verz.
§ 
§ 
Bootblock lädt das Dateisystem der Partition
Superblock des Dateisystems enthält
Schlüsselparameter des Dateisystems (z.B.
Name des Dateisystemtyps, Anzahl Blöcke, ...)
48
Layout eines Dateisystems (4)
Ganze Platte
Partitionstabelle
MBR
Plattenpartitionen
aktive Partition
Bootblock Superblock Freispeicherverw. I-Nodes Datenblöcke: Dateien, Verz.
§ 
§ 
Freispeicherverwaltung: Informationen über
freie Blöcke im Dateisystem
I-Nodes (Index Node, Unix):
§ 
§ 
§ 
Enthalten Metadaten der Dateien (Eigentümer,
Zugriffsrechte, Dateityp, Größe, Referenzzähler, etc.)
Zu jeder Datei gehört ein einziger I-Node
Datenblöcke: Eigentliche Inhalte der Dateien
49
Realisierung von Dateien
Drei verschiedene Alternativen zur
Realisierung von Dateien:
§ 
Zusammenhängende Belegung
§ 
Belegung durch verkettete Listen
§ 
I-Nodes
50
Realisierung von Dateien
Zusammenhängende Belegung (1)
§ 
Abspeicherung von Dateien:
zusammenhängende Menge von
Plattenblöcken
51
Realisierung von Dateien
Zusammenhängende Belegung (2)
§ 
Abspeicherung von Dateien:
zusammenhängende Menge von
Plattenblöcken
Datei A
Datei C
Datei E
Datei G
…
Datei B
§ 
Datei D
Datei F
Vorteil: Lesegeschwindigkeit (eine einzige
Operation für gesamte Datei)
52
Realisierung von Dateien
Zusammenhängende Belegung (3)
§ 
Situation nach Löschen von D und F:
Datei A
Datei C
Datei E
Datei G
…
Datei B
§ 
§ 
freie
Blöcke
freie
Blöcke
Nachteil: Fragmentierung der Platte
Verschiebung der Blöcke
(Defragmentierung) ist ineffizient
53
Realisierung von Dateien
Zusammenhängende Belegung (4)
§ 
Verwaltung der entstehenden Lücken in
Listen theoretisch möglich
§ 
Allerdings: (End-)Größe von Dateien muss
bekannt sein, um passende Lücke zu finden
§ 
Zusammenhängende Belegung im
allgemeinen keine gute Idee!
§ 
Benutzt bei Dateisystemen für einmal
beschreibbare Medien, z.B. CD-ROMs:
Dateigröße im Voraus bekannt
54
Realisierung von Dateien
Belegung durch verkettete Listen (1)
§ 
§ 
Dateien gespeichert als verkettete Listen von
Plattenblöcken: Zeiger auf nächsten Block
Variante 1:
Datei A:
Plattenblock
Datei B:
Plattenblock
Dateiblock 0
Dateiblock 1
Dateiblock 2
Dateiblock 3
Dateiblock 4
4
7
2
10
12
Dateiblock 0
Dateiblock 1
Dateiblock 2
Dateiblock 3
6
3
11
14
55
Realisierung von Dateien
Belegung durch verkettete Listen (2)
§ 
Vorteile:
§ 
§ 
§ 
Fragmentierung der Festplatte führt nicht zu
Verlust von Speicherplatz
Dateien beliebiger Größe können angelegt
werden (solange genug Plattenplatz vorhanden)
Nachteile:
§ 
§ 
Langsamer wahlfreier Zugriff
Zugriff auf Dateiblock n: n-1 Lesezugriffe auf die
Platte, um Block n zu lokalisieren
56
Realisierung von Dateien
Belegung durch verkettete Listen (3)
Variante 2:
§  Information über Verkettung der Blöcke im
Hauptspeicher
§ 
§ 
§ 
Ersetze bei wahlfreiem Zugriff
Plattenzugriffe durch (schnellere)
Hauptspeicherzugriffe
Datei-Allokationstabelle (FAT=File Allocation
Table) im Hauptspeicher
Von Microsoft entwickeltes Dateisystem
(FAT-12, FAT-16, FAT-32)
57
FAT Beispiel
Datei A:
Dateiblock 0
Plattenblock 4
Plattenblock 0
Plattenblock 1
Plattenblock 2
Plattenblock 3
Plattenblock 4
Plattenblock 7
7
Dateiblock 2
Dateiblock 3
2
10
Dateiblock 2
Dateiblock 3
11
14
Dateiblock 4
12
Datei B:
10
11
7
Plattenblock 5
Plattenblock 6
Dateiblock 1
3
2
Plattenblock 8
Dateiblock 0
Plattenblock 6
Dateiblock 1
3
Beginn Datei A
Beginn Datei B
Plattenblock 9
Plattenblock 10
Plattenblock 11
Plattenblock 12
12
14
-1
Plattenblock 13
Plattenblock 14
Plattenblock 15
-1
58
FAT Dateisystem
§ 
§ 
Vorteil:
§ 
FAT ist im Hauptspeicher
§ 
Bei wahlfreiem Zugriff auf Block n muss nur eine
Kette von Verweisen im Hauptspeicher verfolgt
werden (nicht auf der Platte)
Nachteil:
§ 
Größe der FAT im Speicher: Jeder Block hat
einen Zeiger in FAT
§ 
Anzahl der Einträge = Gesamtzahl der
Plattenblöcke (auch wenn Platte fast komplett
unbelegt)
59
FAT-16: Größe Tabelle / Speicher
§ 
§ 
Wie groß ist die FAT im Speicher?
§ 
FAT-16: Zeigergröße 16 Bit = 2 Byte
§ 
216 verschiedene Zeiger, 216 Plattenblöcke
§ 
Tabelle hat 216 Einträge, jeweils 2 Byte groß:
216 * 2 Byte = 217 Byte =
27 KByte = 128 KByte
(210 Byte = 1024 Byte = 1 KByte)
Wieviel Speicher kann verwaltet werden?
§ 
Maximale Blockgröße bei FAT-16: 32 KByte
§ 
216 * 32 KByte = 216 * 25 KByte = 221 KByte
= 231 Byte = 2 GByte (= max. Partitionsgröße)
60
FAT-32 für größere Platten
§ 
Mehr Zeiger für größere Platten
§ 
Für Zeiger: 28 Bit; 4 Bit für andere Zwecke,
z.B. Markierung freier Blöcken
§ 
28 Bit zur Adressierung: 228 verschiedene
Zeiger, je 32 Bit = 4 Byte groß
§ 
Größe der FAT: 228 * 4 Byte = 230 = 1 GByte
§ 
Gegenmaßnahmen für zu große FAT:
§ 
Nur wirklich benötigten Teil verwalten
§ 
Betrachte Fenster über FAT, welches im Speicher
bleibt, bei Bedarf auswechseln
61
FAT-32 System
§ 
Vorteile FAT-32:
§ 
§ 
§ 
Nachteile FAT-32:
§ 
§ 
Die meisten Betriebssysteme können darauf
zugreifen
Viele externe Geräte verwenden es heute
(Digitalkamera, MP3-Player, ...)
Maximale Dateigröße: 4 GB
(Grund: 4 Byte breites Feldes für die Dateigröße
in der Directory-Tabelle)
Nachfolger ist MS NTFS (New Technology
File System) benutzt sog. File Records
(später mehr)
62
Abschließende Bemerkungen
§ 
Kleinere Blöcke führen zu weniger
verschwendetem Platz pro Datei
§ 
Je kleiner die Blockgröße, desto mehr Zeiger,
desto größer die FAT im Hauptspeicher
§ 
Maximale Größe des ganzen Dateisystems wird
durch Blockgröße begrenzt
§ 
FAT-16 muss z.B. für eine 2 GByte Partition
eine Blockgröße von 32 KByte verwenden
§ 
Andernfalls kann mit den 216 verschiedenen
Zeigern nicht die ganze Partition adressiert
werden
63
Realisierung von Dateien
I-Nodes (1)
§ 
§ 
§ 
§ 
§ 
Zu jeder Datei gehört eine Datenstruktur, der
sogenannte I-Node (Index-Knoten, bei NTFS:
File Record)
I-Node enthält: Metadaten und Adressen von
Plattenblöcken
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: k * n Byte an Speicher benötigt
64
Realisierung von Dateien
I-Nodes (2)
Dateiattribute
Adresse von Dateiblock 0
Adresse von Dateiblock 1
Adresse von Dateiblock 2
Adresse von Dateiblock 3
Adresse von Dateiblock 4
Adresse von Dateiblock 5
Adresse von Dateiblock 6
Adresse von Dateiblock 7
Adresse von Dateiblock 8
Adresse von Dateiblock 9
Zeiger auf Block mit weiteren
Adressen (einfach indirekt)
Zeiger auf Block mit weiteren
Adressen (zweifach indirekt)
Zeiger auf Block mit weiteren
Adressen (dreifach indirekt)
65
Realisierung von Dateien
I-Nodes (3)
§ 
Viel weniger Speicherbedarf als bei FAT
§ 
Bei FAT: Tabelle zur Speicherung der
Verketteten Listen wächst proportional mit
Plattengröße
§ 
I-Node-Modell: Größe des benötigten
Speichers ist proportional zur maximalen
Anzahl gleichzeitig geöffneter Dateien
§ 
Egal wie groß die Platte ist
66
Realisierung von Dateien
I-Nodes (4)
I-Node einer Datei enthält
§ 
Alle Attribute der Datei
§ 
m Adressen von Plattenblöcken
(UNIX System V: m=10, ext2/3: m=12)
§ 
Verweise auf Plattenblöcke, die weitere
Verweise auf Blöcke enthalten
§ 
Auf die ersten m Plattenblöcke kann schnell
zugegriffen werden
§ 
Für die folgenden Plattenblöcke sind zusätzliche
Zugriffe nötig
67
Realisierung von Dateien
I-Nodes (5)
Datenblock 0
Datenblock 1
Zeiger 0
Zeiger 1
Zeiger 2
Zeiger 3
Zeiger 4
Zeiger 5
Zeiger 6
Zeiger 7
Zeiger 8
Zeiger 9
Datenblock 2
Datenblock 3
Datenblock 4
Datenblock 5
Datenblock 6
Datenblock 7
Datenblock 8
Datenblock 9
Bei z.B. Blockgröße 1 KByte:
Kleine Dateien bis 10 KByte lassen
sich mit den direkten Zeigern
speichern
68
Realisierung von Dateien
I-Nodes (6)
§ 
Für größere Dateien werden Datenblöcke zur
Speicherung von weiteren Plattenadressen genutzt
§ 
Beispiel: Blockgröße 1 KByte
§ 
Größe eines Zeigers auf Plattenblock: 4 Byte (also
232 Adressierungsmöglichkeiten)
§ 
256 Zeiger (je 4 Byte) passen in einen Plattenblock
§ 
Nach 10 (oder 12) direkten Plattenadressen gibt es
im I-Node einen Zeiger auf einen Plattenblock mit
256 weiteren Plattenadressen (=Dateiblöcken)
§ 
Nun Dateien bis zu (10 + 256) x 1 KByte = 266
KByte möglich
69
Realisierung von Dateien
I-Nodes (7)
Dateiattribute
Adresse von Dateiblock 0
Adresse von Dateiblock 1
Adresse von Dateiblock 2
Adresse von Dateiblock 3
Adresse von Dateiblock 4
10 direkte Zeiger
Adresse von Dateiblock 5
Adresse von Dateiblock 6
Adresse von Dateiblock 7
Adresse von Dateiblock 8
Adresse von Dateiblock 9
Zeiger auf Block mit weiteren
Adressen (einfach indirekt)
Adresse von Dateiblock 10
Adresse von Dateiblock 265
…
…
indirekter Zeiger
Insgesamt 256 weitere
Adressen in indirekt
verbundenem Datenblock
Zeiger auf bis
zu 256 weitere
Plattenblöcke
70
Realisierung von Dateien
I-Nodes (8)
Noch größere Dateien:
Dateiattribute
Einfach
indirekter Block
Adresse von Dateiblock 0
Adresse von Dateiblock 1
Adresse von Dateiblock 2
Adresse von Dateiblock 3
256 Zeiger
auf Dateiblöcke
Adresse von Dateiblock 4
Adresse von Dateiblock 5
Adresse von Dateiblock 6
Adresse von Dateiblock 7
Adresse von Dateiblock 8
Adresse von Dateiblock 9
Zeiger auf Block mit weiteren
Adressen (einfach indirekt)
Zeiger auf Block mit weiteren
Adressen (zweifach indirekt)
Zeiger auf Block mit weiteren
Adressen (dreifach indirekt)
71
Realisierung von Dateien
I-Nodes (8)
Noch größere Dateien:
Dateiattribute
Einfach
indirekter Block
Adresse von Dateiblock 0
Adresse von Dateiblock 1
Adresse von Dateiblock 2
Adresse von Dateiblock 3
Adresse von Dateiblock 4
je 256 Zeiger
auf Dateiblöcke
Adresse von Dateiblock 5
Adresse von Dateiblock 6
Adresse von Dateiblock 7
Adresse von Dateiblock 8
Adresse von Dateiblock 9
Zeiger auf Block mit weiteren
Adressen (einfach indirekt)
Doppelt
indirekter Block
256  Verweise
auf Plattenblöcke
Zeiger auf Block mit weiteren
Adressen (zweifach indirekt)
Zeiger auf Block mit weiteren
Adressen (dreifach indirekt)
72
Realisierung von Dateien
I-Nodes (8)
Noch größere Dateien:
Dateiattribute
Einfach
indirekter Block
je 256 Zeiger
auf Dateiblöcke
Adresse von Dateiblock 0
Adresse von Dateiblock 1
Adresse von Dateiblock 2
je 256 Verweise
auf Plattenblöcke
Adresse von Dateiblock 3
Adresse von Dateiblock 4
Adresse von Dateiblock 5
Adresse von Dateiblock 6
Adresse von Dateiblock 7
Adresse von Dateiblock 8
Doppelt
indirekter Block
Adresse von Dateiblock 9
Zeiger auf Block mit weiteren
Adressen (einfach indirekt)
Zeiger auf Block mit weiteren
Adressen (zweifach indirekt)
Zeiger auf Block mit weiteren
Adressen (dreifach indirekt)
Dreifach
indirekter Block
256  Verweise
auf Plattenblöcke
73
Beispiel: Maximale Dateigröße
§ 
Blockgröße 1 KByte, Zeigergröße 4 Bytes
§ 
10 direkte Zeiger des I-Nodes: 10 KByte Daten
lassen sich speichern
§ 
Einfach indirekter Zeiger verweist auf einen
Plattenblock, der maximal 1 KByte/4Byte Zeiger
verwalten kann, also 256 Zeiger
§ 
Indirekt: 1 KByte * 256 = 256 KByte Daten
§ 
Zweifach indirekter Zeiger:
1 KByte * 256 * 256 = 64 MByte Daten
§ 
Dreifache indirekter Zeiger:
1 KByte * 256 * 256 * 256 = 16 GByte Daten
74
Bemerkungen (1)
§ 
Die Größe der I-Node-Tabelle wird beim
Anlegen des Dateisystems festgelegt
§ 
Es muss eine ausreichende Anzahl von I-Nodes
eingeplant werden
§ 
Unix System V: I-Node belegt 64 Byte, so dass
jeweils 16 I-Nodes in einen 1 KByte Datenblock
passen
§ 
Standard: Pro 4 KByte Plattenplatz ein I-Node
75
`
Bemerkungen
(2)
§ 
Wenn verfügbarer Plattenplatz oder die
I–Nodes belegt sind: disk full
§ 
Theoretisch möglich: Auf der Platte sind
noch viele Megabytes an Platz verfügbar
§ 
Diese können aber genutzt werden, weil der
Systemverwalter nicht genügend I–Nodes
vorgesehen hat
76
Vorteile I-Nodes
§ 
Die Größe eines I-Nodes ist fix und relativ
klein
§ 
I-Node kann dadurch lange im
Hauptspeicher bleiben
§ 
Auf kleinere Dateien kann direkt zugegriffen
werden
§ 
Die theoretische maximale Größe einer
Datei sollte ausreichend sein
77
Attributinformationen in
I-Nodes (urspr. Unix System V)
(also max 216)
bei 3-Byte-Adressen
78
Attributinformationen in
I-Nodes
(also max 216)
bei 4-Byte-Adressen
60
zwölf
79
Realisierung von Verzeichnissen (1)
§ 
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 die I-Nodes kommt man dann zu
Dateiinhalten
§ 
Jeder I-Node hat eine feste Position auf der
Platte
80
Realisierung von Verzeichnissen (2)
/
tmp
etc
var
usr
lib
home
bin man lib meier mueller schulze
games mail news work
aktuelles
Vorgängerverzeichnis
.
7
..
3
I-Node von mueller
I-Node von home
games
45
I-Node Nr. 45
mail
76
I-Node Nr. 76
news
9
I-Node Nr. 9
work
14
I-Node Nr. 14
Zeiger auf die
Datenblöcke
der Datei
81
Beispiel (1)
§ 
Annahme: Wir sind in Verzeichnis mueller
§ 
Wir wollen auf ../meier/datei1 zugreifen
§ 
Bestimme im aktuellen Verzeichnis die
I-Node-Nummer des VorgängerVerzeichnisses, hier: 3
.
7
..
3
games
45
mail
76
news
9
work
14
82
Beispiel (1)
§ 
Annahme: Wir sind in Verzeichnis mueller
§ 
Wir wollen auf ../meier/datei1 zugreifen
§ 
Bestimme im aktuellen Verzeichnis die
I-Node-Nummer des VorgängerVerzeichnisses, hier: 3
§ 
Greife über I-Node 3 auf Inhalt von
Vorgänger-Verzeichnis (home) zu
§ 
Bestimme dadurch den I-Node des
Verzeichnisses meier
§ 
In home gibt es den Eintrag meier, 13 (z.B.)
83
Beispiel (2)
§ 
Also: Greife über I-Node 13 auf Inhalt von
meier zu
§ 
Dort steht Eintrag datei1, 15
§ 
Also: Greife über I-Node 15 auf die Inhalte
von datei1 zu
home
I-Node Nr. 3
maier
I-Node Nr. 13
datei1
I-Node Nr. 15
Zeiger auf die
Datenblöcke
der Datei
84
Verwaltung freier Plattenblöcke
§ 
Datenblöcke im Dateisystem an beliebigen
Stellen genutzt
§ 
Nicht notwendigerweise aufeinander folgend
§ 
Verwaltung über Freibereichsliste als
verkettete Liste:
§ 
§ 
§ 
Speichere Nummern von freien Plattenblöcken
Benutze zum Speichern der Nummern freie
Plattenblöcke, die miteinander verkettet werden
Verwaltung durch Bitmap
§ 
§ 
Bitmap mit 1 Bit für jeden Plattenblock
Plattenblock frei , entsprechendes Bit = 1
85
Freibereichsliste als verkettete Liste
1 KByte Plattenblock kann 256 Plattenadressen
speichern (je 4 Byte)
86
Verwaltung durch Bitmap
§ 
1 Bit pro Block
§ 
Bitmap hat feste Größe
§ 
Bitmap verbraucht weniger Platz
(1 vs. 32 Bit pro Block)
§ 
Nur wenn die Platte fast voll ist,
belegen verkettete Listen
weniger Blöcke als die Bitmap
§ 
Suche nach Freibereich kann
aber ineffizient sein
87
Belegung des Dateisystems
§ 
Belegung gegeben durch Anzahl genutzte
I-Nodes und Datenblöcke
§ 
Dateisystem voll, wenn
§  Entweder keine I-Nodes mehr frei oder
§  Keine Datenblöcke mehr frei
§ 
Überprüfung mittels df:
$ df -i
Filesystem
/dev/hda2
/dev/hda1
/dev/hda5
Inodes IUsed IFree IUse% Mounted on
64512 6437 58075 10%
/
6024
33
5991
1%
/boot
500960 76638 424322 16%
/usr
88
Implementierung von Hardlinks
$ ls –l
-rw-r----- 1 meier users … datei1
$ ln datei1 datei2
$ ls –l
-rw-r----- 2 meier users … datei1
-rw-r----- 2 meier users … datei2
datei1
71
I-Node Nr. 71
datei2
71
linkcount = 2
89
Implementierung symbolischer Links
$ ls –l
-rw-r----- 1 meier users … datei1
$ ln –s datei1 datei2
$ ls –l
-rw-r----- 1 meier users ... datei1
lrwxrwxrwx 1 meier users ... datei2 -> datei1
I-Node Nr. 71
datei1
71
datei2
39
I-Node Nr. 39
datei1
Datenblock einer neuen
Datei vom Typ LINK,
enthält Pfadnamen/Text
„datei1“
90
Maximale Systemgröße ext4 (1)
§ 
Standard Blockgröße: 4 KByte
§ 
Vorher: 32-Bit Blocknummern,
232 Adressierungsmöglichkeiten von Blöcken
§ 
Größe von Dateisystem beschränkt auf
232 * 4 KByte = 232 * 212 = 16 TB
91
Maximale Systemgröße ext4 (2)
§ 
ext4: 48-Bit Blocknummer
§ 
Dadurch möglich: Dateisystem mit
248 * 4 KByte = 248 * 212 = 1 EB
§ 
Zwei bislang nicht verwendete Bytes im
I-Node speichern die oberen 16 Bits
§ 
Indirekte Blockadressierung ersetzt durch
„Extents“ = Bereiche von Datenblöcken
92
Zusammenfassung (1)
§ 
Objekte zur Datenspeicherung werden
typischerweise in Verzeichnisbäumen
verwaltet
§ 
Dateien und Verzeichnisse werden vom
Dateisystem bereitgestellt und verwaltet:
§ 
§ 
Wie wird Speicherplatz verwaltet?
§ 
Welche Blöcke gehören zu welcher Datei?
Der Verzeichnisbaum kann aus mehreren
Dateisystemen zusammengebaut sein
93
Zusammenfassung (2)
§ 
Links erzeugen neue Verweise auf
(vorhandene) Objekte
§ 
Es gibt verschiedene Implementierungen für
Speicherplatzbelegung
§ 
§ 
§ 
§ 
§ 
Zusammenhängende Belegung
Verkettete Listen
Dateiallokationstabellen
I-Nodes
Die Unterschiede liegen in der Effizienz
(Speicher und Laufzeit)
94