Modul B-PRG Grundlagen der Programmierung 1 Teil 3: Teil 3: Betriebssysteme, Dateisysteme, Sicherheit Betriebssysteme, Dateisysteme, Sicherheit V22+V23: V22+V23: Dateiverwaltung Dateiverwaltung Prof. Dr. R. Brause Adaptive Systemarchitektur Institut für Informatik Fachbereich Informatik und Mathematik (12) Grundlagen der Programmierung 1 R.Brause: Dateiverwaltung Folie 2 Dateisysteme Liste von Dateien auf Massenspeicher = relationale Datenbank! Objektorientierte Datenbank: mit Methoden+Attributen Multi-Media-Datenbank: mit Bild+Tonobjekten+Synchron. Organisation von Datenbanken Persistent 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 ... ... ... ... ... ...
26
Embed
Modul B-PRG Grundlagen der Programmierung 1 · Grundlagen der Programmierung 1 R.Brause: Dateiverwaltung Folie 31 Indexsequentielle Dateien Definition B-Baum (Bayer, McCreight1972)
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
1
Modul B-PRG
Grundlagen der Programmierung 1
Teil 3:Teil 3: Betriebssysteme, Dateisysteme, SicherheitBetriebssysteme, Dateisysteme, SicherheitV22+V23: V22+V23: DateiverwaltungDateiverwaltung
Prof. Dr. R. BrauseAdaptive SystemarchitekturInstitut für Informatik Fachbereich Informatik und Mathematik (12)
Grundlagen der Programmierung 1 R.Brause: Dateiverwaltung Folie 2
Dateisysteme
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.871 MyProgram 234504 550624 23.4.962 Datei1.dat 530 2048 25.1.97... ... ... ... ... ...
2
Grundlagen der Programmierung 1 R.Brause: Dateiverwaltung Folie 3
Dateinamen
Hierarchische Dateiorganisation in BaumformKnoten = „Ordner“ = directory
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 \ / : * ? " < >
3
Grundlagen der Programmierung 1 R.Brause: Dateiverwaltung Folie 5
Benutzeroberfläche (Desktopmanager HP -VUE, MS-Explorer) behandelt DateinamenListe von Aktionen pro Typ definiert (Kontextmenü)Doppelklick = erste Aktion ausführen
Grundlagen der Programmierung 1 R.Brause: Dateiverwaltung Folie 6
Dateinamen: UNIX Interne Typangabe
class 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 *)
4
Grundlagen der Programmierung 1 R.Brause: Dateiverwaltung Folie 7
Dateinamen: 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
Absolute Pfadnamen müssen nach Verschiebung des Programmsystems geändert werden, relative nicht !
Grundlagen der Programmierung 1 R.Brause: Dateiverwaltung Folie 10
Dateinamen: UNIX Namensraum
Querverbindungen durch hard links (gleiches Laufwerk) oder symbolic links (anderes Laufwerk)
Beispiel: hard link löschen zu Datei2: Datei bleibt erhalten (Zähler).zu rück-referiertem Verzeichnis: stand-alone Verzeichnis?
Abteilung5
Gruppe 1 Gruppe2
Rudi Hans
Datei1 Datei2 Datei3
symbolic linkhard links
×
Baumorientiertes Dateisystem
6
Grundlagen der Programmierung 1 R.Brause: Dateiverwaltung Folie 11
Zugriff mit /users/Rudi/Brief1.doc
user file system
Rudi Hans Ute Festplatte 2Brief1.doc
/
Dateinamen: UNIX Pfaderweiterung
Einhängen eines Dateisystems (mounten)
root file system
etc bin usr
users
/Festplatte 1
Grundlagen der Programmierung 1 R.Brause: Dateiverwaltung Folie 12
Dateinamen: 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 kernelhandles)
„Durchsuchen“-Methode bei jedem Objekt: neue, unbekannte Dateisysteme!
7
Grundlagen der Programmierung 1 R.Brause: Dateiverwaltung Folie 13
Dateinamen: Windows NT Namensraum
Symbolic link parsing-Methode:\
Device DosDevices
Floppy0 HardDisk0 A: B: C:
Texte Email Partition0
bs_mem.doc bs_files.docObjekt Manager Namensraum
Dateimanager Namensraum
Beispiel A:\Texte\bs_files.doc
Objekt manager: A:\Texte\bs_files.doc à \Device\Floppy0\Texte\bs_files.doc
Datei manager: Find Texte\bs_files.doc
Grundlagen der Programmierung 1 R.Brause: Dateiverwaltung Folie 14
Dateiattribute und Sicherheit
Dateiattribute§ Dateilänge§ Datum für Erzeugung, letzte Änderung,..§ Log. Attribute hidden, system, Archiv, § Erzeuger, Besitzer, Benutzer und ihre Rechte
Rechte & Sicherheit in 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 (mandatorycontrol)
§ Aufzeichnung des Zugangs (audit trail)
8
Grundlagen der Programmierung 1 R.Brause: Dateiverwaltung Folie 15
drwx r-x r-x brause 512 Apr23 15:55 .
off 512 May17 17:53 ..
-rw- r-- r-- brause 44181 Apr23 15:56 data1.txt
drwx r-x r-x
Dateiattribute und Sicherheit: 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 Id
ACL ex. in neuerem Unix (Wer, was, wie)
Grundlagen der Programmierung 1 R.Brause: Dateiverwaltung Folie 16
Dateiattribute und Sicherheit: 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)
Problem: Eingliedern/Ausgliedern von Datensätzen in die Container (Datenblöcke) fester Größe, z.B. „41“
12
Grundlagen der Programmierung 1 R.Brause: Dateiverwaltung Folie 23
Indexsequentielle Dateien
NeuordnungSchnellerer Zugriff: Jeder Schlüssel wird nur einmal notiert und enthält bereits das Info für den Dateizugriff
Pro Intervall ein Ast (oder Blatt), max. m Intervalle pro Knoten, m-1 Schlüssel
Ist ein Schlüssel nicht vorhanden, wird er im Intervall auf unterster Stufe eingefügt und ein neues Blatt (Platzhalter) wird daneben erzeugt ⇒ Alle Blätter sind auf der selben Ebene
Ist ein Behälter zu voll, so wird er in zwei Behälter aufgeteilt und der Schlüssel in der Mitte eine Ebene höher verschoben
Beispiel: m=5 (max. 4 Schlüssel pro Knoten bzw. Schlüsselbehälter)Die 12 Record-Schlüssel 5, 15, 26, 42, 48, 56, 80, 82, 97, 37, 50 werden abgespeichert
Grundlagen der Programmierung 1 R.Brause: Dateiverwaltung Folie 24
Grundlagen der Programmierung 1 R.Brause: Dateiverwaltung Folie 30
B-Baum
Allgemein: Einfacheres Einfügen neuer SchlüsselIntervall (Ast oder Blatt) suchen für neuen SchlüsselEinfügen auf unterster StufeÜberfließen bei max. m Schlüsseln pro Behälter (m ungerade):
Aufteilen in zwei H älften [S1...St-1], St, [St+1 ...Sn], t = (n-1)/2 +1 = n/2
§ Nachbarbehälter hat Platz (n = m+k < 2m) : Umverteilen§ Nachbarbehälter bereits voll (n = 2m) : Beide fusionieren +
Schlüsselbehälter wird aufgeteiltMittleren Schlüssel St nach oben verschieben in h öhere Stufe
Bei Überlauf im Behälter der h öheren Stufe wie oben verfahren
Eigenschaften
§ Gleiche Anzahl von Verzweigungen pro Ebene§ Schlüsselbehälter sind mind. zur Hälfe m/2 voll
⇒ „B-Baum“
16
Grundlagen der Programmierung 1 R.Brause: Dateiverwaltung Folie 31
Indexsequentielle Dateien
Definition BB--Baum Baum (Bayer, McCreight 1972)
Ein B-Baum der Ordnung m ist ein Baum, bei dem
(1) die Wurzel (wenn sie nicht Blatt ist) mind. 2 Äste hat
(2) jeder Knoten mit k Verzweigungen k–1 Schlüssel (Indizes) enthält,
(3) jeder Ast bzw. Knoten (bis auf die Wurzel und Blätter) in minimal k=m/2 und maximal k = m Äste verzweigt,(minimal zur Hälfte gefüllte Behälter)
(4) alle Blätter auf derselben Ebene sind. Die Blätter selbst tragen keine Information; sie stellen nur mögliche Einfügepunkte für Indizes dar.
Satz: Bei N Schlüsseln gibt es N+1 Blätter
Grundlagen der Programmierung 1 R.Brause: Dateiverwaltung Folie 32
B-Baum
Anzahl der nötigen Stufen (Baumtiefe) (ungerades m)
1.Stufe: mind. 2 Verzweigungen der Wurzel nötig2.Stufe: mind. 2 mal m/2 Verzweigungen auf der Stufe3.Stufe: mind. 2 mal m/2 mal m/2 Verzweigungenn-te Stufe: mind. 2⋅m/2⋅m/2⋅.. = 2⋅m/2n–1 Verzweigungen
= N+1 Blattverzweigungen
Wir erreichen spätestens in der n-ten Stufe 2⋅m/2n–1 = N+1 Verzweigungen.Also: 2⋅m/2n–1 = N+1
Grundlagen der Programmierung 1 R.Brause: Dateiverwaltung Folie 33
B-Baum
Problem: Häufiges Teilen der BehälterVerbesserungen
Ausgleich zwischen vollen und leeren BehälternVerschiebe vom Schlüsselbehälter mit m–1 Schlüsselnzu einem Nachbarbehälter mit k < m-1 Schlüsseln so, daßjeweils die halbe Gesamtschlüsselzahl verbleibt und der mittlere Schlüssel mit Index i= (k+m)/2 nach oben wandert.
Aufteilen von zwei vollen BehälternTeile vollen (m-1) und übervollen (m) Behälter + dazugehörenden Schlüssel der nächsthöheren Stufe (=2m) in drei Behälter auf zu je (2m-2)/3 + 2 Schlüssel für die nächste Stufe.
Also jeweils (2m–2)/3, (2m–1)/3 und (2m)/3 Schlüssel, wobei die beiden Schlüssel SA und SB mit den Indizes A=(2m+1)/3, B= (m–2)/3 nach oben in die höhere Indexstufe wandern.
⇒ Jede Partition ist nicht mind. ½, sondern 2/3 voll
Grundlagen der Programmierung 1 R.Brause: Dateiverwaltung Folie 34
B*-Baum
Definition B*B*--Baum Baum Ein B*-Baum der Ordnung m ist ein Baum, bei dem
(1) die Wurzel mindestens 2 und maximal 2 (2m–2)/3 +1Verzweigungen hat. Damit kann die Wurzel beim Überfließen in 2 Behälter zu je(2m–2)/3 Schlüssel (plus ein Schlüssel als neue Wurzel) geteilt werden.
(2) jeder Ast bzw. Knoten (bis auf die Wurzel und Blätter) in minimal k= (2m–1)/3 und maximal m Äste verzweigt.
(3) jeder Knoten k–1 Schlüssel (Indizes) enthält.
(4) alle Blätter auf derselben Ebene sind.
18
Grundlagen der Programmierung 1 R.Brause: Dateiverwaltung Folie 35
Bei 2 GB Platte und 1kB Clustergröße→ 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.× 3 Bytes = 6 MB Platz für die FAT-Tabelleim Hauptspeicher, ohne daß alle Einträge benutzt werden.
⇒ Bei kleinen Clustern gibt es lange Listen im RAM sowie lange Suchdauer.
Grundlagen der Programmierung 1 R.Brause: Dateiverwaltung Folie 46
Dateiimplementierung
Verteilte indexbezogene SpeicherzuweisungStatt zentraler Index aller Dateien eigene Indexliste pro Datei:
Datei A4157...
Datei B0236
NIL
Problem: Bei einigen Dateien ex. sehr viele Blöcke, lineare Blocksuche wird langsam.
24
Grundlagen der Programmierung 1 R.Brause: Dateiverwaltung Folie 47
Dateiimplementierung
Verteilte indexbezogene SpeicherzuweisungBaumstruktur zur schnellen BlocksucheTabellengröße vs. Suchzeit: 1-,2-,3-stufige Tabellen
Grundlagen der Programmierung 1 R.Brause: Dateiverwaltung Folie 48
Dateiimplementierung: 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öcke
1-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
25
Grundlagen der Programmierung 1 R.Brause: Dateiverwaltung Folie 49
Dateiimplementierung: 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.
Grundlagen der Programmierung 1 R.Brause: Dateiverwaltung Folie 50
Chkdsk-Programm
Dateiimplementierung : 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.