05.10.2013 Aufrufe

Kapitel 4: Speicherverwaltung

Kapitel 4: Speicherverwaltung

Kapitel 4: Speicherverwaltung

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!