File File-Eigenschaften File-Attribute (1)

Werbung
Langzeitspeicher: File
Was ist ein File ?
Eine Kollektion von Informationen mit einem Namen, die im
Sekundärspeicher gespeichert ist.
Kapitel VII
Ø Speichere große Datenmengen.
File-Systeme
Ø Gespeicherte Information muss Prozesse überleben, die die
Ø Mehrere Prozesse müssen gleichzeitig Zugriff auf die Daten
VO Betriebssysteme
haben.
1
File-Eigenschaften
VO Betriebssysteme
2
Daten verwenden.
File-Attribute (1)
u Daten
gehen nicht verloren (durch Stromabschaltung oder
Neustarten des Systems).
u Name
u Typ:
schreiben oder lesen
VO Betriebssysteme
4
um File-Eigenschaften zu beschreiben
File-Attribute
3
u Meta-Daten
F
welche Information ist im File gespeichert?
Wo findet man das File auf der Platte?
u Größe: Anzahl der Bytes
u Zugriffsrechte: Können unterschiedlich für Lesen,
Schreiben, Ausführen, Anhängen usw. sein
u Zeit: Zugriff, Veränderung, Erzeugen
u Version: Wie oft hat sich das File geändert?
u Ort:
VO Betriebssysteme
u Erzeugen,
VO Betriebssysteme
5
VO Betriebssysteme
6
File Typen – Name + Extension
File-Attribute (2)
File-Struktur
File-Typen (1)
8
VO Betriebssysteme
3 Arten von Files
u unstrukturierte Sequenz von Bytes
F Betriebssystem kennt den Inhalt nicht (Unix und Windows)
u Record-Sequenz
u Baum
VO Betriebssysteme
7
bezeichnet die Art des Files
u reguläre Dateien: Ascii- und Binärdateien
u Verzeichnisse: beschreibt Struktur eines Dateisystems
u spezielle Zeichendateien modellieren
F serielle E/A-Geräte (Terminal, Drucker, Netzwerke, etc.)
File-Zugriff
File-Typen (2)
Sequentieller File-Zugriff
10
VO Betriebssysteme
Direkter Zugriff ( Random Access)
u Bytes/Records können in beliebiger Reihenfolge gelesen werden.
u essentiell für Datenbanken
u Leseoperation
F bewege File Pointer ( Seek) und dann Lesen, oder
F Lesen und dann Bewegen des File Pointers
File Operationen (1)
u
u
VO Betriebssysteme
11
u
create
F Zuordnung eines Namens
F Zugriffsrechte festlegen
open
F Überprüfe Zugriffsrechte
F Überprüfe ob File existiert
F Sperren des Files (nur ein Prozess soll ein File schreiben können)
write
F Welches File (Name oder Pointer) wird geschrieben ?
F Welche Daten werden geschrieben ?
F Wohin werden Daten geschrieben ?
• Implizit (File Pointer)
• Explizit (direkter Zugriff)
12
Files sind abstrakte Datentypen mit einem Interface und einer
Implementierung.
VO Betriebssysteme
(a) exekutierbares File (b) Archiv-File
VO Betriebssysteme
9
Sequentieller Zugriff
u Speicherbandmodell
u Lese all Bytes/Records hintereinander
u keine beliebiges Eintragen von Daten
u Einfügen von Daten immer am Ende der Datei
u File Pointer zeigt auf das nächste freie Element
u
VO Betriebssysteme
13
u
truncate
F Lösche Daten im File beginnend von der derzeitigen File- Pointer Position bis zum Ende.
close
F unlock File ( open kann eine File sperren)
F modifiziere Metadaten (Zeitstempel für close)
F Freigeben von Systemressourcen (File Deskriptoren, Buffer, ...)
Lesen von Metadaten
F File-Größe, Zeit, Besitzer usw.
Aktualisieren von Metadaten
F ändere File-Größe, Zeit, Besitzer usw.
16
Ein Beispiel mit File-Systemroutinen (2)
Ein Beispiel mit File-Systemroutinen (1)
VO Betriebssysteme
u
u
VO Betriebssysteme
u
u
15
u
read
F Welches File wird gelesen ?
F Welche Daten werden gelesen ?
• Implizit (File Pointer)
• Explizit (direkter Zugriff)
F Wie viele Daten werden gelesen ?
fsync
F Synchronisiere alle vorhergehenden writes durch Schreiben vom
Haupt- in den Plattenspeicher.
F Garantiere, dass alle vorhergehenden writes auf ein File in den
Plattenspeicher geschrieben werden.
seek
F Bewege den impliziten File-Pointer auf neuen Offset im File.
delete
F lösche File.
VO Betriebssysteme
u
File Operationen (3)
14
File Operationen (2)
Dateiabbildung in den Speicher
Einfache File-Verzeichnisse (Directories)
u
u
a) Segmentierter Prozess vor der Abbildung von Dateien in seinen Adressraum.
b) Prozess nach Abbildung einer existierenden Datei abc in ein Segment.
Erzeugung eines Segments für die Datei xyz
hollings
users
18
one
x
to
y
a
b
Ermöglichen Benutzern das Teilen von Unterverzeichnissen und Files
system
hollings
mail
user1
gdb
Azyklische Graphenverzeichnisse File
Erzeuge einen Baum mit Files.
Jedes Verzeichnis kann Einträge in Form von Files oder
Verzeichnissen enthalten.
Jeder Prozess hat ein aktuelles Verzeichnis.
F Angabe von Namen relativ zu diesem Verzeichnis
F Ändern von Verzeichnissen nach Bedarf
Prozesse können Files oder Verzeichnisse nicht teilen.
system
vi
cc
vi
gdb
users
mail
user1
one
user2
to
x
y
z
user2
cc
vi
gdb
one
to
x
y
z
a
b
20
u
user3
a
b
VO Betriebssysteme
u
user2
19
u
user1
17
cc
Baumverzeichnisse
u
thomasf
VO Betriebssysteme
Jede Datei kann in eigenes Segment abgebildet werden.
ü Byte k in der Datei entspricht Byte k im Segment
system
VO Betriebssysteme
Ø
funktioniert am besten für Systeme mit Speichersegmentierung
Ø map: bildet Datei auf virtuelle Startadresse ab
Ø unmap: entfernt Datei aus Adressraum – Datei existiert aber weiterhin
VO Betriebssysteme
Ø
1 Verzeichnis
F Alle Files auf derselben Ebene zu verwalten ist unschön.
F Suchen und Sortieren von Files ist aufwendig.
F Alle Benutzer müssten die Vergabe von File-Namen koordinieren.
F Jedes File muss einen eindeutigen Namen haben.
File-Verzeichnis mit 2 Ebenen
F oberste Ebene für Benutzer
F 2. Ebene für Benutzerfiles
Beispiele für File-Typen
u
MacIntosh
F Hat File-Typ, der Teil der File-Metadaten ist.
F Mit jedem File-Typ ist eine Anwendung assoziiert.
VO Betriebssysteme
Sollte Betriebssystem weitere File-Typen kennen ?
F Z.B. Spreadsheet File versus Textverarbeitungs-File
F Vorteile:
• BS kennt die auszuführende Anwendung.
• Automatisches make bei Änderung des Programms
F Nachteile:
• Betriebssystemänderung für jeden weiteren File-Typ
• Schnittstelle zwischen BS und Anwendungen wird komplexer.
• Was passiert bei Files mit mehreren Typen (z.B. komprimiertes
Postscript-File) ?
l
Teilen von Files in Mehrbenutzersystemen ist sinnvoll.
l
Teilen von Files erfordert Schutzmechanismus.
Windows95/NT
F Hat File-Typ im File-Suffix.
F Tabelle pro Benutzer für das Assoziieren von File-Suffixen mit
Anwendungen.
l
VO Betriebssysteme
Unix
F Kann letzten Teil eines Files als Suffix verwenden.
F Anwendungen können entscheiden, ob diese Information verwendet
wird.
23
l
u
u
File-Schutzmechanismus (1)
l
u
Muss den Typ von einigen Files kennen
F Verzeichnisse
F ausführbare Programme
Verteilte Systeme ermöglichen das Teilen von Files über das
Netzwerk.
Network File System (NFS) ist eine bekanntes verteiltes FileSystem.
Benutzer sollte die Kontrolle über seine Files haben:
u Was kann man mit einem File machen?
u Von wem?
25
Unix unterstützt azyklische Graphenverzeichnisse - MS-DOS nicht!
u
VO Betriebssysteme
u
Löschen von Files oder Verzeichnissen (implementierungsabhängig)
F Wenn ein Benutzer ein gemeinsames File löscht, so sollte es für
alle Benutzer gelöscht sein.
F Benutzer löscht Eintrag auf gemeinsames File
• File sollte nicht gelöscht werden.
• Wenn der letzte Benutzer seinen Eintrag löscht, sollte File
gelöscht sein.
• Verwalte Zähler für Anzahl der Referenzen auf ein File.
21
u
Das selbe File kann mehrere Namen haben.
F Absolute Pfadnamen sind verschieden, aber das File ist identisch.
F Ähnlich dem Aliasing Problem bei Programmvariablen
VO Betriebssysteme
u
22
Kennt das Betriebssystem den Inhalt von
Files ?
Azyklische Graphenverzeichnisse
u
Jedes File hat 3 Klassifikationen
F Besitzer: besitzt das File
F Gruppe: Menge von anderen Benutzern (ohne Besitzer)
F Welt: alle anderen Benutzer
u
Jedes File hat 3 Zugriffsmodi:
F read, write, execute
u
Schutzmechanismus für Verzeichnisse
F read: Auflisten von Files in einem Unterverzeichnis
F write: Löschen und Erzeugen von einem File
F execute: kann die File-Attribute in einem Unterverzeichnis lesen
F sticky bit: kann nur Einträge von Verzeichnissen ändern, die man
selbst besitzt.
u Verschiedene Kontrollarten:
Zugriffslisten
• Für jeden Benutzer gibt es zu jedem File eine Liste mit
Zugriffsrechten.
F Gruppen
• Benutzer werden zu Gruppen zusammengefasst.
• Files werden Gruppen zugeordnet.
• Jeder Benutzer einer Gruppe hat dieselben Rechte.
• Abhängig vom System: Files/Benutzer können
mehreren Gruppen zugeordnet sein.
F Pro File ein Passwort
VO Betriebssysteme
26
F
Unix-File-Schutzmechanismus
27
Unix-File-Schutzmechanismus
VO Betriebssysteme
File-Schutzmechanismus (2)
Zugriffslisten und Gruppen
Zugriffsmodi: read, write, execute
Files haben 12 Bits für Schutzmechanismus
F
3 Klassen von Benutzern
9 bits
• read: Auflisten der Files in einem Unterverzeichnis
• write: Löschen oder Erzeugen von Files
• execute: kann die File-Attribute von Files in Unterverzeichnis
sehen.
a) owner access (Besitzer)
7
⇒
b) group access (Gruppe)
6
⇒
c) public access (Welt)
1
⇒
RWX
111
RWX
110
RWX
001
Superuser kann Gruppen mit eindeutigem Namen erzeugen.
Benutzer können zur Gruppe hinzugefü gt werden.
setuid: Exekutiere das Programm mit der UID
(Benutzeridentifikation), die zum Besitzer des Files gehört.
F
getuid: Exekutiere das Programm mit der Gruppen-ID, die zum
Besitzer des Files gehört.
owner
group
chmod 761
Füge File einer Gruppe hinzu.
chgrp
G
public
game
game
29
F
Mit chmod werden die Zugriffsrechte gesetzt.
VO Betriebssysteme
sticky bit: Exekutierbares Programm bleibt im Speicher nach der
Ausführung
28
F
VO Betriebssysteme
u
Unix-File-Schutzmechanismus - ein Beispiel
foo ist ein File:
Benutzer otto hat r, aber
nicht w auf diesem File
foo
u
UNIX
F Schreiboperationen sind sofort sichtbar.
F Es gibt Modus, der gemeinsame File-Pointer ermöglicht.
u
AFS (Andrew File System – CMU)
F open/close Semantik
• Kopiere File bei open
• Zurückschreiben bei close
u
Unveränderbare Files
F Sobald File als unveränderbar deklariert wird:
• File-Name nicht wiederverwendbar
• Inhalt unveränderbar
otto kann foo trotzdem schreiben!
stuff
(1) Kopiere foo in neues
File mit Namen t e m p
stuff
temp
foo
foo
foo
(3) Ändere Namen von
temp auf foo
VO Betriebssysteme
30
(2) Lösche foo
Zusammenfassung
l
Ein File besteht aus einer Sequenz von logischen Records (Byte, Zeile,
komplexer Datentyp).
Abbildung von logischen Files auf Platte oder Magnetbänder erfolgt durch
das BS.
l
File-Verwaltung: Verzeichnisse
l
Schutzmechanismus verhindert unerlaubten Zugriff auf Files.
32
l
Ein File ist ein abstrakter Datentyp, der vom BS definiert und implementiert
ist.
VO Betriebssysteme
l
31
File-Änderungen aus der Sicht von mehreren Prozessen:
VO Betriebssysteme
stuff
Stuff ist ein Verzeichnis:
Benutzer o t t o hat r/w/x auf dir
File-Konsistenz
Herunterladen