Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
1
DateiDatei--verwaltungverwaltung
Version 1.1
Kap. 5
Version vom 10.12.2010
Betriebssysteme © H. Weber, FH WiesbadenDateiverwaltung Folie 2
Kap. 5 - Inhalt
DateisystemeDateinamenDateiattribute und SicherheitDateizugriffsfunktionenStrukturierte ZugriffsfunktionenVerzeichnisfunktionenSpezialitätenDateiimplementierung
2
Betriebssysteme © H. Weber, FH WiesbadenDateiverwaltung Folie 3
Dateisysteme I
Liste von Dateien auf Massenspeicher
= relationale Datenbank!Objektorientierte Datenbank: mit Methoden+AttributenMulti-Media-Datenbank: mit Bild+Tonobjekten+Synchron.
Organisation von DatenbankenPersistent Storage Manager PSM (kleineObjekte)Object-Oriented Database Management System OODBMS
Nummer Name Position Länge Datum ...
0 Datei1.dat 264 1024 11.12.87
1 MyProgram 234504 550624 23.4.96
2 Datei1.dat 530 2048 25.1.97
... ... ... ... ... ...
Betriebssysteme © H. Weber, FH WiesbadenDateiverwaltung Folie 4
Dateisysteme II
Hierarchische Dateiorganisation in BaumformKnoten=„Ordner“=directory
Alle Dateien
Gruppe 1 ... Gruppe m Datei f
Datei 1 Datei 2 ... Datei n Datei k ... Datei s
3
Betriebssysteme © H. Weber, FH WiesbadenDateiverwaltung Folie 5
Dateisysteme III
Zusätzliche Vernetzung (azykl.Graph)
Firma Abteilung 5
Formulare Rudi Hans
BriefVorlage.dot Brief1.doc BriefN.doc Brief1.doc BriefM.doc
Betriebssysteme © H. Weber, FH WiesbadenDateiverwaltung Folie 6
Dateinamen I
NamensbildungNamensbildung Name.ext (üblich)Extension = Dateityp, Dateizweck
Beispiele:.dat Daten; Format hängt vom Erzeugerprogramm ab.doc Textdokument in dem speziellen Format des Texteditors.pas PASCAL-Programm Quellcode.c C-Programm Quellcode.h Deklarations (header)-Dateien für C-Programme.ps Postscript Dateien zum Ausdrucken.Z, .zip, .gz Komprimierte Dateien.tar ein gesamtes Dateisystem, in einer Datei abgespeichert.html ASCII-Textdatei für das world wide web-Hypertextsystem.jpg, .gif, Bilddateien.tif, .bmp3 Extensionsbuchstaben: MS-DOS! Sonst: 215 Char ohne \ / : * ? " < >
4
Betriebssysteme © H. Weber, FH WiesbadenDateiverwaltung Folie 7
Geschachtelte Typen
Beispiel: Skript.ps.gz= Textdatei → Postscript-Format→Komprimiert
Dateinamen II - Externe Typangabe
Typaktionen Typ verknüpft mit Aktion
Benutzeroberfläche (Desktopmanager HP -VUE, MS-Explorer) behandelt DateinamenListe von Aktionen pro Typ definiert (Kontextmenü)Doppelklick=erste Aktion ausführen
Betriebssysteme © H. Weber, FH WiesbadenDateiverwaltung Folie 8
Dateinamen III - UNIX-interne Typangabeclass File Header {a_magic: LONG CARDINAL (*Magische Zahl*)a_txt: CARDINAL (* Code-Segmentgröße *)a_data: CARDINAL (* Segmentgröße der init. Daten*)a_bss: CARDINAL (* Segmentgröße der nicht init.Daten*)a_syms : CARDINAL (* Größe der Symboltabelle*)a_entry: CARDINAL (* Start des Programms*)
... }a_magic =407B (* altes Format: Code („text“) und Daten werden nicht schreibgeschützt
und sollen deshalb nicht von anderen Prozessen genutzt werden *)
410B (* Text-Segment wird schreibgeschützt, und das Datensegment wird an die nächsten Seitengrenzen (4 KB) im Speicher gelegt *)
413B (* Text-Segment fängt an der nächsten Seitengrenze der Datei an; text und Datensegmente sind Multiple der Seitenlänge *)
5
Betriebssysteme © H. Weber, FH WiesbadenDateiverwaltung Folie 9
Dateinamen IV - Eindeutigkeit
Problem: eineindeutige Abbildung langer Namen auf kurzez.B. NTFS → MS-DOS (8 Zeichen..3Zeichen)
Lösung Windows NT:Alle illegale MS-DOS Buchstaben löschen sowie alle Punkte innerhalb des Namens bis auf den letzten, falls er nicht abschließt. Kleinbuchstaben → Großbuchstaben.Nur die ersten 6 Buchstaben beibehalten, Zeichen „∼1“ vor dem Punkt einfügen.3 Zeichen hinter dem Punkt beibehalten, alle anderen löschen.Ex. Datei gleichen Namens, so wird „∼1“ zu „∼2“ bzw. zu „∼3“, falls schon existiert.
Beispiel: „Ganz langer Dateiname.text.ps“ → GANZLA~1.ps
Betriebssysteme © H. Weber, FH WiesbadenDateiverwaltung Folie 10
Dateinamen V
Dateiname = Pfadname = Kette aus Knotennamen von der Wurzel zum Blatt
Beispiel: /Abteilung5/Rudi/Brief1.doc Unix\Abteilung5\Rudi\Brief1.doc NT
Vorgänger: ..Dieses Verzeichnis .
Relative Pfadnamen Rudi/Brief1.doc bei Hans: ../Rudi/Brief1.doc
Abteilung 5
Rudi Hans
BriefN.doc Brief1.doc BriefM.docBrief1.doc
6
Betriebssysteme © H. Weber, FH WiesbadenDateiverwaltung Folie 11
Dateinamen VI
Vorteil relativer Pfadnamen: PortabilitätPortabilitätBeispiel Programmsystem
/
toolsX toolsY
Daten Programme
Dat1.a liba libb Prog
Absolute Pfadnamen müssen nach Verschiebung des Programmsystems geändert werden, relative nicht !
Betriebssysteme © H. Weber, FH WiesbadenDateiverwaltung Folie 12
Dateinamen VII - UNIX Namensraum
Baumorientiertes DateisystemQuerverbindungen durch hard links (gleiches Laufwerk) oder symbolic links (anderes Laufwerk)
Beispiel: hard link löschen zu rück-referiertem Verzeichnis: stand-aloneVerzeichnis?
Abteilung5
Gruppe 1 Gruppe2
Rudi Hans
Datei1 Datei2 Datei3
symbolic linkhard links
×hard link
7
Betriebssysteme © H. Weber, FH WiesbadenDateiverwaltung Folie 13
Dateinamen VIII - UNIX Pfaderweiterung
Einhängen eines Dateisystems (mounten)
root file system
etc bin usr users
user file system
Rudi Hans Ute
/
/
Festplatte 1
Festplatte 2
Zugriff mit /users/Rudi/Brief1.doc
Betriebssysteme © H. Weber, FH WiesbadenDateiverwaltung Folie 14
Dateinamen IX - Windows NT Namensraum
Namen für alle Objekte wie pipes, shared memory, Prozesse, Semaphoren, events, ...Logische Querverbindungen (symbolic links)Löschen von Dateien: 2 Referenzzähler (user und kernel handles)„Durchsuchen“-Methode bei jedem Objekt: neue Dateisysteme!Symbolic link parsing-Methode: z.B. A:\Texte\bs_files.doc
\Device DosDevices
Floppy0 HardDisk0 A: B: C:
Texte Email Partition0
bs_mem.doc bs_files.docObjekt Manager Namensraum
Dateimanager Namensraum
8
Betriebssysteme © H. Weber, FH WiesbadenDateiverwaltung Folie 15
Dateiattribute und Sicherheit I
DateilängeDatum für Erzeugung, letzte Änderung,..Log. Attribute hidden, system, Archiv, Erzeuger, Besitzer, Benutzer und ihre Rechte
POSIX-6:geringstmöglichste Rechte für eine Aufgabe (least privilege)
Diskrete Angaben für Zugangskontrolle: Wer darf, wer nicht (ACL)
Zugangskontrolle nur von Prozessen größerer Rechte
Aufzeichnung des Zugangs (audit trail)
Betriebssysteme © H. Weber, FH WiesbadenDateiverwaltung Folie 16
Dateiattribute und Sicherheit II - UNIX
Zugriffsrechte: Lesen R, Schreiben W, Ausführen XVerzeichnisse: R=Liste lesen, W=neue Datei aufnehmen, X=Liste durchsuchen nach DateiGetrennt für Besitzer, Gruppe, Alle
Rechte bei Programmausführung = user RechteAber: set userId, set group IdACL ex. in neuerem Unix (Wer, was, wie)
drwx r-x r-x weber 512 Apr23 15:55 .
off 512 May17 17:53 ..
-rw- r-- r-- schulz 44181 Apr23 15:56 data1.txt
drwx r-x r-x
9
Betriebssysteme © H. Weber, FH WiesbadenDateiverwaltung Folie 17
Dateiattribute und Sicherheit III - Windows NT
Standardrechte: Read, Write, ExecuteOnly, Vollzugriff, ...ACL ex., neue Gruppen möglichAuditing möglichSpeziell für Dateien:
Attribute • Dateiname, Gerätetyp, Position in Datei, share-Status(r,w,del)• Mode: sync/async, mit/ohne Cache, seq/random Access, ...• File disposition: temp oder persistent
Methoden• CreateFile(), OpenFile(), ReadFile(), WriteFile(), CloseFile()• Lesen/setzen von Dateiinfo, Attributen, Geräteinfo,
Verzeichnissen• Sichern/freigeben der Dateilänge
Attribute implementiert durch Datenströme, neu erzeugbar
Betriebssysteme © H. Weber, FH WiesbadenDateiverwaltung Folie 18
Dateifunktionen I - Prinzip
StandardfunktionenStandardfunktionenCreate File Name, Zugriffsart: Tabelleneintrag
Open File Apprüfen der Zugriffsrechte, Puffereinrichtung,
Close FilePuffer + Tabellen deallozieren,
Read/Write File Puffer schreiben/lesen: DMA!
Seek FileIndex setzen der aktuellen Position → random access
Verbind.Verbind.--orientierte orientierte KommunikationKommunikation
10
Betriebssysteme © H. Weber, FH WiesbadenDateiverwaltung Folie 19
Dateifunktionen II - UNIX
fd = creat(Name, mode)file descriptor = Index in Tabellefd = open (Name, mode)read (fd, buffer, nbytes)write(fd, buffer, nbytes)close(fd)lseek(fd, offset, direction)
fd=1 fd=0 fd=1 fd=0Programm1 Programm2 Programm N
fd=2 fd=2 fd=2
Fehlerausgabe Fehlerausgabe Fehlerausgabe
Beispiel: pipesfd=0: Standard Input, fd=1 Standard Output, fd=2 standard error
Programm1 | Programm2 | .. | ProgrammN
Betriebssysteme © H. Weber, FH WiesbadenDateiverwaltung Folie 20
Dateifunktionen III - Windows NT
Übliche Dateizugriffsfunktionen wie Unix
Bei Veränderung der Dateistruktur: Atomare Transaktionendurch log file service LFS (write-ahead logging)Ergänzung der Operationen nach Absturz:= Fehlertolerantes Dateisystem
Wirksam bei fail save-System, nicht aber bei aktivem Fehler
11
Betriebssysteme © H. Weber, FH WiesbadenDateiverwaltung Folie 21
Strukturierte Zugriffsfunktionen
Sequentielle Dateien sequential filesMagnetbänder, LochstreifenProblem: unbekannte Zugriffsreihenfolge
Wahlfreie Dateien random access filesFestplatten, CD-ROM: Positionsangabe (offset) möglichProblem: ineffizient bei bekannter Datenorganisation
Indexsequentielle Dateien index-sequential filesÜbersicht (Index) am Dateianfang,Ordnung nach einem Kriterium (Schlüssel), z.B. Name, Geburtsdatum, ...
Fehlen der DB-Unterstützung: Problem bei UNIX!
Betriebssysteme © H. Weber, FH WiesbadenDateiverwaltung Folie 22
Verzeichnisfunktionen I - Prinzip
Create DirectoryVerzeichnis erzeugenRemove DirectoryVerzeichnis löschenChange Working DirectoryGegenwärtiges Arbeitsverzeichnis wechselnOpen DirectoryVerzeichnis-Stream öffnen zum Lesen der EinträgeClose DirectoryVerzeichnis-Stream schliessenRead Directory EntryEintrag in Verzeichnis-Stream lesenSeek Directory EntryZu gemerktem Eintrag positionierenTell Directory EntryGegenwärtigen Eintrag merken
12
Betriebssysteme © H. Weber, FH WiesbadenDateiverwaltung Folie 23
Spezialitäten I - Bibliotheksdateien
BS-typische, von allen Prozessen nutzbare Funktionen, die nicht im Kern sind
Vorteileweniger Hauptspeicher nötig, da Modul nur einmal vorhandenWartung ist erleichtert, da zentral
Aber:Speicher wird billiger & wenige Module sind oft benutztWartung auch bei zentraler Verteilung lokaler Module einfacherDLL-Hölle: Mehrere Module gleicher Version bilden eine Gruppe & Verschiedene Programme benötigen unterschiedliche Funktionalität von Modulversionen gleichen Namens & kein Schnittstellencheck → CRASH unklarer Herkunft
Also:Bibliotheksmodule bei Applikation lassen; registrierte Systembibliotheken automatisch reparieren (WIN 2000: 2800 signierte System-DLL)
Betriebssysteme © H. Weber, FH WiesbadenDateiverwaltung Folie 24
Idee wahlfreier Zugriff auf Massenspeicher = RAMPlattenspeicherbereich ↔ Hauptspeicherseiten
Einlesen des Bereichs nur wenn wirklich nötigPufferung automatisch durch Paging
Problem: Änderung der Länge der Datei
Spezialitäten II - memory mapped files
paging
Datei auf Platte virt. Adreßraum im Hauptspeicher
Daten
header
Daten
code
stack
13
Betriebssysteme © H. Weber, FH WiesbadenDateiverwaltung Folie 25
Spezialitäten III - memory mapped files
Beispiel Unixmmap() stellt eine Abbildung von virtuellem Adreßraum in den
Bereich einer Datei her.munmap() beendet die Abbildung. Wurde der Speicherinhalt
verändert, so werden die veränderten Seiten auf die Datei zurückgeschrieben.
msync() aktualisiert die Datei aus dem Speicher. Außerdem: Semaphoroperationen zur Synchronisation
Beispiel Windows NT VM-Manager & I/O-ManagerCreateFileMapping() erzeugt ein ObjektOpenFileMapping() öffnet es anderen Prozesse unter dem Namen
MapViewOfFile() Teilbereiche daraus in den virt. Adreßraum abbildenFlushViewOfFile() aktualisiert den Dateibereich UnmapViewOfFile() wieder schliessen
Betriebssysteme © H. Weber, FH WiesbadenDateiverwaltung Folie 26
Spezialitäten IV - special files
Abbildung von Dateimechanismen auf GerätesteuerungÖffnen/Schließen von Dateien = Initialisierung der GeräteLesen/Schreiben von Daten = I/O der DatenStatusänderung der Datei = Statusänderung des Geräts
Beispiel Unix„/dev/tty“ Terminal ein/ausgabe (character-oriented)„/dev/mt“ Magnetband (block-oriented)open(),close(),read(),write() Ein Gerät, mehrere Namen
und damit Modi (sequentiell, random access) möglich.ioctl() Statusänderung, z.B. Übertragungsmodus&Geschwindigkeitmount() Wurzelknoten des Dateisystems auf Gerät ersetzt Datei
Beispiel Windows NT virtual filesZugriff auf Geräte, Netzwerkverbindungen etc. wie auf normale Dateien
14
Betriebssysteme © H. Weber, FH WiesbadenDateiverwaltung Folie 27
Dateiimplementierung I
Kontinuierliche SpeicherzuweisungDatei „in einem Stück“: Schnell, aber nicht änderbar.
Listenartige SpeicherzuweisungVerzeigerte Liste von Speicherblöcken
Vorteil Rekonstruktion möglich bei Anker-Löschung Nachteil ineffizienter wahlfreier Zugriff
Datei A
Datei B Nil
BBlock 0
ABlock 1
BBlock 1
BBlock 2
ABlock 0
ABlock 2
BBlock 3
0 1 2 3 4 5 6
Betriebssysteme © H. Weber, FH WiesbadenDateiverwaltung Folie 28
Dateiimplementierung II
Zentrale indexbezogene Speicherzuweisungzentraler Block von Zeigern (Indizes) in einer Liste
Anfang Datei B
Anfang Datei A
Ende Datei B
Phys.BlockNr = ListenIndex
nächsterDaten-block
0 21 52 33 64 15 76 NIL
15
Betriebssysteme © H. Weber, FH WiesbadenDateiverwaltung Folie 29
Dateiimplementierung III - Zentraler Index
Beispiel File Allocation Table FAT von MS-DOSBlockgröße: 512 Byte (= 1 Sektor), Block 0: Bootstrap, Blöcke 1-5: FAT mit je Eintrag 12 Bit = 3Hexzahlen = 1.5 Byte
Pro cluster 1024 Byte = 2Blöcke
Block 18/19
Cluster 0
Cluster 1
Cluster 2
Index 3
12 Bit
1024 Byte
Index 2
Index 4Index 5Index 6
Block 19/20
Block 20/21
Maximale Diskettengrößemax. FATgröße 5⋅512=2560Byte Max. Zahl der Einträge = 2560/1.5 = 1706 Einträge (cluster), also max 1706 ⋅1024Byte
= 1,7 MB pro Diskette
Betriebssysteme © H. Weber, FH WiesbadenDateiverwaltung Folie 30
Dateiimplementierung IV - Zentraler Index
FAT-Probleme
Indexgröße Floppy 12 Bit → Platten 16 Bit212 Einträge → 216 Einträge = 216 Cluster
Problem: bei 2 GB Platte istClustergröße = 2 GB/Clusterzahl
= 231/216 =215=32kB groß,aber 1kB-Dateien sind normal!
Aber: Geringere Clustergröße, z.B. 1kB Cluster, 2 GB Platte, → 231/210=221=2 Mill. Einträge. Da jeder Eintrag 2 Mill andereEinträge referieren kann, muß er mind. 21 Bit (3 Bytes) breit sein. Dies bedeutet 2 Mill. mal 3 Bytes = 6 MB Platz für die FAT-Tabelleim Hauptspeicher, ohne daß alle benutzt werden müssen.
⇒ Bei kleinen Clustern gibt es lange Listen im RAM sowie lange Suchdauer.
16
Betriebssysteme © H. Weber, FH WiesbadenDateiverwaltung Folie 31
Dateiimplementierung V
Verteilte indexbezogene SpeicherzuweisungEigene Indexliste pro Datei
Datei A4157...
Datei B0236
NIL
Problem: Bei einigen Dateien sehr viele Blöcke, lineare Blocksuche wird langsam
Betriebssysteme © H. Weber, FH WiesbadenDateiverwaltung Folie 32
Dateiimplementierung VI
Verteilte indexbezogene SpeicherzuweisungBaumstruktur zur schnellen BlocksucheTabellengröße vs. Suchzeit: 1-,2-,3-stufige Tabellen
phys.
Blöcke
(a) einstufige (b) zweistufige (c) dreistufige Übersetzung (einfach-indirekt) (zweifach-indirekt)
... ... ...
17
Betriebssysteme © H. Weber, FH WiesbadenDateiverwaltung Folie 33
Dateiimplementierung VII - UNIX
Zentrale Tabelle pro Datei: i-node (Indexknoten)Verwaltungsdaten (Referenzen, Zeiger für free-Liste + mount()-Tabelle), erste Adressen von Datenblöcken + Zeiger für weitere
modelink countowner uidowner gid
file size3 time ref.Adressender ersten10 Blöcke1-indirekt2-indirekt3-indirekt
Max 256 Einträge (Blockindizes)
Max 256 Einträge (Zeiger)
16,8 GB
67 MB266 kB
Verzeichnis = Datei = Tabelle aus Dateinamen + i-node-Nummer
Zentrale Tabelle aller i-nodes = super node
Betriebssysteme © H. Weber, FH WiesbadenDateiverwaltung Folie 34
Dateiimplementierung VIII - UNIX
Schritte beim Aufsuchen von /usr/ast/mbox
18
Betriebssysteme © H. Weber, FH WiesbadenDateiverwaltung Folie 35
Dateiimplementierung IX - Windows NT
KonzeptKonzeptVolumes (log. Massenspeicher) als DatenspeichereinheitAlle Untereinheiten eines volumes sind nur Dateien (files), gekennzeichnet durch eine 48 Bit-Zahl &16Bit-Sequenznummer
Vorteile Vorteile Dateien vs. dedizierte Blöcke (Plattenbereiche)
einfacher, konsistenter Dateizugriffsmechanismus, sogar auf die boot-Information.Die Sicherheitsinformationen sind getrennt pro Objekt (Verwaltungsinformation) → besser anpaßbar an die inhaltlichen Notwendigkeiten des Objekts bzw. der Funktion.Werden Plattenteile unbrauchbar, so können die Verwaltungs-informationen unsichtbar für den Benutzer auch auf andere Plattenteile verlagert werden.
Betriebssysteme © H. Weber, FH WiesbadenDateiverwaltung Folie 36
Chkdsk-Programm
Dateiimplementierung X - Windows NT
~ ~
Datei 0 Master File Table
Datei 1 Sicherheitskopie der MFT ( Plattenmitte)
Datei 2 log file: Alle Operationen, die die NTFS-Struktur ändern, werden hier verzeichnet und garantieren so atomare Dateitransaktionen.
Datei 3 volume file: Statusinformationen Name, NTFS Version, ...corrupted Bit=1:
Datei 4 attribute definition table:Attributstypen + ihr Status
Datei 5 Root directory: Name des Wurzelverzeichnisses, z. B. \
Datei 6 bitmap file: Belegungstabelle der volume-Speichereinheiten (Cluster)
Datei 7 boot file: bootstrap Code von Windows NT und die physikalische Geräteadresse der MFT -Datei.
Datei 8 bad cluster file: Verzeichnis der unbrauchbaren volume-Cluster
. . .
Datei 16 Normale Benutzerdateien und Verzeichnisse
19
Betriebssysteme © H. Weber, FH WiesbadenDateiverwaltung Folie 37
Dateiimplementierung XI - Windows NT
Struktur eines Master File Table-Eintrags
Nichtresidente Attributsteile(eigentliche Datenblöcke)
MFT-Eintrag
standard informationfile name
(security descriptor)data stream
start VCN start LCN length
start VCN start LCN length
.. .. ..
HPFS extended attrib....
VCN : virtual cluster number
LCN : logical cluster number
Betriebssysteme © H. Weber, FH WiesbadenDateiverwaltung Folie 38
Dateiimplementierung XII - Windows NT
Struktur des Wurzelverzeichnisses root directory
root file Indexpuffer
Standardinformation
file name „ \ “
B*-Baum index root
file 4file 10file 15
index allocation VCN→LCN
bitmap XXX0XX0XXXXX
...
VCN0 file 0, …1 file 1, …2 file 3, …3
VCN4 file 6, …5 file 8, …67 file 9, …
VCN8 file 11, …9 file 12, …10 file 13, …11 file 14, …
Max. 15 Dateien (Schlüssel)
pro container (4 Cluster)
Wurzelcontainerdes B*-Baums
20
Betriebssysteme © H. Weber, FH WiesbadenDateiverwaltung Folie 39
Dateiimplementierung XIII - Windows NT
Interne Datenstrukturen für eine NTFS-Datei
Object manager data NTFS memory data NTFS disk database
processmaster file
table
...
filecontrolblock
streamcontrolblocksdata
stream
user-definedattribute
file handletable
...
fileobject
fileobject