Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Modul: B-BS Betriebssysteme WS 2012 Prof. Dr. Rüdiger Brause Adaptive Systemarchitektur Institut für Informatik Fachbereich Informatik und Mathematik.

Ähnliche Präsentationen


Präsentation zum Thema: "Modul: B-BS Betriebssysteme WS 2012 Prof. Dr. Rüdiger Brause Adaptive Systemarchitektur Institut für Informatik Fachbereich Informatik und Mathematik."—  Präsentation transkript:

1

2 Modul: B-BS Betriebssysteme WS 2012 Prof. Dr. Rüdiger Brause Adaptive Systemarchitektur Institut für Informatik Fachbereich Informatik und Mathematik (12) Datei- verwaltung

3 Folie 2 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Dateiverwaltung 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 NummerNamePositionLängeDatum... 0Datei1.dat MyProgram Datei1.dat

4 Folie 3 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Dateiverwaltung Dateinamen und Attribute Dateistrukturen Dateiimplementierung Dateiarten

5 Folie 4 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Dateiverwaltung Dateinamen Hierarchische Dateiorganisation in Baumform Knoten = Ordner = directory gleiche Dateinamen möglich Zusätzliche Vernetzung Firma Abteilung 5 Formulare Rudi Hans BriefVorlage.dot Brief1.doc.. BriefN.doc Brief1.doc BriefM.doc Wald (azykl.Graph) Alle Dateien Gruppe 1... Gruppe m Datei f Datei n Datei 1... Datei s

6 Folie 5 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Dateiverwaltung Dateinamen Namensbildung Namensbildung Name.ext (üblich) Extension = Dateityp, Dateizweck Beispiele:.datDaten; Format h ä ngt vom Erzeugerprogramm ab.docTextdokument in dem speziellen Format des Texteditors.pasPASCAL-Programm Quellcode.cC-Programm Quellcode.hDeklarations (header)-Dateien f ü r C-Programme.psPostscript Dateien zum Ausdrucken.Z,.zip,.gzKomprimierte Dateien nicht genormte Endung!.tarein gesamtes Dateisystem, in einer Datei abgespeichert.htmlASCII-Textdatei f ü r das world wide web- Hypertextsystem.jpg,.gif, png,Bilddateien (komprimiert/unkomprimiert).tif,.bmp MS-DOS: 3 Extensionsbuchstaben! Sonst: 215 Char ohne \ / : * ? "

7 Folie 6 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Dateiverwaltung 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 Dateinamen Liste von Aktionen pro Typ definiert (Kontextmenü) Doppelklick = erste Aktion ausführen

8 Folie 7 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Dateiverwaltung 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 *)

9 Folie 8 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Dateiverwaltung Dateinamen: Eindeutigkeit Problem: eineindeutige Abbildung langer Namen auf kurze. z.B. NTFS MS-DOS (8 Zeichen. 3Zeichen) Lösung Windows NT: Alle illegalen MS-DOS Buchstaben (Nicht-ASCII + Sonderzeichen) 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: L ä ngerer Dateiname.text.ps LNGERE~1.ps

10 Folie 9 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Dateiverwaltung Dateinamen absoluter Pfadname Dateiname = Kette aus Knotennamen von der Wurzel zum Blatt Beispiel: / Abteilung5 / Rudi / Brief1.doc Unix \ Abteilung5 \ Rudi \ Brief1.doc NT Vorgänger:.. Dieses Verzeichnis. relativer Pfadname z.B. Rudi/Brief1.doc bei Hans:../Rudi/Brief1.doc Abteilung 5 Rudi Hans BriefN.doc Brief1.doc BriefM.doc Brief1.doc

11 Folie 10 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Dateiverwaltung Dateinamen Portabilität Vorteil relativer Pfadnamen: Portabilität Beispiel Programmsystem / toolsX toolsY Daten Programme Dat1.a libalibbProg Absolute Pfadnamen müssen nach Verschiebung des Programmsystems geändert werden, relative nicht !

12 Folie 11 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Zugriff mit /users/Rudi/Brief1.doc user file system Rudi Hans Ute Festplatte 2 Brief1.doc / Dateiverwaltung Dateinamen: UNIX Pfaderweiterung Einhängen eines Dateisystems (mounten) root filesystem etc bin usr users / Festplatte 1 Frage: Was passiert mit den Dateien, die vorher in users waren?

13 Folie 12 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Dateiverwaltung 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). Problem: rück-referiertes Verzeichnis stand-alone Verzeichnis? Abteilung5 Gruppe 1Gruppe2 RudiHans Datei1Datei2 Datei3 symbolic link hard link Baumorientiertes Dateisystem

14 Folie 13 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Dateiverwaltung Dateinamen: Windows NT Namensraum Namensraum für alle Objekte wie pipes, shared memory, Prozesse, Semaphoren, events,... Logische Querverbindungen (symbolic links) ab NT 6.0 Löschen von Dateien : 2 Referenzzähler (user und kernel handles) Durchsuchen-Methode bei jedem Objekt: Einbindung neuer, unbekannter Dateisysteme möglich! (Vorteil ADT)

15 Folie 14 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Dateiverwaltung Dateinamen: Windows NT Namensraum Symbolic link parsing-Methode: DosDevices B: C: Texte Partition0 bs_mem.docbs_files.doc Objekt Manager Namensraum DateimanagerNamensraum \ Device Floppy0 Beispiel A:\Texte\bs_files.doc Objekt manager: A:\Texte\bs_files.doc \Device\Floppy0\Texte\bs_files.doc Dateimanager: Methode Find ( Texte\bs_files.doc ) mit austauschbaren Methoden für FAT, HPFS, CD-ROM, EFS,... A: HardDisk0

16 Folie 15 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Dateiverwaltung 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: Geringst-mö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 (mandatory control) Aufzeichnung des Zugangs (audit trail)

17 Folie 16 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Frage Kann man mit geeigneten Zugriffsrechten (ACL) Virenaktionen verhindern? Antwort Nein, da auch Systemprogramme mit großen Zugriffsrechten Fehler haben können Dateiverwaltung

18 Folie 17 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. drwx r-x r-x brause512Apr2315:55. off512May1717:53.. -rw- r-- r-- brause44181Apr2315:56data1.txt drwx r-x r-x Zugriffsrechte: Lesen R, Schreiben W, Ausführen X Verzeichnisse: r =Liste lesen, w =neue Datei aufnehmen, x =Liste durchsuchen nach Datei ( betreten des Verzeichnisses) Getrennt für Besitzer, Gruppe, Alle Dateiverwaltung Dateiattribute und Sicherheit: UNIX Rechte bei Programmausführung = user Rechte Aber: set userId, set group Id system calls ACL ex. in neuerem Unix (Wer, was, wie)

19 Folie 18 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Dateiverwaltung Dateiattribute und Sicherheit: Windows NT Standardrechte: Read, Write, ExecuteOnly, Vollzugriff,... ACL ex., neue Gruppen möglich Auditing möglich Speziell 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 (aber: unsichtbare Viren!)

20 Folie 19 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Dateiverwaltung Verbind.-orientierte Kommunikation Typische Dateifunktionen Create File Name, Zugriffsart: Tabelleneintrag Open File Apprüfen der Zugriffsrechte, Puffereinrichtung, Close File Puffer + Tabellen deallozieren, Read/Write File Puffer schreiben/lesen: DMA! Seek File Index setzen der aktuellen Position random access

21 Folie 20 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Dateiverwaltung Dateifunktionen: UNIX fd = creat(Name, mode) file descriptor = Index in Tabelle fd = open (Name, mode) read (fd, bufadr, nbytes) write(fd, bufadr, nbytes) close(fd) Beispiel Dateideskriptoren in pipes fd=0: Standard Input, fd=1 Standard Output, fd=2 standard error Programm1 | Programm2 |.. | ProgrammN

22 Folie 21 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Dateiverwaltung Dateifunktionen: Windows NT Übliche Dateizugriffsfunktionen wie Unix Bei Veränderung der Dateistruktur: Atomare Transaktionen durch 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

23 Folie 22 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Dateiverwaltung Dateinamen und Attribute Dateistrukturen Dateiimplementierung Dateiarten

24 Folie 23 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Dateiverwaltung Strukturierte Zugriffsfunktionen Sequentielle Dateiensequential files Magnetbänder, Lochstreifen z.B. put, get in Pascal Problem: unbekannte Zugriffsreihenfolge Wahlfreie Dateienrandom access files Festplatten, CD-ROM: Positionsangabe (offset) möglich Problem: ineffizient zum Suchen bei bekannter Datenorganisation Indexsequentielle Dateienindex-sequential files Index Sequential Access Method (ISAM) von IBM, 1960/70 Übersicht (Index) am Dateianfang, Ordnung nach einem Kriterium (Schlüssel), z.B. Name, Geburtsdatum,... Grundlage für MYISAMMySQL, MS Active Directory, Access Fehlen der DB-Unterstützung: Problem bei UNIX!

25 Folie 24 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Dateiverwaltung Indexsequentielle Dateien Beispiel: Einwohnerdatei, Schlüssel = Alter Auffüllen von Containern der Größe m mit Schlüsseln Baumstruktur für indizierten Zugriff Index-sequentielle Speicherung (ohne Kopfbewegung: Zylinder, Spur, Sektor) Beispiel 12 Record-Schlüssel: 5, 15, 26, 42, 48, 56, 80, 82, 97, 37, Index 1. Stufe Zylinder x 48 48

26 Folie 25 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Ein- und Ausgabeverwaltung Festplattenmodell Schreib/Lese-Magnetkopf Schreib/Lesespur mit Sektoren Zylindergruppe: Spuren bei mehreren Platten Zylindergruppe Schreib-/Lesekopf Positionier- mechanik Drehachse Spur mit Sektoren Alu-Platte mit Eisenoxid

27 Folie 26 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Dateiverwaltung Indexsequentielle Dateien Neuordnung Schnellerer 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

28 Folie 27 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Dateiverwaltung Indexsequentielle Dateien Beispiel: m = 5 Schlüssel 5, 15, 26, 42, 48, 56, 80, 82, 97, 37, 50 Eingliedern Index 1. Stufe Index 2. Stufe

29 Folie 28 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Dateiverwaltung 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

30 Folie 29 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Dateiverwaltung 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

31 Folie 30 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Dateiverwaltung 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. Stufe

32 Folie 31 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Dateiverwaltung 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

33 Folie 32 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Dateiverwaltung B-Baum Allgemein: Einfacheres Einfügen neuer Schlüssel Intervall (Ast oder Blatt) suchen für neuen Schlüssel Einfügen auf unterster Stufe in einen Behälter Behälter bereits voll (ex. m-1 Schlüssel) : Aufteilen in zwei Beh ä lterh ä lften und Einzelschl ü ssel [S 1...S t-1 ], S t, [S t+1...S m ] mit t = m/2 Mittleren Schl ü ssel S t 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 Behälter pro Ebene Schlüsselbehälter sind mind. zur Hälfe ( m/2 ) voll B-Baum

34 Folie 33 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Dateiverwaltung B-Baum B-Baum Definition B-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 und max m Ä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

35 Folie 34 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Dateiverwaltung B-Baum Anzahl der nötigen Stufen (Baumtiefe) (ungerades m) 1.Stufe: mind. 2 Verzweigungen der Wurzel nötig 2.Stufe: mind. 2 mal m/2 Verzweigungen auf der Stufe 3.Stufe: mind. 2 mal m/2 mal m/2 Verzweigungen n-te Stufe: mind. 2 m/2 m/2.. = 2 m/2 n–1 Verzweigungen = N+1 Blattverzweigungen Wir erreichen spätestens in der n-ten Stufe 2 m/2 n–1 = N+1 Verzweigungen. Also: 2 m/2 n–1 = N+1 n–1 = log m/2 (N+1)/2 Log. Suchzeit! Beispiel Bei m=200, N=2 Mill.: max. n-1 = log 100 ( )=log 100 (100 3 ) = 3 Stufen, also nur max. n=4 Stufen! B-Bäume sind flach !

36 Folie 35 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Dateiverwaltung B-Baum Problem: Häufiges Teilen der Behälter Verbesserungen: Ausgleich zwischen vollen und leeren Behältern Verschiebe vom Schlüsselbehälter mit m–1 Schlüsseln zu einem Nachbarbehälter mit k < m-1 Schlüsseln so, dass jeweils die halbe Gesamtschlüsselzahl verbleibt und der mittlere Schlüssel mit Index i= (k+m)/2 +1 nach oben wandert. Aufteilen von zwei vollen Behältern in drei Behälter Teile 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 Schlüssel, sowie 2 für die nächste Stufe. Also jeweils (2m–2)/3, (2m–1)/3 und (2m)/3 Schlüssel, wobei die beiden Schlüssel S A und S B mit den Indizes A= (2m-2)/3 +1, B = A + (2m–1)/3 +1 nach oben in die höhere Indexstufe wandern. Jede Partition ist nicht mind. ½, sondern 2 / 3 voll

37 Folie 36 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Dateiverwaltung B*-Baum B*-Baum Definition B*-Baum Ein B*-Baum der Ordnung m ist ein Baum, bei dem (1) die Wurzel mindestens 2 und maximal 2 (2m–2)/3 +1 Verzweigungen 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.

38 Folie 37 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Dateiverwaltung Beispiel B*-Baum 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. Stufe

39 Folie 38 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Dateiverwaltung Beispiel B*-Baum 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 Resultiert in 2 Behälter je (2m–2)/3 = 2 Schlüssel wie beim B-Baum

40 Folie 39 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Dateiverwaltung Beispiel B*-Baum 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. Stufe

41 Folie 40 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Dateiverwaltung B*-Baum: Beispiel Beispiel: m = 5 Schlüssel 5, 15, 26, 42, 48, 56, 80, 82, 97, 37, 50 B*-Baum: Behälter dreiteilen Index 1. Stufe Index 2. Stufe m=5 (2m-2)/3 =2 (2m-1)/3 =3 (2m)/3 =3

42 Folie 41 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Dateiverwaltung B-Baum vs. B*-Baum Vergleich B-Baum vs. B*-Baum Beispiel: Aufbau + Einfügen von 41 m=5 Fazit: B*-Baum hat besseren Füllgrad weniger Behälter nötig

43 Folie 42 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Dateiverwaltung Dateinamen und Attribute Dateistrukturen Dateiimplementierung Dateiarten

44 Folie 43 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Dateiverwaltung Mehrfachlisten und Invertierte Dateien Die Indexfolge jeder Schlüsselart ist als Liste implementiert Beispiel: Mehrfachliste (z.B. für Alter, Größe,..) Indexfolge 1, 3, 2, 6, 5, 8 Problem: Sequentielle Schlüsselsuche Lösung: Alle Zeiger im Dateianfang: invertierte Datei (Schlüssel Record, statt umgekehrt)

45 Folie 44 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Dateiverwaltung Bibliotheksdateien = BS-typische, von allen Prozessen nutzbare Funktionen, die nicht im Kern sind Vorteile weniger Hauptspeicher nötig, da Modul nur einmal vorhanden Wartung ist erleichtert, da zentral Aber: Speicher wird billiger & wenige Module sind oft benutzt Anfangsadresse Null nicht immer möglich relozierte Kopien nötig Wartung ist bei zentraler Verteilung lokaler Kopien einfacher DLL-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-DLLs)

46 Folie 45 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Dateiverwaltung Idee:wahlfreier Zugriff auf Massenspeicher = RAM Plattenspeicherblöcke Hauptspeicherseiten memory mapped files paging Datei auf Platte virt. Adreßraum im Hauptspeicher Daten header Daten code stack Vorteile: Einlesen des Bereichs nur wenn nötig (ohne Kopie) Pufferung automatisch durch Paging (kein extra Cache nötig) Problem: Änderung der Länge der Datei auf Platte

47 Folie 46 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Dateiverwaltung memory mapped files Beispiel Unix mmap() 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: Semaphor-Operationen zur Synchronisation Beispiel Windows NT VM-Manager & I/O-Manager CreateFileMapping() erzeugt ein Objekt OpenFileMapping() öffnet es anderen Prozesse unter dem Namen MapViewOfFile() Teilbereiche daraus in den virt. Adreßraum abb. FlushViewOfFile() aktualisiert den Dateibereich UnmapViewOfFile() wieder schließen

48 Folie 47 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Dateiverwaltung special files Abbildung von Dateimechanismen auf Gerätesteuerung Öffnen/Schließen von Dateien = Initialisierung der Geräte Lesen/Schreiben von Daten = I/O der Daten Statusä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&Geschwindigkeit Mount() Wurzelknoten des Dateisystems auf Gerät ersetzt Datei Beispiel Windows NT virtual files Zugriff auf Geräte, Netzwerkverbindungen etc. wie auf normale Dateien

49 Folie 48 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Dateiverwaltung Dateinamen und Attribute Dateistrukturen Dateiimplementierung Dateiarten

50 Folie 49 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Dateiverwaltung Dateiimplementierung Kontinuierliche Speicherzuweisung Datei in einem Stück: Schnell, aber nicht änderbar. Listenartige Speicherzuweisung Verzeigerte Liste von Speicherblöcken (Strategien!) VorteilRekonstruktion möglich bei Anker-Löschung Nachteilineffizienter wahlfreier Zugriff, da nur sequentiell möglich Datei A Datei B Nil B Block 0 A Block 1 B B Block 2 A Block 0 A Block 2 B Block

51 Folie 50 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Dateiverwaltung Dateiimplementierung Zentrale indexbezogene Speicherzuweisung zentraler Block von Zeigern (Indizes) in einer Liste Anfang Datei B Anfang Datei A Ende Datei B Phys. BlockNr = ListenIndex nächster Daten- block NIL

52 Folie 51 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Dateiverwaltung Beispiel: 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 = 3 Hexzahlen = 1.5 Byte pro Eintrag Blöcke Wurzelverzeichnis Pro cluster 1024 Byte = 2 Blöcke Cluster 0 Cluster 1 Cluster 2 Index 3 12 Bit 1024 Byte Index 2 Index 4 Index 5 Index 6 Block 18/19 Block 20/21 Block 22/23 Maximale Diskettengröße max. FATgröße: 5 Blöcke 512 = 2560Byte Max. Zahl der Einträge = 2560/1.5 = 1706 Einträge (cluster), also max 1706 Einträge 1024 Byte-Cluster = 1,7 MB pro Diskette

53 Folie 52 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Dateiverwaltung Beispiel: FAT Beispiel File Allocation Table FAT von MS-DOS (Block 11-17) DateiName.ext A reserved tim dat st len 32 Byte-Verzeichniseintrag (16 Stück pro 512 Byte-Sektor) A = 8 bit-Bitmap, 1 = wahr 0 = falsch Unterverzeichnis = Datei mit Verzeichniseinträgen Datei nur lesen verborgen Systemdatei Gerätename, nicht Dateiname Unterverzeichnis Archive Reserviert

54 Folie 53 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Dateiverwaltung Beispiel: Zentraler Index FAT-Probleme bei Platten IndexgrößeFloppy 12 Bit Platten 16 Bit 2 12 Einträge 2 16 Einträge = 2 16 Cluster Problem1 : zu wenige Cluster Bei 2 GB Platte und 2 16 Cluster ist Clustergröße= 2 GB/Clusterzahl = 2 31 /2 16 = 2 15 = 32kB groß: großer Verschnitt von 16kB! Problem2: zu kleine Cluster Bei 2 GB Platte und 1kB Clustergröße 2 31 /2 10 = 2 21 = 2 Mill. Einträge. Da jeder Eintrag 2 Mill andere Einträge referieren kann, muss er mind. 21 Bit (3 Bytes) breit sein. Dies bedeutet 2 Mill. 3 Bytes = 6 MB Platz für die FAT-Tabelle im Hauptspeicher, ohne dass alle Einträge benutzt werden. Bei kleinen Clustern gibt es lange Listen im RAM sowie lange Suchdauer.

55 Folie 54 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Dateiverwaltung Implementierung Zentrale indexbezogene Speicherzuweisung zentraler Block von Zeigern (Indizes) in einer Liste Anfang Datei B Anfang Datei A Ende Datei B Phys. BlockNr = ListenIndex nächster Daten- block NIL Problem: Lange Listen, unbenutzter Indexplatz

56 Folie 55 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Dateiverwaltung Implementierung Verteilte indexbezogene Speicherzuweisung Statt zentraler Index aller Dateien pro Datei eigene Indexliste: Datei A Datei B NIL Problem: Bei einigen Dateien ex. sehr viele Blöcke, lineare Blocksuche wird langsam.

57 Folie 56 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Dateiverwaltung Implementierung Verteilte indexbezogene Speicherzuweisung Baumstruktur zur schnellen Blocksuche Tabellengröße vs. Suchzeit: 1-,2-,3-stufige Tabellen

58 Folie 57 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Dateiverwaltung Implementierung: UNIX Zentrale Tabelle pro Datei: i-node (Indexknoten) z.B. EXT2 Verwaltungsdaten (Referenzen, Zeiger für free-Liste + mount()-Tabelle), erste Adressen von Datenblöcken + Zeiger für weitere Verzeichnis = Datei = Tabelle aus Dateinamen + i-node-Nummer Zentrale Tabelle aller i-nodes = super node mode linkcount owneruid ownergid filesize 3timeref. Adressen der ersten 10 Blöcke 1-indirekt 2-indirekt 3-indirekt Max 256 Einträge (Blockindizes) 266 kB 16,8 GB

59 Folie 58 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Dateiverwaltung Implementierung: UNIX LINUX Dateisystemkonzept Prozess 1Prozess 2 Virt.Datei- system VFS user mode kernel mode v-node cache directory cache dcache Dateisystem ca. 20 Stck Gerätetreiber Datencache Minix Ext2Reiser Proc... tapedisk1disk2 D/A print... syscalls: create, open, close, lseek, read, write, stat

60 Folie 59 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Dateiverwaltung Dateiimplementierung: UNIX LINUX- Beispiel EXT2 Dateisystem(1993) Blockgruppen (kopierte) Dateiinformationen Gruppe 0 Gruppe 1 … Gruppe N Super Block-Kopie Gruppenbeschreibung 1 Block Belegungs- Bitmap Inode Bitmap Inode-Tabelle Datenblöcke

61 Folie 60 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Dateiverwaltung Dateiimplementierung: UNIX LINUX- Beispiel EXT2 Dateisystem Gruppenbeschreibung (kopierte) Gruppeninformationen Deskriptor 0 Deskriptor 1 … Deskriptor M ADR (Block-Bitmap) ADR (inode Bitmap) ADR (Inode-Tabelle) Anzahl freier Blöcke Anzahl freier inodes Anzahl von Verzeichniseinträgen

62 Folie 61 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Dateiverwaltung Dateiimplementierung: UNIX LINUX- Beispiel EXT2 Dateisystem Verzeichniseinträge Inode- Index: 3 Nächster Eintrag Länge des Namens: 8 MeinNa me... inode-Tabelle Inode- Index: 4 Nächster Eintrag Länge des Namens: 11 Anderer Name

63 Folie 62 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Dateiverwaltung Dateiimplementierung: Windows NTKonzept Volumes (log. Massenspeicher) als Datenspeichereinheit Alle 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.

64 Folie 63 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Dateiverwaltung Chkdsk- Programm Dateiimplementierung : MFT ~ ~ Datei 0 Eigeneintrag Master File Table Datei 1 Sicherheitskopieder MFT( Plattenmitte) Datei 2 log file: Alle Operationen, die die NTFS-Struktur ändern, werden hier verzeichnet und garantieren so atomare Dat eitransaktionen. Datei 3 volume file: StatusinformationenName, 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 dervolume-Speichereinheiten (Cluster) Datei 7 boot file:bootstrapCode von Windows NT und die physikalische Geräteadresse der MFT -Datei. Datei 8 bad cluster file: Verzeichnis der unbrauchbarenvolume - Cluster... Datei 16 Normale Benutzerdateien und Verzeichnisse Eintrag

65 Folie 64 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Dateiverwaltung Dateiimplementierung : Windows NT Struktur eines Master File Table-Eintrags (eigentliche Datenblöcke) Lücke: Datenkompression!

66 Folie 65 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Dateiverwaltung Dateiimplementierung : Windows NT Struktur des Wurzelverzeichnisses root directory root fileIndexpuffer Standard information file name \ B*-Baum index root file 4 file 10 file 15 index allocation VCN LCN bitmapXXX0XX0 XXXXX... VCN 0file 0, … 1file 1, … 2file 3, … 3 VCN 4file 6, … 5file 8, … 6 7file 9, … VCN 8file 11, … 9file 12, … 10file 13, … 11file 14, … Max. 15 Dateien (Schlüssel) pro container (4 Cluster) Wurzelcontainer des B*-Baums

67 Folie 66 Betriebssysteme: © R.Brause, J.W.G-Universität Frankfurt a.M. Dateiverwaltung Dateiimplementierung : Windows NT Interne Datenstrukturen für eine NTFS-Datei Object manager data NTFS memory data NTFS disk database process master file table... file control block stream control blocks data stream user- defined attribute file handle table... file object file object Hauptspeicher Massenspeicher


Herunterladen ppt "Modul: B-BS Betriebssysteme WS 2012 Prof. Dr. Rüdiger Brause Adaptive Systemarchitektur Institut für Informatik Fachbereich Informatik und Mathematik."

Ähnliche Präsentationen


Google-Anzeigen