zusammenfassungen/Writerside/topics/BS/16_Dateisysteme.md
David Schirrmeister 026bca93fa update
2024-06-10 10:34:02 +02:00

5.1 KiB

Dateisysteme

Warum Dateisysteme

  • Neben Verwaltung des Hauptspeichers und Cache
    • Verwaltung des Massenspeichers (bspw. SSD, Festplatte)
  • Organisation der Ablage von Dateien
  • Dateisysteme verwalten die Namen und Attribute (Metadaten) der Dateien
    • Bilden einen Namensraum
      • Hierarchie von Verzeichnissen und Dateien

Dateien

  • Datei dient der Abstraktion
  • Bietet Möglichkeit Informationen auf einer Platte zu speichern/lesen
    • Nutzer müssen Details der Speicherung verborgen bleiben
      • Wo und Wie
    • Wichtigstes Merkmal ist Art und Weise wie verwaltete Objekte benannt werden
  • Wenn Prozess Datei erzeugt, vergibt er ihr einen Namen
  • Bei einigen Systemen (bspw UNIX)
    • Dateiendungen lediglich Konventionen, die vom Betriebssystem nicht erzwungen
    • Datei file.txt kann Textdatei sein, Name dient mehr dazu den User zu erinnern
  • Andererseits könnte ein C-Compiler darauf bestehen, dass Eingabedateien Endung ".c" haben
    • Für BS ist das egal
  • Dateien können in verschiedenster Art und Weise strukturiert sein
    • Bytefolge
    • Datensätze
    • Baumstrukturen
  • In den meisten Fällen werden Dateien als Bytefolgen angesehen
    • Maximum an Flexibilität
    • Interpretation der Inhalte erfolgt auf Anwendungsebene

Sequenzieller Dateizugriff

  • Prozess kann alle Bytes oder Datensätze einer Datei nacheinander lesen
  • Überspringen oder Zugriffe außerhalb der Reihenfolge nicht möglich
    • Sequenzielle Dateien konnten zurückgespult werden
      • können so oft wie nötig gelesen werden

Wahlfreier Dateizugriff

  • Mit Einführung der Platte als Speichermedium
    • Möglichkeit die Bytes oder Datensätze in beliebiger Reihenfolge auslesen
      • über Schlüssel statt Positionsangabe zugreifen
      • Dateien, bei denen das geht = Dateien mit wahlfreiem Zugriff (random access file)
        • sind heute Voraussetzung für viele Anwendungen
          • bspw. für Datenbanksysteme

Dateiattribute

  • Eigenschaften / Metadaten
  • Können von BS / Dateisystem verwaltet werden
    • enthalten Größe, Erstellungsdatum, Zugriffsrechte ...

Dateioperationen

Create

  • Datei wird ohne Datum erzeugt
    • Entstehung der Datei ankündigen und eigene Attribute festlegen

Delete

  • Wird eine Datei nicht länger benötigt, muss sie gelöscht werden

Open

  • Bevor eine Datei benutzt werden kann, muss ein Prozess sie öffnen
    • Open ermöglicht Laden in Arbeitsspeicher

Close

  • Freigeben des internen Tabellenspeichers

Read

  • Daten werden aus Datei gelesen
    • Bytes von der aktuellen Position
    • Aufrufer muss angeben wie viele Daten benötigt werden
      • Puffer für Daten zur Verfügung stellen

Write

  • Wenn aktuelle Position an Ende der Datei
    • Dateigröße erhöht sich
  • Befindet sich Position in der Mitte der Datei
    • vorhandene Daten werden überschrieben

Append

  • Eingeschränkte Form von Write

Seek

  • Bei Dateien mit wahlfreiem Zugriff
    • Von wo Daten holen?
  • Seek positioniert Dateizeiger an einer bestimmten Stelle in der Datei
  • Danach lesen/schreiben an Position

Rename

  • Name der Datei ändern
  • nicht zwingend notwendig
    • normalerweise in eine neue Datei mit anderem Namen umkopieren
    • alte löschen

Get attributes

Set attributes

Verzeichnisse

  • Verzeichnissystem mit nur einer Ebene ist angemessen für sehr einfache Anwendungen
  • image_338.png
  • absolute Pfadnamen
    • Gesamter Pfad von Wurzel bis Datei
  • relative Pfadnamen
    • In Verbindung mit dem Konzept des Arbeitsverzeichnisses
      • ./
        • aktuelles Verzeichnis
      • ../
        • übergeordnetes Verzeichnis
  • image_339.png

Verzeichnisoperationen

Create (Verzeichnis)

Delete (Verzeichnis)

  • Es kann immer nur ein leeres Verzeichnis gelöscht werden
    • (., .. dürfen enthalten sein)

Opendir

  • Um beispielsweise alle Dateien in einem Verzeichnis aufzulisten

Closedir

Readdir

  • Aufruf gibt nächsten Eintrag eines geöffneten Verzeichnisses zurück

Rename (Verzeichnis)

  • Durch Technik des Verlinkens können Dateien in mehr als einem Verzeichnis vorkommen
  • Spezifiziert eine vorhandene Datei und erzeugt Verbindung von dieser Datei zu dem Namen
  • Verzeichniseintrag wird entfernt
    • Falls nur in einem Verzeichnis → löschen

Implementierung

  • BIOS liest MBR ein, führt aus
    • MBR-Programm
      • lokalisiert aktive Partition
      • liest ersten Block (Boot-Block)
      • führt aus
        • lädt BS, das in Partition gespeichert ist
  • Dateisystem enthält häufig noch Superblock
    • enthält alle Schlüsselparameter des Dateisystems
      • Magische Zahl
        • identifiziert Typ des DS
      • Anzahl der Blöcke
      • Weitere administrative Schlüsselinformationen
    • wird bei Start in den Speicher geladen
  • Danach
    • Freie Blöcke
      • Bitmap oder Liste von Zeigern
    • I-Nodes
      • Feld von Datenstrukturen
        • Jede beinhaltet Informationen über je eine Datei
    • Wurzelverzeichnis
      • Spitze des Dateibaums
  • image_340.png

Methoden zur Belegungsverkettung

Zusammenhängende Belegung