Dateinamen und Attribute. Dateistrukturen. Dateiarten. Dateiimplementierung. Dateisysteme. Liste von Dateien auf Massenspeicher.



Ähnliche Dokumente
Datei- verwaltung. Kap. 5

Modul B-PRG Grundlagen der Programmierung 1

Dateisysteme. Dateinamen. Dateinamen. Liste von Dateien auf Massenspeicher

Betriebssysteme K_Kap11B: Files, Filesysteme Datenstrukturen

6.2 FAT32 Dateisystem

Jeder Datenträger besitzt einen I-Node-Array. Jede Datei auf dem Datenträger hat einen I-Node-Eintrag.

OPERATIONEN AUF EINER DATENBANK

Übersicht. UNIX-Dateisystem (ext2) Super-User unter Linux werden MSDOS: FAT16 und FAT32

Einrichten einer Festplatte mit FDISK unter Windows 95/98/98SE/Me

Partitionieren und Formatieren

Wie halte ich Ordnung auf meiner Festplatte?

Leitfaden zum Sichern einer Festplatte als Image mit der System Rescue CD

Laufwerke unter Linux - Festplatten - - USB Sticks - September 2010 Oliver Werner Linuxgrundlagen 1

Konzepte von Betriebssystemkomponenten Disk-Caches und Dateizugriff

Betriebssysteme SS Hans-Georg Eßer Dipl.-Math., Dipl.-Inform. Foliensatz E SB 5 ( ) ACLs und Capabilities

2. Darstellung von Information im Computer

Architektur Verteilter Systeme Teil 2: Prozesse und Threads

Nachtrag zu binären Suchbäumen

Systeme 1. Kapitel 3 Dateisysteme WS 2009/10 1

So funktioniert die NetWorker 7.5 Eigenschaft zum Sichern umbenannter Verzeichnisse ( Backup renamed Directories )

Daten am USB Stick mit TrueCrypt schützen

stattdessen: geräteunabhängiges, abstraktes Format für Speicherung und Transfer von Daten Datei

Programmieren I. Kapitel 15. Ein und Ausgabe

TIMERATE AG Tel Falkenstrasse Zürich Joomla Templates Kursunterlagen

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Umbenennen eines NetWorker 7.x Servers (UNIX/ Linux)

Leichte-Sprache-Bilder

So sieht die momentane fertige Ordnerstruktur in der Navigationsansicht des Windows-Explorers aus

Olga Perevalova Universität Hamburg

Neue Schriftarten installieren

Bilder zum Upload verkleinern

Universität Bielefeld Technische Fakultät AG Rechnernetze und verteilte Systeme. Vorlesung 4: Memory. Wintersemester 2001/2002. Peter B.

Verschlüsseln von USB-Sticks durch Installation und Einrichtung von TrueCrypt

Stecken Sie Ihren USB Stick oder Ihre externe USB Festplatte in den USB Steckplatz des Sinus 154 DSL SE.

Sie wollen Was heißt das? Grundvoraussetzung ist ein Bild oder mehrere Bilder vom Wechseldatenträger

Anwenderleitfaden Citrix. Stand Februar 2008

Digital Forensics. Slackspace DI Robert Jankovics DI Martin Mulazzani

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

Eigene Dokumente, Fotos, Bilder etc. sichern

Bedeutung der Metadateien. Alle Metadaten werden in Dateien gehalten. NTFS ist ein Journal-File-System

Empfehlungen zur Nutzung der CD zum Buch: Klee & Wiemann: Beweglichkeit und Dehnfähigkeit. Schorndorf: Hofmann,

SICHERN DER FAVORITEN

Folge 19 - Bäume Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12

Installationsanleitung für OpenOffice.org Sprachpakete

Verschlüsseln Sie Ihre Dateien lückenlos Verwenden Sie TrueCrypt, um Ihre Daten zu schützen.

Was ist ein Dateisystem? Wozu dient es? Lokale Dateisysteme. Speichergrößen. Inhalt der Präsentation

SJ OFFICE - Update 3.0

Kapitel 8: Physischer Datenbankentwurf

Er musste so eingerichtet werden, dass das D-Laufwerk auf das E-Laufwerk gespiegelt

Updatehinweise für die Version forma 5.5.5

Professionelle Seminare im Bereich MS-Office

Laufwerke, Ordner, Dateien: 1. Erklärung der Begriffe

Zugriff auf die Modul-EEPROMs

Tapps mit XP-Mode unter Windows 7 64 bit (V2.0)

B-Bäume I. Algorithmen und Datenstrukturen 220 DATABASE SYSTEMS GROUP

Beheben von verlorenen Verknüpfungen

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten

Änderung des Portals zur MesseCard-Abrechnung

1 Was ist das Mediencenter?

TrueCrypt Anleitung: Datenschutz durch Festplattenverschlüsselung

Sichern der persönlichen Daten auf einem Windows Computer

Adami CRM - Outlook Replikation User Dokumentation

Erstellen einer digitalen Signatur für Adobe-Formulare

GFAhnen Datensicherung und Datenaustausch

Arbeiten mit UMLed und Delphi

Installation - Start

mywms Vorlage Seite 1/5 mywms Datenhaltung von Haug Bürger

Win 7 optimieren. Unser Thema heute: Meine erstellten Daten in eine andere Partition verschieben.

Elexis-BlueEvidence-Connector

Hilfe zur Dokumentenverwaltung

Ein + vor dem Ordnernamen zeigt an, dass der Ordner weitere Unterordner enthält. Diese lassen sich mit einem Klick (linke Maustaste) anzeigen.

Whitepaper. Produkt: combit Relationship Manager / address manager. Dateiabgleich im Netzwerk über Offlinedateien

Technische Information: Installation WyRu Online-Shop

Bedienungsanleitung Anlassteilnehmer (Vereinslisten)

novapro Open Audittrail Report

Die Soforthilfe bei gelöschten Dateien! für Windows 95(OSR2)/98/ME/NT4/2000/XP

ECDL Modul 2 Windows 7 Übungseinheit. Ihr Name:...

Betriebssysteme Arbeiten mit dem Windows Explorer

SAMMEL DEINE IDENTITÄTEN::: NINA FRANK :: :: WINTERSEMESTER 08 09

Installation der SAS Foundation Software auf Windows

Formular»Fragenkatalog BIM-Server«

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

Dokumentation zur Versendung der Statistik Daten

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0)

OFS: Ein allgemeines Offline-Dateisystem auf Basis von FUSE

Durchführung der Datenübernahme nach Reisekosten 2011

Software-gestützte Pufferung: Verteilte Dateisysteme. BP 2 Software-gestützte Pufferung: Verteilte Dateisysteme BP 2 BP 2 BP 2

Prozessarchitektur einer Oracle-Instanz

Erstellen einer PostScript-Datei unter Windows XP

Installationshinweise BEFU 2014

Daten synchronisieren mit FreeFileSync (zur Datensicherung) Freeware unter herunter laden

WinVetpro im Betriebsmodus Laptop

Dokumentation IBIS Monitor

Installationsanleitung Maschinenkonfiguration und PP s. Release: VISI 21 Autor: Anja Gerlach Datum: 18. Dezember 2012 Update: 18.

Die Dateiablage Der Weg zur Dateiablage

zur WinIBW Version 2.3

Beispiel Shop-Eintrag Ladenlokal & Online-Shop im Verzeichnis 1

4D Server v12 64-bit Version BETA VERSION

Software Engineering Klassendiagramme Assoziationen

Transkript:

Modul: B-BS Betriebssysteme WS 2012 Prof. Dr. Rüdiger Brause Adaptive Systemarchitektur Institut für Informatik Fachbereich Informatik und Mathematik (12) Dateisysteme Liste von Dateien auf Massenspeicher 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.................. = 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 Folie 2 Dateinamen und Attribute Dateistrukturen Dateiarten Dateiimplementierung Folie 3 1

Dateinamen Hierarchische Dateiorganisation in Baumform Knoten = Ordner = directory gleiche Dateinamen möglich Alle Dateien Gruppe 1... Gruppe m Datei f Datei 1 Datei 2... Datei n Datei 1... Datei s Zusätzliche Vernetzung Wald (azykl.graph) Firma Abteilung 5 Formulare Rudi Hans BriefVorlage.dot Brief1.doc.. BriefN.doc Brief1.doc BriefM.doc Folie 4 Dateinamen Namensbildung 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 nicht genormte Endung!.tar ein gesamtes Dateisystem, in einer Datei abgespeichert.html ASCII-Textdatei für das world wide web- Hypertextsystem.jpg,.gif, png, Bilddateien (komprimiert/unkomprimiert).tif,.bmp MS-DOS: 3 Extensionsbuchstaben! Sonst: 215 Char ohne \ / : *? " < > Folie 5 Dateinamen: Externe Typangabe Geschachtelte Typen Beispiel: Skript.ps.gz = Textdatei Postscript-Format Komprimiert 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 Folie 6 2

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 *) Folie 7 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 Folie 8 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 Brief1.doc BriefN.doc Brief1.doc BriefM.doc Folie 9 3

Dateinamen Vorteil relativer Pfadnamen: Portabilität Beispiel Programmsystem toolsx / toolsy Daten Programme Dat1.a liba libb Prog Absolute Pfadnamen müssen nach Verschiebung des Programmsystems geändert werden, relative nicht! Folie 10 Dateinamen: UNIX Pfaderweiterung Einhängen eines Dateisystems (mounten) / etc bin usr users / user file system Rudi Hans Ute Festplatte 2 Brief1.doc root file system Festplatte 1 Zugriff mit /users/rudi/brief1.doc Frage: Was passiert mit den Dateien, die vorher in users waren? Folie 11 Dateinamen: UNIX Namensraum Baumorientiertes Dateisystem 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? Gruppe 1 Abteilung5 Gruppe2 Rudi hard link Hans symbolic link Datei1 Datei2 Datei3 Folie 12 4

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) 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.doc Objekt Manager Namensraum Dateimanager Namensraum 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,... 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: 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) Folie 15 5

Frage Kann man mit geeigneten Zugriffsrechten (ACL) Virenaktionen verhindern? Antwort Nein, da auch Systemprogramme mit großen Zugriffsrechten Fehler haben können Folie 16 Dateiattribute und Sicherheit: UNIX 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 drwx r-x r-x brause 512 Apr23 15:55. drwx r-x r-x off 512 May17 17:53.. -rw- r-- r-- brause 44181 Apr23 15:56 data1.txt Rechte bei Programmausführung = user Rechte Aber: set userid, set group Id system calls ACL ex. in neuerem Unix (Wer, was, wie) Folie 17 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!) Folie 18 6

Typische Dateifunktionen Create File Name, Zugriffsart: Tabelleneintrag Open File Apprüfen der Zugriffsrechte, Puffereinrichtung, Close File Puffer + Tabellen deallozieren, Verbind.-orientierte Kommunikation Read/Write File Puffer schreiben/lesen: DMA! Seek File Index setzen der aktuellen Position random access Folie 19 Dateifunktionen: UNIX fd = creat(name, mode) fd = open (Name, mode) read (fd, bufadr, nbytes) write(fd, bufadr, nbytes) close(fd) file descriptor = Index in Tabelle Beispiel Dateideskriptoren in pipes fd=0: Standard Input, fd=1 Standard Output, fd=2 standard error Programm1 Programm2.. ProgrammN fd=1 fd=0 fd=1 fd=0 Programm1 Programm2 Programm N fd=2 fd=2 fd=2 Fehlerausgabe Fehlerausgabe Fehlerausgabe Folie 20 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 Folie 21 7

Dateinamen und Attribute Dateistrukturen Dateiarten Dateiimplementierung Folie 22 Strukturierte Zugriffsfunktionen Sequentielle Dateien sequential files Magnetbänder, Lochstreifen z.b. put, get in Pascal Problem: unbekannte Zugriffsreihenfolge Wahlfreie Dateien random access files Festplatten, CD-ROM: Positionsangabe (offset) möglich Problem: ineffizient zum Suchen bei bekannter Datenorganisation Indexsequentielle Dateien index-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 MYISAM MySQL, MS Active Directory, Access Fehlen der DB-Unterstützung: Problem bei UNIX! Folie 23 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, 50 48 97 Index 1. Stufe Zylinder x 48 48<x 97 26 48 80 97 Index 2. Stufe Spur x 26 26<x 48 x 80 80<x 97 5 15 26 37 42 48 50 56 80 82 97 Index 3. Stufe Sektor Datensätze Problem: Eingliedern/Ausgliedern von Datensätzen in die Container (Datenblöcke) fester Größe, z.b. 41 Folie 24 8

Festplattenmodell Schreib/Lese-Magnetkopf Schreib/Lesespur mit Sektoren Zylindergruppe: Spuren bei mehreren Platten Zylindergruppe Alu-Platte mit Eisenoxid Positioniermechanik Spur mit Se k toren Schreib-/Lesekopf Drehachse Ein- und Ausgabeverwaltung Folie 25 Ein neuer Baum 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 Folie 26 Ein neuer Baum Beispiel: m = 5 Schlüssel 5, 15, 26, 42, 48, 56, 80, 82, 97, 37, 50 Eingliedern Index 1. Stufe 5 15 26 42 48 Index 2. Stufe Folie 27 9

Ein neuer Baum Beispiel: m = 5 Schlüssel 5, 15, 26, 42, 48, 56, 80, 82, 97, 37, 50 Schlüsselbehälter aufspalten 26 Index 1. Stufe 5 15 26 42 48 Index 2. Stufe Folie 28 Ein neuer Baum Beispiel: m = 5 Schlüssel 5, 15, 26, 42, 48, 56, 80, 82, 97, 37, 50 Schlüsselbehälter auffüllen 26 Index 1. Stufe 5 15 42 48 56 80 82 Index 2. Stufe Folie 29 Ein neuer Baum Beispiel: m = 5 Schlüssel 5, 15, 26, 42, 48, 56, 80, 82, 97, 37, 50 Schlüsselbehälter teilen 26 56 Index 1. Stufe 5 15 42 48 56 80 82 Index 2. Stufe Folie 30 10

Ein neuer Baum Beispiel: m = 5 Schlüssel 5, 15, 26, 42, 48, 56, 80, 82, 97, 37, 50 Schlüsselbehälter auffüllen 26 56 Index 1. Stufe 5 15 37 42 48 50 80 82 97 Index 2. Stufe Folie 31 Ein neuer 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 Folie 32 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 Folie 33 11

B-Baum Anzahl der nötigen Stufen (Baumtiefe) (ungerades m) 1.Stufe: 2.Stufe: 3.Stufe: n-te Stufe: mind. 2 Verzweigungen der Wurzel nötig mind. 2 mal m/2 Verzweigungen auf der Stufe mind. 2 mal m/2 mal m/2 Verzweigungen 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 (1 10 6 )=log 100 (100 3 ) = 3 Stufen, also nur max. n=4 Stufen! B-Bäume sind flach! Folie 34 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 Folie 35 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. Folie 36 12

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 5 15 26 42 48 Index 2. Stufe Folie 37 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 26 Index 1. Stufe 5 15 26 42 48 Index 2. Stufe Resultiert in 2 Behälter je (2m 2)/3 = 2 Schlüssel wie beim B-Baum Folie 38 Beispiel B*-Baum Beispiel: m = 5 Schlüssel 5, 15, 26, 42, 48, 56, 80, 82, 97, 37, 50 B*-Baum: Überfließen 48 26 42 Index 1. Stufe 5 155 26 15 5 15 42 26 42 48 56 48 80 56 56 82 80 97 80 82 97 82 Index 2. Stufe Folie 39 13

B*-Baum: Beispiel Beispiel: m = 5 Schlüssel 5, 15, 26, 42, 48, 56, 80, 82, 97, 37, 50 B*-Baum: Behälter dreiteilen 26 4856 37 5 15 26 42 37 42 48 56 80 82 97 Index 1. Stufe Index 2. Stufe m=5 (2m-2)/3 =2 (2m-1)/3 =3 (2m)/3 =3 Folie 40 B-Baum vs. B*-Baum Vergleich B-Baum vs. B*-Baum m=5 Beispiel: Aufbau + Einfügen von 41 (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 Folie 41 Dateinamen und Attribute Dateistrukturen Dateiarten Dateiimplementierung Folie 42 14

Mehrfachlisten und Invertierte Dateien Die Indexfolge jeder Schlüsselart ist als Liste implementiert Beispiel: Mehrfachliste (z.b. für Alter, Größe,..) 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 Indexfolge 1, 3, 2, 6, 5, 8 Problem: Sequentielle Schlüsselsuche Lösung: Alle Zeiger im Dateianfang: invertierte Datei (Schlüssel Record, statt umgekehrt) Folie 43 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) Folie 44 memory mapped files Idee: wahlfreier Zugriff auf Massenspeicher = RAM Plattenspeicherblöcke Hauptspeicherseiten Daten header paging Daten code stack Datei auf Platte virt. Adreßraum im Hauptspeicher 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 Folie 45 15

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 CreateFileMapping() OpenFileMapping() MapViewOfFile() FlushViewOfFile() UnmapViewOfFile() VM-Manager & I/O-Manager erzeugt ein Objekt öffnet es anderen Prozesse unter dem Namen Teilbereiche daraus in den virt. Adreßraum abb. aktualisiert den Dateibereich wieder schließen Folie 46 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() Mount() Statusänderung, z.b. Übertragungsmodus&Geschwindigkeit Wurzelknoten des Dateisystems auf Gerät ersetzt Datei Beispiel Windows NT virtual files Zugriff auf Geräte, Netzwerkverbindungen etc. wie auf normale Dateien Folie 47 Dateinamen und Attribute Dateistrukturen Dateiarten Dateiimplementierung Folie 48 16

Dateiimplementierung Kontinuierliche Speicherzuweisung Datei in einem Stück : Schnell, aber nicht änderbar. Listenartige Speicherzuweisung Verzeigerte Liste von Speicherblöcken (Strategien!) Datei A Datei B Vorteil Nachteil B Block 0 A B B A A B Block 1 Block 1 Block 2 Block 0 Block 2 Block 3 0 1 2 3 4 5 6 Nil Rekonstruktion möglich bei Anker-Löschung ineffizienter wahlfreier Zugriff, da nur sequentiell möglich Folie 49 Dateiimplementierung Zentrale indexbezogene Speicherzuweisung zentraler Block von Zeigern (Indizes) in einer Liste Anfang Datei B Anfang Datei A Phys. nächster BlockNr = D a ten- ListenIndex block 0 2 1 5 2 3 3 6 4 1 5 7 6 NIL Ende Datei B Folie 50 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 11-17 Wurzelverzeichnis Pro cluster 1024 Byte = 2 Blöcke Index 2 Index 3 Index 4 Index 5 Index 6 12 Bit Cluster 0 Cluster 1 Cluster 2 Block 18/19 Block 20/21 Block 22/23 1024 Byte 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 Folie 51 17

Beispiel: FAT Beispiel File Allocation Table FAT von MS-DOS (Block 11-17) 32 Byte-Verzeichniseintrag (16 Stück pro 512 Byte-Sektor) DateiName.ext A reserved tim dat st len A = 8 bit-bitmap, 1 = wahr 0 = falsch Datei nur lesen verborgen Systemdatei Gerätename, nicht Dateiname Unterverzeichnis Archive Reserviert Reserviert Unterverzeichnis = Datei mit Verzeichniseinträgen Folie 52 Beispiel: Zentraler Index FAT-Probleme bei Platten Indexgröße Problem1: zu wenige Cluster Floppy 12 Bit Platten 16 Bit 2 12 Einträge 2 16 Einträge = 2 16 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. Folie 53 Implementierung Zentrale indexbezogene Speicherzuweisung zentraler Block von Zeigern (Indizes) in einer Liste Anfang Datei B Anfang Datei A Phys. nächster BlockNr = D a ten- ListenIndex block 0 2 1 5 2 3 3 6 4 1 5 7 6 NIL Ende Datei B Problem: Lange Listen, unbenutzter Indexplatz Folie 54 18

Implementierung Verteilte indexbezogene Speicherzuweisung Statt zentraler Index aller Dateien pro Datei eigene Indexliste: Datei A 4 1 5 7... Datei B 0 2 3 6 NIL Problem: Bei einigen Dateien ex. sehr viele Blöcke, lineare Blocksuche wird langsam. Folie 55 Implementierung Verteilte indexbezogene Speicherzuweisung Baumstruktur zur schnellen Blocksuche Tabellengröße vs. Suchzeit: 1-,2-,3-stufige Tabellen phys. Blöcke......... (a) einstufige (b) zweistufige (c) dreistufige Übersetzung (einfach-indirekt) (zweifach-indirekt) Folie 56 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 mode link count owner uid owner gid file size 3 time ref. Adressen der e r sten 10 Blö c ke 1-indirekt 2-indirekt 3-indirekt Max 256 Einträge (Blockindizes) 266 kb Max 256 Einträge (Zeiger) 67 MB 16,8 GB Verzeichnis = Datei = Tabelle aus Dateinamen + i-node-nummer Zentrale Tabelle aller i-nodes = super node Folie 57 19

Implementierung: UNIX LINUX Dateisystemkonzept user mode kernel mode Virt.Dateisystem VFS Prozess 1 Prozess 2 syscalls: create, open, close, lseek, read, write, stat directory cache dcache v-node cache Dateisystem ca. 20 Stck Gerätetreiber Minix Ext2 Reiser Proc... Datencache tape disk1 disk2 D/A print... Folie 58 Dateiimplementierung: UNIX LINUX- Beispiel EXT2 Dateisystem (1993) Blockgruppen Gruppe 0 Gruppe 1 Gruppe N (kopierte) Dateiinformationen Super Block-Kopie Gruppenbeschreibung 1 Block Belegungs- Bitmap Inode Bitmap Inode-Tabelle Datenblöcke Folie 59 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 Folie 60 20

Dateiimplementierung: UNIX LINUX- Beispiel EXT2 Dateisystem Verzeichniseinträge Inode- Index: 3 Nächster Eintrag Länge des Namens: 8 MeinNa me Inode- Index: 4 Nächster Eintrag Länge des Namens: 11 Anderer Name inode-tabelle. 0.. 1 2 3 4 5 Folie 61 Dateiimplementierung: Windows NT Konzept Volumes (log. Massenspeicher) als Datenspeichereinheit Alle Untereinheiten eines volumes sind nur Dateien (files), gekennzeichnet durch eine 48 Bit-Zahl &16Bit-Sequenznummer 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 Verwaltungsinformationen unsichtbar für den Benutzer auch auf andere Plattenteile verlagert werden. Folie 62 Dateiimplementierung : MFT Datei 0 Eigeneintrag Master File Table Datei 1 Eintrag Sicherheitskopie der 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 : Statusinformationen Name, NTFS Version,... corrupted Bit=1: Chkdsk-Programm 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: boots trap 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 Folie 63 21

Dateiimplementierung : Windows NT Struktur eines Master File Table-Eintrags MFT-Eintrag standard information file name security descriptor data stream start VCN start LCN length 0 1261 4 start VCN 5 start LCN 1265 length 4...... HPFS extended attr.... VCN LCN Nichtresidente Attributsteile (eigentliche Datenblöcke) 0 1 2 3 1261 1262 1263 1264 5 6 7 8 1265 1266 1267 1268 Lücke: Datenkompression! Folie 64 Dateiimplementierung : Windows NT Struktur des Wurzelverzeichnisses root directory Standard informat i on root file file name \ file 4 B*-Baum index root file 10 file 15 index alloc a tion VCN LCN bitmap XXX0XX0 XXXXX... Wurzelcontainer des B*-Baums Indexpuffer VCN 4 file 6, 5 file 8, 6 7 file 9, VCN 8 file 11, 9 file 12, 10 file 13, 11 file 14, VCN 0 file 0, 1 file 1, 2 file 3, 3 Max. 15 Dateien (Schlüssel) pro container (4 Cluster) Folie 65 Dateiimplementierung : Windows NT Interne Datenstrukturen für eine NTFS-Datei Object manager data NTFS memory data NTFS disk database process file handle table... file object file object stream co n trol blocks data str e am userdefined attribute file co n trol block master file table... Hauptspeicher Massenspeicher Folie 66 22