4 Datenträger/Dateiverwaltung

Transcription

4 Datenträger/Dateiverwaltung
Betriebssysteme
Folie 4 - 1
4 Datenträger/Dateiverwaltung
•
Dateien
−
enthalten logisch zusammengehörende Daten
−
werden auf einem Datenträger permanent gespeichert
−
können im Allgemeinen über einen Namen identifiziert werden
•
Dateiverzeichnis enthält Informationen zur Verwaltung von Dateien
•
Dateiverwaltung bietet Benutzer/Programmierer komfortable
Dienste
−
Speicherung der Daten auf Datenträgern
−
Realisierung von Zugriffsverfahren
♦ sequenziell
♦ indexsequenziell
♦ wahlfrei/direkt
•
−
Verwaltung belegter und freier Teile des Datenträgers
−
Gewährleistung von Sicherheit und Zugriffsschutz
Dateisystem enthält alle vom Betriebssystem in derselben Art verwalteten Dateien inklusive der erforderlichen Verwaltungsinformationen
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
•
Folie 4 - 2
Problem: Die einzelnen Datenträger besitzen im Allgemeinen völlig
unterschiedliche Geräteparameter
(z. B. unterschiedlich viele Oberflächen, Spuren pro Oberfläche, Sektoren pro Spur oder
Blockgrößen)
⇒ Dateiverwaltung müsste spezifisch für Datenträger erfolgen
•
Beispiel: 3,5"-Disketten
1) Double-density: 720 KB
2 Köpfe, 80 Spuren pro Kopf, 9 Sektoren pro Spur
2) High-density: 1.440 KB
2 Köpfe, 80 Spuren pro Kopf, 18 Sektoren pro Spur
•
Lösung des Problems:
−
Dateiverwaltung sieht nur eine Folge von logischen Blöcken
−
logischer Block kann aus mehreren zusammenhängenden Sektoren bestehen
(Beispiel: bei einer Blockgröße von 2 KB (vier Sektoren à 512 Byte) besitzt die 720
KB Diskette 360 Blöcke und die 1,4 MB Diskette 720 Blöcke; bei Disketten entspricht
ein logischer Block allerdings im Allgemeinen immer einem Sektor, damit genügend
viele Blöcke zur Verfügung stehen)
−
Blocknummern werden vom sogenannten Gerätetreiber in
gerätespezifische Angaben umgesetzt
(z. B. in Zylinder/Kopf/Sektor-Werte oder logische Blockadressen bei Festplatten)
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
•
Folie 4 - 3
Betriebssystem und Anwendungsprogramm sehen Datei verschieden
−
aus der Sicht des Programms besteht eine Datei aus einer Folge
von Datensätzen oder Zeichen
−
für das Betriebssystem ist die Strukturierung der Datei auf
Programmebene ohne Bedeutung
−
Betriebssystem teilt die Datei in eine Folge aufeinander folgender Blöcke ein (virtuelle Blöcke)
−
Dateiverwaltung bildet virtuelle Blöcke der Datei auf logische
Blöcke des Datenträgers ab
(virtuelle und logische Blöcke werden im Allgemeinen gleich groß gewählt)
buffer in application
record 0 record 1 record 2 record 3
block 0
block 1
block 2
...
...
block 0
...
...
file (application view)
...
...
file (operating system view:
virtual block or cluster numbers)
...
...
...
...
block h
...
...
block k
buffer cache in operating system
...
...
block n
file (operating system view:
logical block or cluster numbers)
devices (operating system view:
device dependent parameters,
e. g., (cylinder, head, sector) or
"logical block address" for a disk)
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
•
Folie 4 - 4
die Größe eines Datensatzes im Programm entspricht normalerweise
nicht der Blockgröße des Betriebssystems
(kann kleiner oder größer als Block sein)
⇒ das Betriebssystem speichert z. B. Blöcke zuerst in einem
Systempuffer, aus dem es den gewünschten Datensatz in den
Puffer des Programms kopiert
(falls der gewünschte Datensatz über virtuelle Blockgrenzen hinausgeht, muss das
Betriebssystem mehrere logische Blöcke anfordern)
⇒ das Betriebssystem speichert Datensätze des Programms zuerst
in Systempuffern, bevor sie auf den Datenträger geschrieben
werden
(die Systempuffer minimieren den zeitaufwendigen Datenaustausch mit dem peripheren Speicher, sodass ein Prozess in den meisten Fällen nicht blockiert werden muss,
sondern seine Daten sofort aus dem internen Puffer erhält bzw. in diesen schreiben
kann)
•
logische Blöcke eines Datenträgers sind nach einiger Zeit mehr oder
weniger zufällig belegt oder frei, sodass eine große Datei im
Allgemeinen nicht zusammenhängend gespeichert werden kann
•
Datenaustausch mit Datenträger erfolgt bei einer Festplatte z. B.
durch
−
Angabe der Zylinder/Kopf/Sektornummer (CHS-Notation) oder
der logischen Sektornummer (LBA-Notation) des 1. Sektors des
logischen Blocks
−
Anzahl der zu übertragenden Sektoren/Blöcke
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
Folie 4 - 5
4.1 Festplatten/RAID-Systeme/LVM/NAS/SAN
•
Aufbau einer Festplatte
sector
track
actuator
axis
cylinder
head arm
spindle
platter
read/write
head
•
relevante Zeiten für Datenzugriff
−
Kopfpositionierzeit (seek time)
−
Drehwartezeit (Latenzzeit, latency time)
−
Zugriffszeit (access time = seek time + latency time)
−
Übertragungszeit (transfer time)
seek time
transfer
time
read/write head
latency time
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
•
Folie 4 - 6
einige Kapazitätsbarrieren für Festplatten in der PC-Welt
−
FAT12-Grenze: 212 * 4 KB = 16 MB
(ca. 1982/83; FAT12 wird heute (2015) immer noch bei allen Microsoft-Betriebssystemen für Disketten und DOS-Partitionen bis 16 MB eingesetzt)
−
Grenze durch inkompatible Schnittstellen: 512 MB
(ca. 1991/92; physikalische Adressierung der Festplatte, CHS-Notation (cylinderhead-sector); exakt liegt die Grenze bei 504 MB, da jede Spur nur 63 Sektoren
enthalten kann (siehe unten))
Standard
max. Anzahl max. Anzahl max. Anzahl
max.
Zylinder
Köpfe
Sektoren/Spur Kapazität
IDE/ATA
210
216
28
24
26
28
128 GB
Kombination
210
24
26
512 MB
BIOS INT 13h
8 GB
(BIOS: Basic Input/Output System, IDE: Integrated Device Electronics, ATA: Advanced Technology
Attachment storage interface)
Lösung: logische Plattengeometrie und Umrechnung
(BIOS INT 13h extensions; wurde auch durch „neue“ Festplatten mit unterschiedlicher
Anzahl Sektoren/Spur in verschiedenen Zylinderbereichen erforderlich (siehe weiter
unten); ECHS-Notation (extended CHS); aus historischen Gründen werden Zylinder
und Spuren ab 0 und Sektoren ab 1 (max. 2n – 1 Sektoren/Spur) gezählt)
Zylinder Köpfe Sektoren/Spur Kapazität
„IDE/ATA“-Grenze
65.536
16
255
127,5 GB
7.944
16
63
3,8 GB
BIOS-Umrechnungsfaktor
/8
*8
umgerechnete Geometrie
993
128
63
3,8 GB
„BIOS INT 13h“- Grenze
1.024
256
63
7,875 GB
logische Plattengeometrie
(Seagate Marathon 4030sl)
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
Folie 4 - 7
−
FAT16-Grenze: 216 * 32 KB = 2 GB (ca. 1993/94)
−
„BIOS INT 13h“-Grenze: 8 GB
(ca. 1997)
Lösung: logical block addressing (LBA)
(BIOS INT 13h extensions; Sektoren werden nicht mehr über die 24-Bit großen CHSWerte angesprochen, sondern direkt über 64-Bit Sektornummern, d. h., die Plattengröße wird nur über die Anzahl der physikalischen Sektoren definiert; entspricht der
Adressierung bei SCSI-Festplatten (SCSI: Small Computer System Interface); große
Festplatten melden im Allgemeinen immer C/H/S = 16.383/16/63, sodass bei alter
BIOS-Software nur die ersten 8 GB sichtbar sind; Linux kann ab Version 2.0.34
(06/1998) Festplatten über 8 GB vollständig nutzen und Solaris ab Version 7 für
Sparc- bzw. Version 8 für Intel-Prozessoren)
−
FAT32-Grenze: 32 GB (theoretisch wären 228 * 32 KB = 8 TB möglich)
(ca. 1998; die höherwertigen vier Bits sind reserviert, sodass nur 28 Bits für Blockadressen zur Verfügung stehen; FAT32 wird von Windows 95 OSR2, Windows
98/ME/2000/XP/... unterstützt; Partitionen mit mehr als 32 GB Kapazität können von
Windows 2000/XP nicht mit FAT32 formatiert werden; Windows 2000/XP können
solche Partitionen benutzen, wenn sie von anderen Betriebssystemen formatiert
worden sind)
−
vor Linux v2.2.14 (01/2000) und Solaris 8 Rel. 10/2000: 32 GB
(Die Anzahl der Zylinder wurde bei Linux im Betriebssystemkern als short int gespeichert. Die Festplatte IBM Deskstar Modell DTLA-305040 meldet z. B. C/H/S =
16.383/16/63 und 80.418.240 physikalische Sektoren (ca. 38 GB). Linux hätte
80.418.240/(16 * 63) = 79.780 Zylinder für die Platte berechnet. Da der Wert als short
int gespeichert wird, gehen die höherwertigen Bits verloren, sodass alte Linux-Versionen nur eine Festplatte mit 14.244 Zylindern, 16 Köpfen und 63 Sektoren/Spur (6,8
GB) erkennen.)
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
−
„IDE/ATA“-Grenze: 128 GB
Folie 4 - 8
(ca. 2001/2002)
Lösung: - ATA/ATAPI-6-Schnittstelle oder neuer
- SCSI-Festplatten anstelle von IDE/ATA-Festplatten
(ATAPI: ATA Packet Interface; Erweiterung der 28-Bit Adressierung auf 48-Bit
Adressen (144 Peta Bytes); kann bis zu 65.536 Sektoren (32 MB) pro Kommando
übertragen (vorher max. 256 Sektoren); Ultra DMA/100-Übertragungsmodus (100
MByte/s); wird auch „137 GB“-Grenze genannt, wenn 1 GB mit 109 Bytes benutzt
wird; Linux kann erst seit Version 2.5.3 (01/2002) IDE/ATA-Festplatten über 128 GB
vollständig nutzen)
−
32-Bit-Betriebssysteme-Grenze: 2 TB (ca. 2009/2010)
Lösung: - Unified Extensible Firmware Interface (UEFI) als
Nachfolger des BIOS
- Globally Unique Identifier Partition Table (GUID
Partition Table, GPT) als Nachfolger der MBRPartitionstabelle (Master Boot Record Partition
Table)
- 64-Bit Betriebssysteme
- eventuell größere Sektoren (z. B. 4 KB)
(Alle 32-Bit Betriebssysteme können bei 512-Byte Sektoren maximal 232 * 512 Byte
= 2 TB adressieren. Im Jahr 2010 kamen die ersten 3 TB Festplatten auf den Markt (z.
B. Western Digital WD30EZRSDTL).)
⇒ Lösungen erforder(te)n Änderungen im BIOS und im Betriebssystem
Aufgabe 4-1:
Welche Zeiten müssen beim Lesen/Schreiben eines Datenblocks von/auf
einer/eine Festplatte berücksichtigt werden?
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
•
Folie 4 - 9
wie wurden Kapazitätssteigerungen erreicht ?
a)
b)
c)
d)
a) Festplatten hatten zuerst wenige Spuren und Sektoren/Spur
(die Adressierung erfolgte mit den physikalischen Zylinder/Kopf/Sektor-Nummern)
b) zuerst wurde die Kapazität durch mehr Spuren/Köpfe gesteigert
(die Adressierung erfolgte mit den physikalischen Zylinder/Kopf/Sektor-Nummern)
c) dann wurde die Anzahl der Sektoren/Spur erhöht
(die Adressierung erfolgte relativ schnell mit logischen Zylinder/Kopf/SektorNummern, da die physikalischen Nummern für die Datenstrukturen des BasicInput/Output-Systems (BIOS) bzw. des Betriebssystems zu groß waren)
d) schließlich wurden in verschiedenen Bändern/Zonen unterschiedlich vielen Sektoren/Spur benutzt (zoned bit recording)
(die Adressierung erfolgte mit logischen Zylinder/Kopf/Sektor-Nummern bzw. später
mit logischen Blockadressen (LBA), da die Struktur der Festplatte extern nicht mehr
sichtbar war; im obigen Beispiel hat die innere Zone der Festplatte 10 Sektoren/Spur
und die äußere 20 Sektoren/Spur; bei PCs sind logische Blockadressen zwingend bei
Festplatten mit Kapazitäten größer als 8 GB erforderlich)
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
•
Folie 4 - 10
Beispiele
Zylinder Köpfe Sektoren/
Spur
Modell
Seagate ST-506
Seagate ST-412
Seagate ST-4096
Seagate ST-4144R
Seagate ST-2274A *
153
306
1024
1024
1747
4
4
9
9
5
17
17
17
26
54
Kapazität
5,1 MB
10,1 MB
76,5 MB
117,0 MB
230,3 MB
* mögliche logische Geometrie: CHS = 873/10/54 ⇒ 230,2 MB
Zylinderbereiche der IBM Deskstar 40GV & 75GXP
(Modell DTLA-307xxx, Kapazitäten: 15 - 75 GB, November 2000)
physikalische Zylinder
Sektoren/Spur
0 - 1.375
1.376 - 2.831
...
25.216 - 26.319
26.320 - 27.724
702
684
...
378
351
Datenzone 0
Datenzone 1
...
Datenzone 13
Datenzone 14
•
weitere Kapazitätssteigerung durch neues Aufzeichnungsverfahren
(anstelle der horizontalen Magnetisierung wird seit dem Jahr 2005 in der Regel eine
vertikale Magnetisierung benutzt)
longitudinal recording
N
S N
S S
N N
S N
S S
perpendicular recording
N N S N N S S N
S S N S S N N S
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
N S
N N
S
Betriebssysteme
•
Folie 4 - 11
Formatierung einer Festplatte
−
„low-level“-Formatierung
(legt die physikalische Struktur der Festplatte fest)
♦ erstellt die Spuren und Sektoren auf der Festplatte inkl. der
erforderlichen Datenstrukturen zum Auffinden der Sektoren
♦ wird heute immer und nur vom Hersteller durchgeführt
(Als die Festplatten noch dieselbe Anzahl Sektoren/Spur hatten, konnte bzw.
musste diese Aufgabe vom externen Platten-Controller durchgeführt werden, damit der Schrittmotor die Schreib-/Leseköpfe genau auf die Spuren positionieren
konnte. Die integrierte Servo-Information moderner Festplatten sorgt automatisch für eine korrekte Positionierung der Schreib-/Leseköpfe über der Spur.)
−
„high-level“-Formatierung
(legt die logische Struktur der Festplatte fest)
♦ schreibt die erforderlichen Informationen für das Dateisystem auf die Festplatte
♦ u. U. wird die Festplatte vorher in logische Platten (Partitionen) eingeteilt
♦ Festplatte kann mehrfach in verschiedene logische Platten
eingeteilt oder mit unterschiedlichen Dateisystemen formatiert werden
(Wenn die Festplatte neu formatiert wird, werden nur die Datenstrukturen für die
Partitionen und/oder Dateisysteme neu geschrieben. Die eigentlichen Daten befinden sich im Allgemeinen immer noch auf der Festplatte und können ggf.
restauriert werden (der Vorgang ist allerdings sehr aufwendig, da die Datenstrukturen des „alten“ Dateisystems zerstört worden sind.))
♦ die „low-level“-Formatierung wird durch eine „high-level“Formatierung nicht verändert
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
•
Folie 4 - 12
Dateien sind zusammenhängend oder fragmentiert gespeichert
fragmented file
unfragmented file
6
3
5
2
4
1
−
lange Zugriffszeiten bei fragmentierten Dateien
(Drehwartezeit für Zugriff auf ersten Block; Blöcke 1, 2, 3 und 4 können in der ersten
Umdrehung, Block 5 in der zweiten und Block 6 in der dritten Umdrehung gelesen
werden; Zeit wird noch größer, wenn die Sektorabstände so ungünstig liegen, dass die
Drehzeit nicht für die Positionierung des Kopfes ausreicht)
−
Zugriffszeit sollte optimiert werden
•
Schreib-/Leseaufträge von verschiedenen Prozessen für
verschiedene Festplattenbereiche
•
wahlfreier Zugriff auf Dateiblöcke
⇒ Festplatten-Elektronik muss Positionierzeit im Vergleich zur Drehwartezeit optimieren
⇒ Festplatten-Elektronik muss Zugriff auf Sektoren der Spuren
optimieren
(es sollen möglichst viele Sektoren in einer Umdrehung gelesen/geschrieben werden; war
früher Aufgabe des Betriebssystems; Algorithmus braucht genaue Kenntnis der Zeiten, da
eine volle Umdrehungszeit gewartet werden muss, wenn der Schreib-/Lesekopf auch nur
etwas zu spät auf den Sektor positioniert hat)
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
•
Festplattendefragmentierung unter Windows
1. Durchlauf
2. Durchlauf
3. Durchlauf
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Folie 4 - 13
Betriebssysteme
•
Folie 4 - 14
Scheduling von Festplattenzugriffen
(heute im Allgemeinen im Festplatten-Controller)
−
im Multitasking-Betrieb werden Schreib-/Leseaufträge im
Allgemeinen für zufällige Plattenbereiche erzeugt
(viele Prozesse mit Ein-/Ausgabe-Operationen)
−
Schreib-/Leseaufträge können im Allgemeinen nicht so schnell
ausgeführt werden wie sie eingehen
(Festplatte ist viel langsamer als Prozessor)
−
vor jedem Gerät gibt es eine Auftragswarteschlange
−
Aufträge können umgeordnet werden, um die Zugriffszeiten zu
verkürzen
♦ Auftragsreihenfolge bzgl. Kopfpositionierzeiten optimieren
♦ Auftragsreihenfolge bzgl. Drehwartezeiten optimieren
(über alle Spuren eines Zylinders; wird manchmal auch sector queueing genannt;
Sortierung der Sektornummern für eine Spur ist u. U. nicht erforderlich, da
Festplatten mit großem Pufferspeicher im Allgemeinen alle Sektoren einer Spur
einlesen (read look-ahead))
♦ Kombination beider Verfahren
−
Scheduler muss die genaue Position der Auftragsziele auf der
Festplatte kennen
−
Scheduler muss wissen, wie viel Zeit er für einen Positionswechsel benötigt
(im Allgemeinen ist es günstiger, einen zweiten Auftrag auf derselben Spur zu
bearbeiten, bevor er einen Auftrag auf einer benachbarten Spur bearbeitet; ein
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
Folie 4 - 15
Spurwechsel wäre nur sinnvoll, wenn die Drehwartezeit für den zweiten Auftrag
größer ist als die Summe aus den beiden Positionierzeiten und der Übertragungszeit
für den Auftrag auf der anderen Spur)
−
•
im Allgemeinen wird der Scheduler die Aufträge so anordnen,
dass zur Ausführung möglichst wenig Kopfbewegungen notwendig sind
Bewertungskriterien für Scheduling-Verfahren
−
Fairness
−
Durchsatz maximieren (Anzahl bearbeiteter Anfragen pro Zeiteinheit)
−
mittlere Antwortzeit minimieren
−
Varianz der Antwortzeiten minimieren
(Vorhersagbarkeit der Antwortzeit)
⇒ globales Verhalten wird zulasten von Einzelanfragen optimiert
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
•
Folie 4 - 16
einige Scheduling-Verfahren
a) FCFS
b) SSTF
2
461 35
c) SCAN
2
461 35
d) C-SCAN
request arrived after
inward sweep began
jump to outermost
request
2
461 35
2
461 35
inward sweep
outward sweep
−
First-Come-First-Served, First-In-First-Out
♦ sehr einfaches, faires Verfahren
♦ Aufträge werden nicht umgeordnet
♦ sehr viele Kopfpositionierungen über große Distanzen bei
zufälligen Zugriffen ⇒ geringer Durchsatz
♦ sehr große Antwortzeiten bei hoher Last
♦ u. U. geeignet bei geringer Last
♦ kleine Varianz der Antwortzeiten
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
−
Folie 4 - 17
Shortest-Seek-Time-First
♦ Auftrag, dessen Spur der aktuellen Spur am nächsten ist,
wird zuerst bearbeitet
♦ Positionierung erfolgt in beide Richtungen
♦ unfair, da Aufträge mit großem Abstand benachteiligt
werden
(Aufträge für die inneren und äußeren Spuren können extrem benachteiligt
werden, während Aufträge für die mittleren Spuren bevorzugt werden; starkes
Lokalitätsverhalten; u. U. werden Aufträge für die inneren und äußeren Spuren
bei hoher Last überhaupt nicht bearbeitet (starvation))
♦ hoher Durchsatz
♦ im Allgemeinen kurze Antwortzeiten
♦ hohe Varianz der Antwortzeiten
−
SCAN (bestes Verfahren für geringe Last)
♦ Kopf wird in einer Richtung positioniert, solange es in dieser
Richtung Aufträge gibt
♦ Richtungsumkehr, wenn alle Aufträge in der ursprünglichen
Richtung abgearbeitet worden sind
(wird auch Fahrstuhl-Algorithmus genannt)
♦ unfair, da mittlere Plattenspuren im Allgemeinen häufiger
bearbeitet werden als die Randspuren
(auch bei hoher Last wird allerdings jeder Auftrag bearbeitet)
♦ hoher Durchsatz
♦ kurze Antwortzeiten
♦ mittlere Varianz der Antwortzeiten
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
−
Folie 4 - 18
Circular SCAN
(bestes Verfahren für mittlere bis hohe Last; ausgezeichnet, wenn zusätzlich Drehwartezeit optimiert wird)
♦ Kopf wird von außen nach innen positioniert, solange es in
dieser Richtung Aufträge gibt
♦ Positionierung auf den äußersten Auftrag, wenn alle Aufträge in der ursprünglichen Richtung abgearbeitet worden sind
♦ vermeidet die Nachteile von SCAN
(wird oft so implementiert, dass Aufträge, die nach dem Start des Scan-Vorgangs
ankommen, erst im nächsten Durchlauf bearbeitet werden ⇒ Aufträge der
inneren und äußeren Spuren werden nicht benachteiligt)
♦ sehr kleine Varianz der Antwortzeiten
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
•
Folie 4 - 19
warum wurden RAID-Systeme eingeführt?
(Redundant Array of Independent Disks)
−
Steigerung der Festplattenkapazität
(viele kleine Festplatten verhalten sich wie eine große Festplatte)
−
Steigerung der Leistung
(parallele Bearbeitung auf den verschiedenen Laufwerken ⇒ höhere Datenübertragungsrate)
−
höhere Zuverlässigkeit/Verfügbarkeit
(Daten werden redundant gespeichert, sodass Fehler und sogar der Ausfall einer Festplatte im laufenden Betrieb korrigiert werden können. Sobald die defekte Festplatte
ersetzt worden ist, werden die verlorenen Daten automatisch wieder erzeugt. Die Daten müssen trotzdem immer noch gesichert werden (Backup), da u. U. zwei Festplatten
gleichzeitig ausfallen (führt im Allgemeinen zu Datenverlust), Daten bewusst (verärgerte Angestellte, Viren) oder versehentlich gelöscht werden können, usw.)
•
Basistechniken von RAID-Systemen
−
Striping
♦ mehrere Laufwerke als logische Einheit zusammenfassen
♦ Daten blockweise auf die Laufwerke verteilen
(Auf diese Weise können die Daten später parallel von mehreren Laufwerken
gelesen werden ⇒ Leistungssteigerung. Entspricht dem „Interleaving“ beim
Hauptspeicher.)
−
Mirroring/Duplexing
Spiegelung von Laufwerken über einen bzw. zwei Controller
−
Parity
kostengünstige Art zur Implementierung von Redundanz
•
verschiedene RAID-Typen (RAID level) haben unterschiedliche
Eigenschaften
(es werden nur RAID 0, RAID 1, RAID 5, RAID 0+1 und RAID 1+0 vorgestellt)
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
•
Folie 4 - 20
RAID 0 (striping)
logical
disk
strip 0
strip 1
strip 2
strip 3
strip 4
strip 5
strip 6
strip 7
strip 8
...
−
physical physical physical physical
disk 0
disk 1
disk 2
disk 3
...
RAID
controller
and
management
software
...
strip 0
strip 4
strip 8
...
strip 1
strip 5
strip 9
...
strip 2
strip 6
strip 10
...
strip 3
strip 7
strip 11
...
wird benutzt, um die Festplattenkapazität und/oder die Datenübertragungsrate zu erhöhen
(Wenn in einem E/A-Auftrag mehrere zusammenhängende Blöcke übertragen werden,
arbeiten mehrere Festplatten parallel. Die maximale Datenübertragungsrate wird erreicht, wenn das Datenvolumen eines Auftrags ein Vielfaches von „Blockgröße * Anzahl Festplatten“ ist. Sehr kleine Aufträge bringen u. U. keine Leistungssteigerung, da
die Daten dann eventuell nur auf einer Festplatte gespeichert sind. Controller kann in
diesem Fall eventuell andere Aufträge parallel auf den anderen Festplatten ausführen.)
−
keine Redundanz (daher eigentlich kein RAID)
⇒ Ausfall einer Festplatte führt zu totalem Datenverlust
−
Daten werden über zwei oder mehr Festplatten verteilt
−
verschiedene Blockgrößen (block size, strip size, striping factor, ...)
(In der Praxis werden im Allgemeinen Vielfache der Sektorgröße der Festplatten als
Blockgröße benutzt. Kleine Blockgrößen erhöhen ggf. die Parallelität.)
−
Ausfallsicherheit sinkt mit steigender Anzahl Festplatten
(MTBF RAID = MTBF Festplatte / Anzahl Festplatten; MTBF: Mean Time Between
Failure)
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
•
Folie 4 - 21
RAID 1 (mirroring/duplexing)
mirror of another mir- mirror of hot spare
physical ror of physi- physical disks
disk 0
cal disk 0 disk 1
logical
disk
block 0
block 1
block 2
block 3
block 4
block 5
block 6
block 7
block 8
...
−
...
RAID
controller
and
management
software
...
block 0
block 1
block 2
...
block 0
block 1
physical block 2
...
disk 0
block 0
block 1
block 2
...
block a
block b
block c
...
block a
block b
physical block c
...
disk 1
speichert alle Daten auf jeweils zwei unabhängigen Festplatten
(Bei „Mirroring“ werden beide Festplatten am selben Kanal eines RAID-Controllers
angeschlossen und bei „Duplexing“ an verschiedenen Kanälen des Controllers oder es
werden sogar zwei Controller benutzt. Ggf. können auch mehrere Kopien der Festplatte erstellt werden, um die Datenübertragungsrate beim Lesen durch paralleles
Lesen von verschiedenen Festplatten zu erhöhen. Die Kapazität des RAID-Systems
kann durch hinzufügen weiterer gespiegelter Festplattensätze erhöht werden. Manchmal werden auch Ersatz-Festplatten (hot spare disks) verwaltet, die eine defekte Festplatte kurzfristig ersetzen können, um die Ausfallsicherheit des Systems zu erhöhen.)
−
sehr hohe Redundanz ⇒ für sicherheitsrelevante Anwendungen
(Solange höchstens eine Festplatte eines Festplattenpaares ausfällt, tritt kein Datenverlust auf.)
−
sehr teuer (Hardware, Strom, Klimatisierung, Stellfläche, ...), da mindestens
50 Prozent der Festplatten nur Duplikate der Daten enthalten
−
hohe Datenrate bei Leseaufträgen, da von beiden Festplatten
gelesen werden kann
−
geringe Datenrate bei Schreibaufträgen, da die Daten auf beide
Festplatten geschrieben werden müssen und die Drehwartezeiten
auf den beiden Festplatten im Allgemeinen unterschiedlich sind
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
•
Folie 4 - 22
RAID 5 (striping with distributed parity)
logical
disk
physical physical physical physical physical
disk 0 disk 1 disk 2 disk 3 disk 4
strip 0
strip 1
strip 2
strip 3
strip 4
...
strip 5
strip 6
strip 7
RAID
controller ...
and
management
software
strip 8
...
−
strip 0
strip 1
strip 2
strip 3
p(0-3)
strip 4
strip 5
strip 6
p(4-7)
strip 7
strip 8
strip 9
p(8-11)
strip 10
strip 11
strip 12
p(12-15)
strip 13
strip 14
strip 15
p(16-19)
...
strip 16
...
strip 17
...
strip 18
...
strip 19
...
Berechnung der Parität mit Hilfe der XOR-Operation
(„a xor b“ ist „0“, wenn „a“ und „b“ denselben Bit-Wert haben und „1“ sonst. Die
XOR-Operation hat die interessante Eigenschaft, dass bei einem Fehler jedes von
„n+1“ Bits aus den verbleibenden „n“ Bits rekonstruiert werden kann.)
−
a
b
c = a xor b
b = c xor a
a = c xor b
0
0
0
0
0
0
1
1
1
0
1
0
1
0
1
1
1
0
1
1
Vorteile
♦ kein Datenverlust beim Ausfall eines Festplattenlaufwerks
♦ preiswerter als RAID 1, da bei n Festplattenlaufwerken nur
100/n Prozent der Festplattenkapazität für redundante Daten
benutzt werden
♦ hohe Datenübertragungsraten durch „striping“ beim Lesen
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
−
Folie 4 - 23
Nachteile
♦ Schreibzugriffe sind langsam, da die Parität berechnet und
auf eine Festplatte geschrieben werden muss
(Drehwartezeiten der beteiligten Festplatten sind im Allgemeinen unterschiedlich, sodass die „langsamste“ Festplatte die Zeit bestimmt. Falls das Programm
die Blöcke nicht sequenziell sondern wahlfrei schreibt, müssen alle restlichen
Blöcke eines „Stripes“ gelesen werden, damit die Parität berechnet werden kann,
bevor der aktuelle Block und der Paritätsblock geschrieben werden können ⇒
RAID 5 ist für wahlfreien Zugriff oder sehr kleine Schreibaufträge eigentlich
nicht geeignet, wenn die Übertragungsrate eine Rolle spielt. Bei RAID 3 oder
RAID 4 wird der Paritätsblock sogar auf eine spezielle Festplatte geschrieben,
die dadurch zum Flaschenhals (bottleneck) wird, da alle Schreibzugriffe diese
Festplatte benötigen.)
♦ sehr rechenintensiv, da die Parität berechnet werden muss
(muss im RAID-Controller erfolgen, da die CPU sonst zu stark belastet werden
würde)
♦ falls ein Laufwerk ausgefallen ist, müssen dessen Daten bei
jedem Zugriff rekonstruiert werden
(Sehr rechenintensiv, sodass das RAID-System im sogenannten „degraded
mode“ relativ langsam ist. Bei einem „RAID 1“-System können die Daten in so
einem Fall einfach von der redundanten Festplatte gelesen werden.)
♦ Schreibaufträge sind kritisch und müssen deshalb synchronisiert werden ⇒ Leistungseinbuße
(Falls der Schreib-Prozess zwischen dem Schreiben des Datenblocks und dem
Schreiben des Paritätsblocks unterbrochen wird, könnte die Datenintegrität des
gesamten RAID-Systems kompromittiert werden.)
−
bevorzugtes RAID-System für Server mit großer Festplattenkapazität
(Datei-Server, Datenbank-Server, Web-Server, Intranet-Server, ...)
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
•
Folie 4 - 24
RAID 0+1 (RAID 01) und RAID 1+0 (RAID 10)
−
zweistufige Verfahren, die die Vorteile von RAID 0 und RAID 1
kombinieren
−
RAID 01: zuerst RAID 0 und dann RAID 1
(Spiegelung von „Stripes“. Der RAID-Controller fasst zuerst jeweils n/2 Festplatten
zu zwei virtuellen „RAID 0“-Festplatten zusammen. Danach fasst er die beiden
virtuellen Festplatten zu einer virtuellen „Raid 1“-Festplatte zusammen, die dann die
logische Festplatte bildet, die der Server sieht.)
mirror of stripe set
logical
disk
strip 0
strip 1
strip 2
strip 3
strip 4
strip 5
strip 6
strip 7
strip 8
...
physical
disk 4
RAID
... controller
and
management
software
...
physical
disk 5
physical
disk 6
physical
disk 7
strip 0
strip 4
strip 8
...
strip 1
strip 5
strip 9
...
strip 2
strip 6
strip 10
...
strip 3
strip 7
strip 11
...
strip 0
strip 4
strip 8
...
strip 1
strip 5
strip 9
...
strip 2
strip 6
strip 10
...
strip 3
strip 7
strip 11
...
physical
disk 1
physical
disk 2
physical
disk 3
physical
disk 0
stripe set
−
sehr einfach zu verwalten
−
Ausfall einer Festplatte führt zu vollständigem Datenverlust im
zugehörigen „Stripe Set“ (Redundanz ist verloren)
−
Ausfall einer weiteren Festplatte im anderen „Stripe Set“ führt
zu vollständigem Datenverlust des RAID-Systems
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
−
Folie 4 - 25
RAID 10: zuerst RAID 1 und dann RAID 0
(„Stripes“ auf gespiegelten Festplatten. Der RAID-Controller fasst zuerst jeweils zwei
Festplatten zu n/2 virtuellen „RAID 1“-Festplatten zusammen. Danach fasst er die n/2
virtuellen Festplatten zu einer virtuellen „Raid 0“-Festplatte zusammen, die dann die
logische Festplatte bildet, die der Server sieht.)
logical
disk
strip 0
strip 1
strip 2
strip 3
strip 4
strip 5
strip 6
strip 7
strip 8
...
mirror of
physical
disk 0
RAID
... controller
and
management
software
...
mirror of
physical
disk 2
mirror of
physical
disk 3
strip 0
strip 4
strip 8
...
strip 1
strip 5
strip 9
...
strip 2
strip 6
strip 10
...
strip 3
strip 7
strip 11
...
strip 0
strip 4
strip 8
...
strip 1
strip 5
strip 9
...
strip 2
strip 6
strip 10
...
strip 3
strip 7
strip 11
...
physical
disk 1
physical
disk 2
physical
disk 3
physical
disk 0
−
mirror of
physical
disk 1
in jedem Festplattenpaar darf maximal eine Festplatte ausfallen
(höhere Ausfallsicherheit als RAID 01)
−
RAID 10 wird RAID 01 vorgezogen, wenn hohe Verfügbarkeit
und hohe Datenübertragungsraten gefordert werden
−
RAID 01 und RAID 10 unterscheiden sich durch die Organisation der Festplatten, während die Aufteilung der Daten auf die
Festplatten identisch ist
−
bei RAID 10 muss nur die defekte Festplatte resynchronisiert
werden und bei RAID 01 müssen alle Festplatten der defekten
virtuellen „RAID 0“-Festplatte resynchronisiert werden
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
•
Folie 4 - 26
Zusammenfassung
RAID 0
RAID 1
RAID 5
Speichereffizienz 100%
50%
100*(n-1)/n %
bei n Laufwerken
Fehlertoleranz
keine
sehr gut
gut
Verfügbarkeit
niedrig
sehr gut
gut
wahlfreies Lesen
sehr gut
gut
sehr gut
wahlfreies
Schreiben
sehr gut
gut
mäßig
sequenzielles
Lesen
sehr gut
gut
gut bis sehr gut
sequenzielles
Schreiben
sehr gut
gut
mäßig
Kosten
gering
hoch
mittel
Die Eigenschaften von RAID 10 wurden fett hervorgehoben. In der Praxis können sich einzelne RAID-Systeme sehr stark in der Leistung unterscheiden, da die Leistung von den verwendeten Festplatten, dem RAID-Controller, der Größe des Pufferspeichers (Cache) im
System, den implementierten Algorithmen zur Verwaltung des Pufferspeichers und vielen
anderen Dingen abhängt, sodass man die Leistungsdaten der Systeme vor einem Kauf sehr
genau vergleichen sollte.
•
erstes RAID-System der Hochschule Fulda
−
5 Festplatten Quantum Atlas 2 (ca. 9 GB, 7.200 U/min., „SCSI-3
Ultra Wide“-Schnittstelle mit 40 MB/s Übertragungsrate)
−
RAID-Level 5 (45 GB physikalisch; 36 GB logisch)
−
RAID-Controller: CMD 5500
−
Anschaffungsdatum: Juni 1997
−
Kosten: 26.000 DM (ca. 13.300 Euro)
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
•
Folie 4 - 27
Logical Volume Manager (LVM)
−
Zwischenschicht im Betriebssystem zwischen Festplatten und
Dateisystem
−
fasst mehrere physikalische Festplatten zu einer großen
virtuellen Festplatte zusammen
(der Logical Volume Manager bietet damit wie ein RAID-System eine hardwareunabhängige Sicht auf die Festplatten)
−
im Allgemeinen kann die virtuelle Festplatte wieder in kleinere
logische Festplatten aufgeteilt werden
−
Größe der virtuellen Festplatte bzw. der logischen Festplatten
kann einfach geändert werden
−
schnelle und einfache Reaktion auf neue Anforderungen des
Dateisystems an die Festplattengröße
(Falls ein Dateisystem direkt auf einer physikalischen Festplatte aufsetzt, kann es im
Allgemeinen nicht über die Festplatte hinauswachsen, wenn es im Laufe der Zeit den
gesamten Festplattenplatz belegt hat. Eine virtuelle Festplatte kann dagegen sehr einfach vergrößert werden, um ein derartiges Problem zu lösen.)
−
belastet die CPU(s) und die Bussysteme des Servers, da die Virtualisierung durch Software auf dem Server erbracht wird
(bei einem RAID-System ist die Virtualisierung ausgelagert, sodass der Server entlastet wird)
•
bisher nur blockorientierter Zugriff auf Festplatten möglich
⋅
Betriebssystem benötigt höhere Abstraktionsebene
⋅
Dateisystem (Verzeichnisse und Dateien)
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
•
Folie 4 - 28
lokale Dateisysteme und Netzwerk-Dateisysteme
Workstation
Storage
PC
Storage
Workstation
Storage
a) Einzelplatzsysteme
−
Client
Storage
Client
Storage
Client
Storage
Client
Storage
Server
Storage
Server
Storage
LAN
Client
Storage
Client
Storage
b) vernetzte Rechner
unvernetzte Rechner haben eine lokale Festplatte mit lokalen
Dateisystemen
(preiswert, hohe Transaktions- (Ein-/Ausgaben pro Sekunde) und Datenübertragungsrate (MB/s), hoher Administrationsaufwand bei vielen Rechnern)
−
vernetzte Rechner haben im Allgemeinen Zugriff auf eine lokale
Festplatte und auf Festplatten von Server-Systemen
(u. U. aufwendig, wenn Inkompatibilitäten überwunden werden müssen, z. B. Zugriff
von Windows-Rechnern auf UNIX-Server)
−
Zugriff auf Server erfolgt über Netzwerk-Dateisystem
(z. B. das Netzwerk-Dateisystem NFS (network file system) von Sun Microsystems
(Sun wurde 2010 von Oracle aufgekauft), das von vielen Betriebssystemen unterstützt
wird oder das Netzwerk-Dateisystem CIFS (common internet file system) von
Microsoft (ist zu NFS inkompatibel))
−
freie Speicherkapazitäten auf einem System können von einem
anderen System im Allgemeinen nicht benutzt werden
−
Datei-Server (file server) sind heute sehr wichtig
(haben sich zu einer eigenen Produktgruppe entwickelt)
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
•
Folie 4 - 29
Network Attached Storage (NAS)
Client
Client
(Storage)
(Storage)
Client
LAN
(Storage)
News
Server
(Storage)
−
Web/FTP
Server
(Storage)
NAS
RAID, ...
NAS
Backup
Application
Server
(Storage)
vorkonfigurierte Server
(Können direkt über das LAN (local area network) adressiert werden. Einfache Installation: anschließen, hochfahren, benutzen)
−
bestehen im Allgemeinen aus einem oder mehreren internen
Servern
−
Speicherkapazität wird im Allgemeinen über NFS oder CIFS
bzw. FTP (file transfer protocol) oder HTTP (hypertext transport protocol) zur Verfügung gestellt
(Heterogene Systeme können dieselben Daten benutzen, da das Dateisystem im Speichersubsystem implementiert ist und die Daten über Standard-Protokolle übertragen
werden. Für Datenbanksysteme im Allgemeinen nicht geeignet, da kein direkter
Blockzugriff (raw volume) unterstützt wird (viele Datenbanksysteme verwalten ihre
Daten selbst auf der Festplatte).)
−
besitzen im Allgemeinen ein für den speziellen Einsatz optimiertes Betriebssystem, das auch die Dateisysteme enthält
−
im Allgemeinen zu langsam für E/A-intensive Anwendungen
−
Datensicherung (Backup) belastet das Netzwerk (LAN)
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
•
Folie 4 - 30
Storage Area Network (SAN)
Storage
Server
Application
Server
Backup
Server
Client
Client
SAN
Client
LAN
Storage
Server
Database
Server
−
Web/FTP
Server
Client
Client
Client
Client
SAN ist Hochgeschwindigkeitsnetzwerk (Fibre Channel) zwischen Servern und Speichersubsystemen
(SAN unterstützt „Server-Speicher“-, „Server-Server“- und „Speicher-Speicher“Kommunikation. Mehrere Server können auf denselben Speicher sequenziell oder
parallel zugreifen.)
−
Übertragung erfolgt blockorientiert
(Datenbanksysteme können damit sehr effizient arbeiten)
−
Dateisystem ist im Server und nicht im Speichersubsystem
implementiert
−
Entlastung von LAN und Server durch direkte „SpeicherSpeicher“-Kommunikation bei der Datensicherung (Backup)
−
für E/A-intensive Anwendungen geeignet
−
sehr gute Skalierbarkeit (wächst mit den Anforderungen)
−
hohe Kosten
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
Folie 4 - 31
Aufgabe 4-2:
Welche Verfahren wurden zur Kapazitätssteigerung von Festplatten
eingesetzt?
Aufgabe 4-3:
Beschreiben Sie stichwortartig die Begriffe „low level“-Formatierung
und „high level“-Formatierung.
Aufgabe 4-4:
Beschreiben Sie stichwortartig die Arbeitsweise und Eigenschaften des
SCAN-Scheduling-Verfahrens.
Aufgabe 4-5:
a) Welche Vorteile bieten RAID-Systeme?
b) Welche Techniken werden zur Realisierung von RAID-Systemen
eingesetzt?
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
Folie 4 - 32
4.2 Festplatten-Layout/Boot-Vorgang
•
Besonderheiten bei PCs mit MBR-Partitionstabelle
−
bis zu vier Partitionen je Festplatte in der Partitionstabelle
−
höchstens eine erweiterte Partition
−
jede Partition (heißt bei Solaris logische Platte, die ihrerseits in
slices eingeteilt wird) kann für unterschiedliche Dateisysteme
formatiert werden
−
jede Partition, von der ein Betriebssystem gestartet werden soll,
muss (bei älteren Systemen) in den ersten 1024 Zylindern der
Festplatte beginnen (Beschränkung in der Partitionstabelle)
−
die meisten (alle?) Betriebssysteme können nur von der ersten
Festplatte gestartet werden
−
manche Betriebssysteme können sowohl von primären Partitionen als auch von logischen Laufwerken der erweiterten Partition
gestartet werden
−
manche Betriebssysteme können nur von der ersten primären
Partition des ersten Laufwerks gestartet werden
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
•
Folie 4 - 33
Beispiel: Layout einer Festplatte in einem PC
01 primary DOS partition (12 bit FAT)
04 primary DOS partition (16 bit FAT)
05 extended partition
...
cylinder,
head,
... sector of
1st sector
of partition
data
for 1st
partition
cylinder,
head,
sector of
last sector
of partition
partition /
file system
type
data
for 2nd
partition
...
ufs
file
system
data
for 4th
partition
data
for 3rd
partition
super
block
cylinder
group
block
inode
table
boot
sector
cylinder
group 0
...
data
blocks
cylinder
group n
tertiary
boot sector
drive c:
boot
program
MS-DOS
boot
sector
partition
table
root
directory
FAT
FAT duplicate
secondary
boot sector
disk
slice
0
Solaris
boot
sector
data
blocks
slice
7
...
secondary
boot sector
partition 1
MBR primary
partition 2
primary
partition 3
extended
primary
boot sector
partition 4
primary
...
data
data
for 1st for 2nd
partition partition
drive d:
Windows
NT boot
sector
master
file
table
master
file table
mirror
system
files
partition
table
(only 2
entries)
files
secondary
boot sector
log
file
volume
file
logical
device /
drive
drive d:
(e: using
Win NT)
attribute
definition
table file
root
directory
cluster
bitmap
file
boot
file
...
MS-DOS
boot
sector
...
linked list
of extended
partitions
extended
partition
...
partition
table
(only 2
entries)
extended
partition
logical
device /
drive
secondary
boot sector
...
ext2fs
file
system
Linux
boot
sector
block
group 0
block
group n
...
partition
table
(only 2
entries)
extended
partition
logical
device /
drive
...
super
block
filesystem
descriptors
block
bitmap
inode
bitmap
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
inode
table
data
blocks
Betriebssysteme
•
Folie 4 - 34
Verwaltung der Partitionen über grafische Oberfläche
(Windows XP: „Start → Systemsteuerung → Verwaltung → Computerverwaltung → Datenträgerverwaltung“
oder „Start → Ausführen → diskmgmt.msc“ aufrufen. Die Festplatte enthält zwei primäre und eine erweiterte
Partition. Die erste primäre Partition enthält Windows XP und die zweite Solaris x86. Eine Solaris-Partition
muss immer als aktive Partition gekennzeichnet sein, damit Solaris starten kann. Die erweiterte Partition enthält ein logisches Laufwerk für die Linux-Swap-Partition, ein weiteres für Linux und ein drittes für Benutzerverzeichnisse und -daten. Im DVD/CD-Laufwerk befindet sich eine CD und in einer USB-Schnittstelle ein
Memory-Stick. Windows XP erkennt die Dateisysteme NTFS (NT file system), FAT (file allocation table file
system, hier FAT16), FAT32 und CDFS (compact disk file system). Falls sich im DVD/CD-Laufwerk eine
DVD befunden hätte, hätte Windows XP vermutlich das Dateisystem UDF (universal disk format) erkannt.)
•
Verwaltung der Partitionen über Kommandozeilen-Programm
(255 * 63 = 16.065 Sektoren pro Zylinder)
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
•
Folie 4 - 35
was passiert beim Einschalten eines Rechners?
−
Programmausführung beginnt an einer vordefinierten Adresse
(Die Adresse wurde von den Entwicklern des Rechners festgelegt, die auch dafür
gesorgt haben, dass alle Bausteine in einem definierten Anfangszustand sind (ResetSignal). An der Adresse wird ein Programm in einem nicht-flüchtigen Speicher erwartet. In der PC-Welt beginnt alles an der Adresse F000:FFF0, an der im Allgemeinen
ein Sprungbefehl zu einer BIOS-Routine (Basic Input/Output System) steht, die die
eigentliche Initialisierung des Systems in die Wege leitet.)
−
Test und Initialisierung der Hardware (Power-On Self Test, POST)
♦ Funktionen des Prozessors testen
♦ ROM und RAM testen
♦ Schnittstellenbausteine, DMA-Controller usw. testen und
initialisieren
♦ Peripherie (Tastatur, Diskettenlaufwerke, usw.) testen
♦ BIOS-Variablen/Unterbrechungsvektor-Tabelle initialisieren
♦ ROM-Erweiterungen suchen und testen (z. B. Video-Karte)
−
im Fehlerfall wird der Rechner im Allgemeinen angehalten
(Fehler werden akustisch (Piepstöne, beep code) oder optisch (Blink-Code einer
Leuchtdiode) ausgegeben, solange die Grafikkarte noch nicht initialisiert ist.)
−
Urladen eines Betriebssystems (Boot-Vorgang)
(Bis jetzt befindet sich noch kein Betriebssystem auf dem Rechner! In der PC-Welt
können unterschiedliche Betriebssysteme geladen werden, z. B. MS-DOS, Windows,
Linux, Solaris x86, BeOS, OS/2, QNX, ...)
♦ erfolgt über spezielle Routine im nicht-flüchtigen Speicher
(Urlader im Flash-Speicher/NVRAM/BIOS)
(In der PC-Welt wird das Betriebssystem über den Interrupt 19H (bootstrap
loader) des BIOS geladen, der auch beim Drücken der Tastenkombination
„<Strg><Alt><Entf>“ bzw. „<Ctrl><Alt><Del>“ aufgerufen wird.)
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
Folie 4 - 36
♦ genauer Ablauf hängt vom Rechner und Boot-Gerät ab
(Festplatte, CD/DVD, Netzwerk, Diskette, ...)
♦ Ablauf in der PC-Welt
⋅
BIOS unterstützt verschiedene Boot-Geräte
⋅
Boot-Geräte werden in voreingestellter Reihenfolge nach
einem Urlader durchsucht
⋅
meistens wird z. B. der Urlader der Festplatte (MBR)
über den Interrupt 19H geladen und gestartet
(In der PC-Welt ist festgelegt, dass jeder Urlader ab Adresse 0000:7C00H
geladen wird. Da der Urlader aus dem MBR noch den Urlader einer Partition laden und starten muss, der auch wieder nur ab Adresse 0000:7C00H
ausgeführt werden kann, muss er sich zunächst selbst in „Sicherheit“ bringen. Der Urlader aus dem MBR besitzt deswegen am Anfang eine kleine
Kopierroutine, die den Urlader an eine andere Adresse verschiebt. Nur die
Kopierroutine ist an der Adresse 0000:7C00H lauffähig. Anschließend wird
ein Sprung auf den verschobenen Urlader ausgeführt, der dann die eigentliche Arbeit erledigt.)
⋅
falls keine Systempartition gefunden wurde, wird der
Benutzer aufgefordert, eine Systemdiskette einzulegen
(es muss keine MSDOS/Windows-Diskette sein, da es dem BIOS egal ist,
welches Betriebssystem es lädt)
⇒ die Aufgaben des BIOS sind abgeschlossen
⋅
der Urlader aus dem MBR überprüft im einfachsten Fall
die Partitionstabelle
(Falls er einen fehlerhaften Eintrag feststellt, gibt er eine Fehlermeldung aus
und stoppt.)
⋅
der Urlader aus dem MBR lädt dann den Urlader aus der
aktiven Partition und startet ihn
(Falls er keine aktive Partition findet, gibt er eine Fehlermeldung aus und
stoppt. Heutige Urlader starten im Allgemeinen Programme mit komfortab-
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
Folie 4 - 37
ler grafischer Oberfläche, sodass der Benutzer auf einfache Weise wählen
kann, welches Betriebssystem er starten will, wenn er verschiedene Betriebssysteme in verschiedenen Partitionen installiert hat. Diese Programme
passen natürlich nicht mehr in den Boot-Sektor.)
⇒ ab jetzt ist es spezifisch für das jeweilige Betriebssystem
⋅
der Urlader aus der Partition überprüft, ob die erforderliche(n) Betriebssystemdatei(en) vorhanden ist(sind)
(Für MSDOS: IO.SYS und MSDOS.SYS, für Windows NT/2000/XP: ntldr,
für OS/2: OS2LDR usw. Einige Betriebssysteme haben selbst wieder einen
mehrstufigen Boot-Vorgang. Bei Windows 2000 liest „ntldr“ z. B. die versteckte Datei „boot.ini“ und präsentiert dann das bekannte „Boot-Menü“.
Danach lädt es „ntdetect.com“, „ntoskrnl.exe“ und weitere Dateien.
„ntoskrnl“ startet dann irgendwann den Session Manger „smss.exe“, der
dann irgendwann den Login-Prozess startet, der seinerseits den „Service
Control Manager“ und weitere Prozesse startet, bevor er den LoginBildschirm anzeigt.)
⋅
nachdem diese Dateien geladen und gestartet worden
sind, werden verschiedene Systemprozesse gestartet und
konfiguriert
⇒ der Boot-Vorgang ist im Wesentlichen abgeschlossen,
sobald der Benutzer eine Eingabeaufforderung erhält
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
•
Folie 4 - 38
Startvorgang (bootstrapping) bei MS-DOS/Windows
BIOS bootstrap loader (Interrupt 19H)
Master Boot Record (MBR) bootstrap loader
Partition Boot Record (PBR) bootstrap loader
MS-DOS
io.sys
msdos.sys
config.sys
command.com
autoexec.bat
Windows 3.x
Login possible
Windows NT/2000/XP
ntldr
boot.ini
bootsect.dos
...
ntdetect.com
ntoskrnl.exe
registry
hal.dll, drivers, ...
registry
smss.exe
registry
win32 subsystem
registry
winlogon.exe
registry
lsass.exe
registry
network, services, ...
registry
Windows Vista
bootmgr.exe
bcd
...
winload.exe
ntoskrnl.exe
registry
hal.dll, drivers, ...
registry
smss.exe
registry
win32 subsystem
registry
winlogon.exe
registry
lsass.exe
registry
network, services, ...
registry
(Bei MS-DOS bilden „io.sys“ und „msdos.sys“ den Betriebssystemkern. Mit „config.sys“ kann der Kern an
die aktuelle Hardware angepasst werden, z. B. „deutsche Tastatur“, „hochauflösende Grafikkarte“, usw.
„command.com“ ist die Kommandozeilen-Schnittstelle von MS-DOS, die mit „autoexec.bat“ konfiguriert werden kann, z. B. könnte mit der letzten Anweisung in dieser Datei automatisch die grafische Oberfläche gestartet werden. Bei Windows NT/2000/XP/… wurden die Aufgaben von „config.sys“ und „autoexec.bat“ in die
Registrierungsdatenbank (registry) verlagert. Windows NT/2000/XP/… kann verschiedene Betriebssysteme
über ein Boot-Menü starten. In der versteckten Datei „boot.ini“ müssen die Namen der Betriebssysteme, deren
Partitionen und der Name der Datei, die den Boot-Sektor enthält, eingetragen werden. Einige Betriebssysteme
ersetzen den „Master Boot Record“ durch eine eigene Version. In diesem Fall muss der MBR des Betriebssystems und sonst der PBR in einer Datei im selben Verzeichnis wie „boot.ini“ gespeichert werden. Die Aufgaben von „ntldr“ wurden unter „Windows Vista“ den Programmen „bootmgr.exe“ (Startmenü),
„winload.exe“ (erster Start von Windows) und „winresume.exe“ („Aufwecken“ von Windows aus dem
Schlafzustand (hibernate state) zugeordnet. Die Textdatei „boot.ini“ wurde durch die binäre Datei „bcd“ (boot
configuration data“ ersetzt, die mit dem Programm „bcdedit“ bearbeitet werden kann. Falls eine ältere
Windows-Version gestartet werden soll, würde der Boot-Manager den alten „ntldr“ in der Partition der alten
Windows-Installation starten, der dann auch wieder die Datei „boot.ini“ benötigt. Ein Boot-Menü wird nur
dann angezeigt, wenn es mehr als ein Betriebssystem gibt, das gestartet werden kann.)
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
•
Folie 4 - 39
Startvorgang bei Solaris x86 (32-Bit Betriebssystemkern)
bis Solaris x86 Version 9
ab Solaris x86 Version 10
BIOS bootstrap loader (Interrupt 19H)
Master Boot Record (MBR) bootstrap
loader (/usr/platform/i86pc/lib/fs/ufs/mboot)
Partition Boot Record (PBR) bootstrap
loader (/usr/platform/i86pc/fs/ufs/pboot)
BIOS bootstrap loader (Interrupt 19H)
Master Boot Record (MBR) bootstrap loader
(/boot/grub/stage1, loads "stage1.5" or stage 2)
Partition Boot Record (PBR) bootstrap loader
(/boot/grub/stage1 (skipped, if installed in
MBR))
bootblk
boot.bin or ufsboot
device configuration
assistant
mount root file system
/etc/bootrc
/platform/.../kernel/unix
load kernel modules,
mount file systems, ...
/sbin/init
/etc/inittab
/sbin/rc?
(start more system
processes/services)
"stage1.5", e. g., /boot/grub/ufs_stage1_5
other
operating
systems
dtlogin
stage2
/boot/grub/menu.lst
load /platform/.../boot_archive
/platform/.../multiboot
/boot/solaris/bootenv.rc
assembles core kernel from
boot_archive, ...
/platform/.../kernel/unix
mount file systems, ...
/sbin/init
/etc/inittab
start service management
facility (smf)
(start system services)
other
operating
systems
/sbin/rc? (outdated)
dtlogin
(Bis Solaris x86 v9 wurde der Solaris Bootloader benutzt und ab Version 10 wird der
GRand Unified Bootloader (GRUB) eingesetzt. Grub kann Betriebssysteme von jeder Partition jeder Festplatte starten (selbst MS-DOS, dass eigentlich nur von der „c:\“-Partition der
ersten Festplatte gestartet werden kann), indem es dem Betriebssystem eine geeignete Partition und Festplatte vorspiegelt. Weitere Informationen zu GRUB finden Sie unter der URL
„http://www.gnu.org/software/grub“. Bis Version 9 wurden Systemdienste über Skriptdateien gestartet und gestoppt. Die Datei „/etc/inittab“ enthielt dafür entsprechende Einträge. In
der Version 10 wurde die Anzahl der Einträge stark verringert, da alle Dienste mit Hilfe des
Programms „svccfg“ der „Service Management Facility“ (SMF) verwaltet werden. Die
alten Skripte werden noch unterstützt, obwohl sie in das neue Konzept überführt werden
sollten. Falls ein 64-Bit Betriebssystem gestartet werden soll, wird anstelle von
„…/kernel/unix“ der Betriebssystemkern „…/kernel/amd64/unix“ gestartet.)
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
Folie 4 - 40
4.3 Funktionen/Kommandos
•
•
•
Zugriffe auf Dateiverzeichnisse und Dateien
−
über Funktionen für Programme
−
über Kommandos für Benutzer
folgende Aufgaben sollen möglich sein
−
erzeugen eines Dateiverzeichnisses bzw. einer Datei
−
löschen eines Dateiverzeichnisses bzw. einer Datei
−
umbenennen eines Dateiverzeichnisses bzw. einer Datei
−
verschieben eines Dateiverzeichnisses bzw. einer Datei
−
kopieren eines Dateiverzeichnisses bzw. einer Datei
−
suchen eines Dateiverzeichnisses bzw. einer Datei
−
vergleichen von zwei Dateiverzeichnissen/Dateien
−
in anderes Dateiverzeichnis wechseln
−
Dateien eines Dateiverzeichnisses anzeigen
−
Inhalt einer Datei anzeigen
−
suchen eines Musters in einer Datei
−
Attribute eines Dateiverzeichnisses bzw. einer Datei anzeigen
−
Attribute eines Dateiverzeichnisses bzw. einer Datei ändern
−
Datei sequenziell lesen/schreiben
−
Datei wahlfrei lesen/schreiben
−
Datensatz in einer Datei ändern/löschen
−
usw.
Betriebssystem stellt Funktionen für die Aufgaben zur Verfügung
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
•
•
Folie 4 - 41
Dateisystem benötigt Datenstruktur
−
in der Attribute gespeichert werden können
−
zur Verwaltung der Blöcke der Dateiverzeichnisse/Dateien
einige Kommandos (in der Windows-Welt wird im Allgemeinen alles über den Explorer gemacht)
UNIX
Windows
Kurzbeschreibung
mkdir
mkdir
Dateiverzeichnis erzeugen
rmdir
rmdir
leeres Dateiverzeichnis löschen
rm -r
rmdir /s
Dateiverzeichnisbaum inkl. Dateien
löschen
mv [-i]
ren
Dateiverzeichnis umbenennen
mv [-i]
move
Dateiverzeichnisbaum verschieben
cp -r[ip]
xcopy /s /e /h /k /o /x
Dateiverzeichnisbaum kopieren
dircmp, diff -rl
-
zwei Dateiverzeichnisbäume
vergleichen
cd
cd
in neues Dateiverzeichnis wechseln
ls [-al]
dir
Dateien in Dateiverzeichnis anzeigen
touch
-
leere Datei erzeugen
rm [-i]
del
Datei löschen
mv [-i]
ren
Datei umbenennen
mv [-i]
move
Datei verschieben
cp [-ip]
copy
Datei kopieren
diff, sdiff, cmp
comp, fc
zwei Dateien vergleichen
cat, more, less, pg,
tail, head, ...
type
Dateiinhalt anzeigen
find
dir /s
Dateiverzeichnis/Datei suchen
grep, egrep
find, findstr
Muster in Datei suchen
ls -ali, getfacl
attrib, cacls
Attribute anzeigen
chmod, chgrp,
chown, touch,
setfacl, sdtfprop
attrib, cacls
Attribute ändern
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
•
Folie 4 - 42
einige Funktionen für Dateiverzeichnisse
(Diese Funktionsgruppe wird von ISO-C zurzeit nicht unterstützt.)
UNIX
Windows
C-Bibliothek Kurzbeschreibung
mkdir
CreateDirectory
-
Dateiverzeichnis erzeugen
link, symlink
CreateHardLink,
CreateSymbolicLink
-
Verzeichnis mit neuem
Namen verknüpfen
opendir,
fopendir
FindFirstFile,
FindFirstFileEx
-
Dateiverzeichnis öffnen (und
ersten Eintrag lesen)
readdir,
scandir
FindNextFile,
FindNextFileEx
-
Dateiverzeichniseinträge lesen
rewinddir,
seekdir,
telldir
-
-
Position im Dateiverzeichnis
festlegen/abfragen
closedir
FindClose
-
Dateiverzeichnis schließen
rmdir
RemoveDirectory
-
leeres Dateiverzeichnis
löschen
rename,
renameat
MoveFile,
MoveFileEx
rename
Dateiverzeichnis umbenennen
-
SearchPath
-
bestimmte Datei suchen
chdir, fchdir
SetCurrentDirectory
-
in neues Dateiverzeichnis
wechseln
getcwd
GetCurrentDirectory
-
aktuelles Verzeichnis liefern
chroot,
fchroot
-
-
neues Root-Verzeichnis
festlegen
stat, lstat,
fstat
GetFileAttributes,
GetFileTime,
GetFileSize, ...
-
Dateiverzeichnisattribute
anzeigen
chmod,
chown,
utime, ...
SetFileAttributes,
SetFileTime,
SetFileSize, ...
-
Dateiverzeichnisattribute
ändern
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
•
Folie 4 - 43
einige Funktionen für Dateizugriffe (Teil 1)
UNIX
Windows
C-Bibliothek Kurzbeschreibung
creat, open
CreateFile
fopen, freopen
Datei erzeugen/öffnen
link, symlink
CreateHardLink,
CreateSymbolicLink
-
Datei mit neuem Namen
verknüpfen
-
-
tmpfile, tmpnam
temporäre Datei mit eindeutigem Namen erzeugen
unlink
DeleteFile
remove
Datei löschen
rename
MoveFile,
MoveFileEx
rename
Datei umbenennen
-
CopyFile,
CopyFileEx
-
Datei kopieren
stat, lstat,
fstat
GetFileAttributes,
GetFileTime,
GetFileSize, ...
-
Attribute anzeigen
chmod,
chown,
utime, ...
SetFileAttributes,
SetFileTime,
SetFileSize, ...
-
Attribute ändern
read
ReadFile
fread, fgetc,
fgets, fscanf, ...
Datensatz/Zeichen aus Datei
lesen
write
WriteFile
fwrite, fputc,
fputs, fprintf, ...
Datensatz/Zeichen in Datei
schreiben
close
CloseHandle
fclose
geöffnete Datei schließen
-
-
fgetpos, ftell
Schreib-/Lesezeigerposition
abfragen
lseek
SetFilePointer
fsetpos, fseek,
rewind
Schreib-/Lesezeigerposition
setzen
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
•
Folie 4 - 44
einige Funktionen für Dateizugriffe (Teil 2)
Windows
UNIX
C-Bibliothek Kurzbeschreibung
fcntl
-
-
Zugriffssteuerung auf
geöffnete Datei
fcntl,
lockf
LockFile, UnlockFile,
LockFileEx, UnlockFileEx
flockfile,
funlockfile,
ftrylockfile
Zugriff auf Datei
sperren/freigeben
fsync
FlushFileBuffers
fflush
Systempuffer sofort in Datei
schreiben
acl, facl,
aclcheck
GetEffectiveRightsFromAcl, AccessCheckByType,
SetSecurityInfo,
SetNamedSecurityInfo, ...
Dateizugriffsrechte (access
control list) anzeigen/setzen
•
Programme, die mit Dateien arbeiten, können im Allgemeinen
portierbar in ISO-C geschrieben werden
•
Programme, die mit Dateiverzeichnissen oder Dateiattributen arbeiten, müssen betriebssystemspezifische Funktionen benutzen
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
Folie 4 - 45
4.4 Attribute/Zugriffsschutz
•
Aufbau des Dateityp-/Zugriffsrechtefeldes unter UNIX
- r w x r - x - - -
Zugriffsrechte für andere Benutzer (o)
Zugriffsrechte für Gruppenmitglieder (g)
Zugriffsrechte für den Eigentümer (u)
Dateityp
−
3-mal drei Bits
(erste Bit-Gruppe für Eigentümer, zweite für Gruppenmitglieder, dritte für alle
anderen Benutzer)
−
1. Bit einer Gruppe: Lesen erlaubt/nicht erlaubt
2. Bit einer Gruppe: Schreiben/Löschen erlaubt/nicht erlaubt
3. Bit einer Gruppe: Ausführen der Datei erlaubt/nicht erlaubt
−
Codierung der Werte
-
kein Recht
r
Leserecht (read)
w
Schreib-/Löschrecht (write)
x
ausführbar (execute)
s
SUID/SGID-Bit und execute gesetzt
S/l/L SUID/SGID-Bit gesetzt
t
Sticky-Bit und execute gesetzt
T
Sticky-Bit gesetzt
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
−
Folie 4 - 46
falls das SUID-Bit gesetzt ist, hat das Programm während der
Ausführung die Rechte des Besitzers
(Auf die Datei /etc/passwd darf nur der Superuser (im Allgemeinen der Benutzer root)
zugreifen. Wenn ein Benutzer mit Hilfe des Kommandos passwd sein Passwort ändert,
wird seine effektive Benutzernummer temporär auf die Benutzernummer des Eigentümers der Datei gesetzt, sodass er seinen Eintrag in der Datei ändern kann.)
−
falls das SGID-Bit gesetzt ist, hat das Programm während der
Ausführung die Rechte der Gruppe
−
damit ein beliebiger Benutzer Programme mit gesetztem SUID/
SGID-Bit ausführen kann, müssen zusätzlich Ausführungsrechte
für andere Benutzer gesetzt sein (3. Bit-Gruppe)
−
falls Ausführungsrechte für den Besitzer/die Gruppe gesetzt
sind, wird „s“ anstelle von „x“ benutzt
−
falls keine Ausführungsrechte für den Besitzer/die Gruppe
gesetzt sind, wird S, l oder L benutzt
(in diesem Fall haben die Bits keine Bedeutung; sie haben ebenfalls keine Bedeutung
bei Verzeichnissen)
−
Programme mit gesetztem SUID/SGID-Bit können eine Sicherheitslücke sein
−
auf keinen Fall bei Shell-Skripten das SUID/SGID-Bit setzen
−
bei Solaris stellt das SGID-Bit bei Datendateien die exklusive
Nutzung der Datei sicher (mandatory file locking)
−
bei ausführbaren Programmen sorgt das Sticky-Bit (save text
image after execution) dafür, dass das Programm auch dann im
Hauptspeicher (Swap-Bereich) bleibt, wenn es augenblicklich
von niemandem benutzt wird (ist heute ohne Bedeutung)
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
−
Folie 4 - 47
bei Dateiverzeichnissen sorgt das Sticky-Bit dafür, dass nur der
Besitzer einer Datei die Datei löschen kann
(Beim Verzeichnis /tmp haben alle Benutzer Schreib- und damit Löschrechte im
Verzeichnis. Damit könnte jeder Benutzer jede Datei in diesem Verzeichnis löschen
(auch Dateien des Benutzers root, die keine Rechte für irgendeine Gruppe oder alle
anderen Benutzer haben). Durch das Sticky-Bit kann dies verhindert werden.)
•
Beispiel
eiger:/home/fd1026
-rwsr-xr-x 1 root
-rwxr-sr-x 1 root
drwxrwxrwt 21 root
•
# ls -ld /usr/bin/passwd /usr/bin/write /tmp
shadow 72836 May 2 2006 /usr/bin/passwd
tty
8936 May 2 2006 /usr/bin/write
root
832 Dec 21 20:56 /tmp
Dateitypen
-
normale Dateien
(Textdateien, Shell-Skripte, Objektdateien, ausführbare Programme, ...)
•
b
blockorientierte Gerätedatei
c
zeichenorientierte Gerätedatei
d
Dateiverzeichnis
D
Verweisdatei für Kommunikation (door)
l
symbolischer Verweis (symbolic link; Kommando ln -s)
p
FIFO-Datei (named pipe)
s
AF_Unix Socket-Datei für Prozesskommunikation
Dateityp wird anhand einer Byte-Folge am Anfang der Datei erkannt
(magic number)
•
bekannte Byte-Folgen sind in der Datei /etc/magic gespeichert
•
Dateityp kann mit Hilfe des Kommandos file bestimmt werden
(Es kann sich auch dann um eine Datei im Binärformat handeln, wenn file eine Text- oder
Datendatei meldet. Das Kommando file benutzt /etc/magic zur Bestimmung des Dateityps.)
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
Folie 4 - 48
•
ein Benutzer hat eine Benutzer- und Gruppennummer (user ID, UID,
group ID, GID), die im Allgemeinen in der Datei /etc/passwd, in einer
NIS-, NIS+- oder LDAP-Tabelle mit seinem Namen verknüpft wird
•
er kann seine Gruppe mit einem Kommando ändern, falls er
verschiedenen Gruppen angehört (z. B. mit dem Befehl newgrp)
(Gruppen sind in der Datei /etc/group, in einer NIS-, NIS+- oder LDAP-Tabelle definiert)
•
der login-Prozess ordnet die Benutzer- und Gruppennummer der
login-shell des Benutzers zu, die sie an alle Sohnprozesse vererbt
•
die UID und GID des Benutzers sind die realen Benutzer- und
Gruppennummern des Prozesses, da sie die Person identifizieren, die
sich beim Rechner angemeldet hat
•
außerdem besitzt jeder Prozess eine effektive Benutzer- und Gruppennummer, die im Allgemeinen mit der jeweiligen realen Nummer
übereinstimmt
•
die realen UID's und GID's werden z. B. für Abrechnungszwecke
verwendet und die effektiven zur Überprüfung der Zugriffsrechte
des Prozesses auf Dateien, Semaphore usw.
•
die Benutzer- und Gruppennummer des Eigentümers einer Datei sind
Attribute der Datei
•
UNIX unterstützt auch Dateizugriffslisten (file access control lists)
(Solaris unterstützt Dateizugriffslisten seit 1993 (Trusted Solaris) bzw. kommerziell seit
1995 (Solaris 2.5).)
Beispiel
tyr fd1027 62 touch datei.txt
tyr fd1027 63 setfacl –m user:fd1026:r-- datei.txt
tyr fd1027 64 getfacl datei.txt
# file: datei.txt
# owner: fd1027
# group: inf
user::rwuser:fd1026:r-group::r-mask:r-other:r--
#effective:r-#effective:r--
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
•
Folie 4 - 49
Zugriffsrechte unter Windows
C:\>attrib
A SH
A SHR
A SH
A
A
R
A SH
A SHR
A SHR
SHR
SHR
A SH
A SHR
•
*
C:\boot.ini
C:\bootfont.bin
C:\BOOTSECT.DOS
C:\cdcops.log
C:\CLDMA.LOG
C:\hiberfil.sys
C:\IO.SYS
C:\MSDOS.SYS
C:\NTDETECT.COM
C:\ntldr
C:\pagefile.sys
C:\PRELOAD.AAA
Symbol
Bedeutung
A
Attribut für „Zu archivierende Datei“ (Archive)
H
Attribut für „Versteckte Datei“ (Hidden)
R
Attribut für „Schreibgeschützte Datei“ (Read-only)
S
Attribut für „Systemdatei“ (System)
weitere Dateiattribute (abhängig vom Betriebssystem)
−
Eigentümer der Datei
−
Größe der Datei
−
Datum/Uhrzeit des letzten Zugriffs bzw. der letzten
Modifikation
−
Anzahl Namen für eine Datei
−
Anzahl Unterverzeichnisse im Dateiverzeichnis
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
•
Folie 4 - 50
Beispiel 1 (Ausgabe von Dateiattributen unter Windows):
D:\gross\skripte\bachelor\bs_praktikum>dir
Datenträger in Laufwerk D: ist VOLUME
Volumeseriennummer: 904F-B662
Verzeichnis von D:\gross\skripte\bachelor\bs_praktikum
19.06.2006
19.06.2006
19.05.2006
19.06.2006
20.08.2006
03.12.2006
30.06.2006
23.11.2006
03.12.2006
08.07.2006
09.07.2006
19.05.2006
19.10.2006
18:36
<DIR>
.
18:36
<DIR>
..
19:41
<DIR>
bilder
15:55
<DIR>
www
09:09
<DIR>
text
12:12
3.243.801 www.zip
17:35
<DIR>
backup
16:37
3.832.615 text_06.zip
11:18
39.065 prog_06.zip
19:11
2.647.252 bilder_06.zip
14:53
<DIR>
Loesungen
19:41
<DIR>
prog
15:04
87.786 Loesungen_06.zip
5 Datei(en)
9.850.519 Bytes
8 Verzeichnis(se), 6.727.647.232 Bytes frei
D:\gross\skripte\bachelor\bs_praktikum>
•
Beispiel 2 (Ausgabe von Dateiattributen unter Cygwin):
eiger bs_praktikum 17 ls
total 9628
drwxr-xr-x 8 sgross Kein
drwxr-xr-x 5 sgross Kein
drwxr-xr-x 2 sgross Kein
-rw-r--r-- 1 sgross Kein
drwxr-xr-x 2 sgross Kein
drwxr-xr-x 2 sgross Kein
-rw-r--r-- 1 sgross Kein
drwxr-xr-x 4 sgross Kein
-rw-r--r-- 1 sgross Kein
drwxr-xr-x 3 sgross Kein
-rw-r--r-- 1 sgross Kein
drwxr-xr-x 3 sgross Kein
-rw-r--r-- 1 sgross Kein
eiger bs_praktikum 18
•
–al
0
0
0
87786
0
0
2647252
0
39065
0
3832615
0
3243801
Jul
Aug
Jul
Oct
Jun
May
Jul
May
Dec
Aug
Nov
Jun
Dec
2
30
9
19
30
19
8
19
3
20
23
19
3
14:25
10:47
15:53
16:04
18:35
2006
20:11
2006
11:18
10:09
16:37
2006
12:12
.
..
Loesungen
Loesungen_06.zip
backup
bilder
bilder_06.zip
prog
prog_06.zip
text
text_06.zip
www
www.zip
Beispiel 3 (Änderung des Zeitstempels für letzten Zugriff):
eiger:~ # ls -lc .login
-rw-r--r-- 1 root bin 1013
eiger:~ # ls -lu .login
-rw-r--r-- 1 root bin 1013
eiger:~ # head -1 .login
# Datei: .login
eiger:~ # ls -lc .login
-rw-r--r-- 1 root bin 1013
eiger:~ # ls -lu .login
-rw-r--r-- 1 root bin 1013
letzte Modifikation
Sep
6
2005 .login
Jul
2 10:28 .login
letzter Zugriff
Datei lesen
Autor: S. Gross
Sep
6
2005 .login
Dec 21 21:06 .login
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
alte Modifikationszeit
neue Zugriffszeit
Betriebssysteme
Folie 4 - 51
Aufgabe 4-6:
Beschreiben Sie stichwortartig, was beim Einschalten eines Rechners
passiert, bevor Sie eine Eingabeaufforderung/grafische Oberfläche
erhalten (Boot-Vorgang).
Aufgabe 4-7:
a) Wie wird der Zugriffsschutz auf Dateien unter UNIX realisiert?
b) Welche Möglichkeiten des Zugriffsschutz gibt es unter Windows?
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
Folie 4 - 52
4.5 Dateisysteme
•
erlauben persistente (dauerhafte) Speicherung von Daten
•
verwalten den Speicherplatz auf Hintergrundspeichern
•
Aufgaben
•
−
Verknüpfung von Dateinamen mit Speicherbereichen
−
Verwaltung der Datenblöcke einer Datei
−
Verwaltung der freien Datenblöcke auf dem Datenträger
−
Zugriffschutz auf Dateien sicherstellen
physische Struktur von Dateisystemen
FAT volume layout
file allo- file allo- root
boot
cation
direcsector cation
table
table
(copy) tory
data blocks
NTFS volume layout
boot
sector
master system data blocks
file
files
table
master
file
table
(copy)
data blocks
Linux volume layout (ext2fs)
boot
sector
super
block
block block
group 0 group 1
filesystem block
descrip- bitmap
tors
block
group n
...
inode inode
bitmap table
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
data blocks
Betriebssysteme
•
Folie 4 - 53
logische Struktur von Dateisystemen
−
Sicht des Benutzers
−
heutzutage werden Dateien im Allgemeinen in hierarchisch
angeordneten Dateiverzeichnissen (Verzeichnis, Katalog,
Ordner, directory, folder) verwaltet
−
Verzeichnisse sind im Allgemeinen selbst Dateien
−
flaches Dateiverzeichnis (globales Verzeichnis, flat directory,
single-level directory system, global namespace)
♦ Struktur
directory
file 1
...
file m
♦ alle Dateinamen müssen verschieden sein
(ein Benutzer kann die Datei eines anderen Benutzers ggf. überschreiben, wenn
er zufällig denselben Namen benutzt)
♦ Beispiel: Control Data Corporation CDC 6600
(Großrechner, ca. 1964, Betriebssysteme: COS, SIPROS, Scope, ...)
−
benutzerspezifische Dateiverzeichnisse (two-level directory system)
♦ Struktur
root directory
user
directory 1
file 1
...
file m
...
user
directory k
file 1
...
file n
♦ Beispiel: CP/M (Control-Program for Microcomputers)
(Mikrorechner-Betriebssystem, ca. 1973 - Mitte 1980, bis zu 16 Benutzerverzeichnisse)
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
−
Folie 4 - 54
hierarchisch aufgebaute Dateiverzeichnisse (Verzeichnisbaum,
hierarchical directory system, directory tree)
♦ Struktur
root directory
subdirectory
file
... subdirectory
subdirectory ...
file
...
...
subdirectory
file
...
file
file
file
♦ Beispiel: UNIX, Windows, ...
♦ Ansicht eines Verzeichnisses im Windows Explorer
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
Folie 4 - 55
♦ Ansicht eines Verzeichnisses im Kommandozeilenfenster
Windows XP: cmd.exe
Cygwin
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
•
Folie 4 - 56
Verwaltung der Datenblöcke einer Datei
−
zusammenhängende Blöcke (contiguous (pre)allocation)
♦ Datei wird zusammenhängend in aufeinanderfolgende
Blöcke gespeichert
♦ beste Form aus Sicht der einzelnen Datei
⋅
einfache Verwaltung: Anfangsadresse und Dateigröße
⋅
einfache sequenzielle Verarbeitung
⋅
einfache direkte Verarbeitung: Block i (i >= 0) befindet
sich z. B. an Position Anfangsadresse + i
♦ Dateigröße ist vorab häufig nicht bekannt
♦ nach kurzer Zeit hohe externe Fragmentierung ⇒ alle
Dateien müssen umkopiert werden
♦ wird heute im Allgemeinen nicht mehr benutzt
(Die Wurzelverzeichnisse einiger Dateisysteme sind von dieser Regel ausgenommen, z. B. die Stammverzeichnisse von FAT-Systemen. Die Master File Table
von NTFS wird ebenfalls in einem zusammenhängenden Bereich gespeichert,
während das Wurzelverzeichnis aller Benutzerdateien und -verzeichnisse bereits
als Indexknoten eines B-Baums realisiert ist.)
−
interne Verkettung der Datenblöcke (linked list, block chaining, ...)
♦ Nachteil: Datei kann nur sequenziell bearbeitet werden
(Speicherplatz für Zeiger geht vom Datenplatz ab ⇒ Blockgröße der Nutzdaten
ist im Allgemeinen keine Zweierpotenz.)
♦ Struktur
directory
file x
i
file y
...
j
block i
m
block j
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
0
block m
Betriebssysteme
−
Folie 4 - 57
externe Verkettung der Datenblöcke (file allocation table, FAT)
♦ Nachteile:
⋅
Verweistabelle kann bei großen Partitionen viel Speicherplatz beanspruchen (Tabelle bleibt klein, wenn Blockgröße erhöht wird)
⋅
große Blöcke bei kleinen Dateien nur teilweise gefüllt
⋅
Fehler in der Verweistabelle führen zu Datenverlust
⋅
Zugriffe auf Blöcke am Ende der Datei dauern lange
♦ Struktur
directory
file x
file y
i
...
file allocation table
i j k l m
... j m
0 ...
...
...
block i
block j
block k block l
block m
(Blocknummer für Zugriff auf Datenblock und als Index in Verweistabelle für nächsten Block)
−
Verwaltung über Indexblöcke (Baumstruktur, indexed allocation, ...)
♦ viele moderne Dateisysteme
♦ unterschiedliche Realisierungen
⋅
Windows, OS/2, ...: Varianten von B-Bäumen
⋅
UNIX: Index-Struktur hängt von Dateigröße ab
♦ Struktur
directory
file x
file y
p
...
pointer block, index node, B-tree, ...
i j m 0 0 0 0 0
...
...
block i
block j
block k block l
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
block m
Betriebssysteme
•
•
Folie 4 - 58
Verwaltung der freien Speicherblöcke
−
über Bit-Listen
−
über verkettete Listen
−
über Indexblöcke
Zugriff auf Dateien erfolgt über Pfadnamen
−
Windows
♦ jede Partition hat eigenen Laufwerksbuchstaben
♦ jede Partition hat eigenes Wurzelverzeichnis
(Wurzelkatalog, Stammverzeichnis, root directory)
−
UNIX
♦ alle Partitionen werden in einen gemeinsamen Dateibaum
eingehängt
♦ man sieht nur ein Wurzelverzeichnis, obwohl jede Partition
ein Wurzelverzeichnis besitzt
−
−
absolute Pfadnamen beginnen immer im Wurzelverzeichnis
♦ Windows:
dir \cmd\split.exe
dir c:\cmd\split.exe
♦ UNIX:
ls -l /windows/c/cmd/split.exe
relative Pfadnamen beginnen immer im aktuellen Verzeichnis
♦ Windows:
dir bs_praktikum\text
dir ..\bs_praktikum\text
♦ UNIX:
ls -l ../bs_praktikum/text
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
Folie 4 - 59
4.5.1 Transaktionsorientiertes Dateisystem
•
klassische Dateisysteme können bei „Systemabstürzen“ (z. B. Stromausfall,
Rechner wird einfach ausgeschaltet, ...) in einen inkonsistenten Zustand kommen
−
Metadaten (Verzeichniseinträge, Blockverwaltungen) stimmen
nicht mehr mit den tatsächlichen Dateien überein
(Wenn unter UNIX eine Datei gelöscht wird, müssen die Blöcke der Datei und der Indexblock (i-node)
bzw. die Indexblöcke der Datei freigegeben werden sowie der Eintrag im Verzeichnis gelöscht werden.
Wenn zuerst der Verzeichniseintrag gelöscht wird und dann ein Systemabsturz stattfindet, gibt es nach
einem Neustart des Systems „verwaiste“ Blöcke, die weder einer Datei noch der Freispeicherliste angehören. Falls zuerst die Blöcke freigegeben werden, können die freigegebenen Blöcke bereits überschrieben werden, obwohl die Datei im Verzeichnis noch existiert und ihr vielleicht auch noch Indexblöcke
zugeordnet sind, d. h., dass der Dateiinhalt u. U. zerstört wird/wurde.)
−
Dateisystem muss beim nächsten Start des Betriebssystems überprüft und repariert werden
(In der UNIX-Welt würde das Dateisystem z. B. mit dem Programm „fsck“ (file system check) überprüft
und repariert werden, indem das Programm „verwaiste“ Blöcke in die Freispeicherliste einträgt bzw.
bereits freigegebene Blöcke wieder einer Datei zuordnet, sofern dies möglich ist. In der Windows-Welt
würde das Programm „chkdsk“ für diese Arbeit benutzt werden.)
♦ bei großen Dateisystemen sehr zeitaufwendig (Minuten bis Stunden)
♦ Dateisystem kann u. U. nicht repariert werden ⇒ Datenverlust
•
transaktionsorientierte Dateisysteme vermeiden diesen Nachteil
(protokollierendes Dateisystem, journaling file system, logging file system)
−
stellen Konsistenz des Dateisystems durch Transaktionen sicher
♦ zuerst werden die beabsichtigten Änderungen in ein Journal
eingetragen
♦ danach werden die Änderungen irgendwann durchgeführt
♦ zuletzt wird der Eintrag wieder aus dem Journal gelöscht
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
−
Folie 4 - 60
nach einem Systemabsturz wird das Journal gelesen
♦ unvollständig durchgeführte Aktionen werden abgearbeitet
oder rückgängig gemacht
♦ unvollständige Einträge in das Journal können gelöscht
werden, da sie noch keine Aktion bewirkt haben
−
für das Journal wird entweder ein fester Bereich reserviert oder
es darf dynamisch wachsen und schrumpfen
(Wenn bei Solaris für ein Dateisystem „logging“ eingestellt wird, wird für jeweils ein
Gigabyte des Dateisystems ca. ein Megabyte (max. 64 MB) für das Journal reserviert.)
−
falls nur Metadaten transaktionsorientiert geändert werden,
können Dateiinhalte u. U. verloren gehen
(In diesem Fall kann eine Datei z. B. einen Block mit zufälligen oder alten Daten enthalten, wenn der Datei der Block in den Metadaten bereits zugeordnet wurde, aber die
Daten noch nicht in den Block kopiert bzw. die Daten noch nicht geändert worden
sind. Die meisten transaktionsorientierten Dateisysteme schützen nur die Metadaten,
um leistungsfähig zu sein.)
−
falls alle Daten transaktionsorientiert geändert werden, müssen
Datenblöcke u. U. zweimal geschrieben werden
(einmal in das Journal und dann in die Datei; Datenbanksysteme schützen auch die
Nutzdaten)
−
Beispiel: NTFS von Microsoft
♦ maximale Dateisystemgröße: ≈16 Exabyte (2^64 Byte)
(Bei allen 32-Bit Systemen mit logischen Festplatten (dynamic volume, multipartition disk) ist
das Dateisystem auf ≈256 Terabyte bei 64 KB und ≈16 Terabyte bei 4 KB Cluster-Größe beschränkt und bei allen klassischen Partitionen (normale Partition einer Festplatte) auf 2 Terabyte.)
♦ maximale Dateigröße: theoretisch: ≈16 Exabyte,
implementiert: ≈16 Terabyte
♦ maximale Anzahl Dateien/Dateisystem: 4.294.967.295
♦ Verzeichnisorganisation: B-Baum-Variante
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
Folie 4 - 61
4.5.2 Virtuelles Dateisystem (VFS)
•
virtuelles Dateisystem (virtual file system) ist Schnittstelle zwischen
der Dateisystem-unabhängigen und der Dateisystem-spezifischen
Funktionalität im Betriebssystemkern
•
virtuelles Dateisystem ist transparent
−
unterschiedliche Dateisysteme sehen für den Benutzer gleich aus
(Benutzer kann nicht unterscheiden, ob das Dateisystem lokal oder über ein Rechnernetz zur Verfügung gestellt wird oder ob es ein Windows- oder UNIX-Dateisystem ist)
−
netzwerkweit eindeutige Dateideskriptoren
(normale Deskriptoren sind nur innerhalb eines einzelnen Dateisystems eindeutig)
−
Architektur und Funktionsweise
user process
open(), read(), ...
system call (trap)
operating
system
kernel
system calls
interface
Virtual File System (VFS)
local
net
fat
...
ntfs
vfat
hpfs
RFS
ufs
hsfs
buffer cache
...
ext2
AFS
server
Virtual File System (VFS)
net
local
NFS
NFS client
NFS server
...
...
...
device driver
RPC/XDR
RPC/XDR
operating
system
kernel
I/O request
disk controller
•
network
wurde z. B. ca. 1985 von Sun Microsystems für ufs, ms-dos fat und
nfs eingeführt (eines der ersten virtuellen Dateisysteme für UNIX)
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
Folie 4 - 62
4.5.3 MS-DOS/Windows 95/Windows 98/USB-Sticks/...
•
verwenden eine externe Verkettung der Datenblöcke
(Dateizuordnungstabelle, Dateibelegungstabelle, Verweistabelle, file allocation table, FAT)
•
Tabelle enthält für jeden Block des Datenträgers einen Eintrag, der
u. a. angibt, ob der Block frei, unbrauchbar (fehlerhaft) oder einer
Datei zugeordnet ist
(die Blöcke heißen Sektorgruppe oder cluster)
•
im Dateiverzeichnis wird der Dateiname mit der ersten Blocknummer der Datei verknüpft (FAT-Dateisystem)
directory
...
filename
(8 bytes)
name
extension
(3 bytes)
attributes
(1 byte)
reserved modifi- modifi- first
filecation cation cluster size
time
date
number
(10 bytes)
(2 bytes)
(2 bytes)
(2 bytes)
(4 bytes)
...
logical
blocks
...
100
101
102
file allocation
table (FAT)
...
data of
file
100
101
102
101
102
501
...
500
501
502
Free
502
EOF
...
...
500
501
502
...
unused part
of last block
•
jeder Eintrag im Dateiverzeichnis ist 32 Byte groß
•
jeder Eintrag in der Verweistabelle ist 12 Bit (FAT12), 16 Bit
(FAT16) oder 32 Bit (FAT32) groß
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
Folie 4 - 63
•
Partitionen bis zu 16 MB werden mit FAT12 formatiert
•
FAT32 wird ab Windows 95 OSR2 unterstützt
•
VFAT-Dateisystem erlaubt lange Dateinamen
(Virtual FAT, long file name, LFN, seit Windows 95 Bestandteil der FAT-Dateisysteme)
−
kompatibel zum „alten“ FAT-Dateisystem
−
unterscheidet zwischen Groß- und Kleinbuchstaben
(nur in der Anzeige; Dateisystem unterscheidet nicht zwischen Groß- und Kleinbuchstaben)
−
lange Dateinamen werden in zusätzlichen Verzeichniseinträgen
gespeichert
−
lange Dateinamen sollten nicht im Wurzelverzeichnis benutzt
werden, da dessen Größe beschränkt ist
(abhängig vom Datenträger und dem Dateisystem können im Wurzelverzeichnis
zwischen 112 und 512 Dateien verwaltet werden)
−
Anordnung der Verzeichniseinträge
ohne VFAT
mit VFAT
...
...
8.3 Dateiname 4
8.3 Dateiname 2
8.3 Dateiname 3
LFN-Erweiterung 2 zu Datei 1
8.3 Dateiname 2
LFN-Erweiterung 1 zu Datei 1
8.3 Dateiname 1
...
8.3 Dateiname 1
...
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
•
Folie 4 - 64
Beispiel:
dir unter MS-DOS von Windows 98
...
TEST-DAT TXT 76 21.10.01 18:57 test-dat.txt
THIS_I~1 TXT 76 21.10.01 18:57 this_is_a_very_very_long_filename.text.txt
...
dir unter MS-DOS 6.22
...
TEST-DAT TXT
THIS_I~1 TXT
...
76 21.10.01 18:57
76 21.10.01 18:57
Ausschnitt aus dem Dateiverzeichnis
24AA:0060
24AA:0070
24AA:0080
24AA:0090
41
61
54
55
74
00
45
2B
00
74
53
55
65
00
54
2B
00
2E
2D
00
73
00
44
00
00
74
41
28
74-00
00-78
54-54
97-55
2D
00
58
2B
00
00
54
02
0F
00
20
00
00
74
00
4C
95
00
C4
00
64
00
27
00
00
00
97
00
At.e.s.t.-....d.
a.t...t.x...t...
TEST-DATTXT ..'.
U+U+..(.U+..L...
24AA:00A0
24AA:00B0
24AA:00C0
24AA:00D0
24AA:00E0
24AA:00F0
24AA:0100
24AA:0110
24AA:0120
24AA:0130
44
FF
03
65
02
5F
01
73
54
55
74
FF
69
00
79
00
74
00
48
2B
00
FF
00
2E
00
6C
00
5F
49
55
78
FF
6C
00
5F
00
68
00
53
2B
00
FF
00
74
00
6F
00
61
5F
00
74
FF
65
00
76
00
69
00
49
00
00
FF
00
65
00
6E
00
5F
7E
28
00-00
FF-FF
6E-00
00-78
65-00
00-67
73-00
00-76
31-54
97-55
FF
FF
61
00
72
00
5F
00
58
2B
FF
00
00
00
00
00
00
00
54
03
0F
00
0F
00
0F
00
0F
00
20
00
00
FF
00
74
00
5F
00
65
00
4C
FB
FF
FB
00
FB
00
FB
00
9F
00
FF
FF
6D
2E
79
66
69
72
4C
00
FF
FF
00
00
00
00
00
00
97
00
Dt.x.t..........
................
.i.l.e.n.a....m.
e...t.e.x...t...
.y._.v.e.r....y.
_.l.o.n.g..._.f.
.t.h.i.s._....i.
s._.a._.v...e.r.
THIS_I~1TXT ..L.
U+U+..(.U+..L...
Der erste Dateiname benötigt einen zusätzlichen Eintrag und der zweite vier zusätzliche
Einträge im Dateiverzeichnis. Im letzten Eintrag wird Bit 6 gesetzt (0x40). Der lange
Dateiname wird im Unicode (2 Byte je Zeichen) gespeichert.
•
einige Default-Cluster-Größen bei verschiedenen Dateisystemen
Partitionsgröße
FAT12
FAT16
FAT32
NTFS
512 Byte
-
-
-
512 MB – 1 GB
-
16 KB
4 KB
1 KB
1 GB – 2 GB
-
32 KB
4 KB
2 KB
8 GB – 16 GB
-
-
8 KB
4 KB
16 GB – 32 GB
-
-
16 KB
4 KB
32 GB – 2 TB
-
-
-
4 KB
Disketten
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
Folie 4 - 65
4.5.4 Windows NT/2000/XP/...
•
für diese Systeme wurde NTFS (NT file system) entwickelt
•
einige Eigenschaften
−
transaktionsorientiertes Dateisystem (change logging)
−
unterstützt individuelle Zugriffsrechte für Dateien und Ordner
(file and folder permissions, access control lists)
−
Beschränkung des Festplattenplatzes pro Benutzer (disk quota)
−
Dateiverschlüsselung (file encryption)
−
Dateikompression (file compression)
−
platzsparende Speicherung von großen Dateien mit wenig Daten
(sparse files)
−
mehrere Datenkanäle in einer Datei (multiple data streams)
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
•
Folie 4 - 66
Zugriffsschutz auf Dateien und Verzeichnisse unter Windows XP
−
mit rechter Maustaste auf Datei- oder Verzeichnisnamen klicken
und „Eigenschaften“ wählen
Rechner in keiner Domäne
und „Einfache Dateifreigabe“
−
Rechner in Domäne
Rechner in keiner Domäne
♦ als Administrator „Start → Systemsteuerung“ wählen
♦ Doppelklick auf „Ordneroptionen“
♦ „Ansicht“ wählen
♦ im Fenster „Erweiterte Einstellungen“ den Punkt „Einfache
Dateifreigabe verwenden (empfohlen)“ deaktivieren
(Die Freigabe kann auch im „Windows Explorer“ unter „Extras → Ordneroptionen → Ansicht“
deaktiviert werden.)
♦ mit rechter Maustaste auf Datei- oder Ordnernamen klicken
♦ „Eigenschaften → Sicherheit“ wählen
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
Folie 4 - 67
♦ erweiterte Sicherheitseinstellungen
♦ effektive Berechtigungen
♦ ggf. wieder „Einfache Dateifreigabe verwenden“ aktivieren
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
−
Folie 4 - 68
Zugriffsrechte mit Kommandozeilenprogramm „cacls“ anzeigen
C:\>cacls WINDOWS
C:\WINDOWS VORDEFINIERT\Benutzer:R
VORDEFINIERT\Benutzer:(OI)(CI)(IO)(Beschränkter Zugriff:)
GENERIC_READ
GENERIC_EXECUTE
VORDEFINIERT\Hauptbenutzer:C
VORDEFINIERT\Hauptbenutzer:(OI)(CI)(IO)C
VORDEFINIERT\Administratoren:F
VORDEFINIERT\Administratoren:(OI)(CI)(IO)F
NT-AUTORITÄT\SYSTEM:F
NT-AUTORITÄT\SYSTEM:(OI)(CI)(IO)F
VORDEFINIERT\Administratoren:F
ERSTELLER-BESITZER:(OI)(CI)(IO)F
C:\>cacls tmp
C:\tmp VORDEFINIERT\Administratoren:F
VORDEFINIERT\Administratoren:(OI)(CI)(IO)F
NT-AUTORITÄT\SYSTEM:F
NT-AUTORITÄT\SYSTEM:(OI)(CI)(IO)F
ERSTELLER-BESITZER:(OI)(CI)(IO)F
VORDEFINIERT\Benutzer:R
VORDEFINIERT\Benutzer:(OI)(CI)(IO)(Beschränkter Zugriff:)
GENERIC_READ
GENERIC_EXECUTE
VORDEFINIERT\Benutzer:(CI)(Beschränkter Zugriff:)
FILE_APPEND_DATA
VORDEFINIERT\Benutzer:(CI)(Beschränkter Zugriff:)
FILE_WRITE_DATA
•
Beschränkung des Festplattenplatzes pro Benutzer (disk quota)
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
•
Folie 4 - 69
Master File Table (MFT) ist zentrale Datenstruktur
−
enthält für alle Dateien/Verzeichnisse der Partition einen Eintrag
(Falls die Informationen für einen Eintrag zu groß sind, werden weitere Einträge
benutzt.)
−
jeder Eintrag ist ein Kilobyte groß
−
Struktur der MFT (die ersten 16 Einträge sind für Systemdateien reserviert)
Dateiname
MFT-Eintrag Einsatzgebiet
$Mft
0
master file table
$MftMirr
1
Kopie der MFT
$LogFile
2
Journal-Datei für Transaktionen
$Volume
3
Informationen zur Partition
(Kommando „fsutil fsinfo volumeinfo c:\“)
$AttrDef
4
definiert alle Attribute
\
5
Wurzelverzeichnis
$Bitmap
6
Freispeicherliste
$Boot
7
Boot-Sektor
$BadClus
8
Liste fehlerhafter Cluster
$Secure
9
Sicherheitseinstellungen für alle
Dateien
$UpCase
10
wandelt Kleinbuchstaben in
Unicode-Großbuchstaben
$Extend
11
verschiedene Erweiterungen, z.
B. quota, reparse points, ...
reserved
12 – 15
normale
Dateien
ab 16
für spätere Erweiterungen
Benutzerdateien und
-verzeichnisse
(„reparse points“ erlauben das Einbinden von Verzeichnissen anderer Partitionen ohne
Laufwerksbuchstaben und entsprechen damit in etwa einem „mount point“ in UNIX)
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
−
Folie 4 - 70
12,5 Prozent des Speicherplatzes der Partition werden für die
MFT reserviert, damit sie nicht fragmentiert, wenn die Anzahl
der Dateien wächst (MFT zone)
♦ bei sehr vielen kleinen Dateien muss die MFT-Zone direkt
nach der Formatierung der Partition vergrößert werden
♦ Kommando „fsutil behavior set mftzone <value>“
•
value
Größe
1
12,5 Prozent des Speicherplatzes
2
25 Prozent des Speicherplatzes
3
37,5 Prozent des Speicherplatzes
4
50 Prozent des Speicherplatzes
Datei/Verzeichnis besteht aus mehreren Attributen, z. B.
−
Datei-/Verzeichnisname
−
Zugriffsrechte
−
Daten der Datei bzw. Index des Verzeichnisses
•
kleine Attribute können vollständig im MFT-Eintrag gespeichert
werden (resident attributes)
•
umfangreiche Attribute können nicht im MFT-Eintrag gespeichert
werden (non-resident attributes)
−
diese Attribute werden in einem Block bzw. mehreren Blöcken
der Partition gespeichert
−
das entsprechende Attribut in der MFT verweist dann auf diesen
Block bzw. diese Blöcke
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
•
Folie 4 - 71
MFT-Eintrag für eine kleine Datei bzw. ein kleines Verzeichnis
standard
file or directory
information name
data or index
unused
space
−
kleine Dateien/Verzeichnisse (bis ca. 900 Byte) passen vollständig in den MFT-Eintrag ⇒ schneller, effizienter Zugriff
−
standard information, z. B.
♦ Erzeugungszeitpunkt
♦ Zeitpunkt des letzten Zugriffs
(kann mit „fsutil behavior set disablelastaccess“ abgeschaltet werden)
♦ read-only, hidden, ...
−
file/directory name
Attribut kann mehrfach vorkommen, z. B.
♦ langer NTFS-Dateiname (bis zu 255 Zeichen, Unicode)
♦ 8.3 Dateiname für alte Programme (Großbuchstaben)
(kann mit Kommando „fsutil behavior set disable8dot3“ abgeschaltet werden)
−
Daten-Attribut
♦ namenloses Attribut (Standard für jede Datei)
♦ Attribute mit Namen (weitere „unsichtbare“ Datenströme)
(„dir /R“ zeigt alternative Datenstöme einer Datei an)
♦ Beispiel
C:\tmp>echo default > MultipleStream.txt
C:\tmp>dir MultipleStream.txt
...
20.01.07 16:07
10 MultipleStream.txt
...
C:\tmp>echo stream-1 > MultipleStream.txt:stream1
C:\tmp>dir MultipleStream.txt
...
20.01.07 16:07
10 MultipleStream.txt
...
C:\tmp>more < MultipleStream.txt
default
C:\tmp>more < MultipleStream.txt:stream1
stream-1
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
−
Folie 4 - 72
Index-Attribute
♦ Attribute zur Implementierung des B-Baums
♦ index root (Wurzelknoten), index allocation (VCN-LCN Abbildungstabelle für die Indexknoten), index bitmap (freie Einträge in Indexblöcken)
•
MFT-Eintrag für große Datei
standard
fileinformation name
VCN 0
1
2
data
starting
VCN
0
8
3
4
5
attribute
list
starting number of
LCN
clusters
200
8
420
4
6
7
LCN 200 201 202 203 204 205 206 207
8
9
10 11
420 421 422 423
−
Datei wird in Blöcke eingeteilt (virtual cluster number, VCN)
−
Festplatte ist ebenfalls in Blöcke gleicher Größe aufgeteilt
(logical cluster number, LCN)
−
Datenattribut enthält VCN-LCN-Abbildungstabelle
−
falls die Datei sehr stark fragmentiert ist, ist das Datenattribut zu
klein für die Abbildungstabelle
⇒ Attribut „attribute list“ wird hinzugefügt, über das weitere
MFT-Einträge für diese Datei allokiert werden können, die
weitere Attribute aufnehmen können
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
•
•
Folie 4 - 73
MFT-Eintrag für großes Verzeichnis
−
analog zu großen Dateien
−
Attribut „index root“ enthält den Wurzelknoten des B-Baums
−
Indexknoten des B-Baums werden in Index-Blöcken gespeichert
−
Attribut „index allocation“ enthält die VCN-LCN-Abbildungstabelle für die Index-Blöcke
−
das Attribut „index bitmap“ gibt an, welche VCNs in den IndexBlöcken benutzt werden bzw. noch frei sind
Auszug aus der Master File Table
(Das erforderliche Programm „nfi.exe“ findet man auf der Web-Seite von Microsoft in der
Datei „oem3sr2.zip“ oder „oem3sr2s.zip“ für Windows 2000. Es funktioniert bei mir aber
auch unter Windows XP.)
NTFS File Sector Information Utility.
Copyright (C) Microsoft Corporation 1999. All rights reserved.
File 0
Master File Table ($Mft)
$STANDARD_INFORMATION (resident)
$FILE_NAME (resident)
$DATA (nonresident)
logical sectors 6291456-6638047 (0x600000-0x6549df)
...
$BITMAP (nonresident)
logical sectors 6291448-6291455 (0x5ffff8-0x5fffff)
...
File 1
Master File Table Mirror ($MftMirr)
$STANDARD_INFORMATION (resident)
$FILE_NAME (resident)
$DATA (nonresident)
logical sectors 30724280-30724287 (0x1d4d0b8-0x1d4d0bf)
File 2
Log File ($LogFile)
$STANDARD_INFORMATION (resident)
$FILE_NAME (resident)
$DATA (nonresident)
logical sectors 6160368-6291439 (0x5dfff0-0x5fffef)
...
File 5
Root Directory
$STANDARD_INFORMATION (resident)
$FILE_NAME (resident)
$INDEX_ROOT $I30 (resident)
$INDEX_ALLOCATION $I30 (nonresident)
logical sectors 41409584-41409607 (0x277dc30-0x277dc47)
$BITMAP $I30 (resident)
...
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
4.5.5
•
Folie 4 - 74
UNIX
Dateisystem (unix file system, ufs) besteht aus Zylindergruppen und
wird durch Superblock beschrieben
(jede Partition hat ggf. ein eigenes Dateisystem)
•
•
•
Superblock enthält u. a.
−
Verweise auf Zylindergruppen
−
Anzahl Zylindergruppen
−
Anzahl Datenblöcke
−
maximale Anzahl Dateien
−
Zeiger auf Freispeicherliste
−
verschiedene Zeitstempel
warum gibt es Zylindergruppen?
−
Metadaten (i-nodes) und Daten liegen dicht beieinander
−
effizienter, da kleinere Kopfpositionierzeiten auf der Festplatte
jede Zylindergruppe enthält
−
Kopie vom Superblock, da kritische Datenstruktur
−
Bitliste der belegten/freien Blöcke
−
Bitliste der belegten/freien i-nodes
−
i-node-Tabelle
−
Daten
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
•
Folie 4 - 75
Partitionen (c0t0*) werden in gemeinsamen Dateibaum integriert
/
c0t0d0s0
cdrom sbin etc
dev opt home var export usr ...
c0t0d0s5
c0t0d0s3
c0t0d0s6
hosts passwd group named.conf ...
...
...
home
c0t0d0s7
...
... gross ...
...
•
.cshrc .login SunOS ...
...
Baum wird beim Starten des Systems automatisch erzeugt
−
Datei /etc/fstab (Linux)
#device
#to mount
#
/dev/hda6
/dev/hda5
/dev/sda
/dev/hda1
/dev/hda7
...
mount
point
FS
type
mount
options
dump
fsck
pass
/
swap
/media/floppy
/windows/C
/windows/D
reiserfs
swap
auto
ntfs
vfat
acl,user_xattr
pri=42
noauto,user,sync
noauto,ro,users,...
noauto,users,...
1
0
0
0
0
1
0
0
0
0
♦ Dateisysteme auf Disketten und die Windows-Partitionen
müssen manuell eingebunden werden (wegen „noauto“)
z. B.: mount /windows/C
♦ falls das Dateisystem nicht in /etc/fstab steht, muss das
vollständige Kommando benutzt werden
z. B.: mount –t ntfs –o ro /dev/hda1 /windows/C
−
Datei /etc/vfstab (Solaris)
#device
#to mount
#
/dev/dsk/c1t2d0s1
/dev/dsk/c1t2d0s0
/dev/dsk/c1t2d0s3
/dev/dsk/c1t1d0s6
...
device
to fsck
mount
point
FS
type
fsck
pass
mount
at boot
mount
options
/dev/rdsk/c1t2d0s0
/dev/rdsk/c1t2d0s3
/dev/rdsk/c1t1d0s6
/
/var
/export2
swap
ufs
ufs
ufs
1
1
1
no
no
no
yes
logging
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
•
Folie 4 - 76
Dateiverzeichnis enthält für jede Datei im Allgemeinen vier Werte
−
sogenannte i-node-Nummer als Index in eine i-node-Tabelle
−
die Größe des Eintrags, um schnell auf den nächsten Eintrag
positionieren zu können (eine Art verkettete Liste)
−
die Länge des Dateinamens
−
den Dateinamen
(bis zu 255 Zeichen; ggf. mit Nullen auf eine durch vier teilbare Länge ergänzt)
•
jede Datei wird durch einen i-node beschrieben (Attribute der Datei)
•
alle Dateien werden in der i-node-Tabelle (i-node-list) verwaltet
(entspricht der Master File Table bei Windows NTFS)
directory
i-node table
...
...
i-node
entry length
filename length
filename
filetype, access permissions
reference count
owner (UID)
group (GID)
filesize
last access time-stamp
last modification time-stamp
creation time-stamp
block number for data
block 0
...
...
block number for data
block 11
block number for single
indirect block
block number for double
indirect block
block number for triple
indirect block
...
data blocks
(e.g., 8 KB)
...
...
...
...
...
...
...
...
...
...
...
...
...
...
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
•
Folie 4 - 77
i-node-Nummern mit spezieller Bedeutung
−
0
wird nicht benutzt
−
1
wird nicht benutzt (früher „bad block“-Liste)
−
2
Wurzelverzeichnis
•
falls eine Datei unter verschiedenen Namen bekannt ist (z. B. in verschiedenen Dateiverzeichnissen) müssen die Daten nur einmal gespeichert werden, da ein Referenzzähler im i-node angibt, wie viele
Verweise auf die Datei existieren (hard link, Kommando: „ln“)
•
die Datenblöcke einer Datei werden erst dann gelöscht, wenn der
Referenzzähler den Wert 0 annimmt
•
„hard link“ ist auf Dateien eines Dateisystems beschränkt
•
„symbolic link“ (Kommando: „ln -s“) ist dateisystemübergreifend
(„symbolic link“ hat eigenen i-node, der den Pfad zur anderen Datei enthält. „symbolic link“
kann auf noch nicht oder nicht mehr existierende Dateien verweisen.)
•
sobald eine Datei geöffnet wird, wird der i-node vom Datenträger in
den Hauptspeicher übertragen und bleibt dort solange, bis die Datei
wieder geschlossen wird
•
die virtuellen Blocknummern der Datei werden über eine Verweisstruktur auf die logischen Blöcke des Datenträgers abgebildet
(die Nummern der ersten 12 Blöcke können direkt über den i-node umgewandelt werden,
sodass ein schneller Zugriff auf kleine Dateien sichergestellt ist. Falls die Datei größer ist,
werden die nächsten Blöcke über (mehrstufige) Verweisblöcke adressiert)
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
•
Folie 4 - 78
Darstellung der internen Struktur des ufs-Dateisystems
i-node table
directory "/"
2
2
3
8
...
...
2 drwxr-xr-x
...
direct block
...
3 drwxr-xr-x
...
direct block
...
1
2
10
3
.
..
lost+found
usr
directory "/usr"
8
2
100
...
...
8 drwxr-xr-x
...
direct block
...
12
12
12
1
2
3
.
..
bin
directory "/usr/bin"
100
8
680
...
...
100
12
12
20
12
drwxr-xr-x
...
direct block
...
12
12
20
1
2
11
.
..
xemacs-20.4
file "/usr/bin/xemacs-20.4"
...
680
-rwxr-xr-x
...
5.158.908
...
direct block
...
direct block
single indirect
...
...
...
0
...
...
616
617
unused
(Die ersten 12 * 8 KB = 96 KB werden direkt adressiert. Der Indexblock kann zweitausend
32-Bit-Adressen oder eintausend 64-Bit-Adressen speichern. 12 + 618 = 630 Blöcke können 5.160.960 Byte speichern.)
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
•
Folie 4 - 79
Tabellenstruktur im Betriebssystem
process context
process-specific
open file table
kernel resident
system
open file table
disk-resident
active
i-node table
0
1
2
i-node
...
...
file
descriptor
...
i-node
data
...
...
process-specific
open file table
0
1
2
...
data
...
...
file
descriptor
•
unabhängige Prozesse benutzen im Allgemeinen verschiedene
Einträge in der systemweiten Tabelle offener Dateien
⇒ jeder hat einen separaten Schreib-/Lesezeiger in die Datei
•
abhängige Prozesse (Vater - Sohn) benutzen u. U. denselben Eintrag
in der systemweiten Tabelle offener Dateien
⇒ Prozesse benutzen ggf. denselben Schreib-/Lesezeiger in die
Datei
⇒ wenn ein Prozess die Position des Zeigers ändert, arbeitet der
andere Prozess an der neuen Position weiter
(Prozesse können sich u. U. gegenseitig stören)
•
Beispiel: OpenFileTable.c im Programmarchiv
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß
Betriebssysteme
Folie 4 - 80
Aufgabe 4-8:
a) Warum benutzt das Dateiverwaltungssystem bei Festplatten Blocknummern zur Speicherung von Dateien?
b) Wie werden die virtuellen Blocknummern einer Datei unter
MS-DOS in logische Blocknummern umgesetzt?
c) Skizzieren Sie, wie der dritte Datenblock der Datei „bs_klau.doc“ in
einem FAT-Dateisystem gefunden wird. Nennen oder zeichnen Sie
alle wesentlichen Schritte.
Aufgabe 4-9:
a) Wie würde die Verweisstruktur für die obige Datei /usr/bin/xemacs20.4 (5.158.908 Byte) aussehen, wenn das Dateisystem vier Kilobyte
große Blöcke und 32-Bit-Adressen benutzt?
b) Beschreiben Sie stichwortartig, wie die Daten der Datei bs.doc
(2.292.767 Byte) von UNIX auf einer Festplatte gefunden werden,
wenn 32-Bit Adressen benutzt werden. Nennen Sie alle wesentlichen Begriffe.
Hochschule Fulda, Fachbereich AI, Prof. Dr. S. Groß