Skip to content

Commit

Permalink
Delete whitespace
Browse files Browse the repository at this point in the history
  • Loading branch information
hmelder committed Dec 27, 2023
1 parent 73d5510 commit bba3984
Showing 1 changed file with 0 additions and 29 deletions.
29 changes: 0 additions & 29 deletions IN0009_GBS/prozess_und_prozessorverwaltung.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,10 @@ Von 0xFFFF...FFFF nach 0x0000...0000!
4. Code/Text - Befindet sich im unteren Teil des Adressraums; enthält ausführbaren Programmcode.

## Was ist ein Prozesskontext?

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.
Expand All @@ -55,81 +53,66 @@ Jeder Prozess verfügt über einen eigenen Addressraum, die voneinnander
- Group ID (GID)

## Warum ist die Prozess-Verarbeitung oftmals nur quasi-parallel?

In Einprozessorsystemen kann die CPU tatsächlich nur einen Prozess gleichzeitig
ausführen. Quasi-Parallelität entsteht durch schnelles Umschalten zwischen
Prozessen (Scheduling), wodurch der Eindruck simultaner Ausführung entsteht.

## Wie beeinflusst der I/O-Warteanteil p die CPU-Auslastung bei n Prozessen?

Ist der Anteil der Wartezeit auf I/O für einen Prozess p, so ist die erwartete
CPU-Auslastung bei n gleichzeitig laufenden Prozessen probabilistisch 1 - p^n.

## Was sind die Zustände eines Prozesses?

- **ready**: Der Prozess ist bereit zur Ausführung und wartet auf Zuweisung eines Prozessors.
- **running**: Der Prozess wird aktuell auf dem Prozessor ausgeführt.
- **blocked/waiting**: Der Prozess kann nicht fortgesetzt werden, bis ein bestimmtes Ereignis eintritt.
- **swapped out/ausgelagert**: Der Prozess wurde aus dem Arbeitsspeicher ausgelagert.
- **swapped in/eingelagert**: Ein ausgelagerter Prozess wird wieder in den Arbeitsspeicher geladen.

## Was initiiert der Zustandsübergang 'add' bei einem Prozess?

Der Zustandsübergang 'add' fügt einen neu erzeugten Prozess zur Menge der rechenwilligen (ready) Prozesse hinzu.

## Welche Wirkung hat der Zustandsübergang 'assign' auf einen Prozess?

Der Zustandsübergang 'assign' ordnet einem Prozess die CPU zu und ändert seinen Status auf 'running'.

## Durch was wird der Zustandsübergang 'block' bei einem Prozess veranlasst?

Der Zustandsübergang 'block' wird durch einen I/O-Aufruf oder eine
Synchronisationsoperation ausgelöst und versetzt den Prozess in den Zustand
'blocked/waiting'.

## Wann erfolgt der Zustandsübergang eines Prozesses zurück in 'ready'?

Der Zustandsübergang zurück in 'ready' erfolgt, nachdem die blockierende
Operation beendet ist oder die Blockade aufgehoben wurde.

## Welcher Zustandsübergang wird mit 'resign' beschrieben?

Der Zustandsübergang 'resign' entzieht einem laufenden Prozess die CPU, wodurch
er in den Zustand 'ready' zurückkehrt.

## Was kennzeichnet den Zustandsübergang 'retire' bei einem Prozess?

Der Zustandsübergang 'retire' tritt ein, wenn ein Prozess seine Ausführung
beendet und aus dem System entfernt wird.

## Was resultiert aus dem Zustandsübergang 'swap out' für einen Prozess?

Der Zustandsübergang 'swap out' lagert einen Prozess aus dem Arbeitsspeicher in
die Swap-Datei auf der Festplatte aus.

## Welchen Zustand erreicht ein Prozess durch den Zustandsübergang 'swap in'?

Durch den Zustandsübergang 'swap in' wird ein ausgelagerter Prozess wieder in
den Arbeitsspeicher geladen.

## Prozess vs. Thread

- **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 u.a:
- Programmzähler
- Registerwerte
Expand All @@ -143,7 +126,6 @@ Der Thread-Kontext umfasst u.a:
- 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
Expand All @@ -156,49 +138,41 @@ Speicherung von Informationen über:
- *Dateiverwaltung* (engl. file management)

## Welche Informationen werden für die Speicherverwaltung eines Prozesses benötigt?

Pointer zu Code-, Daten-, und Stack-Segment
Anfang und Größe der Segmente.

## Welche Informationen werden für die Dateiverwaltung eines Prozesses benötigt?

- Root Verzeichnis
- File Deskriptoren
- UID und GID

## Was ist eine Prozesstabelle

Eine verkettete Liste von PCBs

## BS Dienste zur Prozessverwaltung

- Dienste zur Erzeugung eines Prozesses
- Dienste zur Terminierung von Prozessen
- Strategien zur Prozessorzuteilung (Scheduling)
- Dienste zur Prozessor-Anbundung (Dispatching)

## Auslöser einer Prozesserzeugung

- Während der Systeminitialisierung (Init started daemons)
- Durch andere Prozesse (z.B. via fork)
- Durch einen Benutzer (Beispiel: Starten eines Programmes)
- Durch das BS (z.B. Batch-Systeme)

## Was macht der POSIX-Systemcall `fork`?

- Kindprozess mit gleichem Speicherabbild (Kopie)
- Auch file descriptors
- Vergabe einer neuen PID
- Prozesse laufen unabhängig voneinander

## Was ist die Besonderheit bei dem Rückgabewert von `fork`?

Eltern-Prozess bekommt die PID des Kindes zurückgegeben, während der
Kindprozess `0` zurückgegeben bekommt. Das kann nützlich sein, um
z.B. das Speicherabbild des Kindes zu überschreiben.

## Welche Arten der Prozessterminierung gibt es?

- Normale Beendigung (freiwillig)
- `void exit (int status)`
- `return status` aus `main()`
Expand All @@ -210,11 +184,9 @@ z.B. das Speicherabbild des Kindes zu überschreiben.
- Durch senden eines Signals

## Welche PID hat der Prozess init?

PID=1. Init ist der erste Prozess der bei einem UNIX(-ähnlichen) System startet.

## Wer started PID 1?

Der Kernel.

## (Extra) Was würde passieren, wenn PID 1 crashed?
Expand Down Expand Up @@ -264,7 +236,6 @@ Prozess-Zustandsübergänge von rechenwillig nach rechnend, während der Schedul
die Reihenfolge der Prozessausführung bestimmt.

## Welche Rolle spielt der Scheduler in der Prozessorverwaltung?

- Verwaltet die Warteschlange der rechenwilligen Prozesse (Run
Queue)
- Wählt mit Hilfe von Scheduling-Algorithmen den nächste(n) Prozess(e) zur
Expand Down

0 comments on commit bba3984

Please sign in to comment.