21
Bruno Kleinert 3.11.03 Prozesse: Prozesskontrollblock, -steuerung, -umschaltung Proseminar: Konzepte von Betriebssystemkomponenten Prozesse: Prozesskontrollblock, -steuerung,-umschaltung Bruno Kleinert

Proseminar: Konzepte von Betriebssystemkomponenten · 2003-11-03 · Das bedeutet: Jeder Prozess besitzt anderes Zustandsmuster der Register Zustände der Register vor einem Prozesswechsel

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Proseminar: Konzepte von Betriebssystemkomponenten · 2003-11-03 · Das bedeutet: Jeder Prozess besitzt anderes Zustandsmuster der Register Zustände der Register vor einem Prozesswechsel

Bruno Kleinert3.11.03

Prozesse:Prozesskontrollblock,

-steuerung,-umschaltung

Proseminar: Konzepte von Betriebssystemkomponenten

Prozesse: Prozesskontrollblock, -steuerung,-umschaltungBruno Kleinert

Page 2: Proseminar: Konzepte von Betriebssystemkomponenten · 2003-11-03 · Das bedeutet: Jeder Prozess besitzt anderes Zustandsmuster der Register Zustände der Register vor einem Prozesswechsel

Prozesse: Prozesskontrollblock, -steuerung,-umschaltungBruno Kleinert

Überblick

- Prozesskontrollblock

- Prozesszustände

- Prozessumschaltung

Page 3: Proseminar: Konzepte von Betriebssystemkomponenten · 2003-11-03 · Das bedeutet: Jeder Prozess besitzt anderes Zustandsmuster der Register Zustände der Register vor einem Prozesswechsel

Prozesse: Prozesskontrollblock, -steuerung,-umschaltungBruno Kleinert

Prozesskontrollblock

Was ist ein Prozess?

● Programm während der Ausführung

● Ein Programm kann während der Ausführung auch aus mehreren Prozessen bestehen

Page 4: Proseminar: Konzepte von Betriebssystemkomponenten · 2003-11-03 · Das bedeutet: Jeder Prozess besitzt anderes Zustandsmuster der Register Zustände der Register vor einem Prozesswechsel

Prozesskontrollblock

Zentrales Element:Der Process Descriptor

● Speicherstruktur● enthält Informationen über genau einen Prozess

=> Je Prozess ein Process Descriptor

Im Process Descriptor wird z.B. gespeichert:

● Zugeordneter Speicherbereich● Priorität● Dateien auf die der Prozess Zugriff hat● Zeiger auf weitere Speicherstrukturen

Prozesse: Prozesskontrollblock, -steuerung,-umschaltungBruno Kleinert

Page 5: Proseminar: Konzepte von Betriebssystemkomponenten · 2003-11-03 · Das bedeutet: Jeder Prozess besitzt anderes Zustandsmuster der Register Zustände der Register vor einem Prozesswechsel

Prozesskontrollblock

Status

Priorität

.

.

.

vorheriger Prozess

nächster Prozess

...

...

...

...

Zeiger auf weitere Speicherstrukturen

...

...

pid

Der Process Descriptor

Prozesse: Prozesskontrollblock, -steuerung,-umschaltungBruno Kleinert

Page 6: Proseminar: Konzepte von Betriebssystemkomponenten · 2003-11-03 · Das bedeutet: Jeder Prozess besitzt anderes Zustandsmuster der Register Zustände der Register vor einem Prozesswechsel

Zustände von Prozessen

● TASK_RUNNING- wird ausgeführt

● TASK_INTERRUPTIBLE- angehalten- wird durch Signal oder frei gewordenes Hardware Gerät wieder aufgeweckt

● TASK_UNINTERRUPTIBLE- angehalten- kann NUR von frei gewordenem Hardware Gerät wieder aufgeweckt werden- Anwendung z.B. bei Gerätetreibern

Prozesse: Prozesskontrollblock, -steuerung,-umschaltungBruno Kleinert

Page 7: Proseminar: Konzepte von Betriebssystemkomponenten · 2003-11-03 · Das bedeutet: Jeder Prozess besitzt anderes Zustandsmuster der Register Zustände der Register vor einem Prozesswechsel

Zustände von Prozessen

● TASK_STOPPED- gestoppt- Ausführung kann wieder aufgenommen werden- Anwendung z.B. bei Debuggern

● TASK_ZOMBIE- beendet- ein anderer Prozess benötigt eventuell Daten über toten Prozess

=> Kernel kann Ressourcen noch nicht freigeben

In welchem Zustand sich ein Prozess befindet wird im Process Descriptor im Status Feld gespeichert!

Prozesse: Prozesskontrollblock, -steuerung,-umschaltungBruno Kleinert

Page 8: Proseminar: Konzepte von Betriebssystemkomponenten · 2003-11-03 · Das bedeutet: Jeder Prozess besitzt anderes Zustandsmuster der Register Zustände der Register vor einem Prozesswechsel

Zustände von Prozessen

Die Identifikation von Prozessen im System

verschiedene Möglichkeiten:

● Über den Process Descriptor- Zeiger auf Speicheradresse zu Beginn des Process

Descriptors- hauptsächlich Kernel nutzt diesen Weg

● Über Process IDs- Fortlaufende Nummerierung der Prozesse- für Benutzer einfache Variante

Prozesse: Prozesskontrollblock, -steuerung,-umschaltungBruno Kleinert

Page 9: Proseminar: Konzepte von Betriebssystemkomponenten · 2003-11-03 · Das bedeutet: Jeder Prozess besitzt anderes Zustandsmuster der Register Zustände der Register vor einem Prozesswechsel

Zustände von Prozessen

● Gruppen- Prozesse einer Gruppen werden zu Listen zusammengefasst- können parallel über gleiche Gruppen PID erreicht werden –

die PID stammt vom ersten Prozess der Gruppe- aber: haben dennoch alle unterschiedliche eigene PIDs!

1.Zeiger auf Startadresse des Process Descriptor

pid

...

tgid

...

...

2.

3.Gruppen PID

Prozesse: Prozesskontrollblock, -steuerung,-umschaltungBruno Kleinert

Page 10: Proseminar: Konzepte von Betriebssystemkomponenten · 2003-11-03 · Das bedeutet: Jeder Prozess besitzt anderes Zustandsmuster der Register Zustände der Register vor einem Prozesswechsel

Zustände von Prozessen

Verwaltung der Prozessstrukturen

● Listen für verschiedene Zustände● Prozesse werden in entsprechende Listen

eingegliedert● Verkettung über Zeiger auf Process Descriptoren● gespeichert in den Feldern next_task und prev_task

next_task next_task next_task

prev_task prev_taskprev_task

Prozess 0 Prozess 1 Prozess 2

Prozesse: Prozesskontrollblock, -steuerung,-umschaltungBruno Kleinert

Page 11: Proseminar: Konzepte von Betriebssystemkomponenten · 2003-11-03 · Das bedeutet: Jeder Prozess besitzt anderes Zustandsmuster der Register Zustände der Register vor einem Prozesswechsel

Zustände von Prozessen

Prozesslisten als Warteschlangen

Durch Systemaufruf, kann ein Prozess in eine Warteschlange gelangen.

● gleiche Verkettung zu einer Prozessliste

Prozesse, die auf die gleiche Ressource warten

● exklusiv → nur ein Prozess wird aufgeweckt● nicht exklusiv → alle Prozesse werden aufgeweckt

Prozesse: Prozesskontrollblock, -steuerung,-umschaltungBruno Kleinert

Page 12: Proseminar: Konzepte von Betriebssystemkomponenten · 2003-11-03 · Das bedeutet: Jeder Prozess besitzt anderes Zustandsmuster der Register Zustände der Register vor einem Prozesswechsel

Prozessumschaltung

Hintergrund der Umschaltung:

● in Mehrprozess-Betriebssystem sind zwar mehrere Prozesse gleichzeitig möglich, aber...

● auf CPU kann nur ein Prozess bearbeitet werden

=> Prozesse müssen abwechselnd CPU-Zeit bekommen

Prozesse: Prozesskontrollblock, -steuerung,-umschaltungBruno Kleinert

Page 13: Proseminar: Konzepte von Betriebssystemkomponenten · 2003-11-03 · Das bedeutet: Jeder Prozess besitzt anderes Zustandsmuster der Register Zustände der Register vor einem Prozesswechsel

Prozessumschaltung

Problemstellung bei der Umschaltung:

Prozesse müssen sich alle CPU Register teilen!

Das bedeutet:

● Jeder Prozess besitzt anderes Zustandsmuster der Register

● Zustände der Register vor einem Prozesswechsel speichern● Zustände in die CPU Laden, bevor ein anderer Prozess seine

Arbeit wieder aufnimmt

Prozesse: Prozesskontrollblock, -steuerung,-umschaltungBruno Kleinert

Page 14: Proseminar: Konzepte von Betriebssystemkomponenten · 2003-11-03 · Das bedeutet: Jeder Prozess besitzt anderes Zustandsmuster der Register Zustände der Register vor einem Prozesswechsel

Prozessumschaltung

Prozesswechsel unter Linux

Bei Interarchitektur: in Hardware bereits Implementierung zur Vereinfachung der Umschaltung, aber...

Linux verlässt sich nicht auf die Hardware und übernimmt die Umschaltung nur durch Software!

Das bietet zwei wesentliche Vorteile...

Prozesse: Prozesskontrollblock, -steuerung,-umschaltungBruno Kleinert

Page 15: Proseminar: Konzepte von Betriebssystemkomponenten · 2003-11-03 · Das bedeutet: Jeder Prozess besitzt anderes Zustandsmuster der Register Zustände der Register vor einem Prozesswechsel

Prozessumschaltung

1. Software Umschaltung flexibel und modifizierbarbessere AnpassungsmöglichkeitSpielraum um Optimierungen der Umschaltung vorzunehmen

2. Software Umschaltung setzt sich aus einer Reihe Assemblerbefehlen zusammen=> der Vorgang der Umschaltung wird transparent

bessere Kontrolle der zu ladenden Registerdaten auf Fehler

Prozesse: Prozesskontrollblock, -steuerung,-umschaltungBruno Kleinert

Page 16: Proseminar: Konzepte von Betriebssystemkomponenten · 2003-11-03 · Das bedeutet: Jeder Prozess besitzt anderes Zustandsmuster der Register Zustände der Register vor einem Prozesswechsel

Prozessumschaltung

Der Ablauf der Umschaltung

Wann eine Umschaltung stattfindet bestimmt der Scheduler.

Innerhalb der Scheduler-Funktion müssen zwei Variablen zur Verfügung stehen:

● prev -> zu ersetzender Prozess● next -> zu aktivierender Prozess

Prozesse: Prozesskontrollblock, -steuerung,-umschaltungBruno Kleinert

Page 17: Proseminar: Konzepte von Betriebssystemkomponenten · 2003-11-03 · Das bedeutet: Jeder Prozess besitzt anderes Zustandsmuster der Register Zustände der Register vor einem Prozesswechsel

Prozessumschaltung

Zur Ausführung der Umschaltung selbst, muss ein Makro aufgerufen werden, das als Parameter drei Prozesse benötigt.

● prev -> zu ersetzender Prozess● next -> zu aktivierender Prozess● last -> zu ersetzender Prozess

Prozesse: Prozesskontrollblock, -steuerung,-umschaltungBruno Kleinert

Page 18: Proseminar: Konzepte von Betriebssystemkomponenten · 2003-11-03 · Das bedeutet: Jeder Prozess besitzt anderes Zustandsmuster der Register Zustände der Register vor einem Prozesswechsel

Prozessumschaltung

A CB

switch_to(prev, next, last) A B A (!)

Hier sind prev, next und last Parameter!!

Variable prevVariable next

Von Prozess A soll zu B umgeschalten werden.

A CB

Variable prev Variable next

A CB

Variable prev Variable nextaktueller Prozess

aktueller Prozess

Prozesse: Prozesskontrollblock, -steuerung,-umschaltungBruno Kleinert

Page 19: Proseminar: Konzepte von Betriebssystemkomponenten · 2003-11-03 · Das bedeutet: Jeder Prozess besitzt anderes Zustandsmuster der Register Zustände der Register vor einem Prozesswechsel

Prozessumschaltung

A CB

switch_to(prev, next, last) A B A (!)

Hier sind prev, next und last Parameter!!

Variable prevVariable next

Von Prozess A soll zu B umgeschalten werden.

A CB

Variable prev Variable next

A CB

Variable prev Variable nextaktueller Prozess

aktueller Prozess

Prozesse: Prozesskontrollblock, -steuerung,-umschaltungBruno Kleinert

Page 20: Proseminar: Konzepte von Betriebssystemkomponenten · 2003-11-03 · Das bedeutet: Jeder Prozess besitzt anderes Zustandsmuster der Register Zustände der Register vor einem Prozesswechsel

Prozessumschaltung

A CB

switch_to(prev, next, last) A B A (!)

Hier sind prev, next und last Parameter!!

Variable prevVariable next

Von Prozess A soll zu B umgeschalten werden.

A CB

Variable prev Variable next

A CB

Variable prev Variable nextaktueller Prozess

aktueller Prozess

Prozesse: Prozesskontrollblock, -steuerung,-umschaltungBruno Kleinert

Page 21: Proseminar: Konzepte von Betriebssystemkomponenten · 2003-11-03 · Das bedeutet: Jeder Prozess besitzt anderes Zustandsmuster der Register Zustände der Register vor einem Prozesswechsel

Zusammenfassung

Prozesse: Prozesskontrollblock, -steuerung,-umschaltungBruno Kleinert

● Prozesskontrollblock− Process Descriptor speichert Prozessinformationen

● Prozesszustände− gespeichert im Process Descriptor− PID ist nicht der einzige Weg Prozesse zu identifizieren

um Zustände zuzweisen

● Prozessumschaltung− Linux nutzt nicht Implementierung der Hardware