Betriebssysteme: Kernfunktionen und Prozessverwaltung
Classified in Informatik
Written at on Deutsch with a size of 6,13 KB.
Kernfunktionen von Betriebssystemen
- Prozessmanagement
- Primärspeicherverwaltung
- Dateiverwaltung
Prozesse: Erklärung und Beispiele
- Programm: Eine Folge von Anweisungen, die ein Computer lesen und ausführen kann.
- Prozess: Eine Reihe von Aktivitäten und Ereignissen, die durchgeführt werden oder einem bestimmten Zweck folgen.
- Elternprozess: Behält die Kontrolle über alle seine Nachkommen, sodass er jeden Kindprozess beenden kann.
- Kindprozess: Erbt Ressourcen vom Elternprozess. Wenn der Elternprozess beendet wird, erbt der Kindprozess keine weiteren Ressourcen.
- Prozess und Thread: Ein Prozess hat seinen eigenen Speicherbereich und läuft gleichzeitig mit anderen Prozessen. Threads innerhalb eines Prozesses teilen sich alle denselben Speicher.
Was ist ein Skript und wofür wird es verwendet?
Ein Skript ist eine Reihe von Anweisungen, die die Automatisierung von Aufgaben ermöglichen und so kleine Hilfsprogramme erstellen. Es wird für die Verwaltung von UNIX-Systemen verwendet.
Eltern-Kind-Prozesse (Fork, Execv)
- fork: Erstellt einen Prozess, der eine Kopie von sich selbst erzeugt. Diese Kopie ist der Kindprozess des Elternprozesses. Die resultierenden Prozesse sind identisch, haben aber unterschiedliche PIDs.
- execv: Erhält ein Array von Zeigern auf Zeichenketten, die mit Null enden. Das erste Argument sollte auf den Namen der Datei zeigen, die ausgeführt werden soll.
- q-System: Aufruf einer Funktion (q).
Prozesstabellen
Prozesse müssen überwacht und verwaltet werden können. Dafür werden Tabellen verwendet:
- Prozesstabelle
- Speichertabelle
- Dateitabelle
Prozesskontrollblock (PCB)
Ein PCB ist eine spezielle Gruppe von Registern, die alle Informationen enthält, die benötigt werden, um einen bestimmten Prozess zu kennen:
- Prozess-ID (PID)
- Zugewiesene Berechtigungen
- Programm-Prozess-Zustand
- Werte der CPU-Register
- Eigentümer der Daten
- Stack-Speichernummer
- Prozess-ID (PID und PPID)
Der Boot-Prozess
Der Boot-Prozess besteht darin, ein Programm, das sich im ROM-Speicher befindet, ständig in den RAM-Speicher zu laden. Dieser Teil des ROM wird als "Starter-ROM" bezeichnet.
Algorithmus zur Bevorzugung von Prozessen
Ein Algorithmus bevorzugt Prozesse, die in der jüngsten Vergangenheit die geringste CPU-Zeit verbraucht haben. Dieser Algorithmus ist für CPU-gebundene Prozesse oder Prozesse, die durch E/A begrenzt sind. Wenn der Prozess eine geringe Menge an CPU-Zeit verbraucht, gehören die Prozesse zu den Prozessen, die durch E/A begrenzt sind.
Nachteil dieses Algorithmus (Scheduling)
Durch CPU-gebundene Prozesse werden anstehende Prozesse auf unbestimmte Zeit verschoben.
Unterschiede in Scheduling-Algorithmen
- FCFS (First-Come, First-Served): Nicht verdrängend.
- RR (Round Robin): Verdrängend. Minimiert die Antwortzeit (TR) nach dem Quantum (TE). Abhängig von der Länge des Quantums.
- Multilevel-Feedback-Queue: Wenn ein Prozess zu viel CPU-Zeit verbraucht, kommt er in eine Warteschlange mit niedrigerer Priorität. Kurze Prozesse haben immer eine hohe Priorität.
Funktionen zur Bewertung der Effizienz von Scheduling-Algorithmen
- CPU-Auslastung maximieren.
- Minimale durchschnittliche Wartezeit.
- Minimale Antwortzeit.
Detaillierte Beschreibung der Funktionsweise und Nachteile verschiedener Scheduling-Algorithmen
-
FCFS (First-Come, First-Served):
- Vorteil: Einfach zu implementieren.
- Nachteil: Garantiert keine minimale durchschnittliche Wartezeit, während einige Prozesse auf Dateien warten.
-
SJF (Shortest Job First):
- Vorteil: Bietet die beste Leistung. Laufende Prozesse in der Warteschlange sind die, die den kürzesten Burst haben.
- Nachteil: Man weiß nicht genau, wie lange der CPU-Burst im Voraus dauern wird. Nicht verdrängend.
-
Prioritätsplanung:
- Vorteil: Prozesse werden nach Priorität ausgeführt. Bei mehreren Prozessen mit gleicher Priorität wird die Reihenfolge des Eingangs berücksichtigt. Verdrängend.
- Nachteil: Wenn ständig neue Prozesse mit höherer Priorität eintreffen, können Prozesse mit niedriger Priorität auf unbestimmte Zeit warten. Dieses Problem kann durch die Technik des "Aging" gelöst werden, bei der die Priorität eines Prozesses mit der Zeit erhöht wird.
-
RR (Round Robin):
- Dieser Algorithmus wird in Systemen mit Time-Sharing verwendet. Jeder Benutzer hat den Eindruck, dass der Prozess bereits ausgeführt wird. Es ist ratsam, dass das Quantum (Q) der Zeit klein genug ist.
-
Planung mit mehreren Warteschlangen:
- Erlaubt einem Prozess, von einer Warteschlange zur anderen zu wechseln. Die Idee ist, Prozesse mit unterschiedlichen Eigenschaften in ihren CPU-Bursts zu trennen. Wenn ein Prozess zu viel CPU-Zeit verbraucht, wird er in eine Warteschlange mit niedrigerer Priorität verschoben.
Parallelität: Probleme bei der Prozessausführung
- Gegenseitiger Ausschluss: Verhindert, dass andere Prozesse auf eine Ressource zugreifen.
- Deadlock: Kein Prozess wird ausgeführt, da jeder Prozess auf einen anderen wartet.
- Verhungern (Starvation): Ein Prozess mit niedriger Priorität darf möglicherweise nie ausgeführt werden.
Minimale Funktionen zur Identifizierung eines Threads
- Thread erstellen:
pthread_create
- Thread identifizieren.
- Sicherstellen, dass der Hauptprozess wartet, bis dieser Thread beendet ist.