Betriebssysteme: Ressourcenmanagement, Prozesse & Speicher
Eingeordnet in Informatik
Geschrieben am in Deutsch mit einer Größe von 5,61 KB
Ressourcenmanagement in Betriebssystemen
Prozesse und Abläufe
- Definition Prozess: Ein Programm in Ausführung.
- Weitere Bezeichnungen:
- Kontrollfluss
- Aufgaben (Tasks)
- Threads (Beispiel: Java)
- Thread (Ausführungseinheit)
- Jedem Prozess (Betriebssystem) wird eine Datenstruktur, der Prozesskontrollblock (PCB), zugewiesen.
- Was beinhaltet der Prozesskontrollblock (PCB)?
- Aktueller Zustand
- Prozess-ID (PID)
- Priorität des Prozesses
- Speicherort
- Genutzte Ressourcen
Threads und Prozesszustände
- Definition Thread: Ein Thread ist ein Ausführungspunkt innerhalb eines Prozesses (ein Prozess kann einen oder mehrere Threads haben).
- Beispiel: Word wird ausgeführt (1 Prozess). Bearbeitung von Dokument 1 (1. Thread), Bearbeitung von Dokument 2 (2. Thread).
Prozesszustände
- Laufend: In Betrieb auf einer CPU.
- Bereit: Wartend, aktiv.
- Blockiert: Angehalten, z.B. wartet auf eine freie Ressource (DVD-Player, ...).
Weitere Anmerkungen
- Jede Aktivität hat eine Prozess-ID (PID), wie bereits in Abschnitt 3.1 diskutiert.
- Ein Prozess hat eine Eltern-Prozess-ID (PPID). Ein Elternprozess kann unter Umständen andere Prozesse (Kinder) erzeugen.
Prozessübergänge
- Frage: Kann ein Prozess seinen Zustand ändern? Antwort: Ja.
- Betrachten Sie die Zustandsänderungen (Transitionen) in Abbildung 3.2 auf Seite 56 (Studieren Sie den erklärenden Text neben dem unteren Teil).
Zusätzliche Bemerkungen
- Wenn ein Prozess (oder Thread) seinen Zustand ändert, findet ein Kontextwechsel statt.
- Ist die Änderung zwischen Threads desselben Prozesses, spricht man von einem teilweisen Kontextwechsel. Erfolgt der Wechsel zwischen Threads verschiedener Prozesse, ist es ein vollständiger Kontextwechsel.
- Zustandsänderungen stehen in direktem Zusammenhang mit den Prioritäten zwischen den Prozessen.
Wer verwaltet all dies?
Antwort: Der Scheduler (Planer). Er ist der Mechanismus zur Ausführungsplanung, der die Prioritätszuweisung und den Scheduling-Algorithmus (z.B. mit Quanten) regelt.
Planungsalgorithmen (Scheduling-Algorithmen)
a) Round-Robin-Algorithmus
- Auch bekannt als Zeitsegment-Verfahren.
- Jeder Prozess erhält die gleiche Menge an Rechenzeit (Quantum).
- Die Auswahl der Prozesse erfolgt nach dem FIFO-Prinzip (First In, First Out).
- Beispiel: CPU P1 → P2 → P3 (Quantum = 5 ms).
b) FCFS-Algorithmus (First Come, First Serve)
- Nutzt ebenfalls das FIFO-Prinzip.
- Ein Prozess wird gestartet, und der nächste beginnt erst, wenn der vorherige beendet ist.
c) SJF-Algorithmus (Shortest Job First)
- Priorisiert kurze Prozesse in der Annahme, dass sie schnell beendet werden.
d) SRTF-Algorithmus (Shortest Remaining Time First)
- Priorisiert den Prozess mit der kürzesten verbleibenden Ausführungszeit.
RAM und Virtueller Speicher
- Das Konzept des virtuellen Speichers wurde 1961 von Fotheringham eingeführt.
- Es ermöglicht, einen Teil des Sekundärspeichers (Festplatte) als Erweiterung des RAMs zu nutzen (Virtualisierung).
- Problem: Die geringere Geschwindigkeit des Sekundärspeichers führt zu einer Verlangsamung.
- Frage: Kann (fast) der gesamte Sekundärspeicher als RAM genutzt werden?
Speicheraustausch (Swapping)
- Wenn ein Prozess in den Speicher geladen werden muss:
- Der Scheduler greift auf den Speicher zu.
- Der Memory Manager (Speicherverwaltung) ist zuständig.
- Speicherverwaltungstechniken:
- Feste Partitionen
- Variable Partitionen
- Paging
- Segmentierung
- Externe Fragmentierung (ein Problem, das bei variablen Partitionen auftritt)
Paging, Segmentierung und Swapping
1 Paging
- Unterteilt:
- RAM in Frames (Seitenrahmen)
- Prozesse in Seiten
- Die verschiedenen Seiten werden in Frames platziert.
- Benötigt werden:
- Eine Seitentabelle
- Eine Seitenverwaltung
2 Segmentierung
- Es werden Blöcke unterschiedlicher Größe definiert, jedoch mit einer maximal zulässigen Größe.
- Diese Technik wird in der Prozessorarchitektur verwendet, die ein laufendes Programm in vier Blöcke unterteilt:
- CS (Code Segment)
- DS (Data Segment)
- ES (Extra Segment)
- SS (Stack Segment)
Klassifikation von Programmen
(Je nachdem, wie, wann und wo sie sich im Speicher befinden)
- Verschiebbar: Können ihre Position im RAM bei Bedarf ändern.
- Re-entrant: Code, der von mehreren Prozessen gleichzeitig genutzt werden kann, ohne dass es zu Konflikten kommt.
- Resident: Verbleiben dauerhaft im Speicher (z.B. Antivirenprogramme).
- Mehrfachnutzbar: Kann von mehreren Benutzern gleichzeitig verwendet werden.