5.1 KiB
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
- Bilden einen Namensraum
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
- Nutzer müssen Details der Speicherung verborgen bleiben
- 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
- Sequenzielle Dateien konnten zurückgespult 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
- sind heute Voraussetzung für viele Anwendungen
- Möglichkeit die Bytes oder Datensätze in beliebiger Reihenfolge auslesen
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
- absolute Pfadnamen
- Gesamter Pfad von Wurzel bis Datei
- relative Pfadnamen
- In Verbindung mit dem Konzept des Arbeitsverzeichnisses
- ./
- aktuelles Verzeichnis
- ../
- übergeordnetes Verzeichnis
- ./
- In Verbindung mit dem Konzept des Arbeitsverzeichnisses
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)
Link
- 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
Unlink
- 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
- MBR-Programm
- 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
- Magische Zahl
- wird bei Start in den Speicher geladen
- enthält alle Schlüsselparameter des Dateisystems
- Danach
- Freie Blöcke
- Bitmap oder Liste von Zeigern
- I-Nodes
- Feld von Datenstrukturen
- Jede beinhaltet Informationen über je eine Datei
- Feld von Datenstrukturen
- Wurzelverzeichnis
- Spitze des Dateibaums
- Freie Blöcke