Date post: | 05-Apr-2015 |
Category: |
Documents |
Upload: | gotthard-agena |
View: | 105 times |
Download: | 0 times |
Sys
tem
soft
war
e -
Dat
eisy
stem
eDateisysteme - Übersicht
1
basierend auf Andrew S. Tanenbaums "Modern Operating Systems 2nd Edition", Kapitel 1.5.4, 1.5.5, 5, 6, 10, 11
Filesysteme werden meist auf ein Medium gespeichert (im Gegensatz zu Filesystemen, welche z.B. ausschliesslich im RAM bestehen)
Medien werden über Ein / Ausgabe Systeme angesprochen:-I / O Gerät, HW
zentrale Funktion eines OS ist ein abstraktes Interface zur HW zu liefern
der Zugriff auf I/O geschieht über Syscall:- in C: open, read, write greifen auf Systemfunktionen zu
Sys
tem
soft
war
e -D
atei
syst
eme
Dateisysteme - Übersicht
2
FS ist üblicherweise in Verzeichnisse & Dateien strukturiert- hierarchische Struktur
Baumförmig:-Unix: 1 Wurzel (root, /)-Microsoft Systeme bis Win2000: mehrere Wurzeln, danach mount Points möglich
Dateien werden über Pfad angesprochen jeder Prozess besitzt einen aktuellen eigenen Pfad (current working directory)
relative Pfade führen vom current working directory aus wechsel des "current directory" mit cd (change directory) absoluter Pfad:- Unix: /home/testuser- Windows: C:\Programme- wobei C: das Laufwerk bezeichnet
Sys
tem
soft
war
e -D
atei
syst
eme
Dateisysteme - Übersicht
3
Applikationen arbeiten mit File Deskriptoren (FD) bei open bekommt die Applikation einen FD die Dateidesktiptoren werden vom OS verwaltet
Verschiedene Medien und Dateisysteme werden unter Unix mittels mount miteinander verbunden
dabei wird ein Dateisystem in ein angelegtes Verzeichnis in den Root Baum eingebunden
Sys
tem
soft
war
e -D
atei
syst
eme
Dateisysteme - Übersicht
4
bei Microsofts Dateisystemen werden einzelne Medien mittels verschiedener Laufwerksbuchstaben angesprochen (C:, D:, ...)
Sys
tem
soft
war
e -I
/OI/O - Übersicht
5
unter Unix tauchen Geräte unter /dev als special Files auf Geräte "sehen" aus wie normale Dateien aus und können mit den gleichen Mitteln manipuliert werden:-Programmatisch per: open, read, write, ...
-von der Kommandozeile aus per cp, cat, grep, ...
Unix versucht alle Ressourcen dem Benutzer als Dateien anzubieten
Geräte werden unterteilt in Block und Character Devices unterteilt
Block Devices:- HD [/dev/hda], CD ROM [/dev/cdrom], ...- Übertragung von Daten in Blöcken- Random Access
Character Devices:- Maus [/dev/mouse], Drucker [/dev/lp0], Netzwerk- nur einzelne Zeichen können übertragen werden
einige Geräte passen nicht ins Schema:-Uhr (clock)
-generieren Interrupts
Sys
tem
soft
war
e -I
/OI/O - Übersicht
6
unter Unix ist auch Kommunikation zwischen Prozessen möglich, indem auf die gleichen Werkzeuge zugegriffen wird:-Pipes
Pipes stellen Pseudodateien dar für die Beteiligten Prozesse sieht die Kommunikation wie Lese- und Schreibzugriffe auf Dateien aus
Sys
tem
soft
war
e -I
/ O
Ein / Ausgabe
7
Hauptfunktion eines OS ist die Kontrolle und Verwaltung der Ein / Ausgabe Geräte- Kommandos an Gerät schicken, Antworten decoden- Geräte initialisieren- Interrupts behandeln- Fehler behandeln-einfach zu benutzendes Interface zur Verfügung stellen- möglichst uniformes Interface zu allen Geräten bieten
Sys
tem
soft
war
e -I
/ O
Ein / Ausgabe
8
ApplikationUserspace
AdressierungKernelspace
Geräte-unabhängigeSchicht
Geräte-abhängigeSchich - Treibert
Buffering
etc.
gemeinsam
spezifisch
Interrupt Treiber
Kontroller
HW
Gerät
Sys
tem
soft
war
e -I
/ O
Ein / Ausgabe
9
Arbeit eines Kontrollers:-Umsetzung von virtueller auf physische Adressen-Fehlerkorrektur-Buffering (serieller Strom v. Bits & Bytes -> zusammenfügen z.B zu Blöcken)
Sys
tem
soft
war
e -I
/ O
10
Kontroller hat Register, wie eine CPU wie Kommuniziert CPU mit Kontroller
Port I/O:-IN REG, Port-OUT Port, Reg-> Spezielle Assembler Befehle- bei Mainframes verwendet (IBM 360)
- Adresse wird auf Bus gelegt- Leitung für Port I/O Signalisation wird gesetzt
Memory-Mapped I/O:- modernere Variante, ab PDP-11
Memory Mapped und Port-I/O
Sys
tem
soft
war
e -I
/ O
11
Memory Mapped und Port-I/O
Port-I/O Memory Mapped I/O hybride Version
Sys
tem
soft
war
e -I
/ O
12
Memory Mapped und Port-I/O
Sys
tem
soft
war
e -I
/ O
13
bei Pentium:-Port I/O -> 0-64K-Memory Mapped I/O -> 640K-1M
Vor/Nachteile: Port-IO verwendet spezielle Maschinen-Befehle-> Programmierung aus Hochsprache, welche direkte Adressierung unterstützen -“wie C, C++ - nicht möglich-> es muss Assembler verwendet werden
MMU (Memory Management Unit)/CPU bieten Speicherschutz,Port-I/O jedoch ist ein Maschinenbefehl, der im Prinzip von jedem User verwendet werden kann-> Zusätzlicher Schutzmechanismus nötig
Memory-Mapped I/O Operationen sind herkömmliche Operationen auf dem Speicher-> die ganze Palette von Maschinenbefehlen kann verwendet werden
hingegen werden Speicheroperationen in der CPU gecached (L1, L2)-> spezieller Mechanismus muss vorhanden sein um Speicherbereiche vom Caching auszuschliessen
Memory Mapped und Port-I/O
Sys
tem
soft
war
e -I
/ O
14
Programmiertes I/O ohne DMA: Controller liest Bits von HW macht ECC sobald Byte oder Block drin-> Interrupt
CPU reagiert auf Internet CPU liest Byte nach Byte aus Kontroller aus-> hohe Belastung für die CPU
DMA
Sys
tem
soft
war
e -I
/ O
15
Mit DMA: DMA Kontroller hat direkten Zugriff auf PCI und Speicher-Bus 1. Anfrage an I/O Kontroller - CPU macht I/O Anfrage an I/O Kontroller - dieser stellt Daten bereit
2.DMA Programmierung: - CPU programmiert DMA Controller: - I/O Port - Anzahl zu übertragender Bytes - Speicheradresse der Daten
3. DMA überträgt Daten vom I/O Kontroller: - legt Port I/O oder Speicheradresse auf Bus - wartet auf Ack. vom Kontroller - liesst Daten aus Kontroller aus und überträgt sie in Speicher - kontrolliert, ob alle Daten übertragen wurden? - evtl. weitere Daten holen
4. Bescheid an CPU: - DMA legt Interrupt an - Daten liegen im RAM, wo sie von CPU verarbeitet werden können
DMA
Sys
tem
soft
war
e -I
/ O
16
weiterentwickeltes DMA ermöglicht auch direktes Kopieren zwischen Geräten:- Kopieren zwischen HDs, Dateitransfer über's Netz, Abspeichern von Input Daten
DMA
Sys
tem
soft
war
e -I
/ O
17
Ereignis wird von DMA, Kontrollern oder CPU mittels einer Signalleitung auf dem Bus angezeigt
CPU unterbricht ihre Arbeit speichert Ihren Zustand (Register...) auf dem Stack liest Interrupt Nummer aus verzweigt auf Routine zur Behandlung des Interrupts, deren Adresse in einer Tabelle im Speicher für den entsprechenden Interrupt registriert ist
führt Routine aus kehrt zurück, stellt Zustand wieder her und fährt mit ursprünglicher Arbeit fort
bei modernen CPUs mit paralellen Einheiten und Pipelines ist das Erfassen und Abspeichern des momentanen Zustands non-trivial
Interrupts
Sys
tem
soft
war
e -I
/ O
18
Device/Geräteunabhängigkeit- ein Programm sollte auf ein Gerät zugreifen können, ohne das Gerät speziell behandeln zu müssen
Uniforme Benennung /dev/hda
/proc/cpuinfo /mnt/floppy /home/tpo/README
Fehlerbehandlung-Fehler in möglichst tiefen Schichten behandeln- nur im Falle, dass dies nicht möglich ist, Fehler weitergeben
I/O Software Prinzipien
Sys
tem
soft
war
e -I
/ O
19
synchrone/asynchrone Datenübertragung- physische I/O meist asynchron, durch Interrupts signalisiert- Benutzer I/O meist synchron: -einfacher -weniger Fehleranfällig
Buffering- Zwischenspeicherung- Speicherung von oft verwendeten Daten- Übersetzung zwischen Formaten
Geteilte / Nicht geteilte Ressourcen- mehrere Benutzer (z.Bsp. auf einer HD)- 1 Benutzer/Tape- OS muss die Ressourcen entsprechend verwalten
I/O Software Prinzipien
Sys
tem
soft
war
e -I
/ O
20
Programmierter I/O: Polling/busy waiting
Interrupt gesteuerter I/O: Benutzer-Prozess muss explizit blockiert werden indem Scheduler aufgerufen wird und somit während dem Warten ein anderer Prozess CPU Time bekommt
bei Interrupt -Aufwecken des korrekten Treibers, auslesen der Daten
sobald alle Daten übertragen sind Rückkehr in Userspace
I/O in Software
Sys
tem
soft
war
e -I
/ O
21
OS muss damit rechnen, dass Treiber von aussen kommen-> Plugin Architektur / Ladbare Treibers- unter Linux installation von Treibern mittels modprobe und insmod / rmmod
OS muss genaues Modell liefern, was Treiber darf und was nicht
I/O Software Schichten
Sys
tem
soft
war
e -I
/ O
22
Aufruf Parameter- validieren- umwandeln abstrakt /konkret
Überprüfen, ob Gerät in gebrauch -> in Queue Kommandos an Gerät schicken- Kommando angekommen?- nächster Befehl
evtl. Blockieren und auf Interrupt warten evtl. Reentranz beachten- zweiter Aufruf seitens anderen Benutzers- weitere Daten kommen, während vorherige erst bearbeitet werden
Hotplugging- Geräte werden eingesteckt/verschwinden während Gebrauch
Treiber dürfen keine Syscalls absetzen (mit Ausnahmen)
Gerätetreiber Funktionalität
Sys
tem
soft
war
e -I
/ O
23
Gerät-unabhängige I/O Software
uniformes Interface
Buffering
Fehlerbehandlung
Allokation & Freigabe von Geräten
Umsetzung von Blockgrössen
Sys
tem
soft
war
e -I
/ O
24
OS muss nur ein Interface definieren und unterstützen Unix - special Files:
$ ls -l /dev/hdabrw-rw---- 1 root disk 3, 0 Jun 28 2001 /dev/hda1 2 3 4 5 6 7 8 9
1 - Dateityp : Blockdevice2 - Berechtigungen3 - Anzahl Hardlinks4 - Besitzer5 - Gruppe6 - Major Number -> Treiber7 - Minor Number -> Identifikation des Geräts8 - letzte Änderung9 - Namen
Unter Unix kann ein special File mittels mknod angelegt werden
Uniformes Treiber Interface
Sys
tem
soft
war
e -I
/ O
25
kein Buffering: z.Bsp bei Tastatur-Eingabe Daten werden einzeln in Userspace geschrieben
Userspace Buffering: Daten werden in Userspace geschrieben und Prozess wieder geweckt, wenn alle Daten übertragen sind
was passiert wenn Page in die geschrieben wird ausgelagert ist?-> evtl. Datenverlust
Buffering im Kernel: Daten werden in Kernelspace geschrieben und sobald vollständig vorhanden in Userspace kopiert
Problem entschärft jedoch immer noch möglich, wenn zum Zeitpunkt des kopierens Userspace page ausgelagert ist
Double Buffering im Kernel: sobald Buffer im Kernel voll wird mit Übertragung angefangen, gleichzeitig jedoch ein weiterer Kernel-Buffer angelegt, welche eventuelle weitere Daten entgegennehmen kann
Buffering
Sys
tem
soft
war
e -I
/ O
26
Fehler während I/O häufig sind sehr Gerätespezifisch gemeinsames Framework macht Sinn unter Linux - Fehler erscheinen: - evtl. in eigener Fehlerkonsole - unter /var/log/kern.log - werden in kleinem Kernelspeicher gehalten und können bei Bedarf per dmesg ausgelesen werden
Fehlerbehandlung
Sys
tem
soft
war
e -I
/ O
27
das Problem der De/Allokation wird dem OS teilweise abgenommen, indem das Gerät per:- open - geöffnet- close - geschlossen- unter Unix per mount angebunden werden muss
somit kann das OS Ressourcen (Buffer, ...) erst dann alloziieren, wenn ein gerät wirklich verwendet wird
andere Ressourcen, DMA Speicher, Interrupts werden vom Betriebbssystem zusammen mit dem BIOS während dem Booten, bzw. beim Laden des Treibers alloziiert
Allokation/Deallokation von Geräten
Sys
tem
soft
war
e -I
/ O
28
verschiedene Geräte haben unterschiedliche Blockgrössen dies sollte den Benutzer jedoch nicht belasten die Übersetzung der Blockgrössen in eine für den Benutzer einheitliche Grösse kann das OS übernehmen
Geräteabhängige Blockgrössen
Sys
tem
soft
war
e -I
/ O
29
in den allermeisten Fällen (99%?) greift der Benutzer nie direkt auf Syscalls zu, sondern verwenden Bibliotheksaufrufe
C, C++, Perl z.B. libc -> open, read, write Java -> I/O Klassen
das Bibliotheksinterface ist unter Unix durch den POSIX Standard definiert-> Unabhängigkeit von OS-> open funktioniert gleich unter Unix, Windows, Mac, ...
Benutzer ruft Bibliotheksfunktion auf diese legt Argumente in Register und Stack und führt ein TRAP (Maschinenbefehl) aus
TRAP wechselt im Kernel Modus, ähnlich wie bei Interrupts CPU Zustand wird gespeichert Trap-Routine wird in Trap Tabelle nachgeschlagen und ausgeführt Routine liest aus Reg. & von Stack Argumente führt Anfrage aus Rückkehr wie bei Interrupts
Benutzer -I/O
Sys
tem
soft
war
e -I
/ O
30
z.T. funktioniert I/O nicht direkt über O/S sondern über Daemonen dabei können folgende Kommunikationsmittel verwendet werden:- Sockets- Shared Memory- Named-Pipes- Spool Verzeichnisse
Benutzer -I/O
Sys
tem
soft
war
e -I
/ O
31
HDs sind oft der "Endspeicher" Zugriff geschieht über mehrere Schritte:- Benutzercode- Bibliothek- Treiber im Kernel- CPU an DMA- DMA an IDE Kontroller- IDE Kontroller and HD Kontroller
IDE=Integrated Drive Electronics
Festplatten
Sys
tem
soft
war
e -I
/ O
32
Anfrage an die Festplatte geschahen früher in der Form
(Zyl, Kopf, Sektor), wobei Sektor = 512 Bytes
daraus ergibt sich eine maximale HD-Grösse von 32 GB da die Zyl, Kopf, Sektor Limiten schon früher der phyischen Geometrie nicht mehr entsprachen, gaben HD Hersteller nach aussen virtuelle Geometrien an, welche der Kontroller in physische Koordinaten umsetze
heute werden HDs mittels LBA -Logic Block Adressing angesprochen dabei wird nur noch die absolute Nummer des Blocks angegeben
Festplatten
Sys
tem
soft
war
e -I
/ O
33
Moorsches Gesetz: alle 18 Monate Verdoppelung der Anzahl der Transistoren in einer CPU (auch ~ Verdoppelung der Geschwindigkeit)
Disk Seek jedoch (suche eines Sektors auf einer HD): 1970: 50ms, heute: 10ms
Schere zwischen CPU und HD Geschwindigkeit öffnet sich Kann durch viel RAM gemildert werden 1988 Patterson- Redundant Array of Inexpensive Disks- bessere Performance- und/oder grössere Zuverlässigkeit
RAID
Sys
tem
soft
war
e -I
/ O
34
RAID 0 (Striping): siehe Grafik auf nächsten Seiten schneller, da von verschieden Platten gelesen wird wenn OS jeweils nur 1 Block liest kein Vorteil Nachteil : Sobald dass ein Platte defekt ist, ist das ganze Filesystem defekt
RAID 1 (Mirroring): Schreiben immer auf 2 Platten gleichzeitig Lesen entweder von einer oder der anderen Palte => Doppelter Durchsatz
es muss eine Art geben Fehler zuverlässig zu entdecken Recovery -> HD kopieren Nachteil : 50% Platzverlust
RAID
Sys
tem
soft
war
e -I
/ O
35
RAID 0 bis RAID 2
RAID
Sys
tem
soft
war
e -I
/ O
36
RAID 0/1 auch RAID 10 genannt: Kombination von Raid 0 und Raid 1 Vorteil: Schnell und Redundant
RAID 2: Stripes haben nur grösse von Bits oder Bytes einige Disks werden für Hamming bzw. ECC (Error Checking & Correction) Code verwendet
HD müssen synchron sein, sonst müssen die Platten gegenseitig aufeinander warten
Parallel schreiben => Grösserer Durchsatz Nachteil: Viel Aufwand für Hamming Code berechnung => Elektronik
RAID 3: wie 2, ausser dass für die Parität ausschliesslich eine HD verwendet wird.
Parität wir mit XOR gemacht Fehlerkorrektur möglich, wenn defekte HD bekannt Engpass ist das Paritätsdrive (hohe Belastung)
RAID
Sys
tem
soft
war
e -I
/ O
37
RAID 4: funktioniert wieder mit Stripes ein Paritätsdrive
RAID 5: Parität wird im Round-Robbin Verfahren auf alle Disks verteilt Vorteil: keine höherbelasteten HD's (da Parritäts Information auf allen HD's verteilt)
kleinerer Platzverlust
RAID
Sys
tem
soft
war
e -I
/ O
38
RAID 3 bis RAID 5
RAID