prozesse und threads...–program status word (psw) •kontroll-, modusinformation, status-bits...
TRANSCRIPT
![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](https://reader030.vdocuments.mx/reader030/viewer/2022040211/5e77b76b0d5a9a06d0689dcc/html5/thumbnails/2.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022040211/5e77b76b0d5a9a06d0689dcc/html5/thumbnails/3.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022040211/5e77b76b0d5a9a06d0689dcc/html5/thumbnails/4.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022040211/5e77b76b0d5a9a06d0689dcc/html5/thumbnails/5.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022040211/5e77b76b0d5a9a06d0689dcc/html5/thumbnails/6.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022040211/5e77b76b0d5a9a06d0689dcc/html5/thumbnails/7.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022040211/5e77b76b0d5a9a06d0689dcc/html5/thumbnails/8.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022040211/5e77b76b0d5a9a06d0689dcc/html5/thumbnails/9.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022040211/5e77b76b0d5a9a06d0689dcc/html5/thumbnails/10.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022040211/5e77b76b0d5a9a06d0689dcc/html5/thumbnails/11.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022040211/5e77b76b0d5a9a06d0689dcc/html5/thumbnails/12.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022040211/5e77b76b0d5a9a06d0689dcc/html5/thumbnails/13.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022040211/5e77b76b0d5a9a06d0689dcc/html5/thumbnails/14.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022040211/5e77b76b0d5a9a06d0689dcc/html5/thumbnails/15.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022040211/5e77b76b0d5a9a06d0689dcc/html5/thumbnails/16.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022040211/5e77b76b0d5a9a06d0689dcc/html5/thumbnails/17.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022040211/5e77b76b0d5a9a06d0689dcc/html5/thumbnails/18.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022040211/5e77b76b0d5a9a06d0689dcc/html5/thumbnails/19.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022040211/5e77b76b0d5a9a06d0689dcc/html5/thumbnails/20.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022040211/5e77b76b0d5a9a06d0689dcc/html5/thumbnails/21.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022040211/5e77b76b0d5a9a06d0689dcc/html5/thumbnails/22.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022040211/5e77b76b0d5a9a06d0689dcc/html5/thumbnails/23.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022040211/5e77b76b0d5a9a06d0689dcc/html5/thumbnails/24.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022040211/5e77b76b0d5a9a06d0689dcc/html5/thumbnails/25.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022040211/5e77b76b0d5a9a06d0689dcc/html5/thumbnails/26.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022040211/5e77b76b0d5a9a06d0689dcc/html5/thumbnails/27.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022040211/5e77b76b0d5a9a06d0689dcc/html5/thumbnails/28.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022040211/5e77b76b0d5a9a06d0689dcc/html5/thumbnails/29.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022040211/5e77b76b0d5a9a06d0689dcc/html5/thumbnails/30.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022040211/5e77b76b0d5a9a06d0689dcc/html5/thumbnails/31.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022040211/5e77b76b0d5a9a06d0689dcc/html5/thumbnails/32.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022040211/5e77b76b0d5a9a06d0689dcc/html5/thumbnails/33.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022040211/5e77b76b0d5a9a06d0689dcc/html5/thumbnails/34.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022040211/5e77b76b0d5a9a06d0689dcc/html5/thumbnails/35.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022040211/5e77b76b0d5a9a06d0689dcc/html5/thumbnails/36.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022040211/5e77b76b0d5a9a06d0689dcc/html5/thumbnails/37.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022040211/5e77b76b0d5a9a06d0689dcc/html5/thumbnails/38.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022040211/5e77b76b0d5a9a06d0689dcc/html5/thumbnails/39.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022040211/5e77b76b0d5a9a06d0689dcc/html5/thumbnails/40.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022040211/5e77b76b0d5a9a06d0689dcc/html5/thumbnails/41.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022040211/5e77b76b0d5a9a06d0689dcc/html5/thumbnails/42.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022040211/5e77b76b0d5a9a06d0689dcc/html5/thumbnails/43.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022040211/5e77b76b0d5a9a06d0689dcc/html5/thumbnails/44.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022040211/5e77b76b0d5a9a06d0689dcc/html5/thumbnails/45.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022040211/5e77b76b0d5a9a06d0689dcc/html5/thumbnails/46.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022040211/5e77b76b0d5a9a06d0689dcc/html5/thumbnails/47.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022040211/5e77b76b0d5a9a06d0689dcc/html5/thumbnails/48.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022040211/5e77b76b0d5a9a06d0689dcc/html5/thumbnails/49.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022040211/5e77b76b0d5a9a06d0689dcc/html5/thumbnails/50.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022040211/5e77b76b0d5a9a06d0689dcc/html5/thumbnails/51.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022040211/5e77b76b0d5a9a06d0689dcc/html5/thumbnails/52.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022040211/5e77b76b0d5a9a06d0689dcc/html5/thumbnails/53.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022040211/5e77b76b0d5a9a06d0689dcc/html5/thumbnails/54.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022040211/5e77b76b0d5a9a06d0689dcc/html5/thumbnails/55.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022040211/5e77b76b0d5a9a06d0689dcc/html5/thumbnails/56.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022040211/5e77b76b0d5a9a06d0689dcc/html5/thumbnails/57.jpg)
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](https://reader030.vdocuments.mx/reader030/viewer/2022040211/5e77b76b0d5a9a06d0689dcc/html5/thumbnails/58.jpg)
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