Betriebssysteme (BS)

Ähnliche Dokumente
Systemprogrammierung

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

Alle Metadaten werden in Dateien gehalten

Systeme 1. Kapitel 3 Dateisysteme WS 2009/10 1

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

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

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

F Implementierung von Dateien

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

Wiederholung: Realisierung von Dateien

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

Betriebssysteme K_Kap11B: Files, Filesysteme Datenstrukturen

6.2 FAT32 Dateisystem

Implementierung von Dateisystemen

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

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

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

Konzepte von Betriebssystemkomponenten Disk-Caches und Dateizugriff

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

Grundlagen der Betriebssysteme

Betriebssysteme Teil 16: Dateisysteme (Beispiele)

Implementierung von Dateisystemen

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

Betriebssystemschichten ( )

Betriebssysteme I WS 2014/2015. Betriebssysteme / verteilte Systeme rolanda.dwismuellera@duni-siegena.de Tel.: 0271/ , Büro: H-B 8404

Computer-Systeme. Teil 16: Dateisysteme

Übungen zum Fach Betriebssysteme Kapitel 6

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

Betriebssysteme 11/12

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

Linux Paging, Caching und Swapping

Halt! Wo bin ich überhaupt?... C:\

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

Dateisysteme. Lokale Linux Dateisysteme. Michael Kürschner (m

Partitionieren und Formatieren

Dateisystem: Einführung

Dateisystem: Einführung

Betriebssysteme Kap A: Grundlagen

5.2 Analyse des File Slack

Linux. Dipl.-Inf., Dipl.-Ing. (FH) Michael Wilhelm. FB Automatisierung und Informatik.

Kap. 8: Dateisysteme (E3 EXT2 Dateisystem) 1

Leistungsanalyse von Rechnersystemen

Verteilte Systeme. Verteilte Systeme. 9 Verteilte Dateisysteme SS 2015

Digital Forensics. Slackspace DI Robert Jankovics DI Martin Mulazzani

5. Dateisysteme. 5.1 Definition Dateisystem

Paging. Einfaches Paging. Paging mit virtuellem Speicher

2. Darstellung von Information im Computer

OPERATIONEN AUF EINER DATENBANK

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

File Management. Peter Puschner Institut für Technische Informatik

BACKUP Datensicherung unter Linux

)$7)HVWSODWWHQ3DUWLWLRQ:HQLJHUNDQQPHKUVHLQ

Einführung in die technische Informatik

Lehrveranstaltung Speichersysteme Sommersemester Kapitel 13: Parallele Dateisysteme. André Brinkmann

Betriebssysteme Teil 15: Dateisysteme Teil 1

Basisinformationstechnologie I

Rechnernutzung in der Physik. Betriebssysteme

PVFS (Parallel Virtual File System)

Linker: Adreßräume verknüpfen. Informationen über einen Prozeß. Prozeß-Erzeugung: Verwandtschaft

Wegweiser. Gegenstand und Begriffe. Dateien und Verzeichnisse. Implementationsaspekte. Ablauf eines Dateizugriffs. Plattenspeicher

2. Braunschweiger Linux-Tage. Vortrag über RAID. von. Thomas King Braunschweiger Linux-Tage Seite 1/16

Datenbanken: Architektur & Komponenten 3-Ebenen-Architektur

Prüfung VO Betriebssysteme SS2008 / 7. Juli 2008

altec ComputerSysteme Entwicklungsdokumentation Image-Dateien Datum: Oktober 12, 2010 Autor: René Bellmer altec ComputerSysteme GmbH

Kapitel 15: Dateien und Dateisystem

4.3 Hintergrundspeicher

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

File Slack Analyse unter Linux

Was machen wir heute? Betriebssysteme Tutorium 12. Organisatorisches. Frage 12.1.a. Programmieraufgaben Vorstellung. Antwort

Betriebssystemschichten ( )

Grundlagen der Rechnerarchitektur

Aufbau Datenbanksysteme

Olga Perevalova Universität Hamburg

Datenbanksystem. System Global Area. Hintergrundprozesse. Dr. Frank Haney 1

Gparted Tutorial by Georg

9. Plattenspeicher und Dateien

Netzwerkspeicher und Dateisysteme

SSD-basiertes Caching einer Festplatte auf Dateisystemebene

Abschluss Einblick und Ausblick

Dateisysteme und Datenbanken

B-Bäume, Hashtabellen, Cloning/Shadowing, Copy-on-Write

Datenbanken II Speicherung und Verarbeitung großer Objekte (Large Objects [LOBs])

Betriebssysteme Teil 11: Files, Filesysteme Allgemeines

Speicherverwaltung (Swapping und Paging)

! DBMS organisiert die Daten so, dass minimal viele Plattenzugriffe nötig sind.

I/O-Hardware Grundlagen. Ein- und Ausgabe. Memory-Mapped I/O. Device Controller

Dateisysteme und Links

Betriebssysteme (BTS)

UNIX. Linux. UNIX Derivate, die wichtigsten. Free BSD (Open) Solaris MacOS X Linux. UNIX Dateisystem, wichtige Ordner.

IBM Informix Tuning und Monitoring

Michael Göhler. Linux User Group Erding. 25. September 2013

Teil des Betriebssystems, der sich mit der physischen und logischen Aufteilung und Strukturierung der Datenträger beschäftigt

Journaling Dateisysteme

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/ss2011/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, 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 Zylindergruppe: Menge aufeinanderfolgender Zylinder (häufig 16) Kopie des Super Blocks in jeder Zylindergruppe Eine Datei wird möglichst innerhalb einer Zylindergruppe gespeichert Vorteil: kürzere Positionierungszeiten BS: 11 Dateisysteme 28

Linux Ext2/3 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

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 des Folgeblocks 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

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

Block Buffer Cache: Aufbau BS: 11 Dateisysteme 33

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 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