58
Prozesse und Threads Peter Puschner Institut für Technische Informatik [email protected] 1

Prozesse und Threads...–Program Status Word (PSW) •Kontroll-, Modusinformation, Status-Bits •Stack Pointers Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20

  • Upload
    others

  • View
    12

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Prozesse und Threads...–Program Status Word (PSW) •Kontroll-, Modusinformation, Status-Bits •Stack Pointers Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20

Prozesse und Threads

Peter PuschnerInstitut für Technische [email protected] 1

Page 2: Prozesse und Threads...–Program Status Word (PSW) •Kontroll-, Modusinformation, Status-Bits •Stack Pointers Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20

Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20 2

Ziel:“Gleichzeitiges”, kontrolliertes Ausführenvon Programmen auf einem Rechner

➭Welche Mechanismen sind nötig?➭Welche Datenstrukturen brauchen wir?

Page 3: Prozesse und Threads...–Program Status Word (PSW) •Kontroll-, Modusinformation, Status-Bits •Stack Pointers Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20

Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20 3

• Begriffe und Konzepte• Prozesszustände• Kontrollstrukturen des BS• Prozesse – BS-Implementierungen• Threads

Page 4: Prozesse und Threads...–Program Status Word (PSW) •Kontroll-, Modusinformation, Status-Bits •Stack Pointers Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20

Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20 4

Prozess“Animated Spirit of a program”

• ausführbares Programm• zugehörige Daten (Variable, Puffer, etc.)• Kontext

– akt. Zustand des Prozesses (PC, Register, etc.)– Daten zur Prozessverwaltung

(Wartebedingung, Priorität, etc.)

Page 5: Prozesse und Threads...–Program Status Word (PSW) •Kontroll-, Modusinformation, Status-Bits •Stack Pointers Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20

Peter Puschner, TU Wien

Prozesse im BS

Vorlesung Betriebssysteme, Prozesse; WS 19/20 5

Dispatcher

Prozess A

Prozess B

Prozess C

c+6

HauptspeicherBefehlszähler

d

a

b

c

Page 6: Prozesse und Threads...–Program Status Word (PSW) •Kontroll-, Modusinformation, Status-Bits •Stack Pointers Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20

Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20 6

Trace• Charakterisiert das Verhalten eines Prozesses• Sequenz der Instruktionen, die für einen Prozess

ausgeführt werden• Überlappung von Traces verschiedener

Prozesse charakterisieren das Prozessorverhalten

Page 7: Prozesse und Threads...–Program Status Word (PSW) •Kontroll-, Modusinformation, Status-Bits •Stack Pointers Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20

Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20 7

Traces

a+0a+1a+2a+3a+4a+5a+6a+7a+8a+9

b+0b+1b+2

c+0c+1c+2c+3c+4c+5c+6

Prozesse

A B C

Dispatcher

d+0d+1d+2d+3(I/O)

TI/O

… Timeout… I/O Request kombinierter Trace

a+0a+1a+2a+3a+4

d+0d+1d+2d+3b+0b+1b+2

T

I/O

d+0d+1d+2d+3c+0c+1c+2c+3c+4

d+0d+1d+2

T

d+3a+5a+6a+7a+8a+9

d+0d+1d+2d+3c+5c+6

T

Page 8: Prozesse und Threads...–Program Status Word (PSW) •Kontroll-, Modusinformation, Status-Bits •Stack Pointers Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20

Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20 8

Einfachstes Prozessmodell

NotRunning Running

Enter ExitDispatch

Pause

CPUDispatch

Pause

Enter ExitQueue

Page 9: Prozesse und Threads...–Program Status Word (PSW) •Kontroll-, Modusinformation, Status-Bits •Stack Pointers Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20

Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20 9

BS und Prozesse• BS kontrolliert die Ausführung der Prozesse

(Ausführungsmuster, Ressourcenzuteilung)• Repräsentation von Prozessen muss Aufgaben

des BS unterstützen– Zustand des Prozesses– vom Prozess belegter Speicherbereich➭Verwaltung von Prozessen in Datenstrukturen

(Queues) entsprechend ihren Zuständen

Page 10: Prozesse und Threads...–Program Status Word (PSW) •Kontroll-, Modusinformation, Status-Bits •Stack Pointers Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20

Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20 10

Erzeugung von ProzessenBS baut Datenstrukturen auf und allokiert

notwendigen Speicher.

Wann wird ein Prozess erzeugt?• Login eines interaktiven Benutzers• BS: Ausführung eines Services• Erzeugung durch einen Benutzerprozess

(Process Spawning: Parent bzw. Child) • Absetzen eines neuen Jobs

Page 11: Prozesse und Threads...–Program Status Word (PSW) •Kontroll-, Modusinformation, Status-Bits •Stack Pointers Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20

Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20 11

Beendigung von ProzessenProzess zeigt Beendigung an• Logout durch den Benutzer• Service Request an das BS• Auftreten eines Fehlers bei der Abarbeitung

eines Prozesses• Halt-Instruktion eines Jobs

Page 12: Prozesse und Threads...–Program Status Word (PSW) •Kontroll-, Modusinformation, Status-Bits •Stack Pointers Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20

Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20 12

Prozesszustände

Page 13: Prozesse und Threads...–Program Status Word (PSW) •Kontroll-, Modusinformation, Status-Bits •Stack Pointers Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20

Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20 13

Wesentliche Prozesszustände• Running

– Prozess ist im Besitz der CPU und wird ausgeführt• Ready

– Prozess ist bereit zur Ausführung (wartet nur auf Zuteilung der CPU)

• Blocked / Waiting– Prozess wartet auf ein Ereignis (z.B. Beendigung von

I/O), ist nicht laufbereit

Page 14: Prozesse und Threads...–Program Status Word (PSW) •Kontroll-, Modusinformation, Status-Bits •Stack Pointers Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20

Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20 14

Wesentliche Prozesszustände• New

– BS hat den Prozess kreiert:• Prozessnummer (process identifier)• Tabellen und Tabelleneinträge zur Prozessverwaltung

– der Prozess ist jedoch noch nicht bereit zur Ausführung

• Vermeidung der Ressourcenüberlastung durch Zulassung zuvieler Prozesse

Page 15: Prozesse und Threads...–Program Status Word (PSW) •Kontroll-, Modusinformation, Status-Bits •Stack Pointers Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20

Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20 15

Wesentliche Prozesszustände• Exit

– Zustand wird durch Terminierung erreicht– Prozess wird nicht mehr weiter ausgeführt– Prozessinformationen (Tabellen) werden von

Hilfsprogrammen verwendet (z.B. Accounting, Debugging)

– Die Prozessinformationen, -tabellen werden gelöscht, wenn sie nicht mehr benötigt werden

Page 16: Prozesse und Threads...–Program Status Word (PSW) •Kontroll-, Modusinformation, Status-Bits •Stack Pointers Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20

Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20 16

5 Zustands-Prozessmodell

RunningDispatch

ReadyNew Exit

Blocked

TimeoutEvent

occurs EventWait

Admit Release

Page 17: Prozesse und Threads...–Program Status Word (PSW) •Kontroll-, Modusinformation, Status-Bits •Stack Pointers Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20

Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20 17

Queuing Modell

CPUDispatch

Timeout

Admit ReleaseReady Queue

Event 1 Queue

Event n Queue

Event 1 Wait

Event n Wait

Event 1occurs

Event noccurs

Page 18: Prozesse und Threads...–Program Status Word (PSW) •Kontroll-, Modusinformation, Status-Bits •Stack Pointers Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20

Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20 18

Process Switch• Umschalten des aktiven Prozesses• immer dann möglich, wenn das BS im Besitz der

CPU ist:– Supervisor Call

expliziter Aufruf durch das Programm (I/O, …)– Trap

bedingt durch aktuelle Instruktion (z.B. Auftreten eines Fehlers)

– InterruptUrsache liegt außerhalb des Prozesses, Kontrolle geht an Interrupt Handler und BS

Page 19: Prozesse und Threads...–Program Status Word (PSW) •Kontroll-, Modusinformation, Status-Bits •Stack Pointers Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20

Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20 19

Swapping• zuviele Prozesse im Hauptspeicher führen zu

einer Verschlechterung der Performance• Abhilfe: Swapping = Auslagern von Prozessen

auf einen Sekundärspeicher• zur Realisierung im BS: zwei neue

Prozesszustände und Queues– Ready, suspend– Blocked, suspend

Page 20: Prozesse und Threads...–Program Status Word (PSW) •Kontroll-, Modusinformation, Status-Bits •Stack Pointers Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20

Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20 20

Prozesszustände mit Suspend

RunningDispatch

Ready Exit

Blocked

Timeout

Eventoccurs Event

Wait

Release

NewAdmit

Ready,suspend

Admit

Blocked,suspend

Eventoccurs

Activate

Suspend

Activate

Suspend

Suspend

Page 21: Prozesse und Threads...–Program Status Word (PSW) •Kontroll-, Modusinformation, Status-Bits •Stack Pointers Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20

Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20 21

Ursachen für Suspend• Swapping• BS lagert Hintergrundprozess, Utility, oder

problembehafteten Prozess aus• Interaktiver Request (z.B. für Debugging)• Timing: periodischer Prozess kann zwischen

Aktivierungen ausgelagert werden• Parent Request: Untersuchung, Modifikation,

Koordination von Kindprozessen

Page 22: Prozesse und Threads...–Program Status Word (PSW) •Kontroll-, Modusinformation, Status-Bits •Stack Pointers Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20

Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20 22

Kontrollstrukturenfür die

Prozessverwaltung

Page 23: Prozesse und Threads...–Program Status Word (PSW) •Kontroll-, Modusinformation, Status-Bits •Stack Pointers Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20

Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20 23

Kontrollstrukturen des BSDas BS verwaltet die folgenden Tabellen für

Prozesse und Ressourcen• Memory Tables• I/O Tables (für Geräte und Kanäle)• File Tables• Process Tables

Page 24: Prozesse und Threads...–Program Status Word (PSW) •Kontroll-, Modusinformation, Status-Bits •Stack Pointers Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20

Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20 24

Process Image• User Program• User Data

– modifizierbarer Bereich des User Space(Daten, User Stack, modifizierbare Programme)

• System Stack– Parameter und Calling Addr. von System Calls

• Process Control Block (Execution Context)– Process identification, processor state information,

process control information

Page 25: Prozesse und Threads...–Program Status Word (PSW) •Kontroll-, Modusinformation, Status-Bits •Stack Pointers Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20

Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20 25

Process Image

Process Id.Processor State

InformationProcess Control

Information

User Stack

Private UserAddress Space

SharedAddress Space

ProcessControlBlock(PCB)

• befindet sich im Virtual Memory– muss nicht zusammen-

hängend sein• Primary Process Table

enthält Verweis auf Process Image

• BS benötigt Teile des Images zur Prozess-verwaltung im Haupt-speicher

Page 26: Prozesse und Threads...–Program Status Word (PSW) •Kontroll-, Modusinformation, Status-Bits •Stack Pointers Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20

Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20 26

PCB: Process Identification• Eindeutige Prozessnummer (Process identifier)

= Index in der Primary Process Table• Benutzerkennung (User identifier)

– Benutzer, dem der Prozess gehört• Nummer des Prozesses, der den Prozess

generiert hat (Parent Process Identifier)

Page 27: Prozesse und Threads...–Program Status Word (PSW) •Kontroll-, Modusinformation, Status-Bits •Stack Pointers Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20

Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20 27

PCB: Processor State Information

• Registerinhalte• Kontroll- und Statusregister

– Befehlszähler– Program Status Word (PSW)

• Kontroll-, Modusinformation, Status-Bits

• Stack Pointers

Page 28: Prozesse und Threads...–Program Status Word (PSW) •Kontroll-, Modusinformation, Status-Bits •Stack Pointers Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20

Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20 28

PCB: Process Control Information• Scheduling und Zustandsinformation

– Zustand, in dem sich der Prozess befindet– Priorität und Schedulinginformation– Ereignis, auf das der Prozess wartet

• Querverweise auf andere Prozesse– Realisierung von Prozess-Queues– Verweis auf Parent, Child, …

Page 29: Prozesse und Threads...–Program Status Word (PSW) •Kontroll-, Modusinformation, Status-Bits •Stack Pointers Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20

Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20 29

PCB: Process Control Information• Interprozesskommunikation (IPC)

– Flags, Signale, Verweise auf Nachrichten• Privileges• Memory Management

– Verweise auf Segment- oder Seitentabellen• Ressourcen

– verwendete: geöffnete Files, I/O Devices– bisher konsumierte: CPU Zeit, I/O, etc.

Page 30: Prozesse und Threads...–Program Status Word (PSW) •Kontroll-, Modusinformation, Status-Bits •Stack Pointers Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20

Peter Puschner, TU Wien

Prozesslisten

Vorlesung Betriebssysteme, Prozesse; WS 19/20 30

RunningReady

Blocked

ProcessControlBlock

Page 31: Prozesse und Threads...–Program Status Word (PSW) •Kontroll-, Modusinformation, Status-Bits •Stack Pointers Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20

Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20 31

Execution Modes• Um die Datenstrukturen (z.B. PCB) des BS zu

schützen, gibt es mindestens zwei Execution Modes– Privileged Mode (= system mode, kernel mode,

supervisor mode, control mode)für Zugriff auf Kontrollregister, MM, I/O-Primitive

– User Mode• Mode Switch in BS-Routinen• Execution Modes werden durch Mode-Bits der

CPU unterstützt

Page 32: Prozesse und Threads...–Program Status Word (PSW) •Kontroll-, Modusinformation, Status-Bits •Stack Pointers Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20

Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20 32

Mode Switch vs. Process Switch• Mode Switch ist Basis für Process Switch• nicht jeder Mode Switch bewirkt Process Switch

usermode mode

switch

processswitch

call, trap, interrupt

save/restoreprocessor context

update PCB (state)PCB è queueselect new processupdate PCBupdate MM data

priv.mode

?

Page 33: Prozesse und Threads...–Program Status Word (PSW) •Kontroll-, Modusinformation, Status-Bits •Stack Pointers Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20

Peter Puschner, TU Wien

usermode mode

switch

interrupt

priv.mode ?

Vorlesung Betriebssysteme, Prozesse; WS 19/20 33

Example: Interrupt Handling

Page 34: Prozesse und Threads...–Program Status Word (PSW) •Kontroll-, Modusinformation, Status-Bits •Stack Pointers Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20

Peter Puschner, TU Wien

usermode mode

switch

interrupt

priv.mode ?

Vorlesung Betriebssysteme, Prozesse; WS 19/20 34

Example: Interrupt Handling

1. PC à stack, ...; load PC from interrupt vector [HW]2. Save registers, setup new stack [assembly code]3. Interrupt service, e.g., read/buffer inputs [C code]4. Scheduler decides on next process [C code]5. Return to assembly code [C code]6. Setup for process continuation [assembly code]

65421 3

Page 35: Prozesse und Threads...–Program Status Word (PSW) •Kontroll-, Modusinformation, Status-Bits •Stack Pointers Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20

Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20 35

Prozesse im Betriebssystem

Page 36: Prozesse und Threads...–Program Status Word (PSW) •Kontroll-, Modusinformation, Status-Bits •Stack Pointers Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20

Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20 36

BS und Prozesse• Verschiedene Möglichkeiten, ein BS zu

implementieren– Strikte Trennung von Kernel und Prozessen– BS exekutiert innerhalb von Benutzerprozessen– Prozessbasiertes BS

Page 37: Prozesse und Threads...–Program Status Word (PSW) •Kontroll-, Modusinformation, Status-Bits •Stack Pointers Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20

Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20 37

Nonprocess Kernel

• Prozessbegriff nur für Benutzerprogramme• Verlassen des Prozesskontexts bei BS-Aktivität• BS arbeitet von Prozessen getrennt im

Privileged Mode (eigener Speicherbereich, eigener Stack für BS)

Kernel

P1 P2 Pn...

Page 38: Prozesse und Threads...–Program Status Word (PSW) •Kontroll-, Modusinformation, Status-Bits •Stack Pointers Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20

Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20 38

BS-Ausführung in User-Prozessen

• BS ist eine Sammlung von Routinen, die vom Benutzerprogramm aufgerufen werden

• Fast alle BS-Routinen laufen im Prozesskontext• Verlassen des Prozesskontexts nur bei Process

Switch

Process Switching

P1 P2 Pn...OS OS OS

Page 39: Prozesse und Threads...–Program Status Word (PSW) •Kontroll-, Modusinformation, Status-Bits •Stack Pointers Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20

Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20 39

BS-Ausführung in User-Prozessen• BS Code und Daten werden

im Shared Address Space abgelegt

• Getrennter Kernel Stack für Kernel Mode

• Im Prozess laufen sowohl User-Programm als auch BS-Routinenè Programm vs. Prozess

User Stack

Private UserAddress Space

SharedAddress Space

PCB

Kernel Stack

Page 40: Prozesse und Threads...–Program Status Word (PSW) •Kontroll-, Modusinformation, Status-Bits •Stack Pointers Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20

Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20 40

Prozessbasiertes BS

• BS ist eine Sammlung von Systemprozessen• Nur Basisservices (Process Switching, einfaches

Memory Management, IPC, Interrupts und I/O) sind nicht als Prozesse realisiert

Process Switching

U1 U2 Un... OS1 OSn...

Page 41: Prozesse und Threads...–Program Status Word (PSW) •Kontroll-, Modusinformation, Status-Bits •Stack Pointers Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20

Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20 41

Kernel-Architekturen

Monolithic Operating System– Betriebssystem = Menge von Prozeduren– Jede Prozedur kann jede andere Prozedur aufrufen

Layered Operating System– Hierarchische Organisation der BS-Funktionen– Interaktionen zwischen benachbarten Schichten– Mehrheit der Schichten exekutieren im Kernel Mode

Page 42: Prozesse und Threads...–Program Status Word (PSW) •Kontroll-, Modusinformation, Status-Bits •Stack Pointers Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20

Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20 42

Microkernel Architektur

• Basisservices im Kernel• nicht zentrale BS Services als Server Prozesse• Nachrichtenkommunikation zw. BS/Prozessen

Microkernel

U1 Un...

Hardware

Dev

ice

Driv

er

File

Ser

ver

Proc

ess S

erve

r

Virt

ual M

emor

y

Page 43: Prozesse und Threads...–Program Status Word (PSW) •Kontroll-, Modusinformation, Status-Bits •Stack Pointers Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20

Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20 43

Microkernel ArchitekturMicrokernel Services

– Process Switching– Basic Memory Management– Interrupts und Hardware Access (I/O)– Nachrichtenaustausch und –kontrolle

Eigenschaften– Einheitliche Interfaces– Flexibilität und Erweiterbarkeit– Portabilität– Unterstützung von Verteilung– Kernelgröße: 300KB, 140 Sys. Calls (1st generation)

12KB, 7 Sys. Calls (L4, 2nd generation)

Page 44: Prozesse und Threads...–Program Status Word (PSW) •Kontroll-, Modusinformation, Status-Bits •Stack Pointers Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20

Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20 44

Zusammenfassung Prozesse• Prozess ist ein zentrales Konzept in BS• BS kreiert, verwaltet und beendet Prozesse• Prozess durchläuft verschiedene Zustände

(Ready, Running, Blocked, Suspend, ...)• Datenstrukturen zur Prozessverwaltung

– Prozesstabelle– Process Image: belegter Adressbereich,

PCB: ID, Zustand, Steuerinfo.; Ressourcen, Priorität, etc.

Page 45: Prozesse und Threads...–Program Status Word (PSW) •Kontroll-, Modusinformation, Status-Bits •Stack Pointers Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20

Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20 45

Zusammenfassung Prozesse• Mode Switch zwischen User/Kernel Mode

– Interrupt, Trap oder Supervisor Call• Execution Mode versus Prozess/BS Kontext • Unterschiedliche Ansätze der Implementierung

von BS und Prozessen– strikte Trennung BS – Prozesse– BS-Funktionen in User-Prozessen abgearbeitet– Kernel-Prozesse zur Ausführung von BS-Funktionen

Page 46: Prozesse und Threads...–Program Status Word (PSW) •Kontroll-, Modusinformation, Status-Bits •Stack Pointers Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20

Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20 46

Threads

Page 47: Prozesse und Threads...–Program Status Word (PSW) •Kontroll-, Modusinformation, Status-Bits •Stack Pointers Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20

Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20 47

Motivation Threads• Bisher betrachtete Prozesse bilden Einheit für

1. Ressourcenverwaltung2. Dispatching (kurzfristiges Scheduling)

• Entkopplung von (1) und (2):– Process (Task): Einheit der Ressourcenverwaltung– Thread (Lightweight Process): Einheit für das

Dispatching• Multithreading: n > 1 Threads pro Prozess

Page 48: Prozesse und Threads...–Program Status Word (PSW) •Kontroll-, Modusinformation, Status-Bits •Stack Pointers Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20

Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20 48

Prozesse und Threads• Process

– virtueller Adressraum mit Process Image– Speicherschutz, Files, I/O Ressourcen

• Thread– Ausführungszustand (Running, Ready, …)– Kontext (wenn nicht gerade laufend)– Stack– thread-lokale statische und lokale Variable– Zugriff auf Prozessspeicher und Ressourcen

Page 49: Prozesse und Threads...–Program Status Word (PSW) •Kontroll-, Modusinformation, Status-Bits •Stack Pointers Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20

Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20 49

Singlethreaded Process Model

ProcessControlBlock

UserAddressSpace

UserStack

KernelStack

Process

Page 50: Prozesse und Threads...–Program Status Word (PSW) •Kontroll-, Modusinformation, Status-Bits •Stack Pointers Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20

Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20 50

Multithreaded Process Model

ProcessControlBlock

UserAddressSpace

ThreadControlBlock

UserStack

KernelStack

ThreadThreadControlBlock

UserStack

KernelStack

ThreadThreadControlBlock

UserStack

KernelStack

Thread

Page 51: Prozesse und Threads...–Program Status Word (PSW) •Kontroll-, Modusinformation, Status-Bits •Stack Pointers Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20

Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20 51

Vorteile von Thread vs. Prozess• Thread-Erzeugung benötigt weniger Zeit• Umschaltung zwischen Threads geht schneller

als ein Process Switch• Terminierung eines Threads benötigt weniger

Zeit als Prozessterminierung• Kommunikation zwischen Theads eines

Prozesses ohne Einschaltung des Kernels,aber: Synchronisation notwendig!!!

Page 52: Prozesse und Threads...–Program Status Word (PSW) •Kontroll-, Modusinformation, Status-Bits •Stack Pointers Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20

Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20 52

Einsatzbereiche von ThreadsApplikationen, die zusammengehörige Menge

von Abarbeitungseinheiten bilden• Bsp: File Server in LAN

– mehrere Requests in kurzer Folge– ein Thread für jeden Request

• Bsp: Spreadsheet-Programm– ein Thread zeigt Menüs an und liest Inputs– ein Thread führt Berechnungen und Updates aus

Page 53: Prozesse und Threads...–Program Status Word (PSW) •Kontroll-, Modusinformation, Status-Bits •Stack Pointers Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20

Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20 53

Thread-Zustände• Wichtige Zustände: Running, Ready, Blocked• Zustand Suspend existiert nicht für einzelne

Threads - alle Threads eines Prozesses haben Zugriff auf den selben Adressraum

• Bei der Terminierung eines Prozesses terminieren alle zugehörigen Threads

• Was bedeutet das Blockieren eines Threads?Blockiert der Thread oder der ganze Prozess?

Page 54: Prozesse und Threads...–Program Status Word (PSW) •Kontroll-, Modusinformation, Status-Bits •Stack Pointers Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20

Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20 54

User-Level Threads (ULT)• Threads sind für den

Kernel unsichtbar• Thread Management

mittels Thread Library• Thread Switching im User

Mode (benötigt keinen Mode Switch)

• applikationsspezifisches Scheduling

Threads

P

UserSpace

KernelSpace

Lib.

Threads

Page 55: Prozesse und Threads...–Program Status Word (PSW) •Kontroll-, Modusinformation, Status-Bits •Stack Pointers Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20

Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20 55

Threads Library• enthält Code für

– Erzeugung und Terminierung von Threads– Daten-, Nachrichtenaustausch zwischen Threads– Thread Scheduling– Sichern und Herstellen von Thread Kontexten

• Blockierender System Call blockiert alle ULTs eines Prozesses

• keine Verteilung auf mehrere Prozessoren

Page 56: Prozesse und Threads...–Program Status Word (PSW) •Kontroll-, Modusinformation, Status-Bits •Stack Pointers Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20

Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20 56

Kernel-Level Threads (KLT)• Thread Management durch

den Kernel• Kernel Thread API, keine

Library• Thread Switching durch

den Kernel• Scheduling auf Thread-

BasisP

UserSpace

KernelSpace

Threads

Page 57: Prozesse und Threads...–Program Status Word (PSW) •Kontroll-, Modusinformation, Status-Bits •Stack Pointers Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20

Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20 57

Kernel-Level Threads• Thread-weises Blocking• Kernel-Routinen multi-threaded• gleichzeitiges Schedulen mehrerer Threads

eines Prozesses (bei mehreren Prozessoren)• Thread Switching innerhalb eines Prozesses

über den Kernel benötigt 2 Mode Switchesè Verlangsamung gegenüber ULTs➭ z.B. kombinierter (hybrider) ULT/KLT Ansatz

Page 58: Prozesse und Threads...–Program Status Word (PSW) •Kontroll-, Modusinformation, Status-Bits •Stack Pointers Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20

Peter Puschner, TU Wien Vorlesung Betriebssysteme, Prozesse; WS 19/20 58

Zusammenfassung Threads• Thread: Einheit für das Dispatching• mehrere Threads pro Prozess möglich• schnelleres Erzeugen und Umschalten als bei

Prozessen• verschiedene Implementierungen

– user-level Threads– kernel-level Threads