Vorlesung Betriebssysteme I
Thema 4: Grundlegende Begriffe, Teil 2
Robert Baumgartl
25. November 2020
Begriffe: Schnittstelle
I beschreibt denstatischenAspekt 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 –ApplicationProgrammer’sInterface) Beispiele: POSIX, Win32, Qt-API
Begriffe: Protokoll
I beschreibt dendynamischenAspekt einer Kommunikation (also den Ablauf)
I Beispiele
I Timingdiagramme für das Signalspiel I Semantikbeschreibung von Systemrufen I Präzedenzen für den Aufruf von Funktionen Protokoll und Schnittstelle bedingen einander!
Es gibtproprietäreundoffeneSchnittstellen und Protokolle.
Beispiel für (Teil einer) Protokollbeschreibung Start
read() write()
open()
close()
Abbildung:Typische Präzedenzen bei Funktionen eines Dateisystems
Protokollbeispiel
Kommunikation eines Kunden mit demClerkbei McDonald’s
t
"Hi."
"Hi."
"A Burger."
"Anything else?"
"No"
"Drink?"
"Large Coke."
"Takeaway?"
"No."
{"Hi", "Hello"}
Clerk Customer
{"Burger", "Fries",
"Chicken"}
{"Yes", "No"}
{"Coke", "Fanta", "Sprite"}
{"small", "medium", "large"} x
{"Yes", "No"}
"$4.99"
pay
"Bye."
"Bye."
{"Bye", "Get lost!"}
time
"Whaddaya wanna?"
computation
Aktivitäten und Ressourcen
In einem Rechensystem gibt es zwei Kategorien von grundsätzlichen Objekten
1. Aktivitäten: das, was abgearbeitet wird I Task
I Prozess I Thread I Routine I ...
I (siehe später)
2. Ressourcen: das, was Aktivitäten „zum Leben“ benötigen
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ätenangefordert,durch
eine zentrale Instanzzugeteiltund nach Nutzung durch die Aktivitätzurückgegeben(←Protokoll!)
Entziehbare Ressourcen
Def.Eineentziehbare Ressourcekann 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.
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
Exklusiv nutzbare Ressourcen
Def.Eineexklusiv nutzbareRessource darf zu jedem Zeitpunkt maximal voneinerAktivität genutzt werden.
I Beispiele: Hardware, (beschreibbarer) Speicher, zum Schreiben eröffnete Datei
I BS muss Exklusivität durchsetzen (→
Synchronisationsmechanismen)
I Zuteilung kann mittels verschiedener Strategien erfolgen:
I Fairness
I Minimierung der Wartezeit
I Garantie einer maximalen Wartezeit
Klassifikation und Beispiele für Ressourcen
entziehbar nicht entziehbar
Prozessor, Speicher Datei, alle verbrauchbaren BM gleichzeitig nutzbar exklusiv nutzbar
Programmcode, Datei, Speicher Prozessor, Drucker, Signal
wiederverwendbar verbrauchbar
Prozessor, Datei, Speicher Signal, Nachricht, Interrupt
physisch logisch oder virtuell
Prozessor, Speicher, Geräte Datei, Signal, Prozessor (!) Tabelle:Klassifikation von Ressourcen
Ressourcentransformation
log. Block, z.B. 4 kB Byte einer Datei
phys. Sektor, 512 Byte Ebene des Filesystems
Hardware−Ebene Ebene der Treiber Applikationsebene
Abbildung:Transformation der Ressourcephysischer SektorinDatei Es kann dabei sogar eine neue Qualität entstehen:
Speicher + Identifikator + Programmcode = neuer Prozess
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
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 nichtjedoch: typische Adminaufgaben
Die CPU muss User Mode/Kernel Mode unterstützen, d.h., verschiedene Privilegierungsmodi unterscheiden.
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!
Prinzip eines Systemrufs
eintritt System−
System−
austritt
User Mode Kernel Mode
System−
dienst
Applikation Betriebssystem
Systemruf
Ablauf eines Systemrufs
2 3 5
dispatch syscall
syscall handler 6
7 8
10
11 4
1
9
push nbytes push &buffer push fd call read adjust stack put # for read in register
return to caller TRAP into kernel
call library
program user user space
kernel space
count = read(fd, buffer, nbytes);
Ablauf von WriteFile() in Windows 2000/XP/Vista
Return to Caller int 0x2e
Do the Operation Return to Caller Return to Caller
Software Interrupt Win32 application
KERNEL32.DLL
Call NtWriteFile() Call WriteFile(...)
Dismiss Interrupt Call NtWriteFile() WriteFile() in
NtWriteFile() in NTDLL.DLL
SystemService in NTOSKRNL.EXE
NtWriteFile() in NTOSKRNL.EXE
Kernel Mode User Mode Win32−
specific
Used by all subsystems
Quelle: David Solomon,Inside Windows XP, Microsoft Press, 2000
Was haben wir gelernt?
1. Protokoll und Schnittstelle 2. Ressourcen
I entziehbare I exklusiv nutzbare
I Ressourcentransformation 3. Kernel Mode und User Mode 4. Was ist ein Systemruf?