10. Implementierung von Dateisystemen

Ähnliche Dokumente
Betriebssysteme K_Kap11B: Files, Filesysteme Datenstrukturen

Systeme 1. Kapitel 3 Dateisysteme WS 2009/10 1

9. Dateisysteme. Betriebssysteme Harald Kosch Seite 164

Einführung Leistungsmerkmale Aufbau am Beispiel FAT16. Das Filesystem FAT. Peter Schmid. Hochschule für Technik Zürich Studiengang Informatik

UNIX-Dateisysteme - Allgemeines

Betriebssysteme Teil 16: Dateisysteme (Beispiele)

Ein einfaches Dateisystem

J UNIX-Dateisystem. 1 Umwandlung: Pfad : Inode. J.1 Funktionalität. J.2 Directories (Kataloge) 1 Umwandlung: Pfad : Inode (2) J.

Kap. 8: Dateisysteme (E3 EXT2 Dateisystem) 1

Rechner muß unterschiedliche Geräte bedienen können. zeichenorientierte Geräte (character devices, unstructured devices)

Betriebssysteme 1. Thomas Kolarz. Folie 1

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

7. Speicherverwaltung

Lösung von Übungsblatt 6

Das ext2-dateisystem

Betriebssysteme WS 2012/13 Peter Klingebiel, DVZ. Zusammenfassung Kapitel 4 - Datenträger/Dateiverwaltung

Linux System Administration Inhouse Training

File Management. Peter Puschner Institut für Technische Informatik

Dateisysteme. Erweiterte Anforderungen an Speicher

Verzeichnisbaum. Baumartige hierarchische Strukturierung Wurzelverzeichnis (root directory) Restliche Verzeichnisse baumartig angehängt

Die Shell - Das Vorspiel

Grundlagen der Dateisysteme. Daniel Lieck

Betriebssysteme 11/12

RAID, LVM und Co. Was steckt dahinter?

Systeme I: Betriebssysteme Übungsblatt 3

Betriebssysteme, Rechnernetze und verteilte Systeme 1 (BSRvS1) Dateisysteme.

Betriebssystemschichten ( )

Rechnerarchitektur und Betriebssysteme (CS201): Dateisysteme I + II

Grundlagen der Dateisysteme. Daniel Lieck

Systemprogrammierung

Zwei Möglichkeiten die TLB zu aktualisieren

Freispeicherverwaltung Martin Wahl,

Linux Paging, Caching und Swapping

GNU/Linux Introduction Linux Introduction: Part 1. Simon M. Haller, Sebastian Stabinger iis.uibk.ac.at

Konzepte von Betriebssystemkomponenten Disk-Caches und Dateizugriff

Konzepte von Betriebssystemkomponenten Referat am Thema: Adressräume, Page Faults, Demand Paging, Copy on Write Referent: Johannes Werner

KV Betriebssysteme (Rudolf Hörmanseder, Michael Sonntag, Andreas Putzinger)

Das virtuelle Dateisystem von Linux (VFS)

Wiederholung: Realisierung von Dateien

Betriebssysteme (BS)

Einführung FAT - File Allocation Table NTFS - New Technology Filesystem HFS - Hierachical Filesystem ext - Extended Filesystem Zusammenfassung

storage management (c) Till Hänisch 2003, BA Heidenheim

Systemprogrammierung. Speicherung von Dateien. Freispeicherverwaltung. Beispiele: Dateisysteme unter UNIX und Windows. Dateisysteme mit Fehlererholung

Betriebssysteme Vorstellung

Betriebssysteme (BS) Dateisysteme. Olaf Spinczyk.

Grundlagen der Informatik für Ingenieure I. Background: 4. Dateisystem/Betriebssystemschnittstelle

A Kompilieren des Kernels B Lineare Listen in Linux C Glossar Interessante WWW-Adressen Literaturverzeichnis...

Vorlesung: Rechnerstrukturen, Teil 2 (Modul IP7)

Proseminar Konzepte von Betriebssystem- Komponenten (KVBK) Vortrag zum Thema: Speicheraddressierung, Segmentierung, Paging

Freispeicherverwaltung

PROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN

Linux System Administration Training

Einführung in Dateisysteme

Betriebssysteme (BS)

3 Master File Table (2)

Dateisysteme. Datei: Objekt zum Abspeichern von Daten Die Datei wird vom Dateisystem als Teil des Betriebssystems verwaltet. c~åüüçåüëåüìäé açêíãìåç

Leichtgewichtsprozesse

RO-Tutorien 15 und 16

PVFS (Parallel Virtual File System)

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

Einführung. Datei Verwaltung. Datei Verwaltung. Einführung. Einführung. Einführung. Einführung. Datei Verwaltung. Puffer Cache Verwaltung

Computer-Systeme Teil 16: Dateisysteme

Betriebssysteme. 4y Springer. Eine kompakte Einführung mit Linux. Albrecht Achilles. Mit 31 Abbildungen

Kapitel 8 - Das Dateisystem 1/33

Alle Metadaten werden in Dateien gehalten

Bericht erstellt von: Version: 1.0 Letzte Änderung:

Cache Grundlagen. Schreibender Cache Zugriff. SS 2012 Grundlagen der Rechnerarchitektur Speicher 22

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

GJU IT-forensics course

BACKUP Datensicherung unter Linux

VMWare 3.0. Vmware Installation: - Install VMWARE. - c:\ Programme \ VMWARE. - CD Autorun disable / ja

Transkript:

10. Implementierung von Dateisystemen Application Programs Logical Files System File Organization Module Input/Output Control Basic File System Devices Figure 60: Schichten eines Filesystems Betriebssysteme Harald Kosch Seite 175

Implementierung auf der Platte Benutzersicht der Datei Stream (sequentiell) Array von logischen Blöcken oder Bytes (direkt) Hardware-Sicht Array von physischen Blöcken Sequentieller Zugriff ist trotzdem schneller rotational latency, seek time entfallen Interne Fragmentierung ist unvermeidbar Blöcke fester Länge Aufgabe der Implementierung Effiziente und zuverlässige Abbildung der Benutzersicht auf die Hardware-Sicht Allozierung von Blöcken Verwaltung von freien Blöcken Verwaltung von Directories Pufferverwaltung Betriebssysteme Harald Kosch Seite 176

Kontinuierliche Allozierung File Start Length Count 0 1 4 2 5 6 7 8 9 10 11 Tr 3 F Count 0 2 Tr 14 3 Mail 19 6 List 28 4 F 6 2 12 13 14 15 16 17 18 19 Mail 20 21 22 23 24 25 26 27 List 28 29 30 31 External Fragmentierung, aber schneller Zugriff Dynamische Allozierung: first-fit schnell best-fit langsam, kleine Restfragmente worst-fit langsam, große Restfragmente Kompaktierung langsam und hoch fehlerempfindlich Allozierungsschwierigkeit Feste Größe muß im voraus bekannt sein Betriebssysteme Harald Kosch Seite 177

Gelinkte Allozierung 0 1 10 2 3 4 5 6 7 File 8 9 16 10 25 11 Start Jeep 9 End 25 12 13 14 15 16 1 17 18 19 20 21 22 23 24 25-1 26 27 28 29 30 31 Ineffizient für direkten Zugriff Fehlerempfindlich (kann durch doppelt verkettete Listen reduziert werden) Verbesserte Implementierung durch File-Allocation Table (FAT) Die Einträge in der FAT sind durch Blocknummern indiziert und zeigen auf einen nächsten Eintrag (oder NIL) Betriebssysteme Harald Kosch Seite 178

Indizierte Allozierung 0 1 2 3 4 5 6 7 File Jeep Index Block 9 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 19 9 16 1 10 25-1 -1 28 29 30 31 Verlust von Index-Block bei kleinen Dateien Bei großen Dateien Gekettete Index Blocks Mehrschichtige Indizes bei sehr großen Dateien Beide verlangsamen den Zugriff Betriebssysteme Harald Kosch Seite 179

File-Implementierung in UNIX owner berni group os type regular file perms rwxr-xr-x accessed Apr 7 17:42:29 1999 modified Apr 15 04:42:29 1999 inode Jun 6 06:06:06 1999 size 17004 bytes disk addresses Figure 61: Beispiel eines Inode Jede Datei und Directory ist durch einen Inode beschrieben mit folgenden Inode-Attributen: Besitzer Typ Zugriffskontrolle Zugriff und Änderung der Datei Änderung des Inodes (z.b. permissions) Adressen der physischen Daten Betriebssysteme Harald Kosch Seite 180

Allozierung im Inode I-node Disk addresses Attributes Single indirect block Double indirect block Addresses of data blocks Triple indirect block Figure 62: Direkte und indirekte Blocks in einer Inode Mit 32-Bit Blockadressierung, 1 KB Blöcken (256 Einträge), max 16 GB Größe für ein File. Betriebssysteme Harald Kosch Seite 181

0 1 2 3 4 5 6 7 8 9 single double 4096 228 46423 0 0 11111 0 101 367 0 428 9156 824 256 K 331 3333 75 K 808 367 816 9156 331 3333 Figure 63: Block Layout eines Files und seiner Inode Direkte Blöcke: 1KB Einfache Indirektion: 256 KB Doppelte Indirektion: 256 256 KB = 64 MB Dreifache Indirektion: 256 256 256 KB = 16 GB 1. Bsp.: Byteadresse: 9000 block 8, 808. Byte (9000 DIV 1024 = 8, 9000 MOD 1024 = 808) 2. Bsp.: Byteadresse: 350.000 double block 262.144 (=256 KB) 87.040 (=75 KB) + 816 (byte offset) 350.000 Betriebssysteme Harald Kosch Seite 182

Verwaltung der freien Blöcke Free Space List Head 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Figure 64: Verkettete Liste der freien Blöcke Verkettete Liste Bitmap (effizient für kleine Platten) Freie-Block-Blöcke: selber gelinkt Zähler für zusammenhängende Blöcke Betriebssysteme Harald Kosch Seite 183

Freie Blöcke in UNIX UNIX File System Layout: (Berkley: cylinder groups, d.h. mehrere solche Subsysteme) boot super inode list... data blocks... block block Super Block: Figure 65: UNIX FS Layout Größe des FS, der Inode-Liste, Liste der freien Blöcke Info über freie Blöcke und freie Inodes Funktioniert als Cache für die freien Blöcke Der Kernel schreibt den Superblock periodisch auf die Platte Betriebssysteme Harald Kosch Seite 184

superblock list 109.................................. Hauptspeicher 109 211 208 205 202................. Original configuration superblock list 112 Platte 109 109 949.............................. 211 208 205 202................. After freeing block number 949 112 superblock list 109.................................. 109 211 208 205 202................. After assigning block number 949 112 superblock list 211 208 205 202................. 112 211 344 341 338 335................. 243 After assigning block number 109 replenish superblock free list Figure 66: Disk Blocks anfordern und freigeben Betriebssysteme Harald Kosch Seite 185

Hierarchisches Directory (z.b. MS-DOS) Bytes 8 3 1 10 2 File name 2 2 4 Size Extension Attributes Reserved Time Date First block number Figure 67: Ein MS-DOS Directory-Eintrag Ein Directory kann Directories enthalten Allozierung über File Allocation Table z.b. File 1 : 3 (4, 7, 10) File 2 : 9 FFFF 4 7 A FFFF FFFF 1 2 3 4 5 6 7 8 9 A Figure 68: File Allocation Table (FAT) Betriebssysteme Harald Kosch Seite 186

Hierarchisches Directory z.b. UNIX Bytes 2 14 File name I-node number Figure 69: Ein Directory-Eintrag (dentry) in UNIX Der hierarchische Pfadname wird entlang der Hierarchie lokalisiert: 1. 2.. 4 bin 7 dev 14 lib 9 etc 6 usr 8 tmp I-node 6 is for /usr Mode size times 132 Root directory Block 132 is /usr directory 6. 1.. 19 dick 30 erik 51 jim 26 ast 45 bal I-Node 26 is for /usr/ast Mode size times 406 Block 406 is /usr/ast directory 26. 6.. 64 grants 92 books 60 mbox 81 minix 17 src Looking up usr yields to I-node 6 I-node 6 says that /usr is in block 132 /usr/ast is in I-node 26 I-node 26 says that /usr/ast is in block 406 /usr/ast/mbox is I-node 60 Figure 70: Die Schritte, um /usr/ast/mbox zu finden. Die I-node Nummer ist ein fester Index Betriebssysteme Harald Kosch Seite 187

Zuverlässigkeit Ist von höchster Wichtigkeit. Bad blocks können markiert werden und durch Reserveblöcke ersetzt werden (in Hardware oder Software). Backup Vollbackup oder inkrementelles Backup Spiegelung Alles doppelt speichern (schnell aber teuer). Inkonsistenz einzelner Dateien (z.b. durch Stromausfall). Block number 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 1 0 1 0 1 1 1 1 0 0 1 1 1 0 0 Blocks in use Block number 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 1 0 1 0 1 1 1 1 0 0 1 1 1 0 0 Blocks in use 0 0 1 0 1 0 0 0 0 1 1 0 0 0 1 1 Free blocks Consistent 0 0 0 0 1 0 0 0 0 1 1 0 0 0 1 1 Free blocks Missing block 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 1 0 1 0 1 1 1 1 0 0 1 1 1 0 0 Blocks in use 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 1 0 1 0 2 1 1 1 0 0 1 1 1 0 0 Blocks in use 0 0 1 0 2 0 0 0 0 1 1 0 0 0 1 1 Free blocks Duplicate Block in free list 0 0 1 0 1 0 0 0 0 1 1 0 0 0 1 1 Free blocks Duplicate data block Figure 71: Zustände eines Dateisystems. (a) Konstistent. (b) Fehlender Block. (c) Duplizierter Block in der Liste der freien Blöcke. (d) Doppelter Datenblock. Inkonsistenz des Directories: Anzahl der Files muß mit den Link-Zählern der Inodes übereinstimmen. Betriebssysteme Harald Kosch Seite 188

Speicherhierarchie Registers Cache Random Access Memory Puffer (Cache) Disk-System Tape-System Betriebssysteme Harald Kosch Seite 189

Pufferverwaltung Dient zur Zwischenspeicherung von Plattendaten im Arbeitsspeicher Gleicht den Geschwindigkeitsunterschied zwischen Platte und Arbeitsspeicher etwas aus Kann für mehrfach verwendete Daten auch als Cache dienen Könnte im Prinzip das Anwendungsprogramm tun (sogar besser als das Betriebssystem), die meisten Betriebssysteme bieten aber eine Pufferverwaltung selber an Betriebssysteme Harald Kosch Seite 190

ptr to previous buffer on hash queue device num block num status ptr to data area ptr to next buffer on hash queue ptr to previous buffer on free list ptr to next buffer on free list Figure 72: Buffer Header Status: locked or free valid data delayed write currently reading or writing wanted Betriebssysteme Harald Kosch Seite 191

Das Linux Filesystem Das Virtuelle Filesystem (VFS) Ermöglicht die gleichzeitige Benutzung (mounting) mehrerer Filesysteme Figure 73: Der Aufbau des Virtuellen Filesystems Benutzt eigene Superblocks und Inodes Die realen Filesysteme entweder im Kernel gebunden oder als ladbare Module müssen sich bei VFS registrieren Betriebssysteme Harald Kosch Seite 192

Die realen Filesysteme bieten Funktionen an, die die einzelnen Operationen filesystem-spezifisch durchführen (eine Art Objektorientierung) So wird z.b. ein read auf eine Minix Datei durch ein Minix read durchgeführt Figure 74: Registrierte Filesysteme Figure 75: Mounted Filesystem Die Operationen sind in den Superblocks gespeichert Der Buffer Cache ist gemeinsam für alle Filesysteme, es ist an die Blockdevices (Platte) gebunden VFS cache-t selber Inode und Directory Daten Betriebssysteme Harald Kosch Seite 193

Second Extended Filesystem (EXT2) Das Hauseigene Filesystem von Linux Files bestehen aus einer integeren Anzahl von Blöcken fester Länge (z.b. 1 KB) Die logische Partition wird in Blockgruppen aufgeteilt Die Blockgruppen duplizieren die kritischen Daten Figure 76: EXT2 physikalische Struktur EXT2 Superblock Beschreibt die Grunddaten eines Filssystems Magc Number Identifikation Mount Count, Maximum Mount Count Bei zu viel mounts ein Filesystem Check ist ratsam Block Group Number Die Stelle der Kopie des Superblocks Block Size, Bolcks per Group Free Blocks, Free Inodes, First Inode,... Betriebssysteme Harald Kosch Seite 194

EXT2 Group Descriptor Beschreibt die Grunddaten einer Blockgruppe Wird ähnlich dem Superblock dupliziert Blocks Bitmap Stelle der Allokation-Bitmap für Datenblöcke Inode Bitmap Stelle der Allokation-Bitmap für Indoes Inode Table Stelle der Inode-Tabelle Free blocks count, Free Inodes count,... Betriebssysteme Harald Kosch Seite 195

Figure 77: EXT2 inode Struktur EXT2 Inode ähnlich zu anderen Unix-inodes Mode Art der Datei (file, directory, symbolic link, block device, character device,...) und Zugriffsrechte Besiter Direkter Besitzer und Gruppe Größe Zeitstempel (Erzeugung, letzte Änderung...) Zeiger auf die Datenblöcke mit der üblichen Struktur (Erste 12 Blöcke direkt, dann doppelte und dreifache Indirektion) Betriebssysteme Harald Kosch Seite 196

Figure 78: EXT2 Directory Struktur EXT2 Directories sind spezielle Files, wie üblich in Unix Inode Index zur Inode-Tabelle für sich selbst Name, Länge des ganzen Eintrags Die ersten 2 Einträge in jedem Directory:. für das aktuelle- und.. für das Vater-Directory Betriebssysteme Harald Kosch Seite 197

Das /proc Filesystem Ein virtuelles reales Filesystem Registriert sich, wie ein reales Filesystem Die Filesystemoperationen werden durch Funktionen realisiert, die Kernel-Informationen darlegen Z.B. /proc/devices wird aus den entsprechenden Kernel- Datenstrukturen erzeugt Betriebssysteme Harald Kosch Seite 198