Dateisysteme: Grundlagen, Funktionen und Verwaltung von Langzeit-Speicher

Eingeordnet in Informatik

Geschrieben am in Deutsch mit einer Größe von 10,74 KB

Wesentliche Voraussetzungen für Langzeitspeicherung

Die wesentlichen Voraussetzungen für die Lagerung von Langzeitinformationen sind:

  • Es muss möglich sein, eine große Menge an Informationen zu speichern.
  • Die Informationen müssen den Abschluss des Prozesses, der sie nutzt, überdauern.
  • Es muss mehreren Prozessen gleichzeitig Zugang zu den Informationen ermöglicht werden.

Die Lösung: Dateien auf externen Medien

Die Lösung besteht darin, Informationen auf Festplatten und anderen externen Medien in Einheiten, die als Dateien bezeichnet werden, zu speichern:

  • Dateien sollten persistent sein, d.h., sie dürfen nicht durch die Begründung oder Beendigung eines Prozesses beeinflusst werden.
  • Archive sind eine Sammlung von Daten.
  • Dateien können als eine Einheit für Operationen wie das Öffnen, Schließen, Erstellen, Zerstören, Kopieren, Umbenennen und Auflisten manipuliert werden.
  • Daten für einzelne Elemente innerhalb der Datei können durch Operationen wie Lesen, Schreiben, Aktualisieren, Einfügen und Löschen manipuliert werden.

Das Dateisystem ist Teil des Speichermanagementsystems und primär für die Verwaltung von Dateien auf dem sekundären Speicher zuständig. Das Betriebssystem (OS) ist der Teil, der den Austausch von Dateiinformationen kontrolliert.

Funktionen des Dateisystems

  • Nutzer sollten die Möglichkeit haben, Dateien zu erstellen, zu ändern und zu löschen.
  • Es sollte in der Lage sein, Dateien in einer sorgfältig kontrollierten Weise zu organisieren.
  • Der Mechanismus für den Austausch von Dateien muss verschiedene Arten von kontrolliertem Zugang bieten:
    • Zum Beispiel Lesezugriff, Schreibzugriff, Ausführungszugriff, verschiedene Kombinationen davon und so weiter.
  • Es sollte möglich sein, die für jede Anwendung am besten geeignete Struktur für die Dateien zu wählen.
  • Benutzer sollten in der Lage sein, Informationen zwischen Dateien zu übertragen.

Zusätzliche Anforderungen an Dateisysteme

Es müssen Backup- und Wiederherstellungsoptionen vorhanden sein, um Folgendes zu schützen:

  • Der versehentliche Verlust von Informationen.
  • Die böswillige Zerstörung von Informationen.
  • Es sollte möglich sein, Dateien mit symbolischen Namen zu referenzieren, um die Unabhängigkeit der Komponenten zu gewährleisten.
  • In sensiblen Umgebungen muss das Dateisystem Möglichkeiten zur Verschlüsselung und Entschlüsselung bieten.
  • Die Datei muss eine benutzerfreundliche Schnittstelle bieten:
    • Sie muss eine logische Sicht auf die Daten und Funktionen bieten, anstatt einer physischen Sicht.

Was der Benutzer nicht wissen muss:

  • Spezielle Geräte.
  • Wo die Daten gespeichert werden.
  • Das Format der Daten auf den Geräten.
  • Physische Mittel zur Übertragung von Daten zu und von Geräten.

Bestandteile des Dateisystems

Das Dateisystem ist ein wichtiger Bestandteil eines Betriebssystems und enthält in der Regel:

  • Zugriffsmethoden für den Umgang mit den in Dateien gespeicherten Daten.
  • Dateiverwaltung, die Mechanismen für die Speicherung, Referenzierung, gemeinsame Nutzung und Sicherung von Dateien bereitstellt.
  • Zusätzliches Speichermanagement für die Zuweisung von Speicherplatz für Dateien auf sekundären Speichermedien.
  • Dateiintegrität zur Gewährleistung der Korrektheit der Dateiinformationen.

Das Dateisystem ist primär mit der Verwaltung des sekundären Speicherplatzes, insbesondere des Plattenspeichers, befasst.

Organisation eines Dateisystems

Eine Möglichkeit zur Organisation eines Dateisystems ist:

  • Root wird verwendet, um anzuzeigen, wo das Root-Verzeichnis der Festplatte beginnt.
  • Der Pfad verweist auf das Root-Verzeichnis.
  • Ein Benutzerverzeichnis enthält einen Eintrag für die Dateien jedes Benutzers.
  • Jeder Eintrag in der Datei verweist auf die Festplatte, auf der sich die betroffene Datei befindet.
  • Dateinamen müssen nur innerhalb eines bestimmten Benutzerverzeichnisses eindeutig sein.
  • Der Name für ein bestimmtes Dateisystem muss eindeutig für dieses Dateisystem sein.
  • In einem hierarchischen Dateisystem ist der Name einer Datei normalerweise der Pfadname vom Root-Verzeichnis zur Datei.

Dateinamen

  • Genaue Regeln für Dateinamen variieren von System zu System.
  • Einige Dateisysteme unterscheiden zwischen Groß- und Kleinschreibung, andere nicht.
  • Viele Betriebssysteme verwenden Dateinamen mit zwei Teilen, die durch einen Punkt getrennt sind:
    • Der Teil nach dem Punkt folgt der Dateiendung und gibt in der Regel den Typ des Inhalts der Datei an, obwohl Erweiterungen oft nur Konventionen sind.

Aufbau einer Datei

Dateien können auf verschiedene Weisen strukturiert werden, die häufigsten sind:

Folge von Bytes

  • Die Datei ist eine unstrukturierte Folge von Bytes.
  • Bietet maximale Flexibilität.
  • Das Betriebssystem hilft nicht, stört aber auch nicht.

Folge von Einträgen (Records)

Die Datei ist eine Folge von fester Länge, wobei jeder Eintrag seine eigene interne Struktur hat.

Baum (Tree)

  • Die Datei besteht aus einem Baum von Datensätzen, die nicht notwendigerweise die gleiche Länge haben müssen.
  • Jeder Datensatz hat ein Schlüsselfeld (Schlüssel) an einer festen Position des Datensatzes.
  • Der Baum wird nach den Schlüsselbereichen sortiert, um eine schnelle Suche nach einem bestimmten Schlüssel zu ermöglichen.

Dateitypen

Viele Betriebssysteme unterstützen verschiedene Dateitypen, z.B.: Reguläre Dateien, Verzeichnisse, Zeichen-Spezialdateien, Block-Spezialdateien, usw., wobei:

  • Reguläre Dateien diejenigen sind, die Benutzerinformationen enthalten.
  • Verzeichnisse Systemdateien zur Aufrechterhaltung der Struktur des Dateisystems sind.

Zeichen-Spezialdatei

  • Sind in Bezug auf E/A relevant.
  • Werden verwendet, um serielle E/A-Geräte zu modellieren (Terminals, Drucker, Netzwerke usw.).

Block-Spezialdatei

Block-Spezialdateien werden zur Modellierung von Festplatten verwendet.

Zugriff auf eine Datei

Die beliebtesten Zugriffsarten sind:

Sequenzieller Zugriff (Sequential Access)

Lesevorgänge erfolgen auf alle Datensätze in der Datei beginnend am Anfang, ohne die Möglichkeit:

  • Datensätze zu überspringen.
  • In einer anderen Reihenfolge zu lesen.

Direkter Zugriff (Random Access)

Der Prozess kann die Datensätze in beliebiger Reihenfolge lesen, wobei zwei Methoden zur Bestimmung des Startpunkts des Lesevorgangs verwendet werden:

  • Jeder Lesevorgang (read) gibt die Position in der Datei an, an der begonnen werden soll.
  • Eine spezielle Maßnahme (seek) setzt die Arbeitsposition, wonach die Datei sequenziell gelesen werden kann.

Arbeiten mit Dateien (Systemaufrufe)

Die häufigsten Systemaufrufe im Zusammenhang mit Dateien sind:

  • Erstellen (create): Die Datei wird ohne Daten erstellt.
  • Löschen (delete): Wenn die Datei nicht mehr benötigt wird, sollte sie gelöscht werden, um Speicherplatz freizugeben. Einige Betriebssysteme löschen eine Datei automatisch, wenn sie n Tage lang nicht verwendet wurde.
  • Öffnen (open): Bevor eine Datei genutzt werden kann, muss ein Prozess sie öffnen. Ziel ist es, die Attribute und die Adressliste auf der Festplatte in den Hauptspeicher zu verschieben, um schnellen Zugriff bei nachfolgenden Aufrufen zu ermöglichen.
  • Schließen (close): Wenn die Zugriffe, Attribute und Festplattenadressen nicht mehr benötigt werden, muss die Datei geschlossen und der Eintrag in der Tabelle freigegeben werden.
  • Lesen (read): Um Daten aus der Datei zu lesen, muss der Aufrufer den Umfang der benötigten Daten angeben und einen Puffer zur Aufnahme bereitstellen.
  • Schreiben (write): Daten werden an der aktuellen Position in die Datei geschrieben. Die Dateigröße kann sich erhöhen (neue Einträge hinzugefügt) oder nicht (Überschreiben von Datensätzen).
  • Anhängen (append): Ist eine eingeschränkte Form des Schreibens. Daten können nur an das Ende der Datei angehängt werden.
  • Suchen (seek): Gibt die Position an, an der der Zeiger für die aktive Position an eine bestimmte Stelle in der Datei verschoben werden soll.
  • Attribute abrufen (get attribute): Ermöglicht Prozessen, die Dateiattribute abzurufen.
  • Attribute setzen (set attribute): Einige Attribute können vom Benutzer nach der Erstellung der Datei festgelegt und geändert werden. Informationen über den Schutztyp und die meisten Flags sind ein deutliches Beispiel.
  • Umbenennen (rename): Ermöglicht das Ändern des Namens einer bereits existierenden Datei.
  • Memory Mapped Files (Speicherabbilddateien): Einige Betriebssysteme erlauben die Zuordnung von Dateien zu einem Adressraum eines laufenden Prozesses.

Map und Unmap

Anforderungen werden verwendet, um Dateien zuzuordnen und wieder aufzuheben:

  • Map: Unter Verwendung eines Dateinamens wird ein virtueller Adressraum des Betriebssystems assoziiert. Die Datei wird mit der virtuellen Adresse in der Adresszeile verknüpft, sodass Lese- oder Schreibvorgänge in diesen Speicherbereichen auch die zugeordnete Datei betreffen.
  • Unmap: Beendet die Zuordnung zwischen Datei und Adressraum.

Das Datei-Mapping eliminiert die Notwendigkeit, E/A direkt zu planen, was die Programmierung erleichtert.

Herausforderungen bei Memory Mapped Files

Die Hauptprobleme sind:

  • Unmöglichkeit, die Länge der Ausgabedatei im Voraus zu kennen, was durch die Speichernutzung überwunden werden könnte.
  • Schwierigkeiten beim Teilen zugeordneter Dateien, um Inkonsistenzen zu vermeiden, da Änderungen an den verknüpften Seiten erst auf die Festplatte geschrieben werden, wenn die Seiten aus dem Speicher entfernt werden.

Verzeichnisse (Directories)

Verzeichnisse werden normalerweise vom Betriebssystem zur Nachverfolgung verwendet. Viele Systeme speichern Verzeichnisse selbst als Datensätze.

Verwandte Einträge: