os v17 dateisysteme basics - inf.fu-berlin.de · dateisystem-struktur 13 - hierarchische...
TRANSCRIPT
M. Esponda-Argüero
Dateisystem
WS 2011/2012
1
Prof. Dr. Margarita Esponda-Argüero
M. Esponda-Argüero
Dateisystem
Das Betriebssystem muss eine Schnittstelle zur Verfügung stellen, die für alle verschiedenen Massenspeichermedien funktioniert.
2
M. Esponda-Argüero
Erste Festplatten
3
1956
5 MByte Daten
1 Tonne
IBM-350 RAMAC-Festplatte
Mini-Festplatte
Zugriffszeit von 600 Millisekunden
$50.000
M. Esponda-Argüero
50 Jahre später
4
IBM RAMAC (1956)
Seagate Momentus(2006) Differenz
Kapazität 5MB 160GB 32,000
Flächendichte 2K bits/in2 130 Gbits/in2 65,000,000
Preis/MB $1,000 $0.01 1 / 3,200,000
Spindelgeschwindigkeit 1,200 RPM 5,400 RPM 5
Gewich ca. 1 ton 4 oz 1 / 9,000
Daten-Transfer 10 KB/s 44 MB/s 4,400
Leistung 5000 W 2 W 1 / 2,500
Suchen 600 ms 10 ms 1 / 60 1 / 9,000
M. Esponda-Argüero
Dateisystem
5
CPU Hauptspeicher
Bridge
Festplatte NIC
Memory Bus(System Bus)
Ein-/Ausgabe-Bus
off-line Speicher
CD-RW USB drive
Remote-DateisystemLokales Dateisystemvon Typ 2
Netz
Lokales Dateisystemvon Typ 1
M. Esponda-Argüero 6
VFS-Schnittstelle
DateisystemSchnittstelle zum
Benutzerprogramm
M. Esponda-Argüero
Datei-KonzeptDatei (File)
Abstrakte Datenstruktur, die die kleinste logische
Informationseinheit darstellt, die von einem Prozess
erzeugt und persistent gespeichert werden kann.
Das Betriebssystem befreit die Benutzer und Software-
Entwickler von Hardwaredetails, indem eine abstrakte
Informationseinheit zur Verfügung gestellt wird.
7
M. Esponda-Argüero
Datei vs. DiskDatei Abstraktion Massenspeicher
- Die Information ist in Bytes
- Die Information ist in Blocks
- Symbolische Namen - Blocknummer
- Zugriff-Schutz - Kein Schutz
- Konsistenz wird garantiert
- Keine Garantie über die Konsistenz, nachdem ein Block überschrieben wird.
8
M. Esponda-Argüero
Datei-Struktur
9
- keine einfache Sequenz von Zeichen oder Bytes
- einfache Struktur
Sequenz von Datensätze
festen oder variablen Längen
- komplexe Struktur
ELF-Dateien
Baum-Struktur
formatierte Dokumente
Wer entscheidet
das Betriebssystem oder das Programm
M. Esponda-Argüero
Dateistruktur
10
Dateien können verschiedene interne Strukturen haben.
Unstrukturierte Byte-Folge
Sequenz von Datensätzen
Baum von Datensätzen
M. Esponda-Argüero
Dateisystem-Struktur
11
- Lokale Dateisysteme
- Baumstruktur- O(log n)
M. Esponda-Argüero
Dateisystem-Struktur
12
- mit einer Ebene
- früher auch in großen Rechnern
- heute nur in kleinen eingebetteten Systemen
- sehr einfach zu implementieren
- URLs
- zwei Ebenen
- Erste Lösung in Mehrbenutzersystemen
Dateisysteme haben Verzeichnisse, die selbst wieder als Dateien gespeichert werden müssen.
M. Esponda-Argüero
Dateisystem-Struktur
13
- Hierarchische Dateisysteme
- modernen Systeme sind meistens so organisiert
Filesystem Hierarchy Standard (FHS)- Relationäle DBFS (Java basierte Dateisystem-Implementierung),
liquidFOLDERS, WinFS
- nach Kontext Page-Ranking
- Content-based Bilder nach der umgebenen Information zu
klassifizieren, ohne den Namen zu kennen (Google)
M. Esponda-Argüero
Anforderungen an das DateisystemPersistent
- Dateien sollen gesichert werden nach Abschalten oder nach Absturz des Systems
Benennung von Dateien- flexibel - Eine Datei darf mehrere Namen haben
Geschützte/gemeinsame Benutzung - exklusiver Zugriff- beschränkter/gemeinsamer Zugriff
Effizient für verschiedene Zugriffspattern- Sequentieller Zugriff- Random-Zugriff
Minimaler Platz-Overhead für Metadaten
14
M. Esponda-Argüero
Dateisystem
15
Datei-Operationencreate(), open(), close(), read(),
write(), seek(), unlink(), usw.
Virtuelles Dateisystem VFS
Schnittstelle zum Benutzerprogramm.
Abstraktion innerhalb des Kernels, um die Koexistenz von verschiedenen Dateisystem-Implementierungen zu ermöglichen.
Buffer Cache Eine Hashtabelle mit Buffer-Einträgen und eine Liste leerer Buffer wird hier verwaltet.
Gerätetreiber
M. Esponda-Argüero
Datei - Eigenschaften
16
Name Symbolischer Name
Identifier Tag-Nummer, um eine Datei innerhalb des Dateisystems eindeutig zu identifizieren.
Type Wichtige Information für Systeme, die verschiedene Dateitypen unterstützen.
Location Zeiger auf das Gerät und auf die Position innerhalb des Geräts, in dem die Datei gespeichert ist.
Grundlegende Eigenschaften
M. Esponda-Argüero
Datei - Eigenschaften
17
Size Größe der Datei in Bytes, Words oder Blocks.
Protection Zugriffskontrolle.
Time Zeitinformation über Erzeugung, letzte Veränderung und letzte Verwendung.
Owner Welche Programme/Benutzer hat die Datei gespeichert.
… weiter mit grundlegenden Eigenschaften
M. Esponda-Argüero
Grundlegende Datei-Operationen
18
Create - Platz für eine neue Datei muss gefunden werden
- Ein Eintrag ohne Daten für die neue Datei muss in dem entsprechenden Verzeichnis gemacht werden
Write - Eine Datei wird gesucht, deren Namen eingegeben werden muss.
- (Das System muss ständig die Position aufbewahren, in der als nächstes geschrieben werden soll).
Read - Ein angegebener Dateiname wird gesucht, Daten werden gelesen und an eine angegebene Speicherposition platziert.
- (Ein Zeiger auf die nächste Position, die gelesen werden kann, muss ständig aufbewahrt werden).
Aus Betriebssystemsicht
M. Esponda-Argüero
Grundlegende Datei-Operationen
Seek - Eine Datei wird durchsucht und ein Zeiger auf einem gesuchten Wert platziert.
Delete - Zuerst wir der Name der Datei gesucht und nachdem der Name im Verzeichnis gefunden wurde, wird zuerst der Platz freigegeben, der die Datei belegt.
- Zum Schluss wird die Datei-Entry aus dem Verzeichnis gelöscht.
Truncate - Diese Operation erlaubt es, den Inhalt einer Datei zu löschen, ohne den Eintrag mit Eigenschaften aus dem Verzeichnis zu löschen.
Aus Betriebssystemsicht
19
M. Esponda-Argüero
Datei-OperationenWeitere Operationen können prinzipiell aus den ersten sechs grundlegenden Operationen zusammengesetzt werden.
append - Am Ende einer Datei werden neue Daten angehängt.
rename - Eine Datei wird gesucht und ihre Namen-Eigenschaft geändert.
z.B.
copy - Hier wird eine neue Datei erzeugt und dann mit Read- und Write-Operationen der Inhalt kopiert.
Eine Reihe von set- und get-Operationen, mit denen die Eigenschaften von Dateien geändert werden können, gehören auch zur Dateisystem-Schnittstelle.
20
M. Esponda-Argüero
Datei-OperationenDie meisten Betriebssysteme bieten eine open- und close- Operation.
Mit Hilfe dieser beiden Operationen können Prozesse den Zugriff auf Dateien für eine Weile ermöglichen und eine Reihe von Lese- oder Schreibe-Operationen effizienter realisieren.
Für die Implementierung der open- und close- Operationen verwendet das Betriebssystem eine oder mehrere Tabellen.
Mehrere Prozesse sollen auch manchmal gleichzeitig auf eine Datei zugreifen können.
open-file tables
21
M. Esponda-Argüero
Das Öffnen einer Datei− Virtuelles oder konkretes Speichergerät suchen
− Datei in die Verzeichnisstruktur suchen− Zugriffsrechte kontrollieren
− Konsistenz der Operation überprüfen
− Lokalität der Datei feststellen− Verwaltungsstrukturen der Datei im Hauptspeicher anlegen für
spätere Lese-/Schreibe-Operationen− die geöffnete Datei wird in die open-file Table des Prozesses
eingetragen.
Das Schließen einer Datei- Nach Eingabe der Datei-Eintragszeiger wird diese aus der open-file
Table des Prozesses entfernt.
22
M. Esponda-Argüero
Verwaltung geöffneter Dateien
23
Pro Datei werden mindestens
– Informationen zum Auffinden der Datenblöcke
– Informationen über die Zugriffsrechte
– ein Referenz-Zähler
Pro Ein-/Ausgabekanal werden mindestens
– die Referenz auf die Dateiinformationen
– ein individueller Positionszeiger innerhalb der Datei
– ggf. ein weiterer Referenz-Zähler
benötigt.
M. Esponda-Argüero
Verwaltung geöffneter Dateien
24
Das Dateisystem verwendet oft zwei Tabellen.
pre-process table
system-wide table
hier werden alle Dateien eingetragen, die ein Prozess gerade benutzt.
Zusätzliche Information wie z.B. Iterator, Zugriffsmodus und ein Zeiger auf den Eintrag der Datei in die system-wide table.
Hier befinden sich prozessunabhängige Informationen über die Dateien wie z.B. Dateigröße, Zugriffsdaten, Lokalität auf dem Speichermedium und ein Zähler pro Datei, um zu kontrollieren, wie viele Prozesse gerade mit der Datei arbeiten.
M. Esponda-Argüero
Kanäle
25
- 0 Standard-Eingabekanal
- 1 Standard-Ausgabekanal
- 2 Standard-Fehlerkanal
Prozess A
Prozess B
6543210
Festplatte
Beispiel Unix/Linux
M. Esponda-Argüero
pos
Prozess B
Prozess A
Benutzer-Adressraum Kernel-Adressraumopen file table
Verwaltung geöffneter DateienEin-Ausgabekanäle Iteratoren
Dateien Verzeichnis
26
0
1234
0
12345
pos
pos
M. Esponda-Argüero
Schutz-MechanismenDas Betriebssystem muss kontrollierte Zugriffsmöglichkeiten auf Dateien anbieten.
Zwingend (Mandatory) oder beratend (advisory):
Mandatory – der Zugriff auf eine Datei wird vom Betriebssystem verweigert, z.B. wenn ein anderer Prozess den Lock der Datei besitzt.
Advisory – Prozesse werden nur gewarnt über den Lock-Zustand einer Datei und können selber entscheiden, wie sie sich verhalten.
27
M. Esponda-Argüero
Datei-Locks
28
Die meisten Betriebssysteme unterstützen die Verwendung von Locks, um den Zugriff auf Dateien zu blockieren.
Verschiedene Sorten von Locks:
Standard LockEine bereits geöffnete Datei darf nicht ein zweites Mal geöffnet werden.
Opportunistic Lock
Ein Client holt sich vom Server ein Datei-Lock, um in einer lokalen Kopie der Datei Veränderungen zu realisieren.
Wenn ein anderer Prozess Zugriff auf die Datei haben will, unterbricht der Server den Oplock des Clients, holt sich die Veränderungen im Server und teilt den Lock dem neuen Client zu.
M. Esponda-Argüero
DateitypenSoll das Betriebssystem Dateitypen unterstützen?
Lösungen:
- der Dateityp ist Teil des Dateinamens
- der Dateityp wird in der Datei gespeichert
- nur Dateitypen bezüglich der internen Struktur einer Datei.
- jedes Betriebssystem muss mindestens die Struktur von
ausführbaren Dateien unterstützen, um Programme laden
und ausführen zu können.
29
DateistrukturAusführbare Datei
Magische Zahl
Textgröße
Datengröße
BSS-Größe
Symboltabellengröße
Einstiegspunkt
Flags
Text
Daten
Relokations-Bits
Symboltabelle
Header
Eine sogenannte magische Zahl (magic number) am Anfang der Datei kennzeichnet seine Ausführbarkeit.
Eine scheinbar unstrukturierte Folge von Bytes wird vom Betriebssystem interpretiert.
Jedes Betriebssystem soll mindestens seine eigene ausführbare Datei erkennen und interpretieren können.
M. Esponda-Argüero
M. Esponda-Argüero
DateizugriffEs gibt zwei Hauptformen von Dateizugriffen
− Sequenzieller Zugriff
- einfachste Zugriffsart
- in einigen Speichermedien die einzige Möglichkeit
- (Magnetbänder)
-Direkter Zugriff
- Mit der Einführung von Festplatten als Speichermedium wurde es erst möglich.
- Unentbehrlich für viele Anwendungen (z.B. Datenbanken).
- Operationen mit entsprechender Blockposition müssen vom Betriebssystem angeboten werden.
31
M. Esponda-Argüero
Verzeichnisstruktur
Die Verzeichnisstruktur kann als eine Symbol-Tabelle
betrachtet werden, mit deren Hilfe Dateinamen in
Verzeichniseinträge übersetzt werden können.
Ein Dateieintrag kann in verschiedenen Verzeichnissen
sichtbar sein.
32
M. Esponda-Argüero
VerzeichnisstrukturModerne Rechnersysteme haben Graph-Strukturen in ihren Verzeichnissen.
Operationen:
link erzeugt einen Eintrag von
einer vorhandenen Datei in
einem angegebenen
Dateiverzeichnis.
unlink löscht einen Dateieintrag
in dem Verzeichnis, und wenn
es keinen anderen Verweis
gibt, der auf die Datei zeigt,
wird auch diese gelöscht.
Graph ohne Zyklen
33
Grafikquelle: Silverschatz, Galvin, Gagne
M. Esponda-Argüero
Link-Operationen
34
1. als harter Verweis (hard link)
- nur auf Dateien möglich
- alle Veränderungen inklusive des Löschens des Links wirken auf die ursprüngliche Datei
- ein Referenz-Zähler wird mitgeführt
- erfordert Schreibzugriff auf das Verzeichnis, in dem sich der Link befindet.
2. als symbolischer Verweis (symbolic link)
- auf eine Datei oder ein Verzeichnis möglich
- ein Problem beim Datei- oder Verzeichnislöschen ist, alle Verbindungen zu finden und diese dann zu löschen
Es gibt zwei Möglichkeiten, Links zu implementieren
Linux
M. Esponda-Argüero
Verzeichnisstruktur
35
Probleme mit Graphen ohne Zyklen
Lösungen
- Mit Rückwärts-Zeiger können alle Links, die auf eine Datei zeigen, gelöscht werden, aber eine variable Dateieinträge-Größe wird notwendig.
-Rückwärts-Zeiger mit daisy chain-Organisation
-Wenn Links auf Verzeichnisse erzeugt werden, werden die Links während der Traversierung weitergegeben (bypass).
-Verwendung von Zählern.
-Neuer Datentyp für Links
Wenn Dateien gelöscht werden, bleiben dangling pointers
M. Esponda-Argüero
VerzeichnisstrukturProbleme mit Graphen ohne Zyklen
Lösungen
- Mit Rückwärts-Zeiger können alle Links, die auf eine Datei zeigen, gelöscht werden, aber eine variable Dateieinträge- Größe wird notwendig.
-Rückwärts-Zeiger mit daisy chain-Organisation
-Wenn Links auf Verzeichnisse erzeugt werden, werden die Links während der Traversierung weitergegeben (bypass).
-Verwendung von Zählern.
-Neuer Datentyp für Links
Wenn Dateien gelöscht werden, bleiben dangling pointers
36
M. Esponda-Argüero
VerzeichnisstrukturAllgemeine Graph-Verzeichnisse Wenn wir Links auf
Verzeichnisse anlegen, entsteht ein Graph mit Zyklen.
37
Grafikquelle: Silverschatz, Galvin, Gagne
M. Esponda-Argüero
Verzeichnisstruktur
Das einfachste ist es, Zyklen zu vermeiden, wenn neue Links erzeugt werden.
Wie?
- nur Links auf Dateien sind erlaubt
weitere Lösungen sind:
- Garbage Collection (sehr zeitintensiv)
- Kontrollieren nach Zyklen beim Erzeugen von neuen Links.
Probleme mit Allgemeinen Graph-Verzeichnissen
- Zyklen innerhalb von Verzeichnisstrukturen sind ein Problem, wenn Dateien gesucht oder gelöscht werden sollen.
- Zyklen in Graphen zu finden ist zeitaufwendig.
38
M. Esponda-Argüero
Anflanschen von DateisystemenIn Unix-ähnlichen Betriebssystemen ist es möglich, neue Dateisysteme mit Hilfe der mount-Operation zu öffnen, so als würde man einfach ein neues Verzeichnis öffnen.
Innerhalb der mount-Operation muss nur der Name des neuen Geräts oder Dateisystems angegeben werden und die Position innerhalb des Verzeichnisses, indem das neue Volumen angebunden werden soll.
In den letzten Versionen des Windows-Systems ist es möglich, mount-Operationen an beliebiegen Stellen des Verzeichnisses zu machen.
39