Dateisysteme
Transcription
Dateisysteme
Systeme I: Betriebssysteme Kapitel 3 Dateisysteme Maren Bennewitz Version 14.11.2012 1 Inhalt Vorlesung § Aufbau einfacher Rechner § Überblick: Aufgabe, Historische Entwicklung, unterschiedliche Arten von Betriebssystemen § Verschiedene Komponenten / Konzepte von Betriebssystemen § § § § § § Dateisysteme Prozesse Nebenläufigkeit und wechselseitiger Ausschluss Deadlocks Scheduling Speicherverwaltung 2 Dateisysteme § Eine der Grundaufgaben eines Betriebssystems: Dauerhaftes Speichern von Informationen § Speichern von Daten auf externen Medien (USB-Stick, Festplatten, CDs, ...) § Organisationseinheiten auf externem Medium: Dateien (Files) § Dateisystem = Betriebssystemteil, der sich mit Dateien befasst 3 Zwei Sichtweisen § Externe Sicht: Vom Dateisystem angebotene Funktionalität § Interne Sicht: Implementierung von Dateisystemen 4 Externe Sicht auf Dateisysteme § Aufgabe von Dateisystemen: Dauerhafte Speicherung von Daten auf Medien wie Festplatten, CDs usw. in Form benannter Objekte § Konzept § Bereiche auf dem Medium werden mit einem so genannten Dateisystem versehen § Dateisystem stellt die Verwaltungsstruktur für Objekte bereit 5 Eigenschaften der Verwaltungsstruktur § Hierarchische Strukturierung: Verzeichnisse mit Objekten § Beispiele für Objekte: § Reguläre Dateien (Files): Text-, Binärdateien § Verzeichnisse (Directories) § Gerätedateien: Schnittstelle zwischen Gerätetreibern und Anwendungsprogrammen § Links: Verweise auf Dateien § Pipes: Unidirektionaler Datenstrom zwischen Prozessen 6 Benennung von Dateien (1) § Benennung durch Dateinamen § Zugriff über Namen § Regeln für die Benennung variieren von System zu System 7 Benennung von Dateien (2) MS-DOS: Dateinamen bestehen aus § Eigentlichem Namen (bis zu 8 gültige Zeichen, beginnend mit Buchstaben) § Dateierweiterung nach Punkt: Bis zu drei Zeichen, gibt den Typ an § Keine Unterscheidung zwischen Großund Kleinschreibung § Beispiele: PROG.C, HALLO.TXT 8 Benennung von Dateien (3) Windows (ab 95) : Dateien bestehen aus § Name bis zu 256 Zeichen § Mehrere Punkte möglich, letzter legt Dateityp fest: z.B. mein.prog.c, hilfe.jetzt.pdf § Keine Unterscheidung zwischen Großund Kleinschreibung § Nicht erlaubt: Einzelne Sonderzeichen, reservierte Wörter: z.B. aux.c, q"uote"s.txt, NUL.txt 9 Benennung von Dateien (4) Unix / Linux: Dateien bestehen aus § Name bis zu 255 Zeichen, mehrere Punkte erlaubt § Dateierweiterung: nur Konvention zur Übersichtlichkeit § Unterscheidung zwischen Groß- und Kleinschreibung § Beispiele: prog.c, Prog.c, prog.c.Z § Dateien oder Verzeichnisse, die mit einem Punkt beginnen, sind „versteckte“ Dateien und werden nur angezeigt, wenn der Benutzer dies explizit angibt (ls –a) 10 Dateitypen (1) § Reguläre Dateien: § Textdateien: Folge von Zeilen unterschiedlicher Länge, Inhalt interpretierbar gemäß Zeichensatz (z.B. ASCII, Unicode), mit Texteditor editierbar § Binärdateien: Interpretation anwendungsabhängig, Verwendungszweck meist als Dateiendung angegeben, Programme 12 Dateitypen (2) § Verzeichnisse: Systemdateien zur Strukturierung des Dateisystems § Modellierung von E/A-Geräten durch Gerätedateien: § Spezielle Zeichendateien zur Modellierung serieller Geräte, z.B. Drucker, Netzwerke § Spezielle Blockdateien zur Modellierung von Plattenspeicher, z.B. Festplatten 13 Dateiattribute § Zusatzinformationen über Datei, die das Betriebssystem speichert § Beispiele: § Entstehungszeitpunkt (Datum, Uhrzeit) § Dateigröße § Zugriffsrechte: Wer darf in welcher Weise auf die Datei zugreifen? 14 Zugriffsrechte (1) § Dateieigentümer, Gruppe des Eigentümers § Zugriffsarten: § § Lesender Zugriff § Schreibender Zugriff § Ausführung Zugreifender § Dateieigentümer § Benutzergruppe des Dateieigentümers § Alle Benutzer 15 Zugriffsrechte (2) § Sicht des Benutzers (Bsp. Unix / Linux): $ ls –l drwxr-xr-x 6 maren users 238 Oct 18 12:13 systeme-slides drwxr-x–- 1 maren users 204 Oct 2 11:10 systeme-uebungen -rw------- 1 maren users 29696 Feb 29 2012 zeitplan.xls § Bedeutung der Felder: § § § § § § § Typ des Eintrags: Datei, Verzeichnis Rechte: Besitzer, Gruppenbesitzer, alle anderen Anzahl Einträge (Verzeichnis), Anzahl Referenzen (Datei) Besitzer, Gruppenbesitzer Speicherplatzverbrauch Datum der letzten Modifikation Name 16 Mögliche Dateiattribute 17 Rechteverwaltung Unix (1) Standardrechte § Dateien § § § § r: Datei darf gelesen werden (read) w: Datei darf geändert werden (write) x: Datei darf als Programm ausgeführt werden (execute) Verzeichnisse § § § r: Der Inhalt des Verzeichnisses darf gelesen werden w: Der Inhalt des Verzeichnisses darf geändert werden: Dateien anlegen, umbenennen, löschen x: Man darf in das Verzeichnis wechseln und seine Objekte benutzen 18 Rechteverwaltung Unix (2) Sonderrechte § SUID (set user ID): § Erweitertes Zugriffsrecht für Dateien § Unprivilegierte Benutzer erlangen kontrollierten Zugriff auf privilegierte Ressourcen § Ausführung mit den Rechten des Besitzers der Datei (anstatt mit den Rechten des ausführenden Benutzers) § Optische Notation bei ls: -rwsr-x--- 19 Rechteverwaltung Unix (2) § root-User: Hat Zugriff auf alles (Superuser) § Beispiel SUID: -r-sr-xr-x … root root … /usr/bin/passwd § Beim Aufruf von 'passwd' läuft das Programm mit der uid des Besitzers (in dem Fall root) und darf in /etc/shadow schreiben § SUID-root-Programme sind sicherheitskritisch! 20 Rechteverwaltung Unix (3) Sonderrechte § Analog: SGID (set group ID) § Ausführung mit den Rechten der Gruppe, der die Datei/das Verzeichnis gehört (anstatt mit den Rechten der Gruppe, die ausführt) § Verzeichnisse: Neu angelegte Dateien gehören der Gruppe, der auch das Verzeichnis gehört (anstatt der Gruppe, die eine Datei erzeugt) § Optische Notation bei ls: drwxrws--- 21 Rechteverwaltung Unix (4) Sonderrechte Beispiel: § Verzeichnis systeme gehört der Gruppe hrl drwxrwxr-x maren hrl systeme § User rist gehört zur Gruppe ais (standard) aber auch zu Gruppe hrl § Anlegen einer Datei von rist in systeme setzt die Gruppe der Datei auf ais: -rw-rw-r-- rist ais test.txt § Gruppe hrl kann in diese Datei nicht schreiben! 22 Rechteverwaltung Unix (5) Sonderrechte § Dies kann verhindert werden durch SGID: chmod g+s systeme: drwxrwsr-x maren hrl systeme § Anlegen einer Datei von rist in systeme setzt nun die Gruppe der Datei auf hrl: -rw-rw-r-- rist hrl test.txt § Gruppe hrl kann jetzt in die Datei schreiben § Alternativ könnte User rist die Schreibrechte für alle Benutzer setzen, dies ist u.U. aber nicht gewünscht! § Beispiel: Homepage auf Webserver 23 Rechteverwaltung Unix (6) Sonderrechte § SVTX (save text bit, sticky bit): § § § Zum Löschen der Datei in einem Verzeichnis muss der Benutzer der Eigentümer der Datei oder des Verzeichnissen sein Optische Notation: drwxrwxrwt Beispiel: drwxrwxrwt … root root … /tmp SVTX verhindert, dass jeder alles löschen darf 24 Rechteverwaltung Unix (7) § Ergänzende, komplexere Zugriffsrechte: Access Control Lists (ACLs) § Einzelnen Nutzern (oder auch Gruppen) können gezielt Rechte an einzelnen Dateien gegeben bzw. entzogen werden § Damit ist z.B. Folgendes möglich § § § Zwei User haben das Schreibrecht Sonst keiner Optische Notation: -rw-r--r--+ 25 Vorsicht! 26 Verzeichnisbaum Baumartige hierarchische Strukturierung § Wurzelverzeichnis (root directory) § Restliche Verzeichnisse baumartig angehängt / tmp etc var usr lib home bin man lib meier mueller schulze 27 Verzeichnisse § Absolute Pfade beginnen mit /, z.B. /home/meier § Relative Pfade beziehen sich auf das aktuelle Arbeitsverzeichnis (working directory). § Relative Pfade beginnen nicht mit /, z.B. mein_verzeichnis § Wechsel des aktuellen Arbeitsverzeichnisses durch cd (change directory) 28 Verzeichnisse/Verzeichnisbaum Graphische Repräsentation (hier: Windows) 29 Zusammenbau von Verzeichnisbäumen (1) § Temporäres, manuelles Anhängen (Mounten) von Dateisystemen § mount /dev/sda1 /home/maren/extern § Hängt Dateisystem in /dev/sda1 an das Verzeichnis /home/maren/extern im bestehenden Verzeichnisbaum an § /home/maren/extern heißt Mountpoint 30 Zusammenbau von Verzeichnisbäumen (2) § Evtl. vorhandene Einträge in /home/maren/ extern werden temporär verdeckt und sind nach Abhängen wieder zugreifbar § Abhängen mit umount /home/maren/extern § Geht nur, wenn keine Datei im angehängten Dateisystem geöffnet ist 31 Zusammenbau von Verzeichnisbäumen (3) Graphische Oberfläche: § Das Mounten von Wechseldatenträgern wie USB-Sticks, CDs, externen Festplatten, etc. geschieht meist automatisch § Typischerweise im Verzeichnis /media oder /Volumes 32 Symbolische Links (1) § Zweck von Links: Ansprechen desselben Objekts mit mehreren Namen § Beispiel: User meier befindet sich in Arbeitsverzeichnis /home/meier § User will bequem auf ausführbare Datei /home/mueller/mytools/Text/m_format zugreifen § Anlegen eines Links im Verzeichnis /home/meier: ln –s /home/mueller/mytools/Text/m_format m_format 33 Symbolische Links (2) § ls –l m_format § lrwxrwxrwx 1 meier users … m_format -> /home/mueller/mytools/Text/m_format § Aufruf durch m_format in Verzeichnis /home/meier nun möglich 34 Symbolische Links (3) § § § § § § § ln –s quelle ziel Enthalten Pfade zu Referenzobjekten Löschen/Verschieben/Umbenennen von Referenzobjekt: Link zeigt ins Leere Löschen von Link: Referenzobjekt ist unverändert Rechte am Link: Entsprechend Referenzobjekt Zulässiges Referenzobjekt: Beliebiges Objekt im Dateibaum Technische Realisierung: später 35 Harte Links § ln quelle ziel (eher selten) § Erstellt Verzeichniseintrag in Dateisystem mit weiterem Namen für Dateiobjekt § Zulässiges Referenzobjekt: Dateiobjekt im selben Dateisystem (Festplattenpartition) § Bei Umbenennen/Verschieben funktioniert Link noch § Technische Realisierung: später 36 Harte Links: Linkzähler § Dateiobjekt mit n Hardlinks hat Linkzähler n+1 § Löschen eines Links: Dekrementieren des Linkzählers § Löschen des Dateiobjekts: Dekrementieren des Linkzählers § Dateiobjekt wird erst dann wirklich gelöscht, wenn Linkzähler auf 0 37 Sequentieller Dateizugriff § Alle Bytes einer Datei können nur nacheinander am Anfang beginnend vom Speichermedium gelesen werden § Kein Überspringen möglich § Zurückspulen möglich, um Dateien so oft wie nötig zu lesen 39 Wahlfreier Dateizugriff § Random-Access-Dateien § Bytes/Datensätze in beliebiger Reihenfolge auslesen § Mithilfe von seek: Legt die aktuelle Position fest § Nach seek-Aufruf, kann die Datei sequentiell von dieser Position gelesen werden § Für viele Anwendungen unentbehrlich (z.B. Datenbanksysteme) 40 Mögliche Operationen auf Dateien (Systemaufrufe) § Create: Erzeugen § Delete: Löschen § Open: Öffnen § Close: Schließen § Read: Lesen von aktueller Position § Write: Schreiben an aktuelle Position 41 Mögliche Operationen auf Dateien (Systemaufrufe) § Append: Anhängen an Dateiende § Seek: Position bestimmen bei RandomAccess-Dateien § Get attributes: Lesen der Dateiattribute § Set attributes: Verändern der Dateiattribute § Rename: Umbenennen 42 Mögliche Operationen auf Verzeichnisse (Systemaufrufe) § Create: Erzeugen § Delete: Löschen § Opendir: Öffnen § Closedir: Schließen § Readdir: Nächsten Verzeichniseintrag lesen § Get attributes: Lesen der Verzeichnisattribute § Set attributes: Verändern der Verzeichnisattribute § Rename: Umbenennen 43 Implementierung von Dateisystem (Festplatte) § Eine Festplatte besteht aus mehreren Platten § Festplatten können in eine oder mehrere Partitionen unterteilt werden § Einzelne Partitionen können unabhängige Dateisysteme besitzen (z.B. Windows und Linux Dateisystem) 44 Implementierung von Dateisystem (Festplatte) § Platten sind eingeteilt in Sektoren (Blöcke), alle Sektoren der Festplatte sind durchnummeriert 01 2 3 4 5 45 Layout eines Dateisystems (1) Ganze Platte Partitionstabelle Plattenpartitionen MBR § § § Sektor 0 der Platte enthält MBR (Master Boot Record), das beim Bootvorgang verwendet wird Partitionstabelle mit Anfangs- und Endadresse jeder Partition Eine aktive Partition 46 Layout eines Dateisystems (2) Ganze Platte Partitionstabelle Plattenpartitionen MBR § Bootvorgang: § BIOS (Basic Input Output System) liest MBR ein § Aktive Partition wird lokalisiert § Bootblock der aktiven Partition wird eingelesen und ausgeführt § Bootblock liest das Betriebssystem von der aktiven Partition ein und startet es 47 Layout eines Dateisystems (3) Ganze Platte Partitionstabelle MBR Plattenpartitionen aktive Partition Bootblock Superblock Freispeicherverw. I-Nodes Datenblöcke: Dateien, Verz. § § Bootblock lädt das Dateisystem der Partition Superblock des Dateisystems enthält Schlüsselparameter des Dateisystems (z.B. Name des Dateisystemtyps, Anzahl Blöcke, ...) 48 Layout eines Dateisystems (4) Ganze Platte Partitionstabelle MBR Plattenpartitionen aktive Partition Bootblock Superblock Freispeicherverw. I-Nodes Datenblöcke: Dateien, Verz. § § Freispeicherverwaltung: Informationen über freie Blöcke im Dateisystem I-Nodes (Index Node, Unix): § § § Enthalten Metadaten der Dateien (Eigentümer, Zugriffsrechte, Dateityp, Größe, Referenzzähler, etc.) Zu jeder Datei gehört ein einziger I-Node Datenblöcke: Eigentliche Inhalte der Dateien 49 Realisierung von Dateien Drei verschiedene Alternativen zur Realisierung von Dateien: § Zusammenhängende Belegung § Belegung durch verkettete Listen § I-Nodes 50 Realisierung von Dateien Zusammenhängende Belegung (1) § Abspeicherung von Dateien: zusammenhängende Menge von Plattenblöcken 51 Realisierung von Dateien Zusammenhängende Belegung (2) § Abspeicherung von Dateien: zusammenhängende Menge von Plattenblöcken Datei A Datei C Datei E Datei G … Datei B § Datei D Datei F Vorteil: Lesegeschwindigkeit (eine einzige Operation für gesamte Datei) 52 Realisierung von Dateien Zusammenhängende Belegung (3) § Situation nach Löschen von D und F: Datei A Datei C Datei E Datei G … Datei B § § freie Blöcke freie Blöcke Nachteil: Fragmentierung der Platte Verschiebung der Blöcke (Defragmentierung) ist ineffizient 53 Realisierung von Dateien Zusammenhängende Belegung (4) § Verwaltung der entstehenden Lücken in Listen theoretisch möglich § Allerdings: (End-)Größe von Dateien muss bekannt sein, um passende Lücke zu finden § Zusammenhängende Belegung im allgemeinen keine gute Idee! § Benutzt bei Dateisystemen für einmal beschreibbare Medien, z.B. CD-ROMs: Dateigröße im Voraus bekannt 54 Realisierung von Dateien Belegung durch verkettete Listen (1) § § Dateien gespeichert als verkettete Listen von Plattenblöcken: Zeiger auf nächsten Block Variante 1: Datei A: Plattenblock Datei B: Plattenblock Dateiblock 0 Dateiblock 1 Dateiblock 2 Dateiblock 3 Dateiblock 4 4 7 2 10 12 Dateiblock 0 Dateiblock 1 Dateiblock 2 Dateiblock 3 6 3 11 14 55 Realisierung von Dateien Belegung durch verkettete Listen (2) § Vorteile: § § § Fragmentierung der Festplatte führt nicht zu Verlust von Speicherplatz Dateien beliebiger Größe können angelegt werden (solange genug Plattenplatz vorhanden) Nachteile: § § Langsamer wahlfreier Zugriff Zugriff auf Dateiblock n: n-1 Lesezugriffe auf die Platte, um Block n zu lokalisieren 56 Realisierung von Dateien Belegung durch verkettete Listen (3) Variante 2: § Information über Verkettung der Blöcke im Hauptspeicher § § § Ersetze bei wahlfreiem Zugriff Plattenzugriffe durch (schnellere) Hauptspeicherzugriffe Datei-Allokationstabelle (FAT=File Allocation Table) im Hauptspeicher Von Microsoft entwickeltes Dateisystem (FAT-12, FAT-16, FAT-32) 57 FAT Beispiel Datei A: Dateiblock 0 Plattenblock 4 Plattenblock 0 Plattenblock 1 Plattenblock 2 Plattenblock 3 Plattenblock 4 Plattenblock 7 7 Dateiblock 2 Dateiblock 3 2 10 Dateiblock 2 Dateiblock 3 11 14 Dateiblock 4 12 Datei B: 10 11 7 Plattenblock 5 Plattenblock 6 Dateiblock 1 3 2 Plattenblock 8 Dateiblock 0 Plattenblock 6 Dateiblock 1 3 Beginn Datei A Beginn Datei B Plattenblock 9 Plattenblock 10 Plattenblock 11 Plattenblock 12 12 14 -1 Plattenblock 13 Plattenblock 14 Plattenblock 15 -1 58 FAT Dateisystem § § Vorteil: § FAT ist im Hauptspeicher § Bei wahlfreiem Zugriff auf Block n muss nur eine Kette von Verweisen im Hauptspeicher verfolgt werden (nicht auf der Platte) Nachteil: § Größe der FAT im Speicher: Jeder Block hat einen Zeiger in FAT § Anzahl der Einträge = Gesamtzahl der Plattenblöcke (auch wenn Platte fast komplett unbelegt) 59 FAT-16: Größe Tabelle / Speicher § § Wie groß ist die FAT im Speicher? § FAT-16: Zeigergröße 16 Bit = 2 Byte § 216 verschiedene Zeiger, 216 Plattenblöcke § Tabelle hat 216 Einträge, jeweils 2 Byte groß: 216 * 2 Byte = 217 Byte = 27 KByte = 128 KByte (210 Byte = 1024 Byte = 1 KByte) Wieviel Speicher kann verwaltet werden? § Maximale Blockgröße bei FAT-16: 32 KByte § 216 * 32 KByte = 216 * 25 KByte = 221 KByte = 231 Byte = 2 GByte (= max. Partitionsgröße) 60 FAT-32 für größere Platten § Mehr Zeiger für größere Platten § Für Zeiger: 28 Bit; 4 Bit für andere Zwecke, z.B. Markierung freier Blöcken § 28 Bit zur Adressierung: 228 verschiedene Zeiger, je 32 Bit = 4 Byte groß § Größe der FAT: 228 * 4 Byte = 230 = 1 GByte § Gegenmaßnahmen für zu große FAT: § Nur wirklich benötigten Teil verwalten § Betrachte Fenster über FAT, welches im Speicher bleibt, bei Bedarf auswechseln 61 FAT-32 System § Vorteile FAT-32: § § § Nachteile FAT-32: § § Die meisten Betriebssysteme können darauf zugreifen Viele externe Geräte verwenden es heute (Digitalkamera, MP3-Player, ...) Maximale Dateigröße: 4 GB (Grund: 4 Byte breites Feldes für die Dateigröße in der Directory-Tabelle) Nachfolger ist MS NTFS (New Technology File System) benutzt sog. File Records (später mehr) 62 Abschließende Bemerkungen § Kleinere Blöcke führen zu weniger verschwendetem Platz pro Datei § Je kleiner die Blockgröße, desto mehr Zeiger, desto größer die FAT im Hauptspeicher § Maximale Größe des ganzen Dateisystems wird durch Blockgröße begrenzt § FAT-16 muss z.B. für eine 2 GByte Partition eine Blockgröße von 32 KByte verwenden § Andernfalls kann mit den 216 verschiedenen Zeigern nicht die ganze Partition adressiert werden 63 Realisierung von Dateien I-Nodes (1) § § § § § Zu jeder Datei gehört eine Datenstruktur, der sogenannte I-Node (Index-Knoten, bei NTFS: File Record) I-Node enthält: Metadaten und Adressen von Plattenblöcken I-Node ermöglicht Zugriff auf alle Blöcke der Datei I-Node muss nur dann im Speicher sein, wenn eine Datei offen ist Wenn k Dateien offen und I-Node n Bytes benötigt: k * n Byte an Speicher benötigt 64 Realisierung von Dateien I-Nodes (2) Dateiattribute Adresse von Dateiblock 0 Adresse von Dateiblock 1 Adresse von Dateiblock 2 Adresse von Dateiblock 3 Adresse von Dateiblock 4 Adresse von Dateiblock 5 Adresse von Dateiblock 6 Adresse von Dateiblock 7 Adresse von Dateiblock 8 Adresse von Dateiblock 9 Zeiger auf Block mit weiteren Adressen (einfach indirekt) Zeiger auf Block mit weiteren Adressen (zweifach indirekt) Zeiger auf Block mit weiteren Adressen (dreifach indirekt) 65 Realisierung von Dateien I-Nodes (3) § Viel weniger Speicherbedarf als bei FAT § Bei FAT: Tabelle zur Speicherung der Verketteten Listen wächst proportional mit Plattengröße § I-Node-Modell: Größe des benötigten Speichers ist proportional zur maximalen Anzahl gleichzeitig geöffneter Dateien § Egal wie groß die Platte ist 66 Realisierung von Dateien I-Nodes (4) I-Node einer Datei enthält § Alle Attribute der Datei § m Adressen von Plattenblöcken (UNIX System V: m=10, ext2/3: m=12) § Verweise auf Plattenblöcke, die weitere Verweise auf Blöcke enthalten § Auf die ersten m Plattenblöcke kann schnell zugegriffen werden § Für die folgenden Plattenblöcke sind zusätzliche Zugriffe nötig 67 Realisierung von Dateien I-Nodes (5) Datenblock 0 Datenblock 1 Zeiger 0 Zeiger 1 Zeiger 2 Zeiger 3 Zeiger 4 Zeiger 5 Zeiger 6 Zeiger 7 Zeiger 8 Zeiger 9 Datenblock 2 Datenblock 3 Datenblock 4 Datenblock 5 Datenblock 6 Datenblock 7 Datenblock 8 Datenblock 9 Bei z.B. Blockgröße 1 KByte: Kleine Dateien bis 10 KByte lassen sich mit den direkten Zeigern speichern 68 Realisierung von Dateien I-Nodes (6) § Für größere Dateien werden Datenblöcke zur Speicherung von weiteren Plattenadressen genutzt § Beispiel: Blockgröße 1 KByte § Größe eines Zeigers auf Plattenblock: 4 Byte (also 232 Adressierungsmöglichkeiten) § 256 Zeiger (je 4 Byte) passen in einen Plattenblock § Nach 10 (oder 12) direkten Plattenadressen gibt es im I-Node einen Zeiger auf einen Plattenblock mit 256 weiteren Plattenadressen (=Dateiblöcken) § Nun Dateien bis zu (10 + 256) x 1 KByte = 266 KByte möglich 69 Realisierung von Dateien I-Nodes (7) Dateiattribute Adresse von Dateiblock 0 Adresse von Dateiblock 1 Adresse von Dateiblock 2 Adresse von Dateiblock 3 Adresse von Dateiblock 4 10 direkte Zeiger Adresse von Dateiblock 5 Adresse von Dateiblock 6 Adresse von Dateiblock 7 Adresse von Dateiblock 8 Adresse von Dateiblock 9 Zeiger auf Block mit weiteren Adressen (einfach indirekt) Adresse von Dateiblock 10 Adresse von Dateiblock 265 … … indirekter Zeiger Insgesamt 256 weitere Adressen in indirekt verbundenem Datenblock Zeiger auf bis zu 256 weitere Plattenblöcke 70 Realisierung von Dateien I-Nodes (8) Noch größere Dateien: Dateiattribute Einfach indirekter Block Adresse von Dateiblock 0 Adresse von Dateiblock 1 Adresse von Dateiblock 2 Adresse von Dateiblock 3 256 Zeiger auf Dateiblöcke Adresse von Dateiblock 4 Adresse von Dateiblock 5 Adresse von Dateiblock 6 Adresse von Dateiblock 7 Adresse von Dateiblock 8 Adresse von Dateiblock 9 Zeiger auf Block mit weiteren Adressen (einfach indirekt) Zeiger auf Block mit weiteren Adressen (zweifach indirekt) Zeiger auf Block mit weiteren Adressen (dreifach indirekt) 71 Realisierung von Dateien I-Nodes (8) Noch größere Dateien: Dateiattribute Einfach indirekter Block Adresse von Dateiblock 0 Adresse von Dateiblock 1 Adresse von Dateiblock 2 Adresse von Dateiblock 3 Adresse von Dateiblock 4 je 256 Zeiger auf Dateiblöcke Adresse von Dateiblock 5 Adresse von Dateiblock 6 Adresse von Dateiblock 7 Adresse von Dateiblock 8 Adresse von Dateiblock 9 Zeiger auf Block mit weiteren Adressen (einfach indirekt) Doppelt indirekter Block 256 Verweise auf Plattenblöcke Zeiger auf Block mit weiteren Adressen (zweifach indirekt) Zeiger auf Block mit weiteren Adressen (dreifach indirekt) 72 Realisierung von Dateien I-Nodes (8) Noch größere Dateien: Dateiattribute Einfach indirekter Block je 256 Zeiger auf Dateiblöcke Adresse von Dateiblock 0 Adresse von Dateiblock 1 Adresse von Dateiblock 2 je 256 Verweise auf Plattenblöcke Adresse von Dateiblock 3 Adresse von Dateiblock 4 Adresse von Dateiblock 5 Adresse von Dateiblock 6 Adresse von Dateiblock 7 Adresse von Dateiblock 8 Doppelt indirekter Block Adresse von Dateiblock 9 Zeiger auf Block mit weiteren Adressen (einfach indirekt) Zeiger auf Block mit weiteren Adressen (zweifach indirekt) Zeiger auf Block mit weiteren Adressen (dreifach indirekt) Dreifach indirekter Block 256 Verweise auf Plattenblöcke 73 Beispiel: Maximale Dateigröße § Blockgröße 1 KByte, Zeigergröße 4 Bytes § 10 direkte Zeiger des I-Nodes: 10 KByte Daten lassen sich speichern § Einfach indirekter Zeiger verweist auf einen Plattenblock, der maximal 1 KByte/4Byte Zeiger verwalten kann, also 256 Zeiger § Indirekt: 1 KByte * 256 = 256 KByte Daten § Zweifach indirekter Zeiger: 1 KByte * 256 * 256 = 64 MByte Daten § Dreifache indirekter Zeiger: 1 KByte * 256 * 256 * 256 = 16 GByte Daten 74 Bemerkungen (1) § Die Größe der I-Node-Tabelle wird beim Anlegen des Dateisystems festgelegt § Es muss eine ausreichende Anzahl von I-Nodes eingeplant werden § Unix System V: I-Node belegt 64 Byte, so dass jeweils 16 I-Nodes in einen 1 KByte Datenblock passen § Standard: Pro 4 KByte Plattenplatz ein I-Node 75 ` Bemerkungen (2) § Wenn verfügbarer Plattenplatz oder die I–Nodes belegt sind: disk full § Theoretisch möglich: Auf der Platte sind noch viele Megabytes an Platz verfügbar § Diese können aber genutzt werden, weil der Systemverwalter nicht genügend I–Nodes vorgesehen hat 76 Vorteile I-Nodes § Die Größe eines I-Nodes ist fix und relativ klein § I-Node kann dadurch lange im Hauptspeicher bleiben § Auf kleinere Dateien kann direkt zugegriffen werden § Die theoretische maximale Größe einer Datei sollte ausreichend sein 77 Attributinformationen in I-Nodes (urspr. Unix System V) (also max 216) bei 3-Byte-Adressen 78 Attributinformationen in I-Nodes (also max 216) bei 4-Byte-Adressen 60 zwölf 79 Realisierung von Verzeichnissen (1) § Verzeichnisse sind ebenfalls Dateien § Sie liefern eine Abbildung von Datei- bzw. Verzeichnisnamen auf I-Node-Nummern § Jeder Verzeichniseintrag ist ein Paar aus Name und I-Node-Nummer § Über die I-Nodes kommt man dann zu Dateiinhalten § Jeder I-Node hat eine feste Position auf der Platte 80 Realisierung von Verzeichnissen (2) / tmp etc var usr lib home bin man lib meier mueller schulze games mail news work aktuelles Vorgängerverzeichnis . 7 .. 3 I-Node von mueller I-Node von home games 45 I-Node Nr. 45 mail 76 I-Node Nr. 76 news 9 I-Node Nr. 9 work 14 I-Node Nr. 14 Zeiger auf die Datenblöcke der Datei 81 Beispiel (1) § Annahme: Wir sind in Verzeichnis mueller § Wir wollen auf ../meier/datei1 zugreifen § Bestimme im aktuellen Verzeichnis die I-Node-Nummer des VorgängerVerzeichnisses, hier: 3 . 7 .. 3 games 45 mail 76 news 9 work 14 82 Beispiel (1) § Annahme: Wir sind in Verzeichnis mueller § Wir wollen auf ../meier/datei1 zugreifen § Bestimme im aktuellen Verzeichnis die I-Node-Nummer des VorgängerVerzeichnisses, hier: 3 § Greife über I-Node 3 auf Inhalt von Vorgänger-Verzeichnis (home) zu § Bestimme dadurch den I-Node des Verzeichnisses meier § In home gibt es den Eintrag meier, 13 (z.B.) 83 Beispiel (2) § Also: Greife über I-Node 13 auf Inhalt von meier zu § Dort steht Eintrag datei1, 15 § Also: Greife über I-Node 15 auf die Inhalte von datei1 zu home I-Node Nr. 3 maier I-Node Nr. 13 datei1 I-Node Nr. 15 Zeiger auf die Datenblöcke der Datei 84 Verwaltung freier Plattenblöcke § Datenblöcke im Dateisystem an beliebigen Stellen genutzt § Nicht notwendigerweise aufeinander folgend § Verwaltung über Freibereichsliste als verkettete Liste: § § § Speichere Nummern von freien Plattenblöcken Benutze zum Speichern der Nummern freie Plattenblöcke, die miteinander verkettet werden Verwaltung durch Bitmap § § Bitmap mit 1 Bit für jeden Plattenblock Plattenblock frei , entsprechendes Bit = 1 85 Freibereichsliste als verkettete Liste 1 KByte Plattenblock kann 256 Plattenadressen speichern (je 4 Byte) 86 Verwaltung durch Bitmap § 1 Bit pro Block § Bitmap hat feste Größe § Bitmap verbraucht weniger Platz (1 vs. 32 Bit pro Block) § Nur wenn die Platte fast voll ist, belegen verkettete Listen weniger Blöcke als die Bitmap § Suche nach Freibereich kann aber ineffizient sein 87 Belegung des Dateisystems § Belegung gegeben durch Anzahl genutzte I-Nodes und Datenblöcke § Dateisystem voll, wenn § Entweder keine I-Nodes mehr frei oder § Keine Datenblöcke mehr frei § Überprüfung mittels df: $ df -i Filesystem /dev/hda2 /dev/hda1 /dev/hda5 Inodes IUsed IFree IUse% Mounted on 64512 6437 58075 10% / 6024 33 5991 1% /boot 500960 76638 424322 16% /usr 88 Implementierung von Hardlinks $ ls –l -rw-r----- 1 meier users … datei1 $ ln datei1 datei2 $ ls –l -rw-r----- 2 meier users … datei1 -rw-r----- 2 meier users … datei2 datei1 71 I-Node Nr. 71 datei2 71 linkcount = 2 89 Implementierung symbolischer Links $ ls –l -rw-r----- 1 meier users … datei1 $ ln –s datei1 datei2 $ ls –l -rw-r----- 1 meier users ... datei1 lrwxrwxrwx 1 meier users ... datei2 -> datei1 I-Node Nr. 71 datei1 71 datei2 39 I-Node Nr. 39 datei1 Datenblock einer neuen Datei vom Typ LINK, enthält Pfadnamen/Text „datei1“ 90 Maximale Systemgröße ext4 (1) § Standard Blockgröße: 4 KByte § Vorher: 32-Bit Blocknummern, 232 Adressierungsmöglichkeiten von Blöcken § Größe von Dateisystem beschränkt auf 232 * 4 KByte = 232 * 212 = 16 TB 91 Maximale Systemgröße ext4 (2) § ext4: 48-Bit Blocknummer § Dadurch möglich: Dateisystem mit 248 * 4 KByte = 248 * 212 = 1 EB § Zwei bislang nicht verwendete Bytes im I-Node speichern die oberen 16 Bits § Indirekte Blockadressierung ersetzt durch „Extents“ = Bereiche von Datenblöcken 92 Zusammenfassung (1) § Objekte zur Datenspeicherung werden typischerweise in Verzeichnisbäumen verwaltet § Dateien und Verzeichnisse werden vom Dateisystem bereitgestellt und verwaltet: § § Wie wird Speicherplatz verwaltet? § Welche Blöcke gehören zu welcher Datei? Der Verzeichnisbaum kann aus mehreren Dateisystemen zusammengebaut sein 93 Zusammenfassung (2) § Links erzeugen neue Verweise auf (vorhandene) Objekte § Es gibt verschiedene Implementierungen für Speicherplatzbelegung § § § § § Zusammenhängende Belegung Verkettete Listen Dateiallokationstabellen I-Nodes Die Unterschiede liegen in der Effizienz (Speicher und Laufzeit) 94