ich war hier: BSys03ProzesseThreads

Version [22397]

Dies ist eine alte Version von BSys03ProzesseThreads erstellt von RonnyGertler am 2013-03-26 15:35:14.

 

 (image: http://wdb.fh-sm.de/uploads/QualipaktLehre/BMBF_Logo_klein.jpg)

Betriebssysteme (Betriebssystemtheorie) - Kapitel 3 - 3. Prozesse und Threads

Attachments
File Last modified Size
BSys12.gif 2023-10-06 18:35 7Kb
BSys13.gif 2023-10-06 18:35 1Kb
BSys14.gif 2023-10-06 18:35 2Kb

Inhalte von Dr. E. Nadobnyh

3.1. Prozesse


Grundbegriffe


1) Ein Prozess (Task, Aufgabe) ist eine Ausführung des Programms in seiner eigenen Prozessumgebung. Der Prozess ist ein zentrales Konzept einer Parallelverarbeitung in der Betriebssystemtheorie.

2) Eine Prozessumgebung (Ablaufumgebung, Ausführungsumgebung) besteht aus dem Prozess-Kontext und zugeordneten Ressourcen.

3) Ein Ressource (Betriebsmittel) kann eine Hardware oder eine Informationseinheit sein. Jedem Prozess können folgende Ressourcen zugeordnet werden:
  1. CPU,
  1. Arbeitsspeicher,
  1. andere Ressourcen: offene Dateien, Konsolen, Netzwerkverbindungen usw.

4) Ein Prozess-Kontext ist eine ausführliche Beschreibung des Prozesses:
  1. Registerinhalte,
  1. Adressraumbeschreibung,
  1. Beschreibung der zugeordneten Ressourcen,
  1. Betriebssysteminterne Verwaltungsdaten.

5) Ein Programm ist eine Verfahrensvorschrift für die Datenverarbeitung.
  1. Ein Programm ist ein Teil der Prozessumgebung.
  1. Ein bestimmtes Programm kann von mehreren Prozessen ausgeführt werden.

6) Ein Job (Session, Anwendung) ist ein Benutzerauftrag an das Betriebssystem.
  1. Ein Job kann aus einem oder mehreren Prozessen bestehen.
  1. Jobs sind unabhängig und geschützt von anderen.


Prozessmodell


1) Die gesamte Software ist als Menge von Prozessen organisiert.

2) Das Betriebssystem schafft für jeden Prozess eine Illusion, dass er den ganzen Rechner für sich selbst alleine zur Verfügung hat. Dieser illusorische Rechner wurde durch die Multitasking realisiert.

3) Jeder Prozess merkt keine Unterbrechung, nur die zeitliche Verzögerung.

4) Jeder Prozess ist gegenüber anderen Prozessen geschützt.


PCB


1) Ein PCB*-Process Control Block (Process Context Block) wird vom Betriebssystem zur Verwaltung eines Prozesses geführt.
Ein PCB ist eine Repräsentation eines Prozesses und enthält seinen Prozess-Kontext.

2) Die Prozesstabelle wird vom BS zur Verwaltung von Prozessen geführt und enthält PCB von allen Prozessen.
Sie kann auch als Liste implementiert werden.


Typische Informationen in einem PCB


1. Register-Inhalte:
  1. PC - Program Counter,
  1. PSW - Program Status Word,
  1. SP - Stack Pointer,
  1. allgemeine Register.

2. Informationen für die Speichermanagement:
  1. Seitentabelle-Adresse,
  1. Basisregister-Inhalte,
  1. Grenzregister-Inhalte,
  1. Adressen auf Code-, Daten- und Stack-Segmente des Prozesses, usw.

3. Beschreibung der zugeordneten Betriebsmittel:
  1. Informationen für die Dateiverwaltung: Dateideskriptoren, Home-Verzeichnis, Arbeitsverzeichnis usw.
  1. Netzwerkverbindungen,
  1. allozierte Geräte usw.

4. Betriebssysteminterne Prozessverwaltungsdaten:
  1. Prozess-Nummer (PID-Process IDentification)
  1. Prozesszustand, z.B. aktiv, bereit, blockiert,
  1. Priorität für das Scheduling,
  1. verbrauchte Prozessorzeit seit dem Start,
  1. Prozeßnummer des Elternprozesses (PPID, Parent PID), usw.

⇒ Demo 1.


Prozesswechsel


Synonyme: Prozess-Umschaltung, Kontextwechsel, context-switch, process switch, task switch.

Am Prozesswechsel sind zwei Prozesse beteiligt:
  1. der suspendierte Prozess, der vor der Unterbrechung aktiv war, und
  1. der aktivierte Prozess, der vor der Unterbrechung unaktiv war. Der aktivierte Prozess wurde vom Scheduler ausgewählt.

Am Prozesswechsel sind zwei Ressourcen beteiligt:
  1. CPU-Register und
  1. Arbeitsspeicher.


Wechsel von Register-Inhalten


Dieser Wechsel besteht aus Kontextsicherung und Kontextwiederherstellung.

(1) Bei der Kontextsicherung (Kontext-Retten) müssen Registerinhalte des suspendierten Prozesses gesichert werden, um später wiederhergestellt werden zu können.
  1. Der Unterbrechungskontext wird aus dem Stack im PCB gesichert.
  1. Andere Registerinhalte werden aus der CPU im PCB gesichert.
Analogie: Schnappschuss.

(2) Bei der Kontextwiederherstellung werden Registerinhalte des aktivierten Prozesses wiederherstellt, d.h. aus dem PCB in die CPU kopiert.


Wechsel von Speicher-Inhalten


Dieser Wechsel findet z.B. im Rechner mit virtuellem Speicher statt.

Beim Prozesswechsel können:

(3) einige Speicherbereiche des suspendierten Prozesses ausgelagert werden und

(4) einige Adressraumbereiche des aktivierten Prozesses nach Bedarf von der Festplatte auf den Speicher geladen werden.


Erzeugung und Terminierung des Prozesses


Es gibt einige Möglichkeiten einen neuen Prozess zu erzeugen:
  1. beim Systemstart, z.B. Leerlaufprozess,
  1. durch Benutzeranforderung, z.B. cmd- Konsole,
  1. durch Systemaufruf im laufenden Prozess, z.B. fork in UNIX oder CreateProcess in Windows,
  1. durch Systemaufruf für Stapelauftrag, z.B. batch job.

Es gibt einige Möglichkeiten einen Prozess zu terminieren:
  1. freiwillige Beendigung durch Systemaufruf , z.B. exit in UNIX oder ExitProzess in Windows;
  1. unfreiwillige Beendigung durch das System wegen den Fehler, z.B. trap;
  1. unfreiwillige Terminierung durch einen anderen Prozess, z.B. kill.

⇒ Demo 2.
⇒ Demo 3.


Prozesszustände


Ein Prozess durchläuft während seiner Lebenszeit verschiedene Zustände. Ein Grundmodell enthält drei Zustände:

1) Aktiv (laufend, running). Der Prozess besitzt die CPU. In einem Einprozessorsystem kann nur ein Prozess zu jedem Zeitpunkt in diesem Zustand sein.

2) Rechenbereit (ready). Der Prozess wartet auf die CPU- Zuteilung.

3) Blockiert (wartend, blocked). Der Prozess wartet auf ein Ereignis, z.B.:
  1. Ablauf einer Zeitspanne, welche der Prozess selbst beauftragt hat, z.B. sleep,
  1. Zuteilung eines Betriebsmittels außer CPU,
  1. Meldung von einem anderen Prozess.

In konkreten Betriebssystemen sind auch weitere Prozesszustände möglich.









CategoryBSys
Diese Seite wurde noch nicht kommentiert.
Valid XHTML :: Valid CSS: :: Powered by WikkaWiki