Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Systemsoftware - Dateisysteme Dateisysteme - Übersicht 1 basierend auf Andrew S. Tanenbaums "Modern Operating Systems 2 nd Edition", Kapitel 1.5.4, 1.5.5,

Ähnliche Präsentationen


Präsentation zum Thema: "Systemsoftware - Dateisysteme Dateisysteme - Übersicht 1 basierend auf Andrew S. Tanenbaums "Modern Operating Systems 2 nd Edition", Kapitel 1.5.4, 1.5.5,"—  Präsentation transkript:

1 Systemsoftware - Dateisysteme Dateisysteme - Übersicht 1 basierend auf Andrew S. Tanenbaums "Modern Operating Systems 2 nd 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

2 Systemsoftware -Dateisysteme 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

3 Systemsoftware -Dateisysteme 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

4 Systemsoftware -Dateisysteme Dateisysteme - Übersicht 4 bei Microsofts Dateisystemen werden einzelne Medien mittels verschiedener Laufwerksbuchstaben angesprochen ( C:, D:,...)

5 Systemsoftware -I/O I/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

6 Systemsoftware -I/O I/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

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

8 Systemsoftware -I / O Ein / Ausgabe 8 Applikation Userspace Adressierung Kernelspace Geräte-unabhängige Schicht Geräte-abhängige Schich - Treibert Buffering etc. gemeinsam spezifisch Interrupt Treiber Kontroller HW Gerät

9 Systemsoftware -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)

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

11 Systemsoftware -I / O 11 Memory Mapped und Port-I/O Port-I/O Memory Mapped I/O hybride Version

12 Systemsoftware -I / O 12 Memory Mapped und Port-I/O

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

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

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

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

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

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

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

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

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

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

23 Systemsoftware -I / O 23 Gerät-unabhängige I/O Software uniformes Interface Buffering Fehlerbehandlung Allokation & Freigabe von Geräten Umsetzung von Blockgrössen

24 Systemsoftware -I / O 24 OS muss nur ein Interface definieren und unterstützen Unix - special Files: $ ls -l /dev/hda brw-rw root disk 3, 0 Jun /dev/hda Dateityp : Blockdevice 2 - Berechtigungen 3 - Anzahl Hardlinks 4 - Besitzer 5 - Gruppe 6 - Major Number-> Treiber 7 - Minor Number-> Identifikation des Geräts 8 - letzte Änderung 9 - Namen Unter Unix kann ein special File mittels mknod angelegt werden Uniformes Treiber Interface

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

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

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

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

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

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

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

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

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

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

35 Systemsoftware -I / O 35 RAID 0 bis RAID 2 RAID

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

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

38 Systemsoftware -I / O 38 RAID 3 bis RAID 5 RAID


Herunterladen ppt "Systemsoftware - Dateisysteme Dateisysteme - Übersicht 1 basierend auf Andrew S. Tanenbaums "Modern Operating Systems 2 nd Edition", Kapitel 1.5.4, 1.5.5,"

Ähnliche Präsentationen


Google-Anzeigen