Kapitel 4: Speicherverwaltung
Kapitel 4: Speicherverwaltung
Kapitel 4: Speicherverwaltung
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
1. Dateien<br />
2. Verzeichnisse<br />
<strong>Kapitel</strong> 4: Dateisysteme<br />
3. Implementierung von Dateisystemen<br />
4. Sicherheitsaspekte<br />
W. Lux, FH Düsseldorf Kap 4: Dateisysteme 1
1. Dateien<br />
Welche Anforderungen muß ein Dateisystem erfüllen?<br />
1. Große Mengen von Daten speichern<br />
2. Daten überdauern die Terminierung der zugreifenden Prozesse<br />
3. Mehrere Prozesse greifen gleichzeitig auf die Daten zu<br />
• Lösung<br />
– Daten werden in Dateien persistent gespeichert<br />
– Datei ist Abstraktion von Daten auf dem Hintergrundspeicher<br />
– Dateien sind nicht von der Terminierung der erzeugenden<br />
Prozesse betroffen<br />
– Dateien werden vom Benutzer gelöscht<br />
– Der Zugriff auf Dateien muss geschützt werden<br />
– Dateien werden vom Dateisystem verwaltet<br />
– Das Dateisystem ist ein Teil des Betriebssystems<br />
W. Lux, FH Düsseldorf Kap 4: Dateisysteme 2
1. Benennen von Dateien<br />
2. Dateistrukturen<br />
3. Dateitypen<br />
4. Dateizugriff<br />
5. Dateiattribute<br />
6. Dateioperationen<br />
Übersicht zu Dateien<br />
W. Lux, FH Düsseldorf Kap 4: Dateisysteme 3
5.1.1 Benennung von Dateien<br />
Wie kann ich die von mir erzeugten Daten finden?<br />
• Benutzer will seine Daten wiederfinden: Dateien haben<br />
einen Namen.<br />
• Die Konventionen für die Namensgebung sind abhängig<br />
vom jeweiligen Betriebssystem<br />
– Z.B. UNIX unterscheidet Groß- und Kleinschreibung, aber<br />
Windows nicht<br />
– Viele BS unterstützen zweigeteilte Namen, wobei die Teile durch<br />
einen Punkt getrennt werden<br />
• Der Teil hinter dem Punkt wird Dateierweiterung genannt<br />
• Windows verbindet mit der Dateierweiterung ein Programm, das bei<br />
Zugriff auf die Datei ausgeführt wird<br />
W. Lux, FH Düsseldorf Kap 4: Dateisysteme 4
Typische Dateierweiterungen<br />
W. Lux, FH Düsseldorf Kap 4: Dateisysteme 5
5.1.2 Dateistrukturen<br />
Drei mögliche Dateistrukturen:<br />
a) Unstrukturierte Folge von Bytes<br />
– BS kennt den inneren Aufbau nicht<br />
– Datei ist ein Behälter für beliebige Strukturen<br />
– Vorteil: maximale Flexibilität<br />
b) Folge von Records fester Länge<br />
– BS sieht die Folge von Records<br />
– BS kennt innere Struktur nicht<br />
– Operationen: Lesen und Schreiben ganzer Records<br />
c) Baum von Records variabler Länge mit Schlüsselfeld<br />
– BS sieht variabel langen Sätze mit ihren Schlüsseln<br />
– Operationen:<br />
• Suchen eines Satzes mit gegebenem Schlüssel<br />
• Hinzufügen eines Satzes unter einem Schlüssel<br />
W. Lux, FH Düsseldorf Kap 4: Dateisysteme 6
Beispiele für Dateistrukturen<br />
(a) Eine Datei ist eine unstrukturierte Folge von Bytes (z.B. UNIX, Windows).<br />
(b) Eine Datei ist eine Folge von Records fester Länge (Ursprung: Lochkarte)<br />
(c) Eine Datei ist ein Baum von variablen Records mit Schlüsselfeld.<br />
Die Schlüsselfelder ermöglichen eine schnelle Suche (z.B. Großrechner).<br />
W. Lux, FH Düsseldorf Kap 4: Dateisysteme 7
W. Lux, FH Düsseldorf<br />
File Structure<br />
• Three kinds of files<br />
– byte sequence<br />
– record sequence<br />
– tree<br />
Kap 4: Dateisysteme 8
5.1.3 Dateitypen<br />
Welche Arten von Daten werden in Dateien abgelegt?<br />
• Reguläre Dateien enthalten Benutzerdaten:<br />
– ASCII-Dateien: Texte mit einem Editor verarbeitet<br />
– Binärdateien: ausführbare Programme<br />
• Verzeichnisse enthalten Strukturdaten über das<br />
Dateisystem (siehe <strong>Kapitel</strong> 5.2)<br />
• Spezialdateien ermöglichen eine einheitliche Sicht auf<br />
Betriebsmittel und somit eine einfachere Nutzung<br />
– Zeichenorientierte Spezialdateien repräsentieren<br />
serielle I/O-Geräte, z.B. Terminals, Netzwerke, ...<br />
– Blockorientierte Spezialdateien repräsentieren<br />
Hintergrundspeicher, z.B. Platten, CD-ROM, ...<br />
W. Lux, FH Düsseldorf Kap 4: Dateisysteme 9
Beispiel: Aufbau einer Binärdatei in UNIX<br />
(ausführbares Programm)<br />
W. Lux, FH Düsseldorf Kap 4: Dateisysteme 10
5.1.4 Dateizugriff<br />
Wie kann ich auf meine Daten zugreifen?<br />
Man unterscheidet zwei unterschiedliche Arten des Zugriffs:<br />
• Sequentieller Zugriff:<br />
– Alle Daten werden vom Dateibeginn nacheinander gelesen<br />
– Durch „Zurückspulen“ wieder an den Anfang der Datei<br />
– Diese Methode wurde früher vom BS bereitgestellt<br />
– Heute werden nur noch Magnetbänder sequentiell gelesen<br />
• Direkter Zugriff:<br />
– Daten innerhalb einer Dateien werden in beliebiger Reihenfolge<br />
gelesen oder geschrieben<br />
– Alternativen:<br />
1. Jede Operation gibt die Startposition für den Zugriff mit oder<br />
2. Befehle zum Positionieren innerhalb der Datei (lseek in UNIX)<br />
– Neue BS ermöglichen den direkten Zugriff<br />
W. Lux, FH Düsseldorf Kap 4: Dateisysteme 11
5.1.5 Dateiattribute<br />
Dateiattribute: Verwaltungsinformationen über die Datei<br />
• Art der Verwaltungsinformationen ist abhängig vom<br />
jeweiligen BS<br />
• In UNIX werden über den stat-Systemaufruf u.A. die<br />
folgenden Attribute geliefert:<br />
– Dateityp: reguläre Datei, Verzeichnis, Spezialdatei<br />
– Eigentümer und zugehörige Gruppe<br />
– Zugriffsrechte für Eigentümer, Benutzergruppe und alle anderen<br />
Benutzer<br />
– Dateigröße in Bytes<br />
– Referenzzähler<br />
– Zeitpunkt des letzten Zugriffs<br />
– Zeitpunkt der letzten Modifikation<br />
W. Lux, FH Düsseldorf Kap 4: Dateisysteme 12
5.1.6 Dateioperationen<br />
Mit welchen Operationen kann ich meine Dateien benutzen?<br />
• create erzeugt eine Datei<br />
• open öffnet eine Datei<br />
• read liest Daten aus einer Datei<br />
• write schreibt Daten in eine Datei<br />
• seek positioniert den Schreib-/Lese-Zeiger<br />
• get-Attribut liefert die Attribute (z.B. stat-Systemaufruf)<br />
• set-Attribut ändert Attribute (z.B. chown-Systemaufruf)<br />
• close schließt die Datei, d.h. kein weiterer Zugriff<br />
• delete löscht die Datei (In UNIX nicht vorhanden, da das<br />
Löschen einer Datei über Verzeichnisse realisiert wird)<br />
• rename nennt eine Datei um (In UNIX ist rename eine<br />
Operation auf Verzeichnissen, die Namen verwalten)<br />
W. Lux, FH Düsseldorf Kap 4: Dateisysteme 13
5.2 Verzeichnisse<br />
1. Hierarchische Verzeichnissysteme<br />
2. Pfadnamen<br />
3. Verzeichnisoperationen<br />
4. Montieren von Verzeichnissen<br />
W. Lux, FH Düsseldorf Kap 4: Dateisysteme 14
5.2.1 Hierarchische Verzeichnissysteme<br />
Wie kann ich über die vielen Dateien eine Ordnung<br />
schaffen?<br />
• Verzeichnisse legen eine Struktur über die Dateien im<br />
Dateisystem<br />
• Im Laufe der Zeit gab es drei Entwicklungen:<br />
1. Die ersten BS hatten ein Verzeichnis für alle Dateien<br />
2. Nächste Stufe: ein Verzeichnis für jeden Benutzer, in dem seine<br />
Dateien festgehalten wurden<br />
3. Heutige BS besitzen ein hierarchisches Verzeichnissystem<br />
– Verzeichnisse realisieren einen (umgekehrten) Baum<br />
– Dateien sind die Blätter<br />
– Verzeichnisse sind die Äste<br />
– Root“-Verzeichnis ist Ausgangspunkt für alle Wege durch den Baum<br />
W. Lux, FH Düsseldorf Kap 4: Dateisysteme 15
Beispiel: das UNIX-Verzeichnissystem<br />
Unterverzeichnisse für<br />
•Benutzer (/usr)<br />
•Programme (/bin)<br />
•Konfiguration (/etc)<br />
W. Lux, FH Düsseldorf Kap 4: Dateisysteme 16
5.2.2 Pfadnamen<br />
Wie kann ich meine Dateien in einem hierarchischen<br />
Verzeichnissystem eindeutig benennen?<br />
• In hierarchischen Verzeichnissystemen werden Dateien und<br />
Verzeichnisse über Pfadnamen benannt.<br />
• Man unterscheidet:<br />
– Absolute Pfadnamen:<br />
• beginnen mit dem Root-Verzeichnis<br />
• enthalten alle Verzeichnisse auf dem Weg zur Datei<br />
• Beispiel in UNIX: /usr/jim/Aufgaben.txt<br />
• In Windows ist \ ist Separator zwischen den Teilnamen<br />
– Relative Pfadnamen<br />
• beginnen mit dem momentanen Arbeitsverzeichnis<br />
• Beispiel jim/Aufgaben.txt (momentanes Arbeitsverzeichnis ist /usr)<br />
• . ist das aktuelle Verzeichnis<br />
• .. das darüber liegende Verzeichnis<br />
W. Lux, FH Düsseldorf Kap 4: Dateisysteme 17
5.2.3 Verzeichnisoperationen<br />
Mit welchen Operationen kann ich auf Verzeichnisse<br />
zugreifen?<br />
• makedir erzeugt ein Verzeichnis<br />
• opendir öffnet ein Verzeichnis<br />
• readdir liest einen Verzeichniseintrag<br />
• link erzeugt einen zusätzlichen Namen für eine Datei<br />
• unlink löscht einen Verzeichniseintrag<br />
• changedir wechselt das Arbeitsverzeichnis<br />
• closedir schließt ein Verzeichnis<br />
• removedir löscht ein Verzeichnis<br />
• Zusätzlich: beim Erzeugen einer Datei wird ein<br />
Verzeichniseintrag erzeugt, z.B. creat(„/home/paul/test“,0640)<br />
W. Lux, FH Düsseldorf Kap 4: Dateisysteme 18
5.2.4 Montieren von Dateisystemen<br />
Wie kann ich gleichzeitig auf mehrere Dateisysteme<br />
zugreifen?<br />
• BS ermöglichen den parallelen Zugriff auf mehrere<br />
Dateisysteme<br />
– Standardfall: die Dateisysteme sind vom gleichen Typ<br />
– Zugriff auf Dateisysteme unterschiedlichen Typs ist möglich<br />
• Windows (bisher): über verschiedene Laufwerke, z.B.<br />
– C:\Programme\Internet Explorer\IEXPLORE.exe<br />
– H:\Acrobat Writer\setup.exe<br />
• UNIX:<br />
– Zusätzliche Dateisysteme in das Verzeichnissystem montieren<br />
– Ein einziger Verzeichnisbaum<br />
W. Lux, FH Düsseldorf Kap 4: Dateisysteme 19
Beispiel: Montieren in UNIX<br />
sbin bin dev etc home usr opt tmp<br />
mount<br />
/dev/sd1a /home<br />
/home/egon/mist.c<br />
/<br />
fritz egon<br />
mist.c<br />
bin lib share<br />
W. Lux, FH Düsseldorf Kap 4: Dateisysteme 20<br />
var<br />
docs man<br />
man1 man3<br />
root<br />
file system<br />
mount<br />
/dev/sd0c /usr<br />
mount -r<br />
/dev/sd1d<br />
/usr/share<br />
aus [Kröger]
5.3 Implementierung von Dateisystemen<br />
1. Layout von Hintergrundspeichern (Platten)<br />
2. Implementierung von Dateien<br />
3. Implementierung von Verzeichnissen<br />
4. Verwaltung von Hintergrundspeichern<br />
5. Zuverlässigkeit eines Dateisystems<br />
6. Performance eines Dateisystems<br />
W. Lux, FH Düsseldorf Kap 4: Dateisysteme 21
5.3.1 Layout von Hintergrundspeichern I<br />
Wie ist mein Hintergrundspeicher (Platten) strukturiert?<br />
• Dateien werden auf Platten gespeichert<br />
• Platten sind in Partitionen unterteilt<br />
• Eine Partition pro Platte als aktiv markiert<br />
• Auf jeder Partition kann ein Dateisystem angelegt werden<br />
• Sektor 0 einer Platte: MBR (Master Boot Record)<br />
• MBR wird beim Systemstart (Booten) benutzt<br />
• Am Ende des MBR: Partitionstabelle, in der die einzelnen<br />
Partitionen verwaltet werden<br />
• Systemstart: BIOS liest das Programm im MBR in den<br />
Hauptspeicher ein und führt es aus<br />
• Dieses Programm lädt Programm aus dem Bootblock der<br />
aktiven Partition und startet es<br />
W. Lux, FH Düsseldorf Kap 4: Dateisysteme 22
Layout von Hintergrundspeichern II<br />
• Bootprogramm lädt Betriebssystem aus dem Dateisystem<br />
der Partition und startet es<br />
• Ende des Bootvorgangs: BS übernimmt seine Aufgaben<br />
• Struktur innerhalb einer Partition: abhängig vom<br />
jeweiligen Dateisystem<br />
• Im UNIX-BS besteht die Partition aus:<br />
– Bootblock: enthält das Boot-Programm<br />
– Superblock: enthält allgemeine Verwaltungsinformationen zum<br />
Dateisystem, wie z.B. die Anzahl der Blöcke im Dateisystem<br />
– Freispeicherverwaltung: freie Blöcke im Dateisystem<br />
– I-Nodes: Verwaltungsinformationen zu den Dateien<br />
– Root-Verzeichnis als der Ausgangspunkt des Dateibaums<br />
– alle übrigen Verzeichnisse und Dateien<br />
W. Lux, FH Düsseldorf Kap 4: Dateisysteme 23
5.3.2 Implementierung von Dateien<br />
Wie werden die Blöcke auf der Platte verwaltet und<br />
welche Plattenblöcke gehören zu welcher Datei?<br />
Alternative Möglichkeiten zur Belegung von Plattenblöcken<br />
(Allokation):<br />
1. Zusammenhängende Allokation<br />
2. Allokation mittels verketteter Listen<br />
3. Allokation mittels verketteter Listen unter Verwendung<br />
des Hauptspeichers<br />
4. Allokation mittels I-Nodes<br />
W. Lux, FH Düsseldorf Kap 4: Dateisysteme 24
Zusammenhängende Allokation<br />
Wie können die Blöcke am einfachsten verwaltet werden?<br />
• Eine Datei besteht aus zusammenhängenden Blöcken<br />
• Beim Erzeugen: nacheinander folgende Plattenblöcke in der<br />
benötigten Anzahl alloziieren<br />
• Vorteile der Variante:<br />
– Einfache Implementierung: Identifikation des Anfangsblocks und die<br />
Anzahl der Blöcke werden verwaltet<br />
– Ausgezeichnete Performance: die Datei sehr schnell gelesen (wenige<br />
Positionierungen des Plattenarms)<br />
• Nachteile:<br />
– Größe der Datei muß bei der Erzeugung bereits feststehen<br />
– Speicherverdichtung ist aufwendig (Freispeicherverwaltung)<br />
• Einsatzgebiet: CD-ROMs: Dateigrößen beim Erzeugen<br />
bekannt und Dateien werden nicht gelöscht<br />
W. Lux, FH Düsseldorf Kap 4: Dateisysteme 25
Beispiel für zusammenhängende Allokation<br />
In (b) wurden die Dateien D und F gelöscht<br />
W. Lux, FH Düsseldorf Kap 4: Dateisysteme 26
Allokation mittels verketteter Listen<br />
Wie kann der Plattenplatz besser ausgenutzt werden?<br />
• Jede Datei wird durch eine verkettete Liste verwaltet<br />
• Verkettung ist in den Plattenblöcken enthalten:<br />
– Erste Wort eines Plattenblocks enthält die Nummer des folgenden<br />
Plattenblocks<br />
– Verbleibende Platz im Block enthält die eigentlichen Daten<br />
• Vorteile:<br />
– Einfache Implementierung<br />
– Es geht kein Plattenplatz durch ungenutzte Blöcke verloren<br />
• Nachteile:<br />
– Wahlfreie Zugriff auf die Daten ist extrem langsam<br />
– Alle vorangegangenen Blöcke werden von der Platte gelesen<br />
– Nummer des nächsten Blocks stört beim Paging<br />
– Seiten im Hauptspeicher enthalten nicht nur Daten<br />
W. Lux, FH Düsseldorf Kap 4: Dateisysteme 27
Beispiel für<br />
Allokation mittels verketteter Listen<br />
W. Lux, FH Düsseldorf Kap 4: Dateisysteme 28
Allokation mittels verketteter Listen unter<br />
Verwendung des Hauptspeichers<br />
Wie kann bei der Verwendung verketteter Listen der<br />
wahlfreie Dateizugriff schneller werden?<br />
• Beide Nachteile der verketteten Listen lassen sich<br />
eliminieren<br />
• Verkettete Liste in speziellen Plattenblöcken und<br />
zusätzlich im Hauptspeicher:<br />
– Die Datenblöcke enthalten wieder nur Daten<br />
– Über den Hauptspeicher kann ein schneller wahlfreier Zugriff<br />
implementiert werden<br />
• Nachteil:<br />
– Gesamte Tabelle wird im Speicher gehalten<br />
– Bei großen Platten: speicherintensiv<br />
• MS-DOS hat diesen Ansatz bei der File Allocation Table<br />
(FAT) gewählt<br />
W. Lux, FH Düsseldorf Kap 4: Dateisysteme 29
Beispiel für Allokation mittels verketteter<br />
Listen unter Verwendung des Hauptspeichers<br />
Die Datei A besteht<br />
aus den Blöcken<br />
4, 7, 2, 10 und 12<br />
W. Lux, FH Düsseldorf Kap 4: Dateisysteme 30
Allokation mittels I-Nodes<br />
Wie kann der Hauptspeicherbedarf reduziert werden?<br />
• Jede Datei besitzt eine Verwaltungsstruktur: Index-Node<br />
• Ein I-Node enthält die Dateiattribute und die Verweise auf<br />
einen Teil der möglichen Plattenblöcke:<br />
– Die ersten n Verweise zeigen direkt auf die Plattenblöcke<br />
– Die verbleibenden Verweise zeigen auf Plattenblöcke<br />
– Diese enthalten Verweise auf Plattenböcke<br />
• Auf die ersten n Plattenblöcke einer Datei: schneller,<br />
direkter Zugriff<br />
• Folgenden Plattenblöcke: zusätzliche Plattenzugriffe auf<br />
die Verwaltungsinformation<br />
• I-Node liegt im Hauptspeicher: Datei ist geöffnet<br />
• Beispiel: UNIX verwaltet seine Dateien mittels I-Nodes<br />
W. Lux, FH Düsseldorf Kap 4: Dateisysteme 31
12<br />
Beispiel für die Allokation mittels I-Nodes<br />
I-Node<br />
1<br />
1<br />
1<br />
Attr<br />
...<br />
data<br />
direkt<br />
adress.<br />
Blöcke<br />
data<br />
Blocknummer<br />
...<br />
einfach<br />
indirekter<br />
Block<br />
data<br />
data<br />
zweifach<br />
indirekter<br />
Block<br />
dreifach<br />
indirekter<br />
Block<br />
W. Lux, FH Düsseldorf Kap 4: Dateisysteme 32<br />
...<br />
... ...<br />
data<br />
data<br />
data<br />
data<br />
...<br />
...<br />
...<br />
... ...<br />
... ...<br />
data<br />
data<br />
data<br />
data<br />
data<br />
data<br />
data<br />
data<br />
aus [Kröger] Vorlesung
5.3.3 Implementierung von Verzeichnissen<br />
Wie gelangt das BS vom Pfadnamen einer Datei zu den<br />
Plattenblöcken der Datei?<br />
• Öffnen einer Datei: Pfadname angeben, um den<br />
Verzeichniseintrag für die Datei zu finden<br />
• Jeder Verzeichniseintrag enthält zwei Felder:<br />
– Den Namen einer Datei oder eines Verzeichnisses und<br />
– Einen Zeiger auf einen Plattenblock<br />
– z.B. UNIX: I-Node, MS-DOS: erster Block<br />
• BS wandelt die Teilnamen zwischen den Separatoren<br />
schrittweise in Verzeichnisseinträge um<br />
• Letzte Schritt:<br />
– Verzeichniseintrag für die Datei<br />
– Zeiger auf den Plattenblock der Datei (I-Node oder erster Block)<br />
W. Lux, FH Düsseldorf Kap 4: Dateisysteme 33
Beispiel für<br />
ein hierarchisches Verzeichnissystem<br />
log. Dateisystemstruktur<br />
6<br />
mist.c<br />
bin<br />
ls<br />
4<br />
.. .<br />
usr<br />
..<br />
..<br />
.<br />
7 .<br />
9<br />
aus Leffler et al: Design and Impl.<br />
of the 4.3BSD Operating System<br />
2<br />
vmunix<br />
5<br />
Inode-Liste<br />
root staff<br />
drwxr-xr-x<br />
andere Attr.<br />
Blockliste<br />
. 2<br />
.. 2<br />
usr 4<br />
vmunix 5<br />
W. Lux, FH Düsseldorf Kap 4: Dateisysteme 34<br />
2<br />
3<br />
4<br />
5<br />
6<br />
7<br />
8<br />
9<br />
frei<br />
root staff<br />
drwxr-xr-x<br />
andere Attr.<br />
Blockliste<br />
root source<br />
-rwxr--r--<br />
andere Attr.<br />
Blockliste<br />
egon prof<br />
-rw-------<br />
andere Attr.<br />
Blockliste<br />
root staff<br />
drwxr-xr-x<br />
andere Attr.<br />
Blockliste<br />
frei<br />
root staff<br />
-rwxr--r--<br />
andere Attr.<br />
Blockliste<br />
....<br />
. 4<br />
.. 2<br />
bin 7<br />
mist.c 6<br />
....<br />
text data<br />
int main(arg<br />
. 7<br />
.. 4<br />
ls 9<br />
....<br />
text data<br />
Directory<br />
/<br />
Directory<br />
/usr<br />
Datei<br />
/vmunix<br />
Datei<br />
/usr/mist.c<br />
Directory<br />
/usr/bin<br />
Datei<br />
/usr/bin/ls
Beispiel für<br />
die Umwandlung eines Pfadnamens<br />
Gegebener Pfadname /usr/bin/ls<br />
1. Das Verzeichnis „/“ hat den I-Node 2.<br />
2. I-Node 2: Innerhalb vom Verzeichnis „/“ für<br />
„usr“ der Hinweis auf I-Node 4<br />
3. I-Node 4: Innerhalb vom Verzeichnis „usr“ für<br />
„bin“ der Hinweis auf I-Node 7<br />
4. I-Node 7: Innerhalb vom Verzeichnis „bin“ für<br />
„ls“ der Hinweis auf I-Node 9<br />
5. I-Node 9: Verwaltungsinformation und<br />
Plattenblöcke für die gesuchte Datei ls<br />
W. Lux, FH Düsseldorf Kap 4: Dateisysteme 35
5.3.4 Verwaltung von Hintergrundspeichern<br />
1. Wahl der Größe von Plattenblöcken<br />
2. Verwaltung von freien Plattenblöcken<br />
W. Lux, FH Düsseldorf Kap 4: Dateisysteme 36
Struktur einer Festplatte<br />
•Ein Lesekopf kann in einer<br />
Positionen eine Spur lesen.<br />
•Die Spuren in einer Position<br />
bilden einen Zylinder.<br />
•Eine Spur ist in Sektoren<br />
unterteilt, meist 512 Bytes.<br />
W. Lux, FH Düsseldorf Kap 4: Dateisysteme 37
5.3.4.1 Wahl der Größe von Plattenblöcken<br />
Dateisysteme speichern eine Datei in mehreren Blöcken fester<br />
Größe.<br />
Frage: Wie groß sollte ein Block sein?<br />
Mögliche Alternativen für die Blöcke sind:<br />
• 1 Spur (z.B. 32 KB): verschwendet viel Platz, da die meisten<br />
Dateien < 10 KB<br />
• 1 Sektor (512 Bytes): führt zu schlechter Performance, da zu<br />
viele Blöcke für eine Datei<br />
• Eine gute Wahl: 4KB, d.h. 8 aufeinanderfolgende Sektoren<br />
bilden einen Block<br />
• Performantes Lesen der Blöcke, wobei der verlorene<br />
Plattenplatz akzeptabel<br />
• Vielen Betriebssysteme: 1 KB-Blöcke<br />
W. Lux, FH Düsseldorf Kap 4: Dateisysteme 38
5.3.4.2 Verwaltung freier Blöcke<br />
Wie werden freie Plattenblöcke verwaltet?<br />
Es existieren folgende Alternativen:<br />
• Liste von Plattenblöcken<br />
– Jeder Block soviel Blocknummern wie möglich<br />
– Z.B. bei 1 KB Blockgröße und 32 Bits Blocknummer: in einem<br />
Block 255 freie Blöcke<br />
• Bitmap<br />
– Für jeden Block ein Bit<br />
– Z.B. 16 GB Platte: 2 ** 24 Blöcke a 1 KB, d.h. 2048 Blöcke<br />
• Platte wenig belegt: verkettete Liste mehr Platz als Bitmap<br />
• Platte gefüllt: verkettete Liste weniger Platz, da nur wenige<br />
Einträge<br />
W. Lux, FH Düsseldorf Kap 4: Dateisysteme 39
Beispiele für die Verwaltung freier Blöcke<br />
W. Lux, FH Düsseldorf Kap 4: Dateisysteme 40
5.3.5 Zuverlässigkeit eines Dateisystems<br />
Wie kann ich sicher stellen, dass meine Daten nicht<br />
verloren gehen?<br />
• Rechner können kurzfristig ersetzt werden<br />
• Daten in ungesicherten Dateisystemen sind für immer<br />
verloren<br />
• Datenverlust: schwerwiegende Folgen<br />
• Platten haben von Anfang an defekte Blöcke<br />
– Z.B. durch ungleichmäßige Magnetisierung der Oberflächen<br />
– Defekte Blöcke bei der Formatierung der Platte erkannt und in<br />
einer speziellen Liste auf der Platte verwaltet.<br />
– Durch Alterung und physische Einwirkungen (Feuer, Wasser,<br />
Stöße, ....) steigt die Anzahl der defekten Blöcke<br />
• Die Spiegelung von Platten ist eine teure Maßnahme<br />
W. Lux, FH Düsseldorf Kap 4: Dateisysteme 41
Erzeugung und Verwaltung von Backups<br />
• Zur Sicherung der Daten: Sicherheitskopie (Backup)<br />
• Sicherung kann auf Bänder (mehrere 100 GB), CD-ROMs<br />
oder zusätzlichen Platten erfolgen<br />
• Backups werden wieder eingespielt bei:<br />
– (teilweiser) Zerstörung der Platte<br />
– unbeabsichtigter Löschung von Daten<br />
• Häufig: Verwendung von Backup-Tool<br />
• Die Sicherung kann auf folgenden Ebenen erfolgen:<br />
– physikalische Sicherung von Plattenblöcken oder<br />
– logische Sicherung von Verzeichnissen und Dateien<br />
• Anlegen eines Backups dauert lange und benötigt viel Platz<br />
• Firmen legen in einem Backup-Konzept die wesentlichen<br />
Punkte des Backups fest<br />
W. Lux, FH Düsseldorf Kap 4: Dateisysteme 42
Festlegungen im Backup-Konzept<br />
Festlegungen im Backup-Konzept:<br />
• Welche Teile des Dateisystems werden regelmäßig<br />
gesichert?<br />
– Programme werden nur bei ihrer Einspielung gesichert werden<br />
• Wie häufig werden die Daten gesichert?<br />
– Gebräuchlich: einmal pro Woche vollständiger Backup<br />
– Täglich: inkrementeller Backup<br />
– Inkrementellen Backup: nur die geänderten Dateien gesichert<br />
• Welcher Komprimierungsalgorithmus wird benutzt?<br />
• Wann werden die Backups erzeugt?<br />
– Meist in der Nacht, um das Arbeiten tagsüber nicht zu belasten<br />
• Wo werden die Backups sicher aufbewahrt?<br />
– Physikalisch entfernter Ort<br />
W. Lux, FH Düsseldorf Kap 4: Dateisysteme 43
Konsistenz eines Dateisystems<br />
Was passiert, wenn das System bei der Übertragung von<br />
modifizierten Seiten auf die Platte abstürzt?<br />
• Inkonsistentes Dateisystem: Änderungen nur teilweise<br />
auf der Platte abgespeichert:<br />
– noch nicht gespeicherte I-Nodes<br />
– fehlende oder überzählige Verzeichniseinträge<br />
– unkorrekte Freilisten<br />
• BS hat ein Prüfprogramm (UNIX: fsck, Windows:<br />
scandisk)<br />
• Prüfprogramm wird beim Booten nach einem<br />
Systemabsturz ausgeführt<br />
• Überprüfung der Konsistenz von:<br />
1. Plattenblöcken: Freiliste und Dateizuordnung sind korrekt<br />
2. Dateisystem: Referenzen in den Verzeichnissen sind korrekt<br />
W. Lux, FH Düsseldorf Kap 4: Dateisysteme 44
5.3.6 Performance eines Dateisystems<br />
Ein Plattenzugriff (insbesondere die Bewegung des Lesekopfs)<br />
ist bis zu 1 Millionen mal langsamer als ein<br />
Hauptspeicherzugriff<br />
Frage: Wie kann ich derartige Zugriffszeiten verringern?<br />
Häufig verwendete Techniken:<br />
1. Block-Cache: Blöcke, die logisch auf der Platte stehen,<br />
zusätzlich im Hauptspeicher halten<br />
2. Vorauslesen von Blöcken: in den Speicher laden, bevor<br />
sie benutzt werden<br />
3. Reduzierung der Bewegungen des Plattenarms: Blöcke,<br />
auf die häufig sequentiell zugegriffen wird, möglichst auf<br />
einem Zylinder<br />
W. Lux, FH Düsseldorf Kap 4: Dateisysteme 45
Block-Cache<br />
• Caching: Technik zur Reduzierung von Zugriffszeiten<br />
• Beispiele: <strong>Speicherverwaltung</strong>, Prozessor, Webserver<br />
• Bereits übertragene oder noch zu übertragende Blöcke<br />
zusätzlich im Hauptspeicher (Cache)<br />
• Bei Zugriffen:<br />
– Block im Cache?<br />
– Ja: Plattenübertragung entfällt<br />
– Typische Trefferraten: 85%.<br />
– Selbst Blöcke von geschlossenen Dateien verbleiben im Cache<br />
(Datei könnte wieder geöffnet werden).<br />
• Cache ist voll:<br />
– Blöcke aus dem Cache entfernen<br />
– Seitenersetzungsalgorithmus (FIFO, Second-Chance, ...) anwenden<br />
W. Lux, FH Düsseldorf Kap 4: Dateisysteme 46
Vorauslesen von Blöcken<br />
• Blöcke werden in den Cache geladen, bevor auf<br />
sie zugegriffen wird<br />
– Dies erhöht die Trefferrate<br />
– Wenn der k. Plattenblock einer Datei von der Platte<br />
geholt wird, wird auch der k +1. Block geholt<br />
– Funktioniert gut bei sequentiellem Dateizugriff<br />
– Bei häufiger Positionierung: Overhead (k + 1. Block<br />
wird nicht benötigt)<br />
• Möglichkeit zur Optimierung:<br />
– in einem Datei-Attribut festhalten, ob die Datei<br />
überwiegend sequentiell benutzt wird<br />
– Bei einer Positionierungsoperation: Attribut<br />
zurücksetzen<br />
W. Lux, FH Düsseldorf Kap 4: Dateisysteme 47
5.4. Sicherheitsaspekte<br />
• Unternehmen speichern in Dateisystemen Daten, die vor<br />
unerlaubtem Zugriff geschützt werden müssen<br />
• Die IT-Sicherheit ist ein eigener Teilbereich der BS<br />
• Grundsatz: Es gibt keine 100% Sicherheit, da immer wieder<br />
neue Angriffsformen gefunden werden<br />
• Deshalb ist die Erstellung eines anwendungsspezifischen<br />
Sicherheitskonzeptes sinnvoll:<br />
1. Bedrohungen analysieren, z.B. das unerlaubte Lesen von geheimen<br />
Dokumenten<br />
2. Risiko ihres Eintretens bewerten, z.B. das Risiko ist hoch, dass die<br />
geheimen Dokumente unerlaubt gelesen werden<br />
3. Geeignete Maßnahmen treffen, z.B. Vergabe von Berechtigungen<br />
und Protokollierung der Zugriffe<br />
W. Lux, FH Düsseldorf Kap 4: Dateisysteme 48
Sicherheit des Dateisystems<br />
• Im Folgenden nur ein kleiner Ausschnitt der IT-Sicherheit:<br />
Sicherheit des Dateisystems<br />
• Sicherheitsmaßnahmen im Bereich des Dateisystems:<br />
– Benutzer-Authentisierung:<br />
• Bei Anmeldung weisen sich Benutzer gegenüber dem BS aus<br />
• Gebräuchlichste Methode: Login mittels Passwort<br />
• Alternative Verfahren: Chip-Karte oder biometrische<br />
Merkmale wie Fingerabdruck oder Netzhaut-Muster<br />
– Autorisierung des Zugriffs:<br />
• BS prüft, ob ein Benutzer das Recht hat, die aufgerufene Operation<br />
auf dem Dateisystem auszuführen<br />
W. Lux, FH Düsseldorf Kap 4: Dateisysteme 49
Zugriffskontrolllisten<br />
• Zugriffskontrolllisten: gebräuchlichster Mechanismus<br />
zur Autorisierung innerhalb eines Dateisystems<br />
• Jede Datei und jedes Verzeichnis besitzt eine<br />
Zugriffskontrollliste<br />
• In der Zugriffskontrollliste ist festgehalten<br />
– welcher Benutzer<br />
– mit welchen Operation auf die Datei zugreifen darf<br />
• Vereinfachung der Verwaltung: Benutzer werden<br />
vordefinierten Gruppen zugewiesen<br />
• Zugriffskontrolllisten haben Einträge bzgl. der<br />
Berechtigung von Benutzern und von Gruppen<br />
W. Lux, FH Düsseldorf Kap 4: Dateisysteme 50
Beispiel: Autorisierung in UNIX<br />
• Die Zugriffskontrollliste besteht aus drei Einträgen:<br />
1. Die Berechtigungen des Eigentümers der Datei in Bezug auf die<br />
Operationen „read“, „write“ und „execute“ (Bei Verzeichnen<br />
„execute“: in das Verzeichnis wechseln)<br />
2. Die Berechtigungen der Gruppe der Datei in Bezug auf „read“,<br />
„write“ und „execute“<br />
3. Die Berechtigungen aller anderen Benutzer in Bezug auf<br />
„read“, „write“ und „execute“.<br />
• Berechtigungsprüfung:<br />
1. Das BS prüft die angeforderte Rechte beim open<br />
2. Falls Berechtigungen nicht in der Zugriffskontrollliste: Fehler<br />
3. Beim Zugriff:<br />
– Prüfung, ob Recht angefordert wurde<br />
– Z.B. write-Operation, obwohl die Datei für read-only geöffnet<br />
wurde: Fehler<br />
W. Lux, FH Düsseldorf Kap 4: Dateisysteme 51
Zusammenfassung I<br />
1. Welche Anforderungen muß ein Dateisystem aus der<br />
Benutzersicht erfüllen?<br />
• Das Dateisystem ermöglicht die persistente, langfristige Speicherung<br />
von großen Datenmengen in Dateien.<br />
• In hierarchischen Dateisystemen werden Dateien über einen<br />
Pfadnamen identifiziert.<br />
• In den meisten BS bestehen Dateien aus einer unstrukturierten Folge<br />
von Bytes, auf die ein wahlfreier Zugriff ermöglicht wird.<br />
• Dateien enthalten ASCII-Texte oder Binärdaten oder repräsentieren<br />
spezielle Geräte.<br />
• Das BS verwaltet für jede Datei Attribute, wie z.B. die letzte<br />
Modifikation<br />
• Das BS stellt geeignete Operationen für den Zugriff auf die Dateien<br />
bereit, z.B. seek zum Positionieren für den wahlfreien Zugriff.<br />
W. Lux, FH Düsseldorf Kap 4: Dateisysteme 52
Zusammenfassung II<br />
2. Wie kann ich über die vielen Dateien eine Ordnung<br />
schaffen?<br />
• Verzeichnisse legen eine Struktur über die Dateien im Dateisystem.<br />
• In heutigen Systemen sind hierarchische Verzeichnissysteme<br />
gebräuchlich.<br />
• Man unterscheidet absolute Pfadnamen, die beim Root-Verzeichnis<br />
beginnen, und relative Pfadnamen, die im Arbeitsverzeichnis<br />
beginnen.<br />
• Das BS stellt für den Zugriff auf Verzeichnisse geeignete<br />
Operationen bereit, z.B. readdir zum sukzessiven Lesen der<br />
Verzeichniseinträge.<br />
• In UNIX kann man über den Mount-Systemaufruf zusätzliche<br />
Dateisysteme, z.B. auf CDROM, in das Root-Verzeichnissystem<br />
einhängen. Man hat somit immer ein großes Verzeichnissystem.<br />
W. Lux, FH Düsseldorf Kap 4: Dateisysteme 53
Zusammenfassung III<br />
3. Wie sieht die Implementierung eines Dateisystems aus?<br />
• Eine Platte ist in Partitionen unterteilt, wobei jede Partition ein<br />
Dateisystem enthalten kann.<br />
• Jede Partition ist in Plattenblöcke unterteilt, wobei momentan eine<br />
Größe von 4 KB optimal ist.<br />
• Für die Speicherung einer Datei muß eine Menge von Blöcken<br />
alloziiert werden. Hierbei sind die Allokation mittels verketteten<br />
Listen unter Verwendung des Hauptspeichers und die Allokation<br />
mittels I-Nodes die gebräuchlichen Verfahren.<br />
• Verzeichnisse werden als eine Folge von Einträgen mit einem<br />
symbolischen Namen und einer Plattenblocknummer realisiert.<br />
• Das BS findet über diese Einträge ausgehend von einem Pfadnamen<br />
die Plattenblöcke einer Datei.<br />
• (Fortsetzung nächste Folie)<br />
W. Lux, FH Düsseldorf Kap 4: Dateisysteme 54
Zusammenfassung IV<br />
• Die Plattenplatzverwaltung hat die Aufgabe freie Plattenblöcke zu<br />
verwalten. Hier gibt es wiederum die Alternativen: Bitmap oder<br />
verkettete Listen.<br />
• Die Zuverlässigkeit eines Dateisystems kann durch regelmäßige<br />
Backups erhöht werden und die Performance lässt sich durch Block-<br />
Caching steigern.<br />
• Die Authentisierung von Benutzern und die Autorisierung des<br />
Dateizugriffs über Zugriffskontrolllisten sind elementare Mechanismen<br />
zum Schutz des Dateisystems.<br />
W. Lux, FH Düsseldorf Kap 4: Dateisysteme 55
Literatur<br />
• Harbron: File Systems, Prentice Hall, NJ, 1988<br />
• McKusick, Joy, Leffler, Fabry: A Fast File System For UNIX,<br />
ACM Trans on Computer Systems, 2:181-197, Aug 1984<br />
• Kröger: FH Wiesbaden, Betriebssysteme Vorlesung SS 2002<br />
• Silberschatz und Galvin: Operating System Concepts, John<br />
Wiley & Sons, 1999<br />
• Stallings: Operating Systems, Prentice Hall, NJ, 2001<br />
• Tanenbaum: Moderne Betriebssysteme, Prentice Hall, 2002<br />
• Tanenbaum: Vorlesung zu „Modern Operating Systems“,<br />
2001<br />
W. Lux, FH Düsseldorf Kap 4: Dateisysteme 56