26
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 ... ... ... ... ... ...

Modul B-PRG Grundlagen der Programmierung 1 · Grundlagen der Programmierung 1 R.Brause: Dateiverwaltung Folie 31 Indexsequentielle Dateien Definition B-Baum (Bayer, McCreight1972)

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Modul B-PRG Grundlagen der Programmierung 1 · Grundlagen der Programmierung 1 R.Brause: Dateiverwaltung Folie 31 Indexsequentielle Dateien Definition B-Baum (Bayer, McCreight1972)

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... ... ... ... ... ...

Page 2: Modul B-PRG Grundlagen der Programmierung 1 · Grundlagen der Programmierung 1 R.Brause: Dateiverwaltung Folie 31 Indexsequentielle Dateien Definition B-Baum (Bayer, McCreight1972)

2

Grundlagen der Programmierung 1 R.Brause: Dateiverwaltung Folie 3

Dateinamen

Hierarchische Dateiorganisation in BaumformKnoten = „Ordner“ = directory

Alle Dateien

Gruppe 1 ... Gruppe m Datei f

Datei 1 Datei 2 ... Datei n Datei k ... Datei s

Zusätzliche Vernetzung (azykl.Graph)

Firma Abteilung 5

Formulare Rudi Hans

BriefVorlage.dot Brief1.doc .. BriefN.doc Brief1.doc BriefM.doc

Grundlagen der Programmierung 1 R.Brause: Dateiverwaltung Folie 4

Dateinamen

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 \ / : * ? " < >

Page 3: Modul B-PRG Grundlagen der Programmierung 1 · Grundlagen der Programmierung 1 R.Brause: Dateiverwaltung Folie 31 Indexsequentielle Dateien Definition B-Baum (Bayer, McCreight1972)

3

Grundlagen der Programmierung 1 R.Brause: Dateiverwaltung Folie 5

Geschachtelte Typen

Beispiel: Skript.ps.gz= Textdatei → Postscript-Format→Komprimiert

Dateinamen: 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

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 *)

Page 4: Modul B-PRG Grundlagen der Programmierung 1 · Grundlagen der Programmierung 1 R.Brause: Dateiverwaltung Folie 31 Indexsequentielle Dateien Definition B-Baum (Bayer, McCreight1972)

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

„∼3“, falls schon existiert.

Beispiel: „Ganz langer Dateiname.text.ps“ → GANZLA~1.ps

Grundlagen der Programmierung 1 R.Brause: Dateiverwaltung Folie 8

Dateinamen: Pfadnamen

absolute PfadnamenDateiname = Kette aus Knotennamen von der Wurzel zum BlattBeispiel: /Abteilung5/Rudi/Brief1.doc Unix

\Abteilung5\Rudi\Brief1.doc NT

relative PfadnamenVorgänger: ..Dieses Verzeichnis .Beispiel: Rudi/Brief1.doc ist bei Hans: ../Rudi/Brief1.doc

Abteilung 5

Rudi Hans

BriefN.doc Brief1.doc BriefM.docBrief1.doc

Page 5: Modul B-PRG Grundlagen der Programmierung 1 · Grundlagen der Programmierung 1 R.Brause: Dateiverwaltung Folie 31 Indexsequentielle Dateien Definition B-Baum (Bayer, McCreight1972)

5

Grundlagen der Programmierung 1 R.Brause: Dateiverwaltung Folie 9

Dateinamen: Pfadnamen

Vorteil relativer Pfadnamen: PortabilitPortabilitäättBeispiel Programmsystem

/

toolsX toolsY

Daten Programme

Dat1.a liba libb Prog

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

Page 6: Modul B-PRG Grundlagen der Programmierung 1 · Grundlagen der Programmierung 1 R.Brause: Dateiverwaltung Folie 31 Indexsequentielle Dateien Definition B-Baum (Bayer, McCreight1972)

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!

Page 7: Modul B-PRG Grundlagen der Programmierung 1 · Grundlagen der Programmierung 1 R.Brause: Dateiverwaltung Folie 31 Indexsequentielle Dateien Definition B-Baum (Bayer, McCreight1972)

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)

Page 8: Modul B-PRG Grundlagen der Programmierung 1 · Grundlagen der Programmierung 1 R.Brause: Dateiverwaltung Folie 31 Indexsequentielle Dateien Definition B-Baum (Bayer, McCreight1972)

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)

• 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„MeineDatei.dat : MeinKommentar“ (nichtlöschbare Viren!)

Page 9: Modul B-PRG Grundlagen der Programmierung 1 · Grundlagen der Programmierung 1 R.Brause: Dateiverwaltung Folie 31 Indexsequentielle Dateien Definition B-Baum (Bayer, McCreight1972)

9

Grundlagen der Programmierung 1 R.Brause: Dateiverwaltung Folie 17

Verbind.Verbind.--orientierteorientierteKommunikationKommunikation

Dateifunktionen

StandardfunktionenStandardfunktionen

Create 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

Grundlagen der Programmierung 1 R.Brause: Dateiverwaltung Folie 18

Dateifunktionen: UNIX

fd = creat(Name, mode)file descriptor = Index in Tabellefd = open (Name, mode)read (fd, buffer, nbytes)write(fd, buffer, nbytes)close(fd)

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

Page 10: Modul B-PRG Grundlagen der Programmierung 1 · Grundlagen der Programmierung 1 R.Brause: Dateiverwaltung Folie 31 Indexsequentielle Dateien Definition B-Baum (Bayer, McCreight1972)

10

Grundlagen der Programmierung 1 R.Brause: Dateiverwaltung Folie 19

Dateifunktionen: 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

DateistrukturenDateistrukturen

Page 11: Modul B-PRG Grundlagen der Programmierung 1 · Grundlagen der Programmierung 1 R.Brause: Dateiverwaltung Folie 31 Indexsequentielle Dateien Definition B-Baum (Bayer, McCreight1972)

11

Grundlagen der Programmierung 1 R.Brause: Dateiverwaltung 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!

Grundlagen der Programmierung 1 R.Brause: Dateiverwaltung Folie 22

Indexsequentielle Dateien

Einwohnerdatei, Schlüssel = Alter

Auffüllen von Containern der Größe m mit Schlüsseln

Baumstruktur für indizierten Zugriff:Index n-1. Stufe= {max (container Index n-ter Stufe) }Index-sequentielle Speicherung (Zylinder, Spur, Sektor)

Beispiel 12 Record-Schlüssel: 5, 15, 26, 42, 48, 56, 80, 82, 97, 37, 50

48 97 Index 1. StufeZylinder

x≤48 48<x≤97

26 48 80 97 Index 2. StufeSpur

x≤26 26<x≤48 x≤80 80<x≤97

5 15 26 37 42 48 50 56 80 82 97 Index 3. StufeSektorDatensätze

Problem: Eingliedern/Ausgliedern von Datensätzen in die Container (Datenblöcke) fester Größe, z.B. „41“

Page 12: Modul B-PRG Grundlagen der Programmierung 1 · Grundlagen der Programmierung 1 R.Brause: Dateiverwaltung Folie 31 Indexsequentielle Dateien Definition B-Baum (Bayer, McCreight1972)

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

Indexsequentielle Dateien

Beispiel: m = 5 Schlüssel 5, 15, 26, 42, 48, 56, 80, 82, 97, 37, 50

(a)

26 Index 1. Stufe

48

5 15 26 42 5 15 42 48 Index 2. Stufe

Page 13: Modul B-PRG Grundlagen der Programmierung 1 · Grundlagen der Programmierung 1 R.Brause: Dateiverwaltung Folie 31 Indexsequentielle Dateien Definition B-Baum (Bayer, McCreight1972)

13

Grundlagen der Programmierung 1 R.Brause: Dateiverwaltung Folie 25

Indexsequentielle Dateien

Beispiel: m = 5 Schlüssel 5, 15, 26, 42, 48, 56, 80, 82, 97, 37, 50

Eingliedern

Index 1. Stufe

Index 2. Stufe485 15 26 42

Grundlagen der Programmierung 1 R.Brause: Dateiverwaltung Folie 26

Indexsequentielle Dateien

Beispiel: m = 5 Schlüssel 5, 15, 26, 42, 48, 56, 80, 82, 97, 37, 50

Schlüsselbehälter aufspalten

Index 1. Stufe

Index 2. Stufe

26

5 15 42 4826

Page 14: Modul B-PRG Grundlagen der Programmierung 1 · Grundlagen der Programmierung 1 R.Brause: Dateiverwaltung Folie 31 Indexsequentielle Dateien Definition B-Baum (Bayer, McCreight1972)

14

Grundlagen der Programmierung 1 R.Brause: Dateiverwaltung Folie 27

Indexsequentielle Dateien

Beispiel: m = 5 Schlüssel 5, 15, 26, 42, 48, 56, 80, 82, 97, 37, 50

Schlüsselbehälter auffüllen

Index 1. Stufe

Index 2. Stufe

26

5 15 42 48 56 80 82

Grundlagen der Programmierung 1 R.Brause: Dateiverwaltung Folie 28

Indexsequentielle Dateien

Beispiel: m = 5 Schlüssel 5, 15, 26, 42, 48, 56, 80, 82, 97, 37, 50

Schlüsselbehälter teilen

Index 1. Stufe

Index 2. Stufe56

26

5 15 42 48 80 82

56

Page 15: Modul B-PRG Grundlagen der Programmierung 1 · Grundlagen der Programmierung 1 R.Brause: Dateiverwaltung Folie 31 Indexsequentielle Dateien Definition B-Baum (Bayer, McCreight1972)

15

Grundlagen der Programmierung 1 R.Brause: Dateiverwaltung Folie 29

Indexsequentielle Dateien

Beispiel: m = 5 Schlüssel 5, 15, 26, 42, 48, 56, 80, 82, 97, 37, 50

Schlüsselbehälter auffüllen

Index 1. Stufe

Index 2. Stufe97

26

5 15 42 48 80 82

56

5037

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“

Page 16: Modul B-PRG Grundlagen der Programmierung 1 · Grundlagen der Programmierung 1 R.Brause: Dateiverwaltung Folie 31 Indexsequentielle Dateien Definition B-Baum (Bayer, McCreight1972)

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

n–1 = logm/2 (N+1)/2 Log. Suchzeit! BeispielBei m=200, N=2 Mill.: max. n-1 = log100(1⋅106)=log100(1003) = 3 Stufen, also nur max. n=4 Stufen!

B-Bäume sind flach !

Page 17: Modul B-PRG Grundlagen der Programmierung 1 · Grundlagen der Programmierung 1 R.Brause: Dateiverwaltung Folie 31 Indexsequentielle Dateien Definition B-Baum (Bayer, McCreight1972)

17

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.

Page 18: Modul B-PRG Grundlagen der Programmierung 1 · Grundlagen der Programmierung 1 R.Brause: Dateiverwaltung Folie 31 Indexsequentielle Dateien Definition B-Baum (Bayer, McCreight1972)

18

Grundlagen der Programmierung 1 R.Brause: Dateiverwaltung Folie 35

B*-Baum: Beispiel

Beispiel: m = 5 Schlüssel 5, 15, 26, 42, 48, 56, 80, 82, 97, 37, 50

B*-Baum: Eingliedern in Wurzel mit max 2 (2m–2)/3 = 4 Schlüsseln

Index 1. Stufe

Index 2. Stufe485 15 26 42

Grundlagen der Programmierung 1 R.Brause: Dateiverwaltung Folie 36

B*-Baum: Beispiel

Beispiel: m = 5 Schlüssel 5, 15, 26, 42, 48, 56, 80, 82, 97, 37, 50

B*-Baum: Wurzel-Schlüsselbehälter aufspalten

Index 1. Stufe

Index 2. Stufe

26

5 15 42 4826

Resultiert in 2 Behälter je (2m–2)/3 = 2 Schlüssel wie beim B-Baum

Page 19: Modul B-PRG Grundlagen der Programmierung 1 · Grundlagen der Programmierung 1 R.Brause: Dateiverwaltung Folie 31 Indexsequentielle Dateien Definition B-Baum (Bayer, McCreight1972)

19

Grundlagen der Programmierung 1 R.Brause: Dateiverwaltung Folie 37

26

155 42 48

B*-Baum: Beispiel

Beispiel: m = 5 Schlüssel 5, 15, 26, 42, 48, 56, 80, 82, 97, 37, 50

B*-Baum: Überfließen

Index 1. Stufe

Index 2. Stufe829756 805

42

2615 48 56 80 825 15

48

4226 56 80 82 97

Grundlagen der Programmierung 1 R.Brause: Dateiverwaltung Folie 38

26 80

B*-Baum: Beispiel

Beispiel: m = 5 Schlüssel 5, 15, 26, 42, 48, 56, 80, 82, 87, 97, 37, 50

B*-Baum: Behälter dreiteilen

Index 1. Stufe

Index 2. Stufe48

48

8026 975 15 42 56 82 87

Page 20: Modul B-PRG Grundlagen der Programmierung 1 · Grundlagen der Programmierung 1 R.Brause: Dateiverwaltung Folie 31 Indexsequentielle Dateien Definition B-Baum (Bayer, McCreight1972)

20

Grundlagen der Programmierung 1 R.Brause: Dateiverwaltung Folie 39

B*-Baum vs. B-Baum: Beispiel

Vergleich B-Baum vs. B*-Baum

Beispiel: Aufbau + Einfügen von „41“

m=5

(a) (b)

26 42 56 37 56 Index 1.Stufe

5 15 37 41 48 50 80 82 97 5 15 26 41 42 48 50 80 82 97 Index 2.Stufe

Fazit: B*-Baum hat besseren Füllgrad ⇒ weniger Behälter nötig

Grundlagen der Programmierung 1 R.Brause: Dateiverwaltung Folie 40

Mehrfachlisten und Invertierte Dateien

Die Indexfolge jeden Schlüssels ist als Liste implementiertBeispiel: Mehrfachliste

Indexfolge 1,3,2,6,5,8

Problem: Sequ. Schlüsselsuche

Lösung : Alle Zeiger im Dateianfang: invertierte Datei

(Schlüssel→Record statt umgekehrt)

Schlüssel 1

Schlüssel 2

...

Schlüssel m

Satz 1 Satz 2 Satz 3 Satz 4 Satz 5 Satz 6 Satz 7 Satz 8

Page 21: Modul B-PRG Grundlagen der Programmierung 1 · Grundlagen der Programmierung 1 R.Brause: Dateiverwaltung Folie 31 Indexsequentielle Dateien Definition B-Baum (Bayer, McCreight1972)

21

DateiDatei--implementierungimplementierung

Grundlagen der Programmierung 1 R.Brause: Dateiverwaltung Folie 42

Dateiimplementierung

Kontinuierliche SpeicherzuweisungDatei „in einem Stück“: Schnell, aber nicht änderbar.

Listenartige SpeicherzuweisungVerzeigerte Liste von Speicherblöcken (Strategien!)

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

Page 22: Modul B-PRG Grundlagen der Programmierung 1 · Grundlagen der Programmierung 1 R.Brause: Dateiverwaltung Folie 31 Indexsequentielle Dateien Definition B-Baum (Bayer, McCreight1972)

22

Grundlagen der Programmierung 1 R.Brause: Dateiverwaltung Folie 43

Dateiimplementierung

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

Grundlagen der Programmierung 1 R.Brause: Dateiverwaltung Folie 44

Dateiimplementierung: Zentraler Index

Beispiel File Allocation Table FAT von MS-DOS

Blockgröß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 4

Index 5

Index 6

Block 20/21

Block 22/23

Maximale Diskettengröße

max. 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

Page 23: Modul B-PRG Grundlagen der Programmierung 1 · Grundlagen der Programmierung 1 R.Brause: Dateiverwaltung Folie 31 Indexsequentielle Dateien Definition B-Baum (Bayer, McCreight1972)

23

Grundlagen der Programmierung 1 R.Brause: Dateiverwaltung Folie 45

Dateiimplementierung: Zentraler Index

FAT-ProblemeIndexgröße Floppy 12 Bit → Platten 16 Bit

212 Einträge → 216 Einträge = 216 Cluster

Problem1 : zu wenige Cluster

Bei 2 GB Platte und 216 Cluster istClustergröße = 2 GB/Clusterzahl

= 231/216 = 215 = 32kB groß: großer Verschnitt von 16kB!

Problem2: zu kleine Cluster

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.

Page 24: Modul B-PRG Grundlagen der Programmierung 1 · Grundlagen der Programmierung 1 R.Brause: Dateiverwaltung Folie 31 Indexsequentielle Dateien Definition B-Baum (Bayer, McCreight1972)

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

phys.

Blöcke

(a) einstufige (b) zweistufige (c) dreistufige Übersetzung (einfach-indirekt) (zweifach-indirekt)

... ... ...

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

Page 25: Modul B-PRG Grundlagen der Programmierung 1 · Grundlagen der Programmierung 1 R.Brause: Dateiverwaltung Folie 31 Indexsequentielle Dateien Definition B-Baum (Bayer, McCreight1972)

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.

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 undVerzeichnisse

Page 26: Modul B-PRG Grundlagen der Programmierung 1 · Grundlagen der Programmierung 1 R.Brause: Dateiverwaltung Folie 31 Indexsequentielle Dateien Definition B-Baum (Bayer, McCreight1972)

26

Grundlagen der Programmierung 1 R.Brause: Dateiverwaltung Folie 51

Dateiimplementierung : Windows NT

Struktur des Wurzelverzeichnisses root directory

root file Indexpuffer

Standardinformation

file name „ \ “

B*-Baum indexroot

file 4file 10file 15

indexallocation 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