Skip to content

Commit

Permalink
IN0009 GBS: PCB, Threads, Zustaende
Browse files Browse the repository at this point in the history
  • Loading branch information
hmelder committed Nov 7, 2023
1 parent 0494c30 commit c488887
Showing 1 changed file with 42 additions and 3 deletions.
45 changes: 42 additions & 3 deletions IN0009_GBS/prozess_und_prozessorverwaltung.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,13 @@ Von 0xFFFF...FFFF nach 0x0000...0000!
Der Prozesskontext umfasst alle Informationen, die ein Betriebssystem über einen
Prozess speichert, um dessen Ausführungszustand zu verwalten.

## Was ist der virtuelle Addressraum?

Der virtuelle Addressraum ist eine Abstraktion des physischen Speichers.
Jeder Prozess verfügt über einen eigenen Addressraum, die voneinnander
*abgeschottet* sind.


## Prozesskontext im Betriebssystem: Registerzustände
- Registerinhalte
- Program Counter
Expand Down Expand Up @@ -110,8 +117,40 @@ den Arbeitsspeicher geladen.
- **Prozess**: Einzelne Ausführungseinheit mit eigenem Adressraum, die Ressourcen wie CPU und Speicher nutzt.
- **Thread**: Leichtgewichtiger Prozess innerhalb eines Prozesses, der einen eigenen Kontrollfluss hat, aber Ressourcen mit anderen Threads teilt.

## Warum lässt sich ein Prozess und Thread konzeptuell trennen?

Ressourcen und Kontrollfluss sind unabhängige Konzepte und lassen sich trennen.

## Eigenschaften eines Threads

- Abstraktion eines physischen Prozessors
- Jeder Prozess hat einen eigenen Kontrollfluss
- Threads eines Prozesses teilen sich den Addressraum
- Eigener Befehlzähler

## Thread-Kontext

Der Thread-Kontext umfasst den Programmzähler, die Registerwerte und einen
eigenen Stack für Unterprogrammaufrufe (Stackpointer), die zur Verwaltung der
Ausführungszustände eines Threads erforderlich sind.
Der Thread-Kontext umfasst u.a:
- Programmzähler
- Registerwerte
- Stackpointer auf eigenem Stack

## Was sind die 5 möglichen Zustände eines Threads?
- (erzeugt)
- rechenwillig
- rechnend
- wartend
- terminiert

## Warum haben Threads generell einen geringeren Overhead als Prozesse?

- Einfache Kommunikation zwischen Threads einens Prozesses über gemeinsamen Addressraum (Anstelle von aufwendiger inter-prozess-communication (IPC))
- Erstellen eines Threads wesentlich geringer als einen Prozess zu erzeugen (Faktor 10-100)
- Schneller Kontextwechsel

## Was ist der Process Control Block (PCB)?

Speicherung von Informationen über:
- *Prozessverwaltung*
- *Speicherverwaltung* (engl. memory management)
- *Dateiverwaltung* (engl. file management)

0 comments on commit c488887

Please sign in to comment.