Upload
bathildis-braun
View
106
Download
2
Embed Size (px)
Citation preview
Systeme 1
Kapitel 3Dateisysteme
Dateisysteme• Hauptaufgaben: – Organisation programmexterner Daten
• Progamminterne Daten werden direkt von Anwendungsprogrammen im zur Verfügung stehenden Arbeitsspeicher verwaltet.
– Definiert ein Ordnungs- und Zugriffssystem– Erlaubt den (gleichzeitigen) Zugriff mehrerer
Programme• Beispiel für ein einfaches Dateisytem:– RamFS / TempFS (Linux):
• Bereiche des Arbeitsspeichers werden als logisches Ordnungssystem genutzt.
Dateisysteme• Persistente Dateisysteme– Daten werden persistent gesichert
• Daten sind von Lebensdauer von Programmen unabhängig.– Nutzung von externen Medien
• z.B. Platten, CD-ROM, Bänder– Erlaubt die Organisation von großen Datenmengen
• Daten müssen nicht vollständig in den Arbeitsspeicher geladen werden.
• Beispiele:– (V)FAT, NTFS (MS-DOS / Windows)– ext3, XFS, ReiserFS (Linux)– ISO 9660 (CD-ROM), UDF (ISO 13346) (DVD)
Dateien• Dateien– Kleinste logische Einheit eines Dateisystems– Aus Sicht des Betriebssystems eine Sequenz von
Daten einer gegebenen Länge– Zugriff über Namen (Dateiname)
• Regeln variieren von System zu System– Beispiel: MS-DOS (FAT):
» Name: maximal 8 Zeichen» Dateierweiterung: maximal 3 Zeichen» Keine Unterscheidung zwischen Groß- und Kleinbuchstaben
– Beispiel: Linux (ext3)» Unterscheidung zwischen Groß- und Kleinbuchstaben » 255 Zeichen (ohne '/' und NUL ('\0'))
Dateitypen• Reguläre Dateien
– beinhalten Benutzerdaten• Verzeichnisse (Directory)
– Systemdatei zur hierarchischen Organisation– beinhalten reguläre Dateien
• Gerätedateien – Blockbasiert
• Lesen und schreiben in Blöcken • z.B. Platten, Diskettenlaufwerke, ...
– Zeichenbasiert• Modellierung von Seriellen- und E/A-Geräten • z.B. Maus, Tastatur, Modem
• Symbolische Links • Pipes, Sockets ...
Dateiattribute• Dateiattribute speichern Metadaten über Dateien• Beispiele:– Entstehungszeitpunkt (Datum, Uhrzeit)– Dateigröße– Zugriffsrechte:
Wer darf in welcher Weise auf die Datei zugreifen?• Zugriffsarten:
– Lesender Zugriff– Schreibender Zugriff– Ausführung
• Zugreifender– Dateieigentümer– Benutzergruppe des Dateieigentümers
Beispiel: Dateiattribute unter Linux
$ ls –ldrwxr-x--- 6 admin users 4096 Dec 02 08:10 verzeichnis-rw-r----- 1 ann users 1804 Dec 05 19:30 datei1-rwxr--r-- 1 bob users 1804 Dec 01 20:22 datei2
• Bedeutung der Felder:– Typ des Eintrags: Datei, Verzeichnis– Rechte für Besitzer, Gruppenbesitzer, alle anderen– Anzahl Einträge (Verzeichnis), Anzahl Referenzen (Datei)– Besitzer, Gruppenbesitzer– Speicherplatzverbrauch– Datum der letzten Modifikation– Name
Dateiattribute (Beispiele)
Exkurs: Rechteverwaltung unter UNIX
• Standardrechte für Verzeichnisse und Dateien:– Dateien
• „r“: Datei darf gelesen werden• „w“: Datei darf geändert werden• „x“: Datei darf als Programm ausgeführt werden
– 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
Exkurs: Rechteverwaltung unter UNIX
• Sonderrechte:• Optische Notation bei ls:• -rwsr-s--- und drwxrwxrwt– Dateien:
• SUID-Prozess läuft unter der UID des Programmbesitzers• SGID-Prozess läuft mit der GID des
Programmgruppenbesitzers– Verzeichnisse:
• SUID: Ohne Verwendung• SGID: Neu angelegte Dateien gehören der Gruppe, der auch
das Verzeichnis gehört• SVTX: Jeder darf nur löschen, was ihm gehört
Exkurs: Rechteverwaltung unter UNIX
• Beispiel SUID:-r-s--x--x … root root … /usr/bin/passwd
– Beim Aufruf von 'passwd' läuft das Programm mit der UID des Besitzers (in dem Fall root).
– SUID-root-Programme sind sicherheitskritisch!
• Beispiel SVTX:drwxrwxrwt … root root … /tmp
– SVTX verhindert, dass jeder alles löschen darf.
Verzeichnisbaum• Baumartige hierarchische Strukturierung• Ausgangspunkt Wurzelverzeichnis (UNIX: '/')• Restliche Verzeichnisse baumartig angehängt
• Absolute Pfade beginnen mit '/', z.B. '/home/meier'• Relative Pfade beginnen nicht mit '/', z.B. 'schulze'• Relative Pfade beziehen sich auf ein aktuelles
Arbeitsverzeichnis (working directory).
Dateizugriff• Sequentieller Zugriff:
– Alle Bytes einer Datei können nur nacheinander vom Anfang beginnend gelesen werden.
– Kein Überspringen– Zurückspulen möglich– Beispiel: (serielle) E/A-Gerätedateien, Bandlaufwerke
• Random-Access-Dateien (Dateien mit wahlfreiem Zugriff):– Lesen erfolgt von der gerade aktuellen Position– Beliebiges Festlegen der aktuellen Position durch Seek-
Operation möglich– Beispiel: Dateien auf Festplatten
Dateienoperationen• Operationen entsprechen Systemaufrufen
– Create: Erzeugen– Delete: Löschen– Open: Öffnen– Close: Schließen– Read: Lesen von aktueller Position– Write: Schreiben an aktuelle Position– Append: Anhängen an Dateiende– Seek: Bei Random-Access-Dateien aktuelle Position bestimmen– Get attributes: Lesen der Dateiattribute– Set attributes: Verändern der Dateiattribute– Rename: Umbenennen
Verzeichnisoperationen• Operationen entsprechen Systemaufrufen
– 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
• Aber: kein Write!– Verzeichniseinträge werden nur geschrieben bei Create etc. auf
Dateien.
Systeme 1
Kapitel 3.1Implementierung von
Dateisystemen
Festplatten
• Dateisystem z.B. auf Festplatten• Festplatten bestehen aus mehreren Platten
• Platte ist eingeteilt in Sektoren
Festplatten Layout
• Sektor 0 der Platte enthält MBR (Master Boot Record).– Verwendet beim Booten– Partitionstabelle mit Anfangs- und Endadresse jeder Partition– Eine aktive Partition
• Bootvorgang:– BIOS liest MBR ein.– Lokalisierung der aktiven Partition– Einlesen und Ausführen des Bootblocks der aktiven Partition– Bootblock enthält den Bootloader, dieser lädt das Betriebssystem (-> hat Kenntnis über
Dateisystem).
Festplatten Layout
• Bootblock lädt Dateisystem der Partition.• Superblock des Dateisystems enthält Schlüsselparameter des
Dateisystems (z.B. Schreibschutzmarkierung, Name des Dateisystemtyps etc.).
• Freispeicherverwaltung: Informationen über freie Blöcke im Dateisystem• I-Nodes:
– Liste von Datenstrukturen– Eine Datenstruktur pro Datei mit wesentlichen Informationen über Datei
• Datenblöcke: Eigentliche Inhalte der Dateien.
Realisierung von Dateien
• 3 verschiedene Alternativen zur Realisierung von Dateien:– Zusammenhängende Belegung– Belegung durch verkettete Listen– I-Nodes
Realisierung von Dateien
• Abspeicherung von Dateien als zusammen-hängende Menge von Plattenblöcken:
Realisierung von Dateien• Abspeicherung von Dateien als
zusammenhängende Menge von Plattenblöcken:
• Vorteil: schnelles sequentielles Lesen einfache Implementierung
Realisierung von Dateien• Abspeicherung von Dateien als zusammenhängende Menge von
Plattenblöcken:Problem: Löschen von Dateien D und F
Fragmentierung der Platte!• Verschiebung der Blöcke?• Verwaltung der entstehenden Löcher in Freilisten?• Was passiert, wenn man eine Datei erzeugt, deren Größe aber noch
unbekannt ist? Zusammenhängende Belegung im Allgemeinen - keine gute Idee!• Aber: Wird benutzt in Spezialfällen wie Dateisysteme für CD-ROMs.
Realisierung von Dateien
• Speichere Dateien als verkettete Listen von Platten-blöcken– Dateiinhalt wird auf Blöcke gleicher Größer verteilt
Realisierung von Dateien
• Speichere Datei als verkettete Listen von Plattenblöcken– Dateiinhalt wird auf Blöcke gleicher Größer verteilt
• Vorteile– Keine Fragmentierung– Sequentielles Lesen
• Nachteile– Wahlfreier Zugriff
• Zugriff auf Block n: Starte bei Block 0 und verfolge alle Blöcke n-1 Blöcke
=> n-1 langsame Lesezugriffe auf die Platte
Realisierung von Dateien (FAT)Speichere Datei als verkettete Listen von Plattenblöcken• Verbesserung:– Halte Information über Verkettung der Blöcke im
Hauptspeicher– Ersetze bei wahlfreiem Zugriff Plattenzugriffe durch
(schnellere) Hauptspeicherzugriffe Datei-Allokationstabelle bzw. FAT im Hauptspeicher
• Methode benutzt in – MS-DOS (FAT-12, FAT-16, FAT-32)– Windows 95, Windows 98 (FAT-32)– Windows 2000 (u.a. FAT-32)
Realisierung von Dateien (FAT)
Realisierung von Dateien (FAT)Speichere Datei als verkettete Listen von Plattenblöcken• Vorteil:
– Da FAT im Hauptspeicher abgelegt, muss bei wahlfreiem Zugriff auf Block n nur eine Kette von Verweisen im Hauptspeicher verfolgt werden.
• Nachteil:– Größe der FAT im Speicher!– Anzahl der Einträge = Gesamtzahl der Plattenblöcke– Auch wenn Platte fast komplett unbelegt!
• Beobachtung:– Man braucht Verkettung der Plattenblöcke nur für aktuell bearbeitete
Dateien!-> I-Node-Konzept (UNIX, LINUX)
Realisierung von Dateien (I-Node)
• Zu jeder Datei gehört eine Datenstruktur der sog. I-Node (Index-Node)
• I-Node ermöglicht Zugriff auf alle Blöcke der Datei.
• I-Node muss nur dann im Speicher sein, wenn eine Datei offen ist.– Wenn k Dateien offen und I-Node n Bytes
benötigt, dann nur k * n Byte insgesamt.
Bsp.: UNIX System VI-Node einer Datei enthält– alle Attribute der Datei– m Adressen von Plattenblöcken– (UNIX System V: m = 10)
Realisierung von Dateien (I-Node)
• Kleine Dateien bis 10 x 1 KByte (bei Blockgröße 1 KByte):
Realisierung von Dateien (I-Node)
• Für größere Dateien werden Datenblöcke zur Speicherung von weiteren Plattenadressen genutzt
• Bsp.: – Blockgröße 1 KByte– Größe eines Zeigers auf Plattenblock: 4 Byte
-> 256 Zeiger passen in einen Plattenblock– Nach 10 (direkten) Plattenadressen gibt es im I-Node
Zeiger auf Block mit 256 weiteren Plattenadressen -> Insgesamt Dateien bis zu
(10 + 256) x 1 KByte = 266 KByte möglich.
Realisierung von Dateien (I-Node)
Realisierung von Dateien (I-Node)
• Noch größere Dateien.
Realisierung von Dateien (I-Node)
• Bei – Blockgröße 1 KB,– Zeigergröße 4 Byte – erhält man über doppelt indirekten Block 256 x 256 =
65536 Zeiger auf Datenblöcke.• Zusätzlich noch dreifach indirekter Block …
• Frage: Wie groß ist mit diesen Parametern die maximale Dateigröße?Übung
Realisierung von Dateien (I-Node)
• Attribut-Informationen von I-Nodes
* Hier 3-Bytes für eine Adresse
*
Realisierung von Verzeichnissen
• Verzeichnisse sind ebenfalls Dateien!• Sie liefern eine Abbildung von – Datei- bzw. Verzeichnisnamen – auf I-Node-Nummern.• Jeder Verzeichniseintrag ist ein Paar aus Name und I-
Node-Nummer.
• Über I-Nodes kommt man dann zu Dateiinhalten.
Realisierung von Verzeichnissen
tmp etc var usr lib home
bin man lib meier mueller schulze
games mail news work
/
Verwaltung freier Plattenblöcke• Datenblöcke im Dateisystem an beliebigen
Stellen genutzt.• Nicht notwendigerweise aufeinander folgend.• Verwaltung freier Blöcke:– Über Freibereichsliste als verkettete Liste:
• Speichere Nummern von freien Plattenblöcken• Benutze zum Speichern der Nummern freie Plattenblöcke,
die miteinander verkettet werden– Bitmap
• Bitmap mit 1 Bit für jeden Plattenblock• Plattenblock frei , entsprechendes Bit = 1
Verwaltung freier Plattenblöcke
Belegung des Dateisystems• Belegung gegeben durch Anzahl genutzter I-Nodes und
Datenblöcke.• Dateisystem voll, wenn
– Keine I-Nodes mehr frei oder– Keine Datenblöcke mehr frei.
• Überprüfung mittels df:
$ df -iFilesystem Inodes IUsed IFree IUse% Mounted on/dev/hda2 64512 6437 58075 10% //dev/hda1 6024 33 5991 1% /boot
Zusammenfassung• Objekte zur Datenspeicherung werden meist in
Verzeichnisbäumen in Form von Dateieinträgen verwaltet.
• Dateien und Verzeichnisse werden vom Dateisystem bereitgestellt.
• Der Verzeichnisbaum wird aus mehreren Dateisystemen zusammengebaut.
• Verschiedene Implementierungsvarianten für Dateisysteme
• Unterschiede liegen in Effizienz (Speicher und Laufzeit).• Geeignete Wahl des Dateisystems wird bestimmt durch
Eigenschaften des physikalischen Speichermediums.