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

Slides:



Advertisements
Ähnliche Präsentationen
Ext2. Geschichte Minixerhebliche Beschränkungen extfs ext2erstmals aufhebung aller drängenden Beschränkungen ext3erweiterung um Journaling.
Advertisements

Powerpoint-Präsentation
Einer der Dienste im Internet
Bauteile des PC´c Werden vorgestellt: PC-Gehäuse Prozessor Tastatur
Daten - Sicherung Begriffsdefinition Arten der Datensicherung
Wiederholung Betriebssystem bietet eine Abstraktion der Hardware an:
IO - Hardwarestruktur, allgemein
Übersicht RAID-Verfahren Labor für Betriebsdatenverarbeitung
C Tutorium – Semaphoren –
Lehrmaterial Grundlagen EDV
Pflege der Internetdienste
Dateisysteme Was sind Dateisysteme (Definition)
SAP R/3 - Speichermanagement
Netzwerke im Dialogmarketing
Zentraleinheit CPU, Motherbord, RAM
Lisa Gorkin, Barbara Herzgen, Fabian Küpper, Ailar Tehrani HG13 Köln / Steckkarten / Schnittstellen Hardwareprojekt.
Zentraleinheit CPU, Motherbord, RAM
E / IDE Enhanced / Integrated Device Elektronics
WS 2009/10 1 Systeme 1 Kapitel 1 Aufbau von Rechnern.
10 Streams JavaHS Merseburg WS 05/06 E/A - Ströme (Streams) in Java.
PS: Basisinformationstechnologie Jens Alvermann
Windows Explorer.
1 Named Pipes alias FIFO Haben einen Eintrag im Dateisystem und sind somit durch Zugriffsrechte identifizierbar Ermöglichen die Kommunikation zwischen.
1 Linux Paging, Caching und Swapping. 1 Vortragsstruktur Paging – Das Virtuelle Speichermodell –Die Page Table im Detail –Page Allocation und Page Deallocation.
Haupt- und Arbeitsspeicher
Vorlesung 2 Rechnerarchitektur Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter B. Ladkin
Vorlesung 3: Verschiedenes Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter B. Ladkin
Vorlesung 5: Interrupts Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter B. Ladkin Wintersemester.
Technische Informatik II Rechnerarchitektur und Betriebssysteme Universität Bielefeld – Technische Fakultät AG Rechnernetze und verteilte Systeme Peter.
Vorlesung 5 Interrupts Peter B. Ladkin
Rechnerarchitektur Vorlesung 2 Peter B. Ladkin
UNIX-Dateisystem Vortrag: Ronny Kuhnert am
1 Vorlesung 3 Verschiedenes Peter B. Ladkin
Referat zum Thema „DLL“
Raid 0.
Ende Christian SeitzJochen Braun. Ende Der CMOS Standard Chip.
Netzwerke Peer-to-Peer-Netz Client-Server Alleinstehende Server
Ordner- und Dateistrukturen in Windows 7 (Teil 1)
© Gabriele Sowada © Gabriele Sowada 2 Manuell Beispiel 1 demonstriert die Vorgehensweise bei der manuellen Programm- Eingabe am.
Duo- und Quad Prozessor-Architektur
Name des Vortragenden Klasse Ort / tt.mm.jjjj Beschreibung Zentraleinheit CPU, Motherbord, RAM.
Systeme 1 Kapitel 4 Prozesse WS 2009/10.
Betriebssysteme allgemein
Aufbau eines von-Neumann- Rechners Marcel Waldvogel.
Dateisysteme Marcel Waldvogel. Marcel Waldvogel, IBM Zurich Research Laboratory, Universität Konstanz, , 2 Dateisysteme Was ist eine Datei?
Begriffe -Technische Geräte
INTEL Pentium 4 Prozessor
HORIZONT 1 XINFO ® Das IT - Informationssystem Java Scanner HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 / 540.
Copyright 2011 Bernd Brügge, Christian Herzog Grundlagen der Programmierung TUM Wintersemester 2011/12 Kapitel 11, Folie 1 2 Dr. Christian Herzog Technische.
Betriebssysteme: Unix
HORIZONT 1 XINFO ® Das IT - Informationssystem PL/1 Scanner HORIZONT Software für Rechenzentren Garmischer Str. 8 D München Tel ++49(0)89 / 540.
Computerorientierte Physik VORLESUNG
Ganzheitliches Projekt-, Ressourcen- und Qualitätsmanagement 1 Reports und AddOns Auf den folgenden Seiten wird Ihnen die Funktionsweise der Reports und.
Betriebssysteme Übung Tutorium „System Calls & Multipgrogramming“
Systemsoftware und Betriebssysteme
Meldungen über Ethernet mit FINS/UDP
Datenverarbeitung im PC
Kommandozeile und Batch-Dateien Molekulare Phylogenetik – Praktikum
1 Proseminar TUM Informatik PalmPilot und Handspring: Technik, Programmierung, Anwendung Hacks Daniel Schweighart
Arbeitsspeicher Eine Präsentation von - Namen wurden entfernt -
Grundlagen, Prinzipien und Aufgaben eines Betriebssystems
->Prinzip ->Systeme ->Peer – to – Peer
Autor: Timo Pagel Nutzung: Diese Lernkarten sind für die Nutzung mit OpenCards gedacht Siehe dazu
Software-RAID-5 mit Windows 2000 Professional Projektarbeit 2003.
WINDOWS 2003 Server. Standart Varianten für 32 Bit: Web Edition: Unterstützt Single(1)- oder Dual(2)-Prozessor-Systeme und bis zu 2 GB RAM 32-Bit Standard.
NE2000: Hardware und Design eines Treibers 1 AKBPII: Abschlusspräsentation NE2000: Hardware und Design eines prototypischen Treibers bearbeitet.
I D E – Schnittstelle. 1.I D E 2.(E) I D E 3.Erweiterung.
Von Bits, Bytes und Raid Eine Schnuppervorlesung Inhalt
RAID-Systeme - Standards - Leistungsmerkmal - Redundanz - Datensicherheit eine Präsentation von Jochen Throm an der Berufsakademie Mosbach.
LSI8204ELP & Onboard SATA Controller Allgemeines: – Nicht konfigurierte Festplatten werden automatisch als Single Disks bzw. Logical Drives (einzelne Laufwerke)
 Präsentation transkript:

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

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

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

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

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

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

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

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

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)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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