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)
    Jedes Segment entspricht einem internen CPU-Register.

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.

Verwandte Einträge: