Überblick 5. Dateisysteme 5.1 Grundlagen über Dateien und Verzeichnisse 5.2 Layout eines Dateisystems 5.3 Verwaltung des Plattenspeichers und Leistungsaspekte 5.4 NTFS Dateisystem O. Kao Betriebssysteme 5-1 5.1 Definition Dateisystem Dateisystem ist das meist sichtbare Konzept eines Betriebssystems Mechanismus für online Speicherung und Zugriff auf Daten, Programme, für alle Benutzer Allgemein bekannte Schlüsselwörter Datei (file): Sammlung von Daten auf einem stabilen Speicher Verzeichnisse (directory, folder): Beinhalten eine Sammlung von Dateien und sind selbst in Verzeichnisstrukturen organisiert Partitionen: Physische oder logische Aufteilung der Verzeichnisstrukturen in kleinere Teilmengen Definition Dateisystem Abstraktionsmechanismus, um Daten auf einem Speichermedium in geeigneter Form zugänglich zu machen Persistente Speicherung großer Informationsmengen Abstraktion der Details für die Datenablage Gleichzeitiger Zugriff auf die Daten durch mehrere Prozesse möglich Schutzmechanismus für den Datenzugriff O. Kao Betriebssysteme 5-2
Organisationsform der Dateien Alphanumerisch oder binär Textdateien: Daten werden zeilenweise eingelesen Objektdateien: Bytesequenz wird in Speicher geladen und ausgeführt Strukturierung Lineare Folge von Bits, Bytes: Struktur der Datei wird durch die Anwendung bestimmt und beim Einlesen interpretiert Sequenz von Linien/Datensätzen: Einlesen/Überschreiben von zusammengesetzten Strukturen fester Größe Hierarchisch: Jeder Datensatz wird über einen Schlüssel identifiziert und anschließend eingelesen Hierarchisch Bytes Datensätze O. Kao Betriebssysteme 5-3 Dateiattribute (Auswahl) Name: Symbolischer Bezeichner, aussagekräftig für Benutzer und üblicherweise zweigeteilt 1. Benutzervergebener Name der Datei 2. Dateierweiterung: Hinweis zu Dateiinhalt und Zuordnung zu einem Verarbeitungsprogramm (www.zingel.de/extn.htm) Bezeichner: Eindeutige üblicherweise numerische Beschreibung der Datei im Dateisystem Dateityp, z.b. bei UNIX reguläre Dateien (alphanumerisch oder binär), Verzeichnisse, spezielle Gerätedateien Position: Zeiger auf den Speicherplatz der Datei (Gerät, Position) Größe: Aktuelle Dateigröße in Bytes, Wörtern oder Blöcken Benutzer- und Zugriffsinformationen: Wer darf lesen / schreiben / ausführen, Zeit und Datum: Erstellung, letzter Zugriff, letzte Modifikation, O. Kao Betriebssysteme 5-4
Dateitypen: Beispiel ausführbare Datei Binäre Dateien nur dann ausführbar, wenn sie das richtige Format haben Identifizierung durch Header (siehe /usr/share/magic) Magic Number: Datei ist ausführbar Größenangaben der unterschiedlichen Dateibereiche (Text, Daten, ) Einstiegspunkt: An welcher Stelle soll die Ausführung des in der Datei enthaltenen Codes beginnen? Kern der Datei Codeinformationen Statische Daten Relokationsbits zur Anordnung von Code und Daten im Hauptspeicher Symboltabelle, falls Debugging notwendig O. Kao Betriebssysteme 5-5 Sequentieller Zugriff Zugriffsarten Bytes/Datensätze werden nacheinander untersucht, bis der gesuchte Datensatz gefunden und eingelesen ist kein Springen über Datensätze außerhalb der Reihenfolge möglich Wahlfreier Zugriff (Random Access) Datei aus logischen Einheiten (z.b. Blöcken), die direkt angesteuert und in jeder beliebigen Reihenfolge gelesen werden können (z.b. Festplatten) Schreib- und Leseoperationen bekommen Blocknummer als Parameter Logische Nummer, die zur Laufzeit in eine physikalische Adresse umgewandelt wird Effiziente Abbildung zusammenhängender Blöcke auf Speichermedium notwendig O. Kao Betriebssysteme 5-6
Indexbasierter Zugriff Speicherung ausgewählter Dateiattribute zur Beschleunigung des Zugriffs auf die eigentlichen Datensätze 1. Suche: Bearbeitung des Index für das eingegebene Attribut zur Ermittlung der Datensatzadresse 2. Direkter Zugriff auf die Daten Index Logische Blöcke O. Kao Betriebssysteme 5-7 Grundlegende Operationen für Dateiverwaltung Create: Datei erzeugen, Attribute setzen Delete: Datei löschen Open: Datei zum Lesen/Schreiben öffnen, Attribute in Hauptspeicher übertragen schnellerer Zugriff Close: Datei schließen, Pufferinhalte leeren, temporäre Tabellen löschen Read/Write: Lesen/Schreiben i.d.r. ab der aktuellen Position Append: Datensätze werden ans Ende der Datei angefügt Seek: Angabe einer Position bei wahlfreiem Zugriff als Startpunkt für Suche, i.d.r. als Verschiebung vom Dateibeginn oder -ende Get attributes: Auslesen der Dateiattribute, um die Zugriffsberechtigung oder eine Modifikation (Zeitstempel) zu überprüfen Set attributes: Nachträgliche Änderung der Attribute, z.b. Änderung des Dateieigentümers, der Zugriffsrechte, Rename: Umbenennen einer Datei O. Kao Betriebssysteme 5-8
Verzeichnisse Hierarchische Verzeichnissysteme: Einbettung von Benutzer- und Systemverzeichnissen Erhöhung von Sicherheit durch Zugriffsrechte und Benutzeridentifikation Komfort: jeder Benutzer hat alle Namen zur Verfügung Pfadnamen Vollständige Dateispezifikation über Verzeichnis und Name Absoluter Pfad: Weg vom root-verzeichnis aus Relativer Pfad: Weg vom aktuellen (Arbeits) Verzeichnis Spezielle Symbole:. oder.. oder ~ Operationen mit Verzeichnissen Analog zu Dateien Create/Delete/Rename Opendir/ReadDir/CloseDir O. Kao Betriebssysteme 5-9 Linking Linking = Verweis auf eine bereits existierende Datei in einem anderen Verzeichnis Datei kann in mehreren Verzeichnissen sichtbar sein Link: Erzeugt eine Verbindung zu dem angegebenen Pfad Unlink: Entfernt die Verbindung Hard links: Verweis wird in internen Verzeichnisstrukturen verankert keine Unterscheidung zwischen Datei und Verbindung möglich Soft (symbolic) links: Erzeugen nur einen Verweis auf eine Datei, die sich über das gesamte Dateisystem erstrecken kann O. Kao Betriebssysteme 5-10
5.2 Layout eines Dateisystems Aufteilung der Festplatten in Partitionen Sektor 0 der Festplatte: MBR (Master Boot Record) Lokalisierung der aktiven Partition beim Booten Verwendung der Partitionstabelle (Start/End-Adresse aller Partitionen, aktive Partition) Bootblock: Erster Block einer jeden Partition Bootblock der aktiven Partition wird ausgeführt und lädt das Dateisystem Superblock: Schlüsselparameter des Dateisystems (Magische Nummer zur Identifizierung, Anzahl Blöcke, administrative Informationen) Liste der freien Blöcke Verwaltungsstrukturen für die existierenden Dateien und Verzeichnisse Partitionstabelle MBR Partition 1 Partition 2 Partition n Bootblock Superblock Freispeicher I-Nodes root Dateien und Verzeichnisse O. Kao Betriebssysteme 5-11 Physische Struktur Wichtige Merkmale eines Dateisystems Abbildungsschema auf die Datenträgergeometrie Abbildung der Dateien auf die physischen Objekte des Speichermediums, wie Sektoren, Zylinder und Plattenoberflächen Zugriffs-/Modifikationsalgorithmen (Öffnen, Schreiben, Positionieren, ) Logische Struktur Darstellung des Dateisystems gegenüber einem Benutzer Anordnung von Dateien in einer Verzeichnisstruktur Dateibezeichner und Metainformationen, Zugriffsberechtigungen Zwei-Phasen-Realisierung Abbildung Dateien Fortlaufend nummerierte Blöcke fester Länge Abbildung Datenblöcke spezifische Geometrie des Speichermediums Hohe Zugriffsgeschwindigkeit durch geeignete Blockpositionierung Minimierung der Wahrscheinlichkeit von Datenverlusten im Fehlerfall O. Kao Betriebssysteme 5-12
Zusammenhängende Zuordnung Dateien Datenblöcke Einfachste Abbildung: Zusammenhängende Belegung Dateiblöcke gleicher Größe werden direkt hintereinander abgelegt Vorteile Dateizugriff mit maximaler Effizienz Lesen einer Datei mit einer kontinuierlichen Operation Direkter Zugriff auf einzelne Blöcke möglich Einfache Verwaltung, da lediglich die Länge und die Indexnummer des ersten Datenblocks bekannt sein müssen O. Kao Betriebssysteme 5-13 Nachteile Zusammenhängende Zuordnung Dateien Datenblöcke (2) Fragmentierung des Datenträgers durch Löschen/Anlegen von Dateien unterschiedlicher Länge Probleme, wenn mehrere Dateien zum Schreiben offen gehalten werden müssen Nur in speziellen Fällen brauchbar Wiederentdeckung durch Beschreiben von CD- ROMs / DVDs O. Kao Betriebssysteme 5-14
Belegung durch verkettete Listen Dateien können beliebig auf die Datenblöcke verteilt werden Zuordnung erfordert geeignete Datenstrukturen Interne Verkettung Externe Verkettung Indexblöcke Interne Verkettung ohne Verwaltungsdatenblöcke Startblock ist direkt im Dateiverzeichnis abgelegt Jeder Block verweist auf seinen Nachfolger Ausschließlich sequentielles Lesen möglich Datei A B Block 0 A Block 1 B Block 1 B Block 2 A Block 0 A Block 2 B Block 3 Datei B 0 1 2 3 4 5 6 O. Kao Betriebssysteme 5-15 Vorteile Keine externe Fragmentierung, Größenvorgabe nicht nötig Einfaches Anlegen von Dateien (Ein Verzeichniseintrag) Nachteile Teil des Blocks reserviert für Zeiger interne Fragmentierung Ineffizienter Zugriff: Auswertung vorhergehender Blöcke beim Zugriff notwendig Zuverlässigkeit: Dateiverlust durch Zerstörung eines Blocks. Doppeltverkettung vergrößert die interne Fragmentierung Abhilfe: Gruppierung mehrerer Blöcke in Cluster Belegung durch verkettete Listen (2) O. Kao Betriebssysteme 5-16
Externe Verkettung mit Hilfstabelle Externe Verkettung mit Hilfstabelle (File Allocation Table, FAT) (MS-DOS, OS/2= Eigenschaften der Allokationstabelle Je eine Zeile pro Block des externen Speichers mit Verweis auf Adresse des nächsten Blocks FAT wird an fest reservierter Stelle einer Partition gehalten und laufend aktualisiert Startblock der Datei wird im Dateiverzeichnis abgelegt Dateiende durch NULL-Zeiger angezeigt Nachteile Anfang Datei B Anfang Datei A Phys. BlockNr. Ineffizienter Zugriff, da bei jedem Zugriff ein Lesevorgang für die FAT notwendig ist Sprung an Partitionsanfang Redundante FAT-Sicherung, um Datenverluste zu vermeiden O. Kao Betriebssysteme 5-17 0 1 2 3 4 5 6 Ende Datei B Nächster Datenblock 2 5 3 6 1 7 NULL Indexblöcke Dateispezifisches Feld von Indizes zur Identifikation der belegten Blöcke Jeder Datei wird eine Datenstruktur (Indexblock) zugeordnet Indexblock ist nur dann im Speicher, wenn die Datei geöffner ist Ein Verzeichniseintrag verweist auf den Indexblock Der Indexblock wird selber auf die Festplatte gespeichert Ein Indexblock reicht nicht aus, um alle Indizes einer langen Datei aufzunehmen Erweiterung zur Verwendung mehrerer Indexblöcke Indizes verweisen auf weitere Indexblöcke statt auf Datenblöcke Baumstruktur analog zum Aufbau mehrstufiger Seitentabellen Physikalische Blöcke O. Kao Betriebssysteme 5-18
Indexblöcke (2) Zugriffsschema bei Indexblöcken Lese den Indexblock Lese die i -te Zeile für den Zugriff auf den i -ten Block aus Folge den Zeiger zur Blockposition Vorteil: Speicherplatzersparnis Tabelle zur Speicherung der verketteten Liste aller Dateiblöcke wächst linear mit Fesplattengröße (Festplatte mit n Blöcken maximal n Einträge) Bei Indexblöcken wächst die Größe des Arrays proportional zur maximalen Anzahl von gleichzeitig geöffneten Dateien, irrelevant, ob die Festplatte 1 GByte, 10 GByte oder 100 GByte groß ist O. Kao Betriebssysteme 5-19 Indexblöcke heißen bei UNIX I-Nodes Kombiniertes Schema Direct blocks: Zeiger auf Daten Zugriff auf den Dateianfang ohne Umwege Single indirect: Verweis auf Block mit Adressen der weiteren Blöcke Double indirect: Zwei Zwischenstufen, Indexblöcke (3) O. Kao Betriebssysteme 5-20
Realisierung von Verzeichnissen Verzeichniseinträge speichern die Position mindestens des ersten Dateiblocks und evtl. weitere Attribute (Eigentümer, Entstehungszeit, Zugriffsmodus, ) 1. Einfache Organisation: Alle Informationen werden im Verzeichniseintrag gespeichert Verzeichnis ist Liste von Einträgen (z.b. MS-DOS) 2. I-Node-basierte Verzeichnisse haben kürzere Einträge, die den Dateinamen und die Nummer des I-Nodes aufnehmen (UNIX) 1 Spiele Attribute 2 Mails Attribute News Attribute Source Attribute Spiele Mails News Source Datenstrukturen mit Attributen Problem bei diesen Ansätzen ist die Länge des Dateinamens Beschränkung auf kurze Namen (8+3 bei MS DOS, 14 Zeichen bei UNIX) Bei beliebigen Namen (bis 255 Zeichen) Speicherplatzverschwendung O. Kao Betriebssysteme 5-21 5.3 Verwaltung des Plattenspeichers Ausgangssituation: Fast alle Dateisysteme teilen die Dateien in Blöcke fester Größe auf Wie groß soll ein solcher Block sein? Spuren, Sektoren, Zylinder geräteabhängig, ungeeignet Kompromiss zwischen Zugriffsgeschwindigkeit und Fragmentierung Beispiel Datenrate/Platzbelegung als Funktion von der Blockgröße bei einer mittleren Dateigröße von 1680 Bytes Übliche Parameter In Beispielen: 4 KByte pro Block UNIX: 1 KByte MS-DOS: 2er Potenz (512 Byte 32 KByte), abhängig von Platte, maximal 2 16 Blöcke/Partition Datenrate (KByte/s) Belegung des Plattenplatzes Datenrate Blockgröße (Byte) O. Kao Betriebssysteme 5-22 Plattenbelegung (Prozent)
Verwaltung freier Blöcke: Listen und Bitmaps Verkettete Listen Blöcke (z.b. 1 KByte) werden durchnummeriert 32 Bit Jeder Block speichert max. 255 Verweise auf freie Blöcke und einen Zeiger auf den nächsten freien Block Für 16 GByte Festplatte sind 2 24 Verweise (16794 Blöcke) notwendig Blöcke mit Zeigern können in freien Blöcken abgelegt werden Im Hauptspeicher wird ein Zeiger auf den ersten Block der Freiliste gehalten. Benötigte Blöcke werden anhand der Zeiger des ersten Blocks entnommen, bis dieser aufgebraucht ist nächster Block Bitmaps Ein Bit signalisiert den Status des Blocks (z.b. frei =0 / belegt = 1) Für 16 GByte Festplatte sind 2 24 Bits (2048 Blöcke) notwendig Vorteilhaft durch Belegung zusammenhängender Blöcke Langsamer Zugriff auf freie Blöcke Verkettete Liste belegt bei vollen Platten u.u. weniger Platz als Bitmap O. Kao Betriebssysteme 5-23 Verwaltung freier Blöcke (2) Freie Plattenblöcke: 16, 17, 18 Ein 1 KByte Plattenblock kann 256 je 32 Bit Plattenblocknummern speichern Datenstruktur Bitmap O. Kao Betriebssysteme 5-24
Disk quotas (Plattenkontingente) Maximal erlaubte Anzahl von Dateien und Blöcken, die ein bestimmter Benutzer belegen kann Unterscheidung zwischen Soft- und Hardblocklimits bzw. Dateilimits Soft limits: Überschreitung x Mal möglich, x a-priori definiert und enthält die entsprechende Anzahl von Warnungen Benutzer dürfen ihre Kontingente kurzfristig überschreiten, vor dem Abmelden werden jedoch die Daten wieder gelöscht Falls nicht, wird beim erneuten Anmelden überprüft, ob ein Softlimit für die Anzahl Blöcke oder Dateien überschritten ist Falls ja Warnmeldung und x = x - 1 Ist x = 0 Keine weitere Anmeldung möglich, Diskussion mit Sysadmin Hard limits: dürfen nicht überschritten werden, Speicherung endet mit einer Fehlermeldung Realisierung der Quotas mit zwei Tabellen Tabelle 1: Details der geöffneten Datei, Benutzer, Zeiger auf Quotatabelle Tabelle 2: Belegung insgesamt, Angaben Soft/Hard limits, Anzahl verbleibender Warnungen O. Kao Betriebssysteme 5-25 Leistungsaspekte: Interaktion Cache Dateisystem Treiber Beschleunigung durch Caching der zu schreibenden Blöcke Festplattentreiber sortiert die Schreibaufträge zur Optimierung der Schreibvorgänge bzgl. Anzahl der notwendigen Suchvorgänge des Festplattekopfs und bzgl. aktuelle Plattenposition Strategien bei Schreiben gecachter Daten auf Festplatte Write through (Synchronous Write): Abschaltung des Caches Daten und Metainformationen werden sofort geschrieben Careful write: Verzögertes Schreiben Alle Schreiboperationen erfolgen spätestens nach einer vorgegebenen Maximalverzögerung Inkonsistenzen beim Systemausfall möglich Lazy write: Änderungen werden zunächst nur im Cache durchgeführt Zyklische Analyse des Speichermediums, z.b. alle 30 Sekunden nach Systemausfall gravierende Inkonsistenzen möglich Bei NTFS: Logdatei zur Rekonstruktion von Schreibvorgängen O. Kao Betriebssysteme 5-26
Weitere Leistungsaspekte Vorauslesen von Blöcken Wird ein Block angefordert, so werden die darauf folgenden Blöcke gleich mit ausgelesen Blöcke sind im Cache, wenn sie gebraucht werden Vorgehensweise vom großen Vorteil bei sequentiellen Dateien, aber nachteilig bei wahlfreiem Zugriff (Bandbreitenverlust, unnötige Cachebelegung) Anpassung an aktuelles Verhalten notwendig Virtuelle Festplatten (RAM Disk) Ein Teil des Hauptspeichers wird als virtuelle Festplatte ausgewiesen schneller Schreib/Lesezugriff bei temporären Dateien Unterschied zu Diskcache: RAM Disk ist unter voller Kontrolle des Benutzers Optimierung der Blockanordnung Reduktion der Suchvorgänge durch sequentielle Anordnung zusammenhängender Blöcke Vergabe von größeren Einheiten Zusammenfassung und Anordnung der I-Nodes, Blöcke und Freilisten für einzelne Zylindergruppen O. Kao Betriebssysteme 5-27 Zuverlässigkeit von Dateisystemen: Konsistenz Konsistenzüberprüfung Vergleich der Daten in den Verzeichnissen mit den Datenblöcken auf der Festplatte und ggf. Behebung der Inkonsistenzen Kritisch bei I-Nodes, Verzeichnisblöcken, Listen freier Segmente Realisierung mit Hilfsprogrammen wie scandisk, fsck, Überprüfung von Dateien und Blöcken Vorgehensweise bei Blöcken Zwei Tabellen mit Zählern, wie häufig ein Block vorkommt in Einer Datei Der Liste mit freien Segmenten Auslesen aller I-Nodes und Überprüfung aller Blöcke Bei Konsistenz ist jeder Block in genau einer Tabelle Konsistenter Zustand Vermisster Block Blocknummer O. Kao Betriebssysteme 5-28
Konsistenzüberprüfung (2) Was kann passieren? Vermisster Block: Speicherplatzverschwendung Freiliste aktualisieren Datenblock doppelt als frei ausgewiesen Freiliste aktualisieren Block kommt in zwei Dateien vor kritischer Fall Wird eine Datei gelöscht, so wird der Block als frei gekennzeichnet Block wird kopiert beide Dateien haben eigenen Block Meldung an Benutzer, da eine Datei evtl. durcheinander gebracht wurde Block zweimal frei Block in zwei Dateien Blocknummer Verzeichnisüberprüfung Analoger Zähler für Dateien statt Blocks Rekursive Untersuchung des Verzeichnisbaums und der I-Nodes Bei Konsistenz stimmen beide Zähler überein Fehler: Überflüssige I-Nodes oder doppelte Einträge O. Kao Betriebssysteme 5-29 Backup Backup: Datensicherung auf redundante Speichermedien Restore: Wiederherstellung verlorener/veränderter Daten anhand der Backup-Kopien nach Festplattencrash und anderen Katastrophen Datenverlust nach Fehlbedienung Unterscheidung: Vollständige und inkrementelle Sicherung Vollständige Sicherung: Alle Daten werden auf Backupmedium kopiert Inkrementelle Sicherung: Sicherung aller Daten, die sich z.b. während der letzten 24 Stunden, d.h. seit der letzten Sicherung geändert haben Üblich: Wöchentliche vollständige Sicherung (etwa Wochenende) und tägliches inkrementelles Backup Sicherung eines Zyklus (etwa 3-4 Wochen) auf unterschiedlichen Medien Von Zeit zu Zeit Vollständige Sicherung, die nicht überschrieben wird, d.h. ein bestimmter System- und Datenzustand wird konserviert Backupmedien sollen vor Gefahren wie Feuer, Wasserschäden, Erdbeben, Raub, usw. geschützt werden O. Kao Betriebssysteme 5-30
Backup (2) Physische Datensicherung Beginnend mit Block 0 werden alle Blöcke der Festplatte auf ein Band geschrieben Überspringen freier Blöcke Speicherung der Blocknummer notwendig Zugriff auf Bitmap erforderlich, um defekte und daher ausgeblendete Blöcke zu erkennen Vorteil: einfach und schnell Nachteil: keine Inkrementelle Sicherung möglich Logische Datensicherung Beginnend bei einem oder mehreren vorgegebenen Verzeichnissen werden alle Unterverzeichnisse rekursiv durchlaufen und die darin enthaltenen Dateien gesichert Auf dem Band werden sorgfältig identifizierte Dateien abgelegt Restauration gesicherter Dateien einfach Standardvorgehensweise bei den meisten Betriebssystemen O. Kao Betriebssysteme 5-31 Backup (3): Sicherung eines Beispieldateisystems Alle Verzeichnisse, die auf einem Pfad zu einer modifizierten Datei liegen, werden gesichert, obwohl sie selbst nicht verändert wurden Wiederherstellung modifizierter Dateien auf einem frischen System durch vollständigen Pfad möglich Restaurationsort, Besitzer, Zugriffsmodi, Zeiten werden korrekt hergestellt, obwohl das Homeverzeichnis der Datei gelöscht wurde O. Kao Betriebssysteme 5-32
Backup (4): Sicherungsalgorithmus in vier Phasen a) Rekursives Durchlaufen aller Verzeichnisse. Aufbau einer Bitmap, die mit den Nummern der I-Nodes indiziert wird. Für jede modifizierte Datei wird der entsprechende Eintrag markiert. Alle Verzeichnisse werden verändert oder nicht markiert b) Erneuter rekursiver Durchlauf und Aufhebung der Markierung aller Verzeichnisse, die keine modifizierten Dateien enthalten c) Nun ist es bekannt, welche Verzeichnisse und Dateien gesichert werden müssen Erweiterung der Dateien um Attribute und Sicherung d) Analog für die Verzeichnisse: Erweiterung um Attribute und Sicherung O. Kao Betriebssysteme 5-33 Log-basierte Dateisysteme Aktuelle Situation CPU-Geschwindigkeit steigt sehr schnell an Vergrößerung der Kapazitäten von Speicher und Caches Festplatten werden immer größer, Geschwindigkeitszuwachs kann jedoch mit dem CPU-Zuwachs nicht mithalten Schreibzugriffe immer kürzer im Vergleich zum Verwaltungsaufwand Bedeutung der Caches und der Konsistenzprobleme wird immer größer Entwicklung von log-basierten Dateisystemen (auch transaktionsbasierte oder Journaling Dateisysteme) Verwendung des Transaktionskonzepts und der Recoverymechanismen Grundidee Gesamte Festplatte wird als ein Logbuch strukturiert Schreibzugriffe werden verzögert und auf einmal unter Ausnutzung der vollen Festplattenbandbreite geschrieben O. Kao Betriebssysteme 5-34
Log-basierte Dateisysteme (2) In periodischen Abständen/bei Erreichen einer Größe: Schreiben der Segmente (I-Nodes, Verzeichnis-, Dateiblöcke) ans Logbuchende Am Segmentanfang: Zusammenfassung über den Segmentinhalt I-Nodes: gleiche Funktion/Struktur, verstreut über das gesamte Logbuch Nach Auffinden des I-Nodes: Auslesen der Blöcke wie gewohnt Zur schnelleren Auffindung der I-Nodes I-Node-Map Thread Cleaner durchsucht das Logbuch und räumt es auf Liest das erste Segment des Logbuchs aus und vergleicht die I-Nodes mit der I-Node-Map Noch aktive Elemente werden in den Speicher übertragen und bei der nächsten Aktualisierung auf die Platte geschrieben Eintragungen bereits gesicherter Elemente werden gelöscht Zirkulärer Puffer: Schreiber fügt vorne Segmente, Cleaner entfernt alte Segmente Buchführung keineswegs trivial ständige Aktualisierung der I-Nodes und der I-Node-Map notwendig Untersuchungen: Bedeutende Verbesserung bei kleinen Schreibzugriffen O. Kao Betriebssysteme 5-35