Betriebssysteme (BS)

Ähnliche Dokumente
Betriebssysteme (BS)

Betriebssysteme (BS) Dateisysteme. Olaf Spinczyk.

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

F.2 Speicherung von Dateien

Systemprogrammierung

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

Systemprogrammierung

Alle Metadaten werden in Dateien gehalten

6.2 Master-File-Table (3)

Systeme 1. Kapitel 3 Dateisysteme WS 2009/10 1

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

7.2 Journaling-File-Systems (4)

Alle Metadaten werden in Dateien gehalten

3 Master File Table (2)

Lösung von Übungsblatt 6

Sektoraufbau. Überblick. Zonen. Datenblätter von drei Beispielplatten. Häufigstes Medium zum Speichern von Dateien

Basiseinheit Cluster. Rückgrat des gesamten Systems. Basiseinheit Strom. entsprechender Eintrag für

Dateisysteme. Erweiterte Anforderungen an Speicher

F Implementierung von Dateien

4 LCN VCN LCN Extents werden außerhalb der MFT gespeichert

Betriebssysteme 1. Thomas Kolarz. Folie 1

Einführung in Dateisysteme

Betriebssysteme K_Kap11B: Files, Filesysteme Datenstrukturen

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

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

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

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

Wiederholung: Realisierung von Dateien

Betriebssysteme Teil 16: Dateisysteme (Beispiele)

6.2 FAT32 Dateisystem

Betriebssysteme. Probeklausur. Olaf Spinczyk.

Betriebssysteme I WS 2015/2016. Betriebssysteme / verteilte Systeme Tel.: 0271/ , Büro: H-B 8404

Konzepte von Betriebssystemkomponenten Disk-Caches und Dateizugriff

Von der Platte zur Anwendung (Platte, Treiber, Dateisystem)

UNIX-Dateisysteme - Allgemeines

Freispeicherverwaltung

Grundlagen der Betriebssysteme

Das ext2-dateisystem

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

PROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN

6 Dateisysteme (2) 6 Dateisysteme. 6 Dateisysteme (4) 6 Dateisysteme (3)

Implementierung von Dateisystemen

RO-Tutorien 15 und 16

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

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

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

Basisinformationstechnologie I Wintersemester 2011/ November 2011 Betriebssysteme

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

Linux Paging, Caching und Swapping

Implementierung von Dateisystemen

Einführung in Dateisysteme

Computer-Systeme Teil 16: Dateisysteme

Partitionierung unter Linux

Freispeicherverwaltung Martin Wahl,

Dateisystem: Einführung

Dateisystem: Einführung

10. Implementierung von Dateisystemen

Grundlagen der Dateisysteme. Daniel Lieck

Betriebssysteme I WS 2017/18. Prof. Dr. Dirk Müller. 05a 64-/32-Bit-Architekturen

Virtueller Speicher und Memory Management

9. Dateisysteme. Betriebssysteme Harald Kosch Seite 164

3. Foliensatz Betriebssysteme und Rechnernetze

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

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

Wozu braucht man Dateisysteme? Benutzer muss sich nicht darum kümmern wie die Daten auf der Hardware abge- legt

Das virtuelle Dateisystem von Linux (VFS)

Besprechung des 9. Übungsblattes Virtuelle Speicherverwaltung Aufgaben

5 Kernaufgaben eines Betriebssystems (BS)

Betriebssystemschichten ( )

Transkript:

Betriebssysteme (BS) Dateisysteme Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund Olaf.Spinczyk@tu-dortmund.de http://ess.cs.uni-dortmund.de/~os/ http://ess.cs.tu-dortmund.de/de/teaching/ss2013/bs/ 1 Inhalt Wiederholung Dateien Freispeicherverwaltung Verzeichnisse Dateisysteme Pufferspeicher Dateisysteme mit Fehlererholung Zusammenfassung Silberschatz, Kap.... 10: File System 11: Implementing File Systems Tanenbaum, Kap.... 6: Dateisysteme BS: 11 Dateisysteme 2

Inhalt Wiederholung Dateien Freispeicherverwaltung Verzeichnisse Dateisysteme Pufferspeicher Dateisysteme mit Fehlererholung Zusammenfassung BS: 11 Dateisysteme 3 Wiederholung In den bisherigen Vorlesungen CPU, Hauptspeicher In der letzten Vorlesung E/A-Geräte, insbesondere auch Zugriff auf blockorientierte Geräte Heute: Dateisysteme Hauptspeicher (Memory) Prozessor (CPU, Central Processing Unit) E/A-Schnittstellen (Interfaces) E/A-Geräte (I/O Devices) Hintergrundspeicher (Secondary Storage) BS: 11 Dateisysteme 4

Wiederholung (2) usr / Logische Sicht Verzeichnis home Dateisysteme erlauben die dauerhafte Speicherung großer Datenmengen. bin local os me hsc js bs.pdf Abbildung Das Betriebssystem stellt den Anwendungen die logische Sicht zur Verfügung und muss diese effizient realisieren. Datei Physikalische Sicht Rotationsachse Spuren... Sektor Festplatte mit 6 Oberflächen Schreib-/Leseköpfe BS: 11 Dateisysteme 5 Inhalt Wiederholung Dateien Freispeicherverwaltung Verzeichnisse Dateisysteme Pufferspeicher Dateisysteme mit Fehlererholung Zusammenfassung BS: 11 Dateisysteme 6

Speicherung von Dateien Dateien benötigen oft mehr als einen Block auf der Festplatte Welche Blöcke werden für die Speicherung einer Datei verwendet? Variable Länge Datei? Block 0 Block 1 Block 02 Block 03 Block 4 Block 5 Block 06 Block 07 Platte Feste Länge BS: 11 Dateisysteme 7 Kontinuierliche Speicherung Datei wird in Blöcken mit aufsteigenden Blocknummern gespeichert Nummer des ersten Blocks und Anzahl der Folgeblöcke muss gespeichert werden, z.b. Start: Block 4; Länge: 3. Block 0 Block 1 Block 02 Block 03 Block 4 Block 5 Block 06 Block 07 Vorteile Zugriff auf alle Blöcke mit minimaler Positionierzeit des Schwenkarms Schneller direkter Zugriff auf bestimmter Dateiposition Einsatz z.b. bei nicht modifizierbaren Dateisystemen wie auf CDs BS: 11 Dateisysteme 8

Kontinuierliche Speicherung Probleme Finden des freien Platzes auf der Festplatte (Menge aufeinanderfolgender und freier Plattenblöcke) Fragmentierungsproblem (Verschnitt: nicht nutzbare Plattenblöcke; siehe auch Speicherverwaltung) Größe bei neuen Dateien oft nicht im Voraus bekannt Erweitern ist problematisch - Umkopieren, falls kein freier angrenzender Block mehr verfügbar BS: 11 Dateisysteme 9 Verkettete Speicherung Blöcke einer Datei sind verkettet Block 3 Block 8 Block 1 Block 9 z.b. Commodore Systeme (CBM 64 etc.) - Blockgröße 256 Bytes - die ersten zwei Bytes bezeichnen Spur- und Sektornummer des nächsten Blocks - wenn Spurnummer gleich Null: letzter Block - 254 Bytes Nutzdaten Datei kann vergrößert und verkleinert werden BS: 11 Dateisysteme 10

Verkettete Speicherung: Probleme Speicher für Verzeigerung geht von den Nutzdaten im Block ab Ungünstig im Zusammenhang mit Paging: Seite würde immer aus Teilen von zwei Plattenblöcken bestehen Fehleranfälligkeit: Datei ist nicht restaurierbar, falls einmal Verzeigerung fehlerhaft Schlechter direkter Zugriff auf bestimmte Dateiposition Häufiges Positionieren des Schreib-, Lesekopfs bei verstreuten Datenblöcken BS: 11 Dateisysteme 11 Verkettete Speicherung: FAT Verkettung wird in speziellen Plattenblocks gespeichert FAT-Ansatz (FAT: File Allocation Table) - z.b. MS-DOS, Windows 95 FAT Block 0 5 10 9 8 1 - Blöcke der Datei: 3, 8, 1, 9 Block 3 Block 8 Block 1 Block 9 Erster Dateiblock Vorteile kompletter Inhalt des Datenblocks ist nutzbar mehrfache Speicherung der FAT möglich: Einschränkung der Fehleranfälligkeit BS: 11 Dateisysteme 12

Verkettete Speicherung: Probleme (2) Zusätzliches Laden mindestens eines Blocks (Caching der FAT zur Effizienzsteigerung nötig) Laden unbenötigter Informationen: FAT enthält Verkettungen für alle Dateien Aufwändige Suche nach dem zugehörigen Datenblock bei bekannter Position in der Datei Häufiges Positionieren des Schreib-, Lesekopfs bei verstreuten Datenblöcken BS: 11 Dateisysteme 13 Diskussion: Chunks/Extends/Clusters Variation Unterteilen einer Datei in kontinuierlich gespeicherte Folgen von Blöcken (Chunk, Extent oder Cluster genannt) Reduziert die Zahl der Positionierungsvorgänge Blocksuche wird linear in Abhängigkeit von der Chunk-Größe beschleunigt Probleme Zusätzliche Verwaltungsinformationen Verschnitt - Feste Größe: innerhalb einer Folge (interner Verschnitt) - Variable Größe: außerhalb der Folgen (externer Verschnitt) Wird eingesetzt, bringt aber keinen fundamentalen Fortschritt BS: 11 Dateisysteme 14

Indiziertes Speichern Spezieller Plattenblock enthält Blocknummern der Datenblocks einer Datei Indexblock 0 5 10 3 8 1 9 Blöcke der Datei: 3, 8, 1, 9 Block 3 Block 8 Block 1 Block 9 Erster Dateiblock Problem Feste Anzahl von Blöcken im Indexblock - Verschnitt bei kleinen Dateien - Erweiterung nötig für große Dateien BS: 11 Dateisysteme 15 Indiziertes Speichern: UNIX-Inode direkt 0 Datenblöcke direkt 1... direkt 9 einfach indirekt zweifach indirekt dreifach indirekt Inode BS: 11 Dateisysteme 16

Indiziertes Speichern: Diskussion Einsatz von mehreren Stufen der Indizierung Inode benötigt sowieso einen Block auf der Platte (Verschnitt unproblematisch bei kleinen Dateien) durch mehrere Stufen der Indizierung auch große Dateien adressierbar Nachteil mehrere Blöcke müssen geladen werden (nur bei langen Dateien) BS: 11 Dateisysteme 17 Baumsequentielle Speicherung Wird bei Datenbanken zum effizienten Auffinden eines Datensatzes mit Hilfe eines Schlüssels eingesetzt Schlüsselraum spärlich besetzt. Kann auch verwendet werden, um Datei-Chunks mit bestimmtem Datei-Offset aufzufinden, z.b. NTFS, Reiser FS, btrfs, IBM JFS2 Dateisystem (B+ Baum) Indexblöcke Chunks mit Blöcken BS: 11 Dateisysteme 18

Inhalt Wiederholung Dateien Freispeicherverwaltung Verzeichnisse Dateisysteme Pufferspeicher Dateisysteme mit Fehlererholung Zusammenfassung BS: 11 Dateisysteme 19 Freispeicherverwaltung Ähnlich wie Verwaltung von freiem Hauptspeicher Bitvektoren zeigen für jeden Block Belegung an Verkettete Listen repräsentieren freie Blöcke Verkettung kann in den freien Blöcken vorgenommen werden Optimierung: aufeinanderfolgende Blöcke werden nicht einzeln aufgenommen, sondern als Stück verwaltet Optimierung: ein freier Block enthält viele Blocknummern weiterer freier Blöcke und evtl. die Blocknummer eines weiteren Blocks mit den Nummern freier Blöcke freie Blöcke mit Verweisen freie Blöcke BS: 11 Dateisysteme 20

Freispeicherverwaltung (2) Baumsequentielle Speicherung freier Blockfolgen Erlaubt schnelle Suche nach freier Blockfolge bestimmter Größe Anwendung z.b. im SGI XFS BS: 11 Dateisysteme 21 Inhalt Wiederholung Dateien Freispeicherverwaltung Verzeichnisse Dateisysteme Pufferspeicher Dateisysteme mit Fehlererholung Zusammenfassung BS: 11 Dateisysteme 22

Verzeichnis als Liste Einträge gleicher Länge hintereinander in einer Liste, z.b. FAT File systems Name (8 Z.) Erweiterung (3 Z.) Attribute Erstellungsdatum letzter Zugriff Länge Erster Datenblock Letzte Änderung - für VFAT werden mehrere Einträge zusammen verwendet, um den langen Namen aufzunehmen UNIX System V.3 Problem Inode- Nummer Dateiname (max. 14 Zeichen) Suche nach bestimmten Eintrag muss linear erfolgen Bei Sortierung der Liste: Schnelles Suchen, Aufwand beim Einfügen BS: 11 Dateisysteme 23 Einsatz von Hash-Funktionen Funktion bildet Dateinamen auf einen Index in die Katalogliste ab. Schnellerer Zugriff auf den Eintrag möglich (kein lineares Suchen) (Einfaches aber schlechtes) Beispiel: ( Zeichen ) mod N Dateiname Index 0 Verzeichniseinträge Hash-Funktion N-1 Probleme Kollisionen (mehrere Dateinamen werden auf gleichen Eintrag abgebildet) Anpassung der Listengröße, wenn Liste voll BS: 11 Dateisysteme 24

Variabel lange Listenelemente Beispiel 4.2 BSD, System V Rel. 4, u.a. Inode- Nummer Länge des Namens Name Offset zum nächsten gültigen Eintrag... Probleme Verwaltung von freien Einträgen in der Liste Speicherverschnitt (Kompaktifizieren, etc.) BS: 11 Dateisysteme 25 Inhalt Wiederholung Dateien Freispeicherverwaltung Verzeichnisse Dateisysteme Pufferspeicher Dateisysteme mit Fehlererholung Zusammenfassung BS: 11 Dateisysteme 26

UNIX System V File System Blockorganisation 0 1 2 isize...... Inodes Datenblöcke Super Block (Dateien, Verzeichnisse, Indexblöcke) Boot Block Boot Block enthält Informationen zum Laden Betriebssystems Super Block enthält Verwaltungsinformation für ein Dateisystem - Anzahl der Blöcke, Anzahl der Inodes - Anzahl und Liste freier Blöcke und freier Inodes - Attribute (z.b. Modified flag) BS: 11 Dateisysteme 27 BSD 4.2 (Berkeley Fast File System) Blockorganisation erste Zylindergruppe zweite Zylindergruppe Super Block Boot Block Inodes Cylinder Group Block Datenblöcke Kopie des Super Blocks in jeder Zylindergruppe Eine Datei wird möglichst innerhalb einer Zylindergruppe gespeichert Vorteil: kürzere Positionierungszeiten Zylindergruppe: Menge aufeinanderfolgender Zylinder (häufig 16) BS: 11 Dateisysteme 28

Linux Ext2/3/4 File System Blockorganisation erste Blockgruppe zweite Blockgruppe Inodes Datenblöcke Bitmaps (freie Inodes u. Blöcke) Cylinder Group Block Super Block Boot Block Blockgruppe: Menge aufeinander folgender Blöcke Ähnliches Layout wie BSD FFS Blockgruppen unabhängig von Zylindern BS: 11 Dateisysteme 29 Inhalt Wiederholung Dateien Freispeicherverwaltung Verzeichnisse Dateisysteme Pufferspeicher Dateisysteme mit Fehlererholung Zusammenfassung BS: 11 Dateisysteme 30

UNIX Block Buffer Cache Pufferspeicher für alle benötigten Plattenblocks Verwaltung mit Algorithmen ähnlich wie bei Kachelverwaltung Read ahead: beim sequentiellen Lesen wird auch der Transfer von Folgeblöcken angestoßen Lazy write: Block wird nicht sofort auf Platte geschrieben (erlaubt Optimierung der Schreibzugriffe und blockiert den Schreiber nicht) Verwaltung freier Blöcke in einer Freiliste - Kandidaten für Freiliste werden nach LRU Verfahren bestimmt - Bereits freie aber noch nicht anderweitig benutzte Blöcke können reaktiviert werden (Reclaim) BS: 11 Dateisysteme 31 UNIX Block Buffer Cache (2) Schreiben erfolgt, wenn keine freien Puffer mehr vorhanden sind, regelmäßig vom System (fsflush Prozess, update Prozess), beim Systemaufruf sync(), und nach jedem Schreibaufruf im Modus O_SYNC. Adressierung Adressierung eines Blocks erfolgt über ein Tupel: (Gerätenummer, Blocknummer) Über die Adresse wird ein Hash-wert gebildet, der eine der möglichen Pufferlisten auswählt BS: 11 Dateisysteme 32

UNIX Block Buffer Cache: Aufbau BS: 11 Dateisysteme 33 UNIX Block Buffer Cache: Aufbau (2) BS: 11 Dateisysteme 34

Inhalt Wiederholung Dateien Freispeicherverwaltung Verzeichnisse Dateisysteme Pufferspeicher Dateisysteme mit Fehlererholung Zusammenfassung BS: 11 Dateisysteme 35 Dateisysteme mit Fehlererholung Mögliche Fehler Stromausfall (ahnungsloser Benutzer schaltet einfach Rechner aus) Systemabsturz Auswirkungen auf das Dateisystem inkonsistente Metadaten z.b. Katalogeintrag fehlt zur Datei oder umgekehrt z.b. Block ist benutzt aber nicht als belegt markiert Reparaturprogramme Programme wie chkdsk, scandisk oder fsck können inkonsistente Metadaten reparieren Probleme Datenverluste bei Reparatur möglich Lange Laufzeiten der Reparaturprogramme bei großen Platten BS: 11 Dateisysteme 36

Journaled File Systems Zusätzlich zum Schreiben der Daten und Meta-Daten (z.b. Inodes) wird ein Protokoll der Änderungen geführt Alle Änderungen treten als Teil von Transaktionen auf. Beispiele für Transaktionen: - Erzeugen, löschen, erweitern, verkürzen von Dateien - Dateiattribute verändern - Datei umbenennen Protokollieren aller Änderungen am Dateisystem zusätzlich in einer Protokolldatei (Log File) Beim Bootvorgang wird Protokolldatei mit den aktuellen Änderungen abgeglichen und damit werden Inkonsistenzen vermieden. BS: 11 Dateisysteme 37 Journaled File Systems: Protokoll Für jeden Einzelvorgang einer Transaktion wird zunächst ein Protokolleintrag erzeugt und... danach die Änderung am Dateisystem vorgenommen. Dabei gilt: Der Protokolleintrag wird immer vor der eigentlichen Änderung auf Platte geschrieben. Wurde etwas auf Platte geändert, steht auch der Protokolleintrag dazu auf der Platte. BS: 11 Dateisysteme 38

Journaled File Systems: Erholung Beim Bootvorgang wird überprüft, ob die protokollierten Änderungen vorhanden sind: Transaktion kann wiederholt bzw. abgeschlossen werden, falls alle Protokolleinträge vorhanden. Redo Angefangene aber nicht beendete Transaktionen werden rückgängig gemacht Undo. BS: 11 Dateisysteme 39 Journaled File Systems: Ergebnis Vorteile eine Transaktion ist entweder vollständig durchgeführt oder gar nicht Benutzer kann ebenfalls Transaktionen über mehrere Dateizugriffe definieren, wenn diese ebenfalls im Log erfasst werden. keine inkonsistenten Metadaten möglich Hochfahren eines abgestürzten Systems benötigt nur den relativ kurzen Durchgang durch das Log-File. - Alternative chkdsk benötigt viel Zeit bei großen Platten Nachteile ineffizienter, da zusätzliches Log-File geschrieben wird - daher teilweise nur Metadata Journaling, kein Full Journaling Beispiele: NTFS, EXT3, ReiserFS BS: 11 Dateisysteme 40

Inhalt Wiederholung Dateien Freispeicherverwaltung Verzeichnisse Dateisysteme Pufferspeicher Dateisysteme mit Fehlererholung Zusammenfassung BS: 11 Dateisysteme 41 Zusammenfassung: Dateisysteme... sind eine Betriebssystemabstraktion Speicherung logisch zusammenhängender Informationen als Datei Meist hierarchische Verzeichnisstruktur, um Dateien zu ordnen... werden durch die Hardware beeinflusst Minimierung der Positionierungszeiten bei Platten Gleichmäßige Abnutzung bei FLASH-Speicher Kein Buffer Cache bei RAM-Disks... werden durch das Anwendungsprofil beeinflusst Blockgröße - zu klein Verwaltungsstrukturen können zu Performance-Verlust führen - zu groß Verschnitt führt zu Plattenplatzverschwendung Aufbau von Verzeichnissen - keine Hash-Funktion langwierige Suche - mit Hash-Funktioen mehr Aufwand bei der Verwaltung BS: 11 Dateisysteme 42