Vorlesung Betriebssysteme I Thema 4: Grundlegende Begriffe, Teil 2 Robert Baumgartl 16. November 2015 1 / 19 Begriffe: Schnittstelle I beschreibt den statischen Aspekt einer Kommunikationsbeziehung I Kommunikation über Schnittstelle kann synchron und asynchron erfolgen I kann in Hardware oder in Software vorliegen Hardwareschnittstellen – Beispiele I Peripheral Component Interconnect (PCI) I Controller Area Network (CAN) I InfiniBand Softwareschnittstellen = Gesamtheit aller nutzbaren Funktionen einer Bibliothek, eines Betriebssystems, einer Middleware (aka API – Application Programmer’s Interface) Beispiele: POSIX, Win32, Qt-API 2 / 19 Begriffe: Protokoll I I beschreibt den dynamischen Aspekt einer Kommunikation (also den Ablauf) Beispiele I I I Timingdiagramme für das Signalspiel Semantikbeschreibung von Systemrufen Präzedenzen für den Aufruf von Funktionen Protokoll und Schnittstelle bedingen einander! Es gibt proprietäre und offene Schnittstellen und Protokolle. 3 / 19 Beispiel für (Teil einer) Protokollbeschreibung Start open() read() write() close() Abbildung: Typische Präzedenzen bei Funktionen eines Dateisystems 4 / 19 Protokollbeispiel Kommunikation eines Kunden mit dem Clerk bei McDonald’s Clerk Customer "Hi." "Hi." {"Hi", "Hello"} "Whaddaya wanna?" "A Burger." {"Burger", "Fries", "Chicken"} "Anything else?" {"Yes", "No"} "No" "Drink?" "Large Coke." {"small", "medium", "large"} x {"Coke", "Fanta", "Sprite"} "Takeaway?" "No." {"Yes", "No"} computation time "$4.99" pay "Bye." {"Bye", "Get lost!"} "Bye." t 5 / 19 Aktivitäten und Ressourcen In einem Rechensystem gibt es zwei Kategorien von grundsätzlichen Objekten 1. Aktivitäten: das, was abgearbeitet wird I I I I I I Task Prozess Thread Routine ... (siehe später) 2. Ressourcen: das, was Aktivitäten „zum Leben“ benötigen 6 / 19 Ressourcen I „alles das, was keine Aktivität ist“ I Aktivitäten konkurrieren um Ressourcen I existieren in allen Schichten eines Systems I Beispiele: Datei, Festplatte, Programmcode, Hauptspeicherblock I = Hardware und alle passiven Abstraktionen eines Rechensystems (d. h. auch CPU und Geräte) I besitzen zu jedem Zeitpunkt einen inneren Zustand (z. B. CPU: Gesamtheit der Inhalte aller Register) I Ressourcen werden durch Aktivitäten angefordert,durch eine zentrale Instanz zugeteilt und nach Nutzung durch die Aktivität zurückgegeben(← Protokoll!) 7 / 19 Entziehbare Ressourcen Def. Eine entziehbare Ressource kann nach ihrer Zuteilung der Aktivität jederzeit entzogen werden. Der Vorgang ist für die Aktivität transparent. Ablauf: 1. Aktivität anhalten 2. Zustand der Ressource sichern (z.B. auf Datenträger schreiben) 3. [Ressource anderweitig verwenden] 4. Zustand der Ressource restaurieren 5. Aktivität fortsetzen Voraussetzung für Entziehbarkeit: I Zustand der Ressource ist vollständig auslesbar I Zustand der Ressource kann beliebig manipuliert werden. 8 / 19 Entziehbare Ressourcen - Beispiele I CPU (Zustand kann in den Hauptspeicher ausgelagert werden) I Hauptspeicherblock (Zustand kann auf Massenspeicher ausgelagert werden) I Datei Die meisten Ressourcen sind nicht entziehbar: I CPU-Cache I Drucker I Netzwerkkarte 9 / 19 Exklusiv nutzbare Ressourcen Def. Eine exklusiv nutzbare Ressource darf zu jedem Zeitpunkt maximal von einer Aktivität genutzt werden. I Beispiele: Hardware, (beschreibbarer) Speicher, zum Schreiben eröffnete Datei I BS muss Exklusivität durchsetzen (→ Synchronisationsmechanismen) Zuteilung kann mittels verschiedener Strategien erfolgen: I I I I Fairness Minimierung der Wartezeit Garantie einer maximalen Wartezeit 10 / 19 Klassifikation und Beispiele für Ressourcen entziehbar Prozessor, Speicher gleichzeitig nutzbar Programmcode, Datei, Speicher wiederverwendbar Prozessor, Datei, Speicher physisch Prozessor, Speicher, Geräte nicht entziehbar Datei, alle verbrauchbaren BM exklusiv nutzbar Prozessor, Drucker, Signal verbrauchbar Signal, Nachricht, Interrupt logisch oder virtuell Datei, Signal, Prozessor (!) Tabelle: Klassifikation von Ressourcen 11 / 19 Ressourcentransformation Applikationsebene Ebene des Filesystems Ebene der Treiber Byte einer Datei log. Block, z.B. 4 kB phys. Sektor, 512 Byte Hardware−Ebene Abbildung: Transformation der Ressource physischer Sektor in Datei Es kann dabei sogar eine neue Qualität entstehen: Speicher + Identifikator + Programmcode = neuer Prozess 12 / 19 User Mode und Kernel Mode I Idee: nur in einem privilegierten Modus (Kernel Mode) dürfen alle Operationen ausgeführt werden (z.B. Zugriff auf die Hardware, Manipulation von systemrelevanten Datenstrukturen wie der Prozesstabelle) I dieser ist dem Betriebssystem vorbehalten I Applikationen werden in einem restriktiven Modus (User Mode) ausgeführt (z.B. erfolgt automatische Prüfung der Gültigkeit jeder Speicherreferenz) I bei Verletzung der Restriktionen wird die Applikation abgebrochen I Unterscheidung Kernel Mode vs. User Mode analog zur Einteilung Administratoren vs. gewöhnliche Nutzer I Ziel: Etablierung eines grundlegenden Schutzkonzeptes 13 / 19 User Mode und Kernel Mode Was darf man nur im Kernel Mode? I neuen Prozess erzeugen I Treiber ins System laden oder daraus entfernen I generell: Diensterbringung des Betriebssystems I nicht jedoch: typische Adminaufgaben Die CPU muss User Mode/Kernel Mode unterstützen, d.h., verschiedene Privilegierungsmodi unterscheiden. 14 / 19 Systemruf Damit der „gewöhnliche“ Nutzer die Funktionen des Kernels überhaupt anwenden darf, gibt es den Mechanismus des Systemrufs. I BS bietet dem Programmierer Funktionen, diese werden über Systemrufe zur Verfügung gestellt I Gesamtheit aller Systemrufe eines BS ist dessen Application Programmer’s Interface (API) I Nutzung analog den Funktionen einer Bibliothek mit einem Unterschied: Diensterbringung erfolgt im Kernel Mode I → gewöhnlicher Funktionsaufruf als Mechanismus unbrauchbar! I Systemrufe können blockieren! 15 / 19 Prinzip eines Systemrufs User Mode Kernel Mode System− eintritt Applikation Betriebssystem System ruf System− dienst System− austritt 16 / 19 Ablauf eines Systemrufs count = read(fd, buffer, nbytes); user space return to caller library call TRAP into kernel 5 put # for read in register 10 4 11 9 adjust stack 6 call read kernel space dispatch syscall 3 push fd 2 push &buffer 1 push nbytes 7 user program 8 syscall handler Abbildung: Allgemeiner Ablauf eines Systemrufs read() 17 / 19 Ablauf von WriteFile() in Windows 2000/XP/Vista Win32 application Call WriteFile(...) KERNEL32.DLL Call NtWriteFile() Return to Caller NtWriteFile() in NTDLL.DLL int 0x2e Return to Caller WriteFile() in Win32− specific Used by all subsystems User Mode Kernel Mode Software Interrupt SystemService in NTOSKRNL.EXE NtWriteFile() in NTOSKRNL.EXE Call NtWriteFile() Dismiss Interrupt Do the Operation Return to Caller Quelle: David Solomon, Inside Windows XP, Microsoft Press, 2000 18 / 19 Was haben wir gelernt? 1. Protokoll und Schnittstelle 2. Ressourcen I I I entziehbare exklusiv nutzbare Ressourcentransformation 3. Kernel Mode und User Mode 4. Was ist ein Systemruf? 19 / 19
© Copyright 2025 ExpyDoc