• Keine Ergebnisse gefunden

Vorlesung Betriebssysteme I Thema 4: Grundlegende Begriffe, Teil 2 Robert Baumgartl 25. November 2020

N/A
N/A
Protected

Academic year: 2021

Aktie "Vorlesung Betriebssysteme I Thema 4: Grundlegende Begriffe, Teil 2 Robert Baumgartl 25. November 2020"

Copied!
19
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Vorlesung Betriebssysteme I

Thema 4: Grundlegende Begriffe, Teil 2

Robert Baumgartl

25. November 2020

(2)

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

(3)

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.

(4)

Beispiel für (Teil einer) Protokollbeschreibung Start

read() write()

open()

close()

Abbildung:Typische Präzedenzen bei Funktionen eines Dateisystems

(5)

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

(6)

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

(7)

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!)

(8)

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.

(9)

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

(10)

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

(11)

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

(12)

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

(13)

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

(14)

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.

(15)

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!

(16)

Prinzip eines Systemrufs

eintritt System−

System−

austritt

User Mode Kernel Mode

System−

dienst

Applikation Betriebssystem

Systemruf

(17)

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);

(18)

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

(19)

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?

Referenzen

ÄHNLICHE DOKUMENTE

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

I wartend → aktiv: nicht sinnvoll (Prozess erhält eine Ressource, auf die er wartet, rückgebender aktiver Prozess würde für Ressourcenrückgabe „bestraft“) I Es gibt stets

I abfangbares Signal: wenn kein Signalhandler installiert → Default-Aktion {Abbruch, Stop, Ignorieren} ausgeführt I wenn entsprechender Handler installiert → Handler wird.

I wenn Zeitscheibe nicht ausgenutzt, wird Priorität (leicht) erhöht → Unix bevorzugt interaktive Prozesse:. I interaktive Prozesse

I wenn ein Prozess blockiert (z. als Reaktion auf einen Interrupt oder durch eine Ressourcenfreigabe),. I wenn ein

pthread_create() Anlegen eines neuen Threads pthread_join() Warten auf Ende des Threads pthread_exit() Beenden des rufenden Threads pthread_detach() Abkoppeln vom Vater.

Abbildung: Zwei Funktionen klammern den kritischen Abschnitt Jeder, der auf eine gemeinsam genutzte Variable zugreift, muss diese Funktionen vor bzw.. nach dem

I wenn Zeitscheibe nicht ausgenutzt, wird Priorität (leicht) erhöht → Unix bevorzugt interaktive Prozesse:. I interaktive Prozesse