Vorlesung Betriebssysteme I - Thema 4: Grundlegende Begriffe, Teil 2

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