• Keine Ergebnisse gefunden

Zu meiner Person

N/A
N/A
Protected

Academic year: 2022

Aktie "Zu meiner Person"

Copied!
466
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Roland Wism ¨uller

Betriebssysteme / verteilte Systeme rolanda.dwismuellera@duni-siegena.dde Tel.: 0271/740-4050, B ¨uro: H-B 8404

Betriebssysteme I

WS 2021/2022

(2)

Betriebssysteme I

WS 2021/2022

0 Organisation

(3)

Zu meiner Person

➥ Studium der Informatik an der Techn. Univ. M ¨unchen

dort 1994 promoviert, 2001 habilitiert

➥ Seit 2004 Prof. f ¨ur Betriebssysteme und verteilte Systeme

Forschung: Sichere komponentenbasierte Systeme; Muster- erkennung in Netzwerkdaten; parallele und verteilte Systeme

Mentor f ¨ur die Bachelor-Studieng ¨ange Informatik 2012 mit Ne- benfach/Vertiefung Mathematik

e-mail: rolanda.dwismuellera@duni-siegena.dde

Tel.: 0271/740-4050

B ¨uro: H-B 8404

Sprechstunde: Mo., 14:15-15:15 Uhr

(4)

Zur Fachgruppe

Betriebssysteme / verteilte Systeme“

Andreas Hoffmann

andreas.hoffmann@uni-...

0271/740-4047 H-B 8405

El. Pr ¨ufungs- und ¨Ubungssysteme

IT-Sicherheit

Web-Technologien

Mobile Anwendungen

Damian Ludwig

damian.ludwig@uni-...

0271/740-2533 H-B 8402

Capability-Systeme

Compiler

Programmiersprachen

Felix Breitweiser

felix.breitweiser@uni-...

0271/740-4719

Betriebssysteme

Programmiersprachen

Virtuelle Maschinen

(5)

Lehrangebot

Vorlesungen/Praktika

➥ Rechnernetze I, 5/6 LP (jedes SoSe)

➥ Rechnernetze Praktikum, 5/6 LP (jedes WiSe)

➥ Rechnernetze II, 5/6 LP (jedes SoSe)

➥ Betriebssysteme I, 5/6 LP (jedes WiSe)

➥ Parallelverarbeitung, 5/6 LP (jedes WiSe)

➥ Verteilte Systeme, 5/6 LP (jedes SoSe)

(6)

Lehrangebot ...

Projektgruppen

➥ z.B. Sichere Zusammenarbeit von Softwarekomponenten

➥ z.B. Konzepte zur sicheren Verwaltung von Linux-basierten Thin Clients

Abschlussarbeiten (Bachelor, Master)

➥ Themengebiete: sichere virtuelle Maschine, Parallelverarbeitung, Mustererkennung in Sensordaten, eAssessment, ...

Seminare

➥ Themengebiete: IT-Sicherheit, Programmiersprachen, Musterer- kennung in Sensordaten, ...

(7)

Zur Vorlesung

Vorlesung:

Pr ¨asenz: Do., 12:20 - 13:50 Uhr, H-C 3305 (max. 70 Personen!)

zus ¨atzlich Screencasts in moodle

Ubungen:¨

2-st ¨undig

2 ¨Ubungsgruppen

Do., 08:30-10:00, H-C 3310, ab 21.10.

Do., 10:15-11:45, H-C 3310, ab 21.10.

z.T. praktische ¨Ubungen unter LINUX

(8)

Zur Vorlesung ...

Information, Folien und Ank ¨undigungen:

http://www.bs.informatik.uni-siegen.de/lehre/bs1

vollst ¨andiger Foliensatz ist verf ¨ugbar

Folien werden (nur) geringf ¨ugig aktualisiert

Ziel: aktualisierte Folien sind sp ¨atestens am Tag vor der Vorlesung verf ¨ugbar (als PDF)

Screencasts (Videos) dazu in moodle

(9)

Zur ¨ Ubung

➥ Teilweise praktische ¨Ubungen mit Linux

Bearbeitung zu Hause!

Installieren Sie sich dazu eine Linux-Variante oder nutzen Sie ein Linux Live-System auf USB-Stick, z.B. Ubuntu

siehe https://ubuntu.com/download/desktop

Sollte dies nicht m ¨oglich sein, k ¨onnen wir Ihnen auch einen Remote-Zugang auf ein Linux-System einrichten

bitte melden Sie sich dazu per E-Mail (von Ihrer studenti- schen Uni-Adresse aus!) bei Prof. Wism ¨uller

➥ In den ¨Ubungsstunden sollen vor allem Ihre Fragen beantwortet bzw. Ihre L ¨osungsideen vorgestellt werden!

Musterl ¨osungen werden nach der ¨Ubung als PDF auf die Webseite gestellt

(10)

Literatur

➥ Andrew S. Tanenbaum, Herbert Bos. Moderne Betriebssysteme, 4. Auflage. Pearson Studium, 2016.

➥ William Stallings. Betriebssysteme, 4. Auflage. Pearson Studium, 2003.

➥ William Stallings. Operating Systems – Internals and Design Principles, 8. Auflage. Pearson Education, 2015.

➥ J ¨urgen Nehmer, Peter Sturm. Systemsoftware – Grundlagen moderner Betriebssysteme, 2. Auflage. dpunkt.verlag, 2001.

➥ E. Ehses, L. K ¨ohler, P. Riemer, H. Stenzel, F. Victor.

Betriebssysteme – Ein Lehrbuch mit ¨Ubungen zur System-

(11)

Pr ¨ufung

➥ 60-min ¨utige schriftliche Klausur

ohne Hilfsmittel

➥ Anmeldung zur Klausur ¨uber Unisono

rechtzeitig ¨uber Fristen informieren!

siehe Webseiten des Pr ¨ufungsamts!

Informatik (PO 2012): Mentorengenehmigung erforderlich (Frist!)

➥ Falls keine Anmeldung erforderlich ist: bitte im Sekretariat Bescheid geben (mind. 2 Wochen vor der Klausur)

➥ Zwei Klausurtermine pro Jahr

jeweils nach dem WiSe bzw. SoSe in den Semesterferien

n ¨achster Termin: Feb./M ¨arz 2022

(12)

Inhalt der Vorlesung

➥ Einf ¨uhrung

was ist ein Betriebssystem (BS), wozu braucht man es?

➥ Prozesse und Threads

was sind Prozesse/Threads, wie werden sie verwaltet?

➥ Interprozeßkommunikation (IPC)

wie k ¨onnen Prozesse/Threads kooperieren?

was kann dabei schiefgehen (Verklemmungen)?

➥ Scheduling

wer darf wann wie lang rechnen?

Speicherverwaltung

(13)

Inhalt der Vorlesung ...

➥ Ein-/Ausgabe

wie kommuniziert der Rechner mit externen Ger ¨aten

➥ Dateisysteme

wie wird z.B. die Festplatte verwaltet?

➥ Schutzmechanismen

wie werden Benutzer gegeneinander gesch ¨utzt?

(14)

Ziel der Vorlesung

➥ Grundwissen jedes Informatikers im Bereich Betriebssysteme

➥ Verst ¨andnis der Probleme und ihrer L ¨osungen

➥ Grundverst ¨andnis g ¨angiger BS-Konzepte und -Mechanismen

wichtig f ¨ur (effiziente) Programmierung!

Konzepte oft auch f ¨ur Anwendungsprogramme nutzbar

➥ Grundlage f ¨ur andere Vorlesungen

Verteilte Systeme (jeweils im SoSe)

Parallelverarbeitung (jeweils im WiSe)

...

(15)

Sonderevaluation

Studiendauer Informatik“

Elektronische Umfrage vom 11.10. - 31.10.

➥ Was wollen wir wissen?

Aktivit ¨aten neben Studium (Erwerbst ¨atigkeit, Betreuung, ...)

Probleme der Studienstruktur (Angebot, ¨Uberschneidungen, Anforderungen, ...)

Vereinbarkeit zwischen Studium mit anderen Verpflichtungen

Bewertung m ¨oglicher Verbesserungs-Maßnahmen

➥ Warum wollen wir das wissen?

Planung v. Maßnahmen zur Verbesserung der Studiensituation

Ggf. Einf ¨uhrung eines Teilzeitstudiengangs

Rechtfertigung von Maßnahmen

”nach oben“

(16)

Betriebssysteme I

WS 2021/2022

1 Einf ¨uhrung

(17)

1 Einf ¨uhrung ...

➥ Aufgaben eines Betriebssystems

➥ Historische Entwicklung der Betriebssysteme

➥ Arten von Betriebssystemen

➥ Uberblick Computer-Hardware¨

➥ Grundlegende Betriebssystemkonzepte

➥ Systemaufrufe, Dienste eines Betriebssystems

Tanenbaum 1.1 - 1.4.3, 1.5, 1.6

(18)

1 Einf ¨uhrung ...

Ein Rechensystem besteht aus:

➥ Anwendungssoftware: zur L ¨osung bestimmter Probleme, z.B.:

Textverarbeitung, Adreßbuch, Datenbank, ...

WWW-Browser, Spiele, ...

Wettervorhersage, CAD, ...

Steuerung eines Kraftwerks, ...

➥ Systemsoftware: unterst ¨utzt Anwendungen, z.B.:

Ubersetzer: erstellt Maschinenprogramme¨

Betriebssystem: unterst ¨utzt laufende Anwendungen

Dateimanager (z.B. Windows-Explorer), ...

(19)

1 Einf ¨uhrung ...

Einordnung des Betriebssystems

System−

Hardware Interpreter

Kommando−

Compiler

Flug− Web−

Browser

Mikroarchitektur Maschinensprache

Physische Geräte buchungen

Editoren Banken−

system

programme Anwendungs−

programme

Betriebssystem

(20)

1.1 Aufgaben eines Betriebssystems

Was soll ein Betriebssystem leisten?

Erweiterung (Veredelung) der Hardware

Abstraktion der Hardware

Verwaltung von Betriebsmitteln

Abk ¨urzung: BS = Betriebssystem

(21)

1.1 Aufgaben eines Betriebssystems ...

Erweiterung / Veredelung der Hardware

➥ Hardware muß billig, schnell und zuverl ¨assig sein

Beschr ¨ankung auf das absolut notwendige

Folge: schwierige Programmierung

➥ BS stellt komplexe Funktionen bereit, die die Anwendungs- programme verwenden k ¨onnen

Beispiel: Schreiben auf Festplatte

BS findet automatisch freie Bl ¨ocke auf der Platte, legt Verwaltungsinformation an

interne Struktur der Platte (Anzahl K ¨opfe, Zylinder, Sektoren, etc.) f ¨ur Anwendung nicht mehr wichtig

Folge: erhebliche Vereinfachung der Programmierung

(22)

1.1 Aufgaben eines Betriebssystems ...

Abstraktion der Hardware

➥ Rechner sind trotz ¨ahnlicher Architektur im Detail sehr unterschiedlich, z.B.:

Einteilung des Adreßraums (Speicher, E/A-Controller)

verschiedenste E/A-Controller und Ger ¨ate

➥ Fallunterscheidung wird vom BS vorgenommen

➥ BS realisiert einheitliche Sicht f ¨ur Anwendungen

➥ Beispiel: Dateien abstrahieren Externspeicher

f ¨ur Anwendungen kein Unterschied zwischen Festplatte, Diskette, CD-ROM, USB-Stick, Netzlaufwerk, ...

(23)

1.1 Aufgaben eines Betriebssystems ...

Verwaltung von Betriebsmitteln

Betriebsmittel (Ressourcen): alles was eine Anwendung zur Ausf ¨uhrung braucht

Prozessor, Speicher, Ger ¨ate (Festplatte, Netzwerk, ...)

➥ Fr ¨uher: auf einem Rechner lief zu jedem Zeitpunkt nur eine Anwendung eines Benutzers

➥ Heute: Rechner im Mehrprozeß- und Mehrbenutzerbetrieb

mehrere Anwendungen verschiedener Benutzer werden

”gleichzeitig“ ausgef ¨uhrt

➥ Notwendig:

Fairness:

”gerechte“ Verteilung der Betriebsmittel

Sicherheit: Schutz der Anwendungen und Benutzer

(24)

1.1 Aufgaben eines Betriebssystems ...

Verwaltung von Betriebsmitteln ...

➥ Beispiel: Dateien

jeder Datei werden Rechte zugeordnet

legen z.B. fest, wer die Datei lesen darf

BS stellt die Einhaltung dieser Rechte sicher

unbefugter Zugriff wird verweigert

➥ Beispiel: Drucker

w ¨ahrend Max druckt, will auch Moritz drucken

aber nicht auf dasselbe Blatt Papier ...

BS regelt den Zugriff auf den Drucker

(25)

1.1 Aufgaben eines Betriebssystems ...

BS als Mittler zwischen Anwendungen und Hardware

(Prozessor, Speicher, E/A−Geräte)Hardware Betriebssystem

Anwendung Anwendung Anwendung

➥ Essentiell: Anwendungen k ¨onnen nicht direkt (d.h. unkontrol- liert) auf die Hardware zugreifen

➥ Unterst ¨utzende Hardware-Mechanismen:

Ausf ¨uhrungsmodi des Prozessors (System- und Benutzer- modus, ☞ 1.4.1)

(26)

1.1 Aufgaben eines Betriebssystems ...

BS als Mittler zwischen Anwendungen und Hardware

(Prozessor, Speicher, E/A−Geräte)Hardware Betriebssystem

Anwendung Anwendung Anwendung

➥ Essentiell: Anwendungen k ¨onnen nicht direkt (d.h. unkontrol- liert) auf die Hardware zugreifen

➥ Unterst ¨utzende Hardware-Mechanismen:

Ausf ¨uhrungsmodi des Prozessors (System- und Benutzer-

(27)

1.1 Aufgaben eines Betriebssystems ...

BS als Mittler zwischen Anwendungen und Hardware

(Prozessor, Speicher, E/A−Geräte)Hardware Betriebssystem

Anwendung Anwendung Anwendung

➥ Essentiell: Anwendungen k ¨onnen nicht direkt (d.h. unkontrol- liert) auf die Hardware zugreifen

➥ Unterst ¨utzende Hardware-Mechanismen:

Ausf ¨uhrungsmodi des Prozessors (System- und Benutzer- modus, ☞ 1.4.1)

(28)

1.2 Entwicklung der Betriebssysteme

1. Generation (-1955): kein Betriebssystem

➥ Programm (jedesmal) manuell in Speicher eingeben 2. Generation (-1965): Stapelverarbeitung

➥ Lochkarten mit Programmcode (z.B. Assembler, Fortran)

➥ BS startet ¨Ubersetzer und Programm

➥ BS nimmt Ergebnis entgegen, gibt es auf Drucker aus

➥ sp ¨ater: auch mehrere Programme (Jobs) nacheinander (auf Magnetband): Stapelbetrieb (batch)

➥ Stapelbetrieb auch heute noch teilweise sinnvoll

(29)

1.2 Entwicklung der Betriebssysteme ...

3. Generation (-1980):

➥ Rechnerfamilien mit gleichem Befehlssatz (z.B. IBM 360)

BS abstrahiert Unterschiede der Rechner / Ger ¨ate

➥ Einf ¨uhrung des Mehrprogrammbetriebs

CPU wartet oft (bis zu 90% der Zeit) auf Ger ¨ate:

Verschwendung!

besser: statt zu warten wird ein anderer Job bearbeitet

Problem: Verwaltung / Zuteilung der Betriebsmittel

➥ Gleichzeitig: interaktive Nutzung der Rechner

Terminals statt Lochkarten und Drucker

mehrere Benutzer gleichzeitig aktiv gegenseitiger Schutz erforderlich

(30)

1.2 Entwicklung der Betriebssysteme ...

4. Generation (1980 - heute):

➥ Einf ¨uhrung von Mikroprozessoren

kleine, billige Rechner: Arbeitsplatzrechner

zur ¨uck zu Einbenutzersystemen (DOS, Windows 95, ...)

➥ Zunehmende Vernetzung der Rechner

Client/Server-Systeme: wieder mehrere Benutzer

Unix, Linux, Windows (ab NT), ...

➥ Trend / Zukunft: verteilte Betriebssysteme

mehrere Rechner erscheinen wie ein einziger

(31)

1.3 Arten von Betriebssystemen

➥ Mainframe-BSe

schnelle E/A, viele Prozesse, Transaktionen

Server-BSe

viele Benutzer gleichzeitig, Netzwerkanbindung

➥ Multiprozessor-BSe

f ¨ur Parallelrechner

PC-BSe

➥ Echtzeit-BSe

➥ BSe f ¨ur eingebettete Systeme

➥ BSe f ¨ur Chipkarten

(32)

1.4 Computer-Hardware

Aufbau eines typischen PCs (stark vereinfacht)

Prozessor

(33)

1.4 Computer-Hardware

Aufbau eines typischen PCs (stark vereinfacht)

Adressen,

Speicher

0:

2:

1:

Daten,

...

Steuersignale Systembus:

Prozessor

(34)

1.4 Computer-Hardware

Aufbau eines typischen PCs (stark vereinfacht)

gabe−

troller Aus−

Con−

Ein−/

gabe−

troller Aus−

Con−

Ein−/

(Platte, Monitor, ...) Geräte

Speicher

0:

2:

1:

...

Prozessor

(35)

1.4 Computer-Hardware

Aufbau eines typischen PCs (stark vereinfacht)

gabe−

troller Aus−

Con−

Ein−/

gabe−

troller Aus−

Con−

Ein−/

(Platte, Monitor, ...) Geräte

Adressen,

Speicher

0:

2:

1:

Daten,

...

Steuersignale Systembus:

Prozessor

Leitwerk Rechenwerk

(36)

1.4 Computer-Hardware

Aufbau eines typischen PCs (stark vereinfacht)

gabe−

troller Aus−

Con−

Ein−/

gabe−

troller Aus−

Con−

Ein−/

(Platte, Monitor, ...) Geräte

Speicher

0:

2:

1:

...

Prozessor

PC PSW

SP

R0 R1 R2

R3 ...

Leitwerk Rechenwerk

(37)

1.4 Computer-Hardware ...

Aufbau eines typischen PCs (realistischer)

PEG

PCI−E

E/A−Bus

BrückeBus−

Lokaler Speicher

E/A E/A E/A

Graphik−

beschleu−

niger

E/A

satz Chip−

E/A

Haupt−

speicher L2 Cache

Cache L1 Befehls−

Cache L1 Daten−

CPU−Kern

Systembus−Interface CPU (Central Processing Unit)

(38)

1.4 Computer-Hardware ...

Multiprozessor-Systeme

➥ Heute i.a. Rechner mit mehreren CPUs (bzw. CPU-Kernen)

Multicore-Prozessoren

Server mit mehreren Prozessoren

➥ Im Folgenden einheitlich als Multiprozessor-Systeme bezeichnet

Begriff

”CPU“ bzw.

”Prozessor“ bezeichnet ggf. nur einen CPU-Kern

➥ Typische BS-Architektur f ¨ur Multiprozessorsysteme:

im Speicher: eine Instanz des BSs f ¨ur alls Prozessoren

jeder Prozessor kann Code des BSs ausf ¨uhren

(39)

1.4.1 Prozessor (CPU)

Elemente einer CPU

➥ Register

Ganzzahl-, Gleitkomma-Register

Befehlsz ¨ahler (PC: Program Counter)

Kellerzeiger (SP: Stack Pointer)

Statusregister (PSW: Program Status Word)

➥ Arithmetisch-Logische Einheit (Rechenwerk, ALU)

f ¨uhrt die eigentlichen Berechnungen durch

➥ Steuerwerk

holt und interpretiert Maschinenbefehle

(40)

1.4.1 Prozessor (CPU) ...

Operationen:

➥ Lade- und Speicheroperationen

➥ Arithmetische und logische Operationen

➥ Spr ¨unge ( ¨Anderung des Befehlsz ¨ahlers)

bedingt und unbedingt

Unterprogramm-Aufrufe und -R ¨uckspr ¨unge

(41)

1.4.1 Prozessor (CPU) ...

Beispiel zur Befehlsausf ¨uhrung

Prozessor Speicher

R0 R1

PC PSW

0:

1:

2:

3:

4:

5:

ldi 7, R0 ld 20, R1 add R0, R1 jge 5

neg R1 ...

...

20: 47

Rechenwerk

Leitwerk

(42)

1.4.1 Prozessor (CPU) ...

Ausf ¨uhrungsmodi

➥ Eine der Maßnahmen, um den direkten Zugriff auf System- ressourcen durch Anwendungsprogramme zu unterbinden

Systemmodus: ausgef ¨uhrtes Programm hat vollen Zugriff auf alle Rechnerkomponenten

f ¨ur das Betriebssystem

Benutzermodus: eingeschr ¨ankter Zugriff

Speicher nur ¨uber Adreßabbildung zugreifbar (☞ 1.5.2, 6.3)

keine privilegierten Befehle

z.B. Ein-/Ausgabe, Zugriff auf Konfigurationsregister

(43)

1.4.1 Prozessor (CPU) ...

Ausf ¨uhrungsmodi ...

➥ Ausf ¨uhrung eines privilegierten Befehls im Benutzermodus f ¨uhrt zu Ausnahme (Exception, Software Interrupt)

Prozessor bricht gerade ausgef ¨uhrten Befehl ab

Prozessor sichert PC (Adresse des Befehls) im Keller (R ¨uckkehradresse)

Programmausf ¨uhrung wird an vordefinierter Adresse im Systemmodus fortgesetzt

d.h. Verzweigung an eine feste Stelle im BS

BS behandelt die Ausnahme

z.B. Abbruch des laufenden Prozesses

ggf. auch andere Behandlung und R ¨uckkehr in die Anwendung

BSHardware

(44)

1.4.1 Prozessor (CPU) ...

Ausf ¨uhrungsmodi ...

➥ Kontrollierter Moduswechsel

spezieller Befehl (Systemaufruf, Trap, System Call)

bei Ausf ¨uhrung des Befehls:

Prozessor sichert PC im Keller (R ¨uckkehradresse)

Umschalten in Systemmodus

Verzweigung an eine vordefinierte Adresse (im BS)

BS analysiert die Art des Systemaufrufs und f ¨uhrt den Aufruf aus

R ¨uckkehrbefehl schaltet wieder in Benutzermodus

BSHardware

(45)

1.4.1 Prozessor (CPU) ...

Interrupts

➥ Prozessor kann auf externe, asynchrone Ereignisse reagieren

spezielles Eingangssignal: Unterbrechungssignal

Signal wird jeweils nach der Abarbeitung eines Befehls abgefragt

falls Signal gesetzt:

Prozessor sichert PC im Keller (R ¨uckkehradresse)

Umschalten in Systemmodus

Verzweigung an eine vordefinierte Adresse (im BS) (Unterbrechungsbehandlungsroutine, interrupt handler)

im BS: Behandlung der Unterbrechung

R ¨uckkehrbefehl schaltet wieder in Benutzermodus

BSHardware

(46)

1.4.1 Prozessor (CPU) ...

Interrupts ...

➥ I.d.R. mehrere Interrupts mit verschiedenen Priorit ¨aten

jedem Interrupt kann eine eigene Behandlungsroutine zugewiesen werden

Tabelle von Adressen: Unterbrechungsvektor

ggf. Unterbrechung aktiver Behandlungsroutinen

➥ Interrupts k ¨onnen maskiert (

”ausgeschaltet“) werden

privilegierter Befehl!

(47)

1.4.1 Prozessor (CPU) ...

Unterbrechungen des Programmablaufs

Ausnahme (Exception)

Systemaufruf (Trap)

synchron asynchron

Unterbrechung

Interrupt

(48)

1.4.2 Speicher

Speicherhierarchie

typ. Kapazität

~ 1 MByte

< 1 KByte

~ 1 GByte

~ 1 TByte

~ 1 PByte typ. Zugriffszeit

1 ns 2−10 ns 10−100 ns

100 s

10 µs −10 ms

Register Cache

Hauptspeicher

Festplatte / Solid State Disk Archivspeicher (Band, DVD, ...)

➥ Verwaltung von Hauptspeicher und Festplatte durch BS

(49)

1.4.2 Speicher ...

Caches in Multiprozessorsystemen (incl. Multicore)

Cache: schneller, prozessornaher Zwischenspeicher

speichert Kopien der zuletzt am h ¨aufigsten benutzten Daten aus dem Hauptspeicher

i.a. Bl ¨ocke (Cachezeilen) mit 32-64 Byte

falls Daten im Cache: kein Hauptspeicherzugriff n ¨otig

durch Hardware verwaltet, f ¨ur Programme transparent

➥ Caches sind in Multiprozessorsystemen essentiell

Cachezugriff 10-1000 mal schneller als Hauptspeicherzugriff

Entlastung von Hauptspeicher und Bus

➥ Aber: Existenz mehrerer Kopien von Daten kann zu Inkonsisten- zen f ¨uhren: Cache-Koh ¨arenz-Problem

(50)

1.4.2 Speicher ...

Cache-Koh ¨arenz-Problem: Beispiel

➥ Annahme: Schreibzugriff aktualisiert auch Hauptspeicher

➥ Drei Prozessoren greifen auf dasselbe Speicherwort zu und erhalten verschiedene Ergebnisse!

1

Cache Cache Cache 100:

P1 P2 P3 Haupt−

speicher

(51)

1.4.2 Speicher ...

Cache-Koh ¨arenz-Problem: Beispiel

➥ Annahme: Schreibzugriff aktualisiert auch Hauptspeicher

➥ Drei Prozessoren greifen auf dasselbe Speicherwort zu und erhalten verschiedene Ergebnisse!

1

Cache Cache Cache 100:

P1 P2 P3 Haupt−

speicher

Speicherbus

read 100 read 100

1 1

100 1

(52)

1.4.2 Speicher ...

Cache-Koh ¨arenz-Problem: Beispiel

➥ Annahme: Schreibzugriff aktualisiert auch Hauptspeicher

➥ Drei Prozessoren greifen auf dasselbe Speicherwort zu und erhalten verschiedene Ergebnisse!

1

Cache Cache Cache 100:

P1 P2 P3 Haupt−

speicher

read 100 read 100

1 1

1

100 100 1

(53)

1.4.2 Speicher ...

Cache-Koh ¨arenz-Problem: Beispiel

➥ Annahme: Schreibzugriff aktualisiert auch Hauptspeicher

➥ Drei Prozessoren greifen auf dasselbe Speicherwort zu und erhalten verschiedene Ergebnisse!

2

Cache Cache Cache 100:

P1 P2 P3 Haupt−

speicher

Speicherbus write 2,100

write 2,100 2

100 100 1

(54)

1.4.2 Speicher ...

Cache-Koh ¨arenz-Problem: Beispiel

➥ Annahme: Schreibzugriff aktualisiert auch Hauptspeicher

➥ Drei Prozessoren greifen auf dasselbe Speicherwort zu und erhalten verschiedene Ergebnisse!

2

Cache Cache Cache 100:

P1 P2 P3 Haupt−

speicher

read 100

read 100 2 read 100 1 read 100 2

100 2 2

100 100 1

(55)

1.4.2 Speicher ...

Sicherstellung der Cache-Koh ¨arenz

➥ Grundprinzip: Bei einem Schreibzugriff m ¨ussen alle betroffenen Caches (d.h. Caches mit Kopien) benachrichtigt werden

➥ Einfachste M ¨oglichkeit: Bus Snooping

Caches

”horchen“ auf dem Speicherbus mit

bei Schreibzugriff:

falls Datum im Cache: invalidiere zugeh ¨orige Cachezeile

Cachezeile wird beim n ¨achsten Zugriff neu geladen

(56)

1.4.3 Ein-/Ausgabe

Ansteuerung der Ger ¨ate durch Controller

➥ Spezielle Hardware, oft mit eigenen Mikroprozessoren

➥ Steuert Ger ¨at weitgehend autonom

➥ Register f ¨ur Kommandos, Daten, Status

➥ Kann Interrupt an CPU senden, falls

Eingabedaten vorhanden

Ausgabeoperation abgeschlossen

(57)

1.4.3 Ein-/Ausgabe ...

Anbindung Controller - CPU

➥ Speicherbasierte E/A

Register des Controllers sind in den Speicheradreßraum eingeblendet

Zugriff ¨uber normale Schreib-/Lesebefehle

Zugriffsschutz ¨uber Adreßabbildung (☞ 1.4.1)

➥ Separater E/A-Adreßraum (z.B. bei x86 ¨ublich)

Zugriff auf Controller-Register nur ¨uber spezielle (privilegierte) E/A-Befehle

➥ Beide Varianten in Gebrauch

(58)

1.4.3 Ein-/Ausgabe ...

Klassen von E/A-Ger ¨aten

Zeichen-orientierte Ger ¨ate

Ein-/Ausgabe einzelner Zeichen

z.B. Tastatur, Maus, Modem

Block-orientierte Ger ¨ate

Ein-/Ausgabe gr ¨oßerer Datenbl ¨ocke

z.B. Festplatte, Netzwerk

Vorteil: Reduzierung der Interrupt-Rate

wichtig f ¨ur Programm-Geschwindigkeit

(59)

1.5 Betriebssystemkonzepte

Grundlegende Konzepte von BSen:

➥ Prozesse und Threads

➥ Speicherverwaltung

➥ Ein/Ausgabe

➥ Dateiverwaltung

Dazu orthogonale Aufgaben:

➥ Sicherheit

➥ Ablaufplanung und Resourcenverwaltung

(60)

1.5.1 Prozesse und Threads

Definitionen

➥ Anschaulich: ein Prozeß ist ein Programm in Ausf ¨uhrung

➥ Formaler:

Aktivit ¨atseinheit, gekennzeichnet durch

eine Ausf ¨uhrungsumgebung

Adreßraum (Programmcode und Daten)

Zustandsinformation benutzter Ressourcen

(z.B. offene Dateien, Position der Lesezeiger, ...)

ein oder mehrere Aktivit ¨atstr ¨ager (Threads,

”Ablauff ¨aden“)

➥ Anmerkungen:

implementierungsnahe Definition

(61)

1.5.1 Prozesse und Threads ...

Abarbeitung von Threads: Timesharing

➥ Threads werden abwechselnd vom Prozessor (bzw. den Prozessoren) bearbeitet

BS entscheidet, wer wann wie lange (auf welchem Prozessor) rechnen darf

➥ Gr ¨unde f ¨ur Timesharing:

Bed ¨urfnisse des Nutzers (mehrere Anwendungen)

bessere Auslastung des Rechners

Prozeßwechsel bedingt Wechsel der Ausf ¨uhrungsumgebung

➥ Threads eines Prozesses teilen sich die Ausf ¨uhrungsumgebung

Wechsel zwischen Threads desselben Prozesses ist effizienter

(62)

1.5.1 Prozesse und Threads ...

(Virtueller) Adreßraum

➥ Beginnt bei Adresse 0, durchnumeriert bis Obergrenze

linearer Adreßraum

➥ Enth ¨alt:

Programmcode

Programmdaten (incl. Heap)

Keller (R ¨uckkehradressen)

➥ Abstraktion des physischen Speichers

unabh ¨angig von Gr ¨oße und Technologie des physischen

(Heap)Daten Code unbenutzt

Keller

0:

(63)

1.5.1 Prozesse und Threads ...

Ausf ¨uhrungskontext

➥ Alle sonstigen Daten, die zur Ausf ¨uhrung gebraucht werden

Prozessorstatus (Datenregister, PC, PSW, ...)

BS-relevante Daten (Eigent ¨umer, Priorit ¨at, Eltern-Prozeß, genutzte Betriebsmittel, ...)

➥ Aufgeteilt in Prozeß- und Threadkontext

➥ Speicherung des Ausf ¨uhrungskontexts:

i.d.R. im Adreßraum des BSs: Prozeß- bzw. Threadtabelle

alternativ: (gesch ¨utzter) Teil des Prozeßadreßraums

(64)

1.5.1 Prozesse und Threads ...

Prozeß-/Threadinteraktion (Interprozeßkommunikation, IPC)

Kommunikation: Austausch von Informationen

durch Verwendung eines gemeinsamen Adreßraums (Speicherkopplung)

i.d.R. zwischen Threads eines Prozesses

durch explizites Senden/Empfangen von Nachrichten (Nachrichtenkopplung)

i.d.R. zwischen verschiedenen Prozessen

Synchronisation

Steuerung der zeitlichen Reihenfolge von Aktivit ¨aten (meist: Zugriffe auf gemeinsame Resourcen)

(65)

1.5.1 Prozesse und Threads ...

Eine anschauliche Verklemmung

(66)

1.5.1 Prozesse und Threads ...

Eine anschauliche Verklemmung

(67)

1.5.1 Prozesse und Threads ...

Eine anschauliche Verklemmung

(68)

1.5.2 Speicherverwaltung

Situation in Mehrprozeß-Systemen:

➥ Prozesse und BS teilen sich den Hauptspeicher, z.B.:

Prozeß 2 frei

Prozeß 3 Prozeß 1

Betriebssystem FFFFFF:

(69)

1.5.2 Speicherverwaltung ...

Fragen / Probleme f ¨ur das BS:

➥ Wie werden die Speicherbereiche an Prozesse zugeteilt?

BS muß gen ¨ugend großes St ¨uck Speicher finden

was ist, wenn laufender Prozeß mehr Speicher anfordert?

➥ Programme enthalten Adressen

kann man Programme an beliebige Adressen schieben?

➥ Schutz der Prozesse gegeneinander

wie kann man verhindern, daß ein Prozeß auf den Speicher eines anderen Prozesses (oder des BSs) zugreift?

➥ Begrenzte Gr ¨oße des Hauptspeichers

was ist, wenn nicht alle Prozesse in den Hauptspeicher

(70)

1.5.2 Speicherverwaltung ...

Fragen / Probleme f ¨ur das BS: ...

➥ Transparenz f ¨ur die Anwendungen

im Idealfall sollte die Anwendung annehmen d ¨urfen, sie h ¨atte den Rechner f ¨ur sich alleine

Programmieraufwand sollte sich durch Speicherverwaltung nicht erh ¨ohen

L ¨osung: Adressabbildung

➥ Adressen des Prozesses (virtuelle Adressen) werden durch Hardware (Memory Management Unit, MMU)

auf Speicheradressen (physische Adressen) umgesetzt

einfachster Fall: Addition einer Basis-Adresse und Limit

(71)

1.5.2 Speicherverwaltung ...

Adressierung beim virtuellen Speicher

Speicher−

verwaltung (MMU + BS) Prozessor

(Prozess)

Virtuelle Adresse

Physische Adresse

speicher Haupt−

speicher Hintergrund−

Ein− und Auslagern Festplatten−

Adresse

(72)

1.5.3 Dateiverwaltung

Datei: Einheit zur Speicherung von Daten

persistente Speicherung: ¨uber das Ende von Prozessen (Anwendungen) hinaus

➥ Struktur einer Datei:

bei heutigen BSen f ¨ur PCs und Server:

unstrukturierte Folge von Bytes (d.h.: BS kennt Struktur nicht)

in Mainframe-BSen u.a.:

Sequenz von Datens ¨atzen fester Struktur

Index zum schnellen Zugriff auf Datens ¨atze

➥ Typen von Dateien (u.a.):

regul ¨are Dateien (Dokumente, Programme, ...)

(73)

1.5.3 Dateiverwaltung ...

Typische Dateioperationen

➥ Offnen einer Datei; Argumente u.a.:¨

Lesen/Schreiben/Anf ¨ugen?, Erzeugen?, Sperren?, ...

➥ Schließen der Datei

➥ Lesen / Schreiben von Daten

Zugriff meist sequentiell (historisch bedingt)

daneben auch wahlfreier Zugriff m ¨oglich

Offset als Parameter beim Lesen / Schreiben oder explizites Positionieren (seek)

Alternative: Einblenden in den Prozeß-Adreßraum

➥ Erzeugen, L ¨oschen, Umbenennen

(74)

1.5.3 Dateiverwaltung ...

Das sequentielle Dateimodell

➥ Datei wird als unstrukturierte Byte-Folge aufgefaßt

➥ Nach dem ¨Offnen einer Datei besitzt ein Prozeß einen privaten Dateizeiger

n ¨achstes zu lesendes Byte bzw. Schreibposition

➥ Lese- und Schreib-Operationen kopieren einen Datenblock zwischen Hauptspeicher und Datei

Dateizeiger wird entsprechend weitergeschoben

➥ Lesen ¨uber das Dateiende hinaus (End-of-file) ist nicht m ¨oglich

➥ Schreiben ¨uber das Dateiende f ¨uhrt zum Anf ¨ugen an Datei

(75)

1.5.3 Dateiverwaltung ...

Beispiel: Schreiben in eine sequentielle Datei

1 2 3 4 5 H a l l o Dateizeiger Datei

(nachher) H a l l o

1 2 3 4 5 6 7 8

Dateizeiger Datei

(vorher)

(im Speicher)Puffer

Puffer in Datei Schreibe

(76)

1.5.3 Dateiverwaltung ...

Verzeichnisse

➥ Zur hierarchischen Organisation von Dateien

Benennung von Dateien ¨uber Pfadnamen

absolute Pfadnamen (beginnend bei Wurzelverzeichnis)

z.B. /home/wismueller/Vorlesungen/BS1/v02.pdf

relative Pfadnamen

beginnen beim aktuellen Arbeitsverzeichnis

z.B. BS1/v02.pdf: selbe Datei wie oben, wenn

Arbeitsverzeichnis /home/wismueller/Vorlesungen ist

(77)

1.5.3 Dateiverwaltung ...

Verzeichnisse ...

➥ Oft: Einf ¨uhrung von Verweisen (Links)

Datei (bzw. Verzeichnis) kann in mehr als einem Verzeichnis auftreten, ist aber physisch nur einmal vorhanden

usr

vi cc

bin

bin edit

ls Datei /usr/bin/vi

/bin/edit führt zur

Links sind in der Regel transparent f ¨ur die Anwendungen

(78)

1.5.3 Dateiverwaltung ...

Typische Aufgaben / Konzepte von BSen (Beispiel: Linux)

➥ Realisierung von Dateien und Verzeichnishierarchien

Abbildung von Dateien / Verzeichnissen auf das Speichermedium (z.B. Festplatte)

➥ Realisierung der Dateioperationen: (Erzeugen, Lesen, ...)

dabei ¨Uberpr ¨ufung der Zugriffsrechte

➥ Einh ¨angen von Dateisystemen in die Verzeichnishierarchie

z.B. Zugriff auf Dateien auf Diskette ¨uber den Pfad /media/floppy

einheitliche Sicht auf alle Dateisysteme

(79)

1.5.4 Sicherheit

Aufgabenbereiche:

➥ Zugriffskontrolle

Benutzerzugriff auf Gesamtsystem, Subsysteme, Daten

Prozeßzugriff auf Ressourcen und Objekte des Systems

➥ Kontrolle des Informationsflusses

Regulierung des Datenflusses im System / an Benutzer (keine Weitergabe vertraulicher Daten an Unautorisierte)

➥ Zertifizierung

Nachweis, daß gew ¨unschte Sicherheitseigenschaften vom System durchgesetzt werden

In dieser Vorlesung wird nur Zugriffskontrolle betrachtet!

(80)

1.5.4 Sicherheit ...

Beispiel: Zugriffskontrolle unter Linux

➥ Einf ¨uhrung von Benutzern und Benutzergruppen

spezieller Benutzer root: Administrator

➥ Prozesse und Dateien haben Eigent ¨umer und Eigent ¨umergruppe

➥ Zugriff auf Prozesse nur f ¨ur Eigent ¨umer (und root)

➥ Zugriff auf Dateien ¨uber 9 Rechtebits festgelegt: rwxuser r−xgroup−−−others

r = Lesen, w = Schreiben, x = Ausf ¨uhren

im Bsp.: Eigent ¨umer darf alles, Benutzer der Eigent ¨umer- gruppe darf nicht schreiben, f ¨ur alle anderen kein Zugriff

(81)

1.5.5 Ablaufplanung u. Resourcenverwaltung

➥ Verwaltung / Planung der Ressourcen-Verwendung, z.B.

Hauptspeicher: Welcher Prozeß erh ¨alt wann wo wieviel Speicher? Wann wird Speicher ausgelagert?

Platten-E/A: Reihenfolge der Bedienung? (Optimierung der Armbewegung)

➥ Ziele:

Fairness: jeder Prozess sollte denselben Anteil der Ressourcen erhalten

Differenzierung: Ber ¨ucksichtigung der unterschiedlichen Anforderungen verschiedener Job-Klassen

Effizienz: Durchsatz, Antwortzeit, Anzahl der Benutzer

Ziele teilweise widersp ¨uchlich

(82)

1.6 Systemaufrufe

➥ Schnittstelle zwischen Benutzerprogrammen und BS

➥ Systemaufrufe meist in Bibliotheksfunktionen gekapselt

Details des Systemaufrufs sind hardwareabh ¨angig

In der Regel:

Systemaufrufe sind durchnummeriert

Nummer wird vor Ausf ¨uhrung des Trap-Befehls in festes Register geschrieben

Im BS dann Verzweigung ¨uber Funktionstabelle

(83)

1.6 Systemaufrufe ...

Ablauf eines Systemaufrufs

Kernadreßraum Benutzeradreßraum

Parameter in Keller ablegen

read

SP erhöhen

... ...

Systemaufruf (Trap)

Rückkehr zum Aufrufer

Verteilung (mit Tabelle)

Systemaufruf−

behandlung

(über Scheduler) Rückkehr

Benutzerprogramm Bibliotheksfunktion read

Betriebssystem

Code−Nr. für Aufruf von

read in Register

(84)

1.6 Systemaufrufe ...

Anmerkungen zum Ablauf

➥ BS sichert zun ¨achst den vollst ¨andigen Prozessorstatus in der Threadtabelle (bzw. Prozeßtabelle)

➥ Aufrufender Thread (bzw. Prozeß) kann blockiert werden

z.B. Warten auf Eingabe

➥ R ¨uckkehr aus dem BS erfolgt ¨uber den Scheduler

er bestimmt den Thread, der weitergef ¨uhrt wird

R ¨uckkehr also nicht unbedingt (sofort) zum aufrufenden Thread

➥ Bei R ¨uckkehr: Restaurieren des Prozessorstatus des weiter-

(85)

1.6 Systemaufrufe ...

Typische Systemaufrufe (Beispiel: Linux)

➥ Prozeßmanagement

fork – Erzeugen eines Kindprozesses

waitpid – Warten auf Ende eines Kindprozesses execve – Ausf ¨uhren eines anderen Programms

exit – Prozeß beenden und Statuswert zur ¨uckgeben

➥ Dateimanagement

open – Datei ¨offnen (Lesen/Schreiben) close – Datei schließen

read – Daten aus Datei in Puffer lesen

write – Daten aus Puffer in Datei schreiben lseek – Dateizeiger verschieben

(86)

1.6 Systemaufrufe ...

Typische Systemaufrufe (Beispiel: Linux) ...

➥ Verzeichnismanagement

mkdir – Verzeichnis erzeugen

rmdir – Leeres Verzeichnis l ¨oschen unlink – Datei l ¨oschen

mount – Datentr ¨ager in Dateisystem einh ¨angen

➥ Verschiedenes

chdir – Arbeitsverzeichnis wechseln chmod – Datei-Zugriffsrechte ¨andern kill – Signal an Prozeß senden

(87)

1.6 Systemaufrufe ...

Verwendung von Systemaufrufen: Prozeßerzeugung

Deklarationen einbinden neuen Prozeß abspalten

vom neuen Prozeß ausgeführt

vom alten Prozeß ausgeführt fork()== 0) {

#include <sys/types.h>

#include <unistd.h>

main() {

}

if (

printf("Hier ist der Sohn\n");

exit(0); /* Prozeßende */

}

else {

printf("Hier ist der Vater\n");

exit(0); /* Prozeßende */

}

(88)

1.6 Systemaufrufe ...

Verwendung von Systemaufrufen: Erzeugen einer Datei

Dateirechte Erzeugen und Öffnen der Datei

File−Handle

Schreiben in die Datei von Standard−Eingabe

Einlesen eines Strings Deklarationen einbinden

{

main()

#include <fcntl.h>

#include <stdio.h>

("datei.txt", O_CREAT | O_WRONLY, 0600);

open

(fd, text, strlen(text));

int fd;

char text[100];

fgets(text, 100, stdin);

fd = write

(89)

1.7 Zusammenfassung / Wiederholung

➥ Aufgaben eines BSs

Erweiterung / Abstraktion der Hardware

Verwaltung der Betriebsmittel

Prozessor, Speicher, Platte, E/A, ...

BS liegt zwischen Anwendungen und Hardware

Zugriff auf Hardware nur ¨uber BS

➥ Entwicklung der BSe

➥ Arten von BSen

(90)

1.7 Zusammenfassung / Wiederholung ...

➥ Computer-Hardware

Ausf ¨uhrungsmodi der CPU

Systemmodus f ¨ur BS

Benutzermodus f ¨ur Anwendungen

Speicherabbildung, keine privilegierten Befehle

Unterbrechungen:

Systemaufruf (Trap)

Ausnahme (Exception)

Interrupt

(91)

1.7 Zusammenfassung / Wiederholung ...

➥ Grundkonzepte von BSen

Prozesse

Speicherverwaltung

Ein-/Ausgabe

Dateiverwaltung

➥ Konzept ¨ubergreifende Aufgaben

Sicherheit

Ablaufplanung und Resourcenverwaltung

➥ Systemaufrufe

(92)

Betriebssysteme I

WS 2021/2022

2 Prozesse und Threads

(93)

2 Prozesse und Threads ...

➥ Begriffskl ¨arung

➥ Thread-/Prozeßmodell und -zust ¨ande

➥ Implementierung von Prozessen und Threads

➥ Implementierungsvarianten f ¨ur Threads

➥ Thread-Schnittstellen

➥ Tanenbaum 2.1 - 2.2 Stallings 3.1 - 3.2

(94)

2.1 Begriffskl ¨arung

➥ Ein Prozeß ist ein Programm in Ausf ¨uhrung

➥ Wunsch: ein Rechner soll mehrere Programme

”gleichzeitig“

ausf ¨uhren k ¨onnen

➥ Konzeptuell: jeder Prozeß

wird durch eine eigene, virtuelle CPU ausgef ¨uhrt

nebenl ¨aufige (quasi-parallele) Abarbeitung der Prozesse

hat seinen eigenen (virtuellen) Adreßraum (

”Speicher“, ☞ 6)

➥ Real: (jede) CPU schaltet zwischen den Prozessen hin und her

Multiprogrammierung, Mehrprogrammbetrieb

Umschalten durch Umladen der CPU-Register (incl. PC)

(95)

2.1 Begriffskl ¨arung ...

Prozeß Prozeß Prozeß Prozeß Prozeß

CPU reale CPU

virtuelle

CPU virtuelle Prozeß

CPU virtuelle

Modell Realisierung

(96)

2.1 Begriffskl ¨arung ...

Ein (klassischer) Prozeß besitzt zwei Aspekte:

➥ Einheit des Ressourcenbesitzes

eigener (virtueller) Adreßraum

allgemein: Besitz / Kontrolle von Ressourcen (Hauptspeicher, Dateien, E/A-Ger ¨ate, ...)

BS ¨ubt Schutzfunktion aus

➥ Einheit der Ablaufplanung / Ausf ¨uhrung

Ausf ¨uhrung folgt einem Weg (Trace) durch ein Programm

verzahnt mit der Ausf ¨uhrung anderer Prozesse

BS entscheidet ¨uber Zuteilung des Prozessors

(97)

2.1 Begriffskl ¨arung ...

In heutigen BSen: Trennung der Aspekte

Prozeß: Einheit des Ressourcenbesitzes und Schutzes

Thread: Einheit der Ausf ¨uhrung (Prozessorzuteilung)

Ausf ¨uhrungsfaden, leichtgewichtiger Prozeß

➥ Damit: innerhalb eines Prozesses auch mehrere Threads m ¨oglich

d.h., Anwendungen k ¨onnen mehrere nebenl ¨aufige Aktivit ¨aten besitzen

Prozeß 1 Prozeß 2 Prozeß 3

Thread

Prozeß

Thread

(98)

2.1 Begriffskl ¨arung ...

Vorteile bei der Nutzung mehrerer Threads in einer Anwendung

➥ Nebenl ¨aufige Programmierung m ¨oglich: mehrere Kontrollfl ¨usse

➥ Falls ein Thread auf Ein-/Ausgabe wartet: die anderen k ¨onnen weiterarbeiten

➥ K ¨urzere Reaktionszeit auf Benutzereingaben

➥ Bei Multiprozessor-Systemen (bzw. mit Hyperthreading):

echt parallele Abarbeitung der Threads m ¨oglich

(99)

2.1 Begriffskl ¨arung ...

Beispiel: GUI-Programmierung

➥ Sequentielles Programm (1 Thread):

while (true) {

ComputeStep(); // z.B. Animationsschritt if (QueryEvent()) { // Ereignis angekommen?

e = ReceiveEvent(); // Ereignis abholen ProcessEvent(e); // und bearbeiten }

}

Verzahnung von Berechnung und Ereignisbehandlung

Polling von Ereignissen: wann / wie oft?

(100)

2.1 Begriffskl ¨arung ...

Beispiel: GUI-Programmierung ...

➥ Nebenl ¨aufiges Programm mit 2 Threads:

Thread 1:

while (true) {

ComputeStep();

}

Thread 2:

while (true) {

e = ReceiveEvent();

ProcessEvent(e);

}

einfachere Programmstruktur

aber: Zugriff auf gemeinsame Variable erfordert Synchroni- sation (☞ 3.1)

(101)

2.1 Begriffskl ¨arung ...

Realisierung von Threads

➥ Heute meist direkt durch das BS

andere Alternativen: siehe 2.5

➥ Konzeptuell: jeder Thread

wird durch eine eigene, virtuelle CPU ausgef ¨uhrt

nebenl ¨aufige (quasi-parallele) Abarbeitung der Threads

nutzt alle anderen Ressourcen seines Prozesses (u.a. den virtuellen Adreßraum) gemeinsam mit dessen anderen

Threads

➥ Real: (jede) CPU schaltet zwischen den Threads hin und her

Multithreading

Umschalten durch Umladen der CPU-Register (incl. PC)

(102)

2.1 Begriffskl ¨arung ...

CPU virtuelle

CPU virtuelle Prozeß

CPU virtuelle

Prozeß

CPU reale

Prozeß Prozeß

Modell Realisierung

(103)

2.2 Thread-/Prozeßzust ¨ande

Ein einfaches Thread-Modell

Prozessor Warteschlange

Start Ende

Hier warten

rechenbereite deaktiviert werden

hinten "anstellen"

Threads

Thread kann

=> er muß sich wieder Nur einer kann rechnen

➥ Anmerkung: alle Modelle in diesem Abschnitt gelten in der selben

(104)

2.2 Thread-/Prozeßzust ¨ande

Ein einfaches Thread-Modell

Nur zwei können rechnen

Prozessor Warteschlange

Start Ende

Hier warten

rechenbereite deaktiviert werden

hinten "anstellen"

Threads

Thread kann

=> er muß sich wieder

(105)

2.2 Thread-/Prozeßzust ¨ande ...

Ein einfaches Thread-Modell ...

Prozessor Warteschlange

Start Ende

Zustandsgraph eines Threads

bereit rechnend

Start Ende

wird tatsächlich möchte rechnen, Entzug der CPU

Zuteilung der CPU

Thread

darf aber nicht

Thread gerade ausgeführt

(106)

2.2 Thread-/Prozeßzust ¨ande ...

Zustandsgraph f ¨ur ein erweitertes Thread-Modell

bereit rechnend

Zuteilung der CPU

Entzug der CPU

Ende Start

(107)

2.2 Thread-/Prozeßzust ¨ande ...

Zustandsgraph f ¨ur ein erweitertes Thread-Modell

(eigene Warteschlange, evtl. pro Ereignis) Threads, die z.B. auf E/A warten,

können nicht ausgeführt werden blockiert

Warten auf Ereignis

tritt ein Ereignis

bereit rechnend

Zuteilung der CPU

Entzug der CPU

Ende Start

(108)

2.2 Thread-/Prozeßzust ¨ande ...

Zustandsgraph f ¨ur ein erweitertes Thread-Modell ...

Die Verwaltungsdatenstruktur für

Thread ist terminiert, Ver−

den Thread ist bereits

beendet

neu Start Ende

Löschung Erzeugung

blockiert

Warten auf Ereignis

tritt ein Ereignis

bereit rechnend

Zuteilung der CPU

Entzug der CPU

(109)

2.2 Thread-/Prozeßzust ¨ande ...

Eine Warteschlange f ¨ur alle blockierten Threads

Warten auf Ereignis Warteschlange für

blockierte Threads

Prozessor Start

Warteschlange für

Ende

Deaktivierung bereite Threads

(110)

2.2 Thread-/Prozeßzust ¨ande ...

Eine Warteschlange pro Ereignis

Warteschlange für Ereignis 1

Warteschlange für

Ereignis 2 Warten auf Ereignis 1 Prozessor

Start

Warteschlange für

Ende

Deaktivierung bereite Threads

(111)

2.3 Erzeugung und Terminierung von Prozessen

Gr ¨unde f ¨ur Prozeßerzeugung:

➥ Initialisierung des Systems

Hintergrundprozesse (Daemons) f ¨ur BS-Dienste

➥ Benutzeranfrage

Interaktive Anmeldung, Start eines Programms

➥ Erzeugung durch Systemaufruf eines bestehenden Prozesses

➥ Initiierung eines Batch-Jobs

in Mainframe-BSen

➥ Technisch wird ein neuer Prozeß (fast) immer durch einen Systemaufruf (z.B. fork bzw. CreateProcess) erzeugt

f ¨uhrt zu Prozeßhierarchie

(112)

2.3 Erzeugung und Terminierung von Prozessen ...

Beispiel: Prozeßhierarchie unter UNIX

Shell Shell

Init Initialisierungsprozeß

sshd

Compiler Editor

Login Login

Benutzer

interpreter (Shells) pro Mehrere Kommando−

ein Login−Prozeß Für jeden Benutzer

lpd Daemons

QSort Anwendungen

(113)

2.3 Erzeugung und Terminierung von Prozessen ...

Gr ¨unde f ¨ur Prozeßterminierung:

➥ Freiwillig

durch Aufruf von z.B. exit bzw. ExitProcess

normal oder wegen Fehler

➥ Unfreiwillig (Abbruch durch BS)

wegen schwerwiegender Fehler, z.B. Speicher ¨uberschreitung, Ausnahme, E/A-Fehler, Schutzverletzung

durch andere (berechtigte) Prozesse, ¨uber Systemaufruf (z.B.

kill bzw. TerminateProcess)

Teilweise ist noch eine Reaktion des Prozesses auf das Ereignis m ¨oglich (☞ 3.2.4: Signale)

(114)

2.4 Implementierung von Prozessen und Threads

➥ BS pflegt Prozeßtabelle mit Informationen ¨uber alle Prozesse

der Eintrag f ¨ur einen Prozeß heißt Prozeßkontrollblock

➥ Analog: Threadtabelle f ¨ur alle Threads

Eintrag: Threadkontrollblock

➥ Prozeßadressraum, Prozeßkontrollblock und Threadkontroll- bl ¨ocke beschreiben einen Prozeß vollst ¨andig

➥ Typische Elemente des Prozeßkontrollblocks:

Prozeßidentifikation, Zustands- und Ressourceninformation

➥ Typische Elemente des Threadkontrollblocks:

Threadidentifikation, Zustandsinformation

(115)

2.4 Implementierung von Prozessen und Threads ...

Inhalt des Prozeßkontrollblocks

➥ Prozeßidentifikation

Kennung des Prozesses und des Elternprozesses

Benutzerkennung

Liste der Kennungen aller Threads

➥ Zustandsinformation

Priorit ¨at, verbrauchte CPU-Zeit, ...

➥ Verwaltungsinformation

Daten f ¨ur Interprozeßkommunikation (☞ 3)

Prozeßprivilegien

Tabellen f ¨ur Speicherabbildung (Speicherverwaltung, ☞ 6)

Ressourcenbesitz und -nutzung

Referenzen

ÄHNLICHE DOKUMENTE

Stichtenoth 11.01.2006. Mathematik f¨ ur

2 M¨ oglichkeit 1: Descartes ist der Meinung, daß mathematisches Erfassen klar und deutlich ist; glaubt aber, daß es berechtigte Zweifel an der Mathematik gibt; dann w¨ are

Source of material: The compound was synthesized from filings of Y metal and red Ρ (molar ratio 1:7) with small amounts of iodine in presence of molten LiCl/KJ in a sealed

wenn ein Buchstabe angesagt wird, muss ihn das Kind sofort niederschreiben können, ohne

dividiert werden, wenn sie entweder dieselbe Basis und/oder denselben Exponenten

Welche Rechnungen kann man mit Wurzeln ausf¨ uhren.. Addition

➥ Frame umkreist den Ring und wird vom Sender wieder entfernt. ➥ jeder Knoten reicht den

➥ USE ACTIVE OBJECT MAP ONLY: Objekt-IDs werden nur ¨uber Active Object Map (AOM) auf Servants umgesetzt. ➥ USE DEFAULT SERVANT: Wenn Objekt-ID nicht in