Prozessverwaltung: Definitionen

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson
Download our mobile app to listen on the go
Get App

Questions and Answers

Was ist der Hauptunterschied zwischen einem Programm und einem Prozess?

  • Ein Prozess ist eine statische Anweisung, während ein Programm eine dynamische Ausführung ist.
  • Ein Programm ist ein Prozess in der Ausführung.
  • Es gibt keinen Unterschied; die Begriffe sind austauschbar.
  • Ein Programm ist eine statische Anweisung, während ein Prozess eine dynamische Ausführung ist. (correct)

In einem Multitasking-Betriebssystem kann mehr als ein Prozess gleichzeitig auf einer einzigen CPU ausgeführt werden.

False (B)

Nennen Sie mindestens drei Elemente, die zum Kontext eines Prozesses gehören.

Registerwerte, Cache-Belegung, Hauptspeicherbelegung

Ein ______ ist ein Betriebssystemmechanismus, der den Wechsel von einem Prozess zu einem anderen auf der CPU ermöglicht.

<p>Kontextwechsel</p> Signup and view all the answers

Ordnen Sie die folgenden Zustände eines Prozesses ihren Beschreibungen zu:

<p>Bereit = Der Prozess ist zur Ausführung vorbereitet, wartet aber auf CPU-Zeit. Aktiv = Der Prozess wird gerade von der CPU ausgeführt. Blockiert = Der Prozess wartet auf eine Ressource oder ein Ereignis. Beendet = Der Prozess hat seine Ausführung abgeschlossen.</p> Signup and view all the answers

Welche Aussage beschreibt am besten den Unterschied zwischen einem schlafenden (blockierten) und einem angehaltenen Prozess?

<p>Ein schlafender Prozess wartet auf eine Bedingung oder ein Ereignis, während ein angehaltener Prozess durch ein Signal pausiert wurde. (C)</p> Signup and view all the answers

Ein Prozess im Zustand 'Zombie' verbraucht noch Rechenleistung.

<p>False (B)</p> Signup and view all the answers

Was ist ein Dämonprozess?

<p>Ein Hintergrundprozess, der unabhängig vom Terminal läuft</p> Signup and view all the answers

Ein ______ ist ein Teil eines Prozesses, der einen unabhängigen Kontrollfluss repräsentiert.

<p>Thread</p> Signup and view all the answers

Welchen Vorteil bietet die Verwendung von Threads im Vergleich zu Prozessen?

<p>Threads haben einen schnelleren Kontextwechsel und teilen sich Ressourcen. (B)</p> Signup and view all the answers

Threads innerhalb eines Prozesses sind vollständig voneinander isoliert.

<p>False (B)</p> Signup and view all the answers

Nennen Sie eine Herausforderung bei der Programmierung mit Threads.

<p>Deadlocks, Race Conditions, Synchronisationsprobleme</p> Signup and view all the answers

Die Zuteilung von Prozessorzeit auf Prozesse wird als ______ bezeichnet.

<p>Scheduling</p> Signup and view all the answers

Was ist das Ziel des Schedulings?

<p>Die verfügbare Prozessorzeit auf Prozesse aufzuteilen. (A)</p> Signup and view all the answers

Beim Non-preemptive Scheduling kann ein Prozess die CPU nur freiwillig abgeben.

<p>True (A)</p> Signup and view all the answers

Ordnen Sie die Scheduling-Ziele ihren Beschreibungen zu:

<p>Fairness = Garantierte Mindestzuteilung für jeden Prozess. Effizienz = Möglichst volle Auslastung der CPU. Minimierung der Antwortzeit = Minimierung der Zeit, die ein Anwender auf die Bearbeitung seines Auftrags warten muss. Minimierung der Wartezeit von Prozessen = Minimierung der Zeit, die ein Prozess auf die Ausführung warten muss.</p> Signup and view all the answers

Welches Scheduling-Verfahren bearbeitet Aufträge in der Reihenfolge ihres Eintreffens?

<p>First Come First Serve (FCFS). (D)</p> Signup and view all the answers

Ein großer Nachteil der SJF/SPF/SPN-Strategien ist, dass sie nicht nur zu einem Verhungern (engl. Starvation) von Prozessen führen können, sondern auch immer dazu führen.

<p>False (B)</p> Signup and view all the answers

Was löst einen Interrupt aus?

<p>Hardware-Interrupts = Von Hardware-Geräten wie Tastaturen, Mäusen, Netzwerkkarten oder Festplatten generiert. Software-Interrupts = Durch Software-Operationen wie Systemaufrufe oder Programmfehler ausgelöst. Timer-Interrupts = Von internen Timern des Betriebssystems zur Verwaltung der CPU-Zeit und anderer systemkritischer Aufgaben generiert.</p> Signup and view all the answers

Wie erkennt die CPU eine Unterbrechungsanforderung?

<p>Durch spezielle Signale von den Interrupt-Controllern. (D)</p> Signup and view all the answers

Interrupts werden immer im Benutzermodus bearbeitet.

<p>False (B)</p> Signup and view all the answers

Was ist der Zweck des Interrupt-Controllers?

<p>Interrupts verarbeiten und die CPU informieren</p> Signup and view all the answers

Ein präziser Interrupt ist ein Interrupt bei dem nach dem Abbruch des Prozesses der Befehl der zu dem Interrupt geführt hat ______ wird.

<p>nicht ausgeführt</p> Signup and view all the answers

Was versteht man unter dem Begriff der Nebenläufigkeit?

<p>Die quasi-parallele Ausführung von Befehlen auf einer CPU. (D)</p> Signup and view all the answers

Race Conditions entstehen immer durch nebenläufige Ausführung von Prozessen oder Threads.

<p>False (B)</p> Signup and view all the answers

Flashcards

Was ist ein Programm?

Eine (statische) Verfahrensvorschrift für die Verarbeitung auf einem Rechnersystem.

Was ist ein Prozess?

Ein Programm in Ausführung; ein Programm zur Laufzeit.

Was ist ein Prozesskontext?

Die Gesamtheit aller Informationen, die ein Prozess während seiner Ausführung auf der CPU benötigt (Registerwerte, Caches, Speicherbelegung).

Was ist ein Kontextwechsel?

Der Vorgang, den aktiven Prozess auf der CPU durch einen anderen zu ersetzen.

Signup and view all the flashcards

Was ist ein Prozesskontrollblock (PCB)?

Eine Datenstruktur des Betriebssystems, die alle Informationen zu einem Prozess enthält.

Signup and view all the flashcards

Was ist die Prozesstabelle?

Eine Tabelle, in der das Betriebssystem Informationen über alle erzeugten Prozesse speichert.

Signup and view all the flashcards

Was ist die Prozess-ID (PID)?

Die eindeutige Kennung eines Prozesses.

Signup and view all the flashcards

Was ist ein Zombie-Prozess?

Ein Prozess, der beendet ist, aber noch in der Prozesstabelle geführt wird.

Signup and view all the flashcards

Was ist ein Dämon-Prozess?

Ein Prozess, der unabhängig vom Terminal im Hintergrund läuft.

Signup and view all the flashcards

Was ist ein Thread?

Ein Teil eines Prozesses, der einen unabhängigen Kontrollfluss repräsentiert.

Signup and view all the flashcards

Was bedeutet 'schlafender Prozess'?

Ein Zustand, in dem ein Prozess auf eine bestimmte Bedingung oder ein Ereignis wartet.

Signup and view all the flashcards

Was sind Threadprioritäten?

Jedem Thread wird eine Priorität zugeordnet.

Signup and view all the flashcards

Was macht der Scheduler?

Der Teil des Betriebssystems, der entscheidet, welcher Prozess als nächstes die CPU erhält.

Signup and view all the flashcards

Was ist Multithreading?

Gleichzeitige Ausführung mehrerer Threads.

Signup and view all the flashcards

Non-preemptive Scheduling

Eine Strategie, bei der Prozesse die CPU erst abgeben, wenn sie blockieren oder sich selbst beenden.

Signup and view all the flashcards

Preemptive Scheduling

Eine Strategie, bei der Prozesse die CPU zu einem beliebigen Zeitpunkt entzogen werden kann.

Signup and view all the flashcards

Was ist eine Zeitscheibe (Quantum)?

Eine kleine Zeiteinheit, in der ein Prozess die CPU nutzen darf.

Signup and view all the flashcards

Was bedeutet Fairness im Scheduling?

Fair Garantierte Mindestzuteilung für jeden Prozess.

Signup and view all the flashcards

Was ist die Durchlaufzeit?

Gesamte Zeit, in der sich ein Prozess im System befindet.

Signup and view all the flashcards

FCFS

Scheduling für Batch-orientierte Prozesse

Signup and view all the flashcards

SJF

Scheduling für Batch-orientierte Prozesse

Signup and view all the flashcards

Round Robin

Scheduling für Dialog-orientierte Prozesse

Signup and view all the flashcards

Priority Scheduling

Scheduling für Dialog-orientierte Prozesse

Signup and view all the flashcards

Minimal Deadline First

Scheduling für Realtime-Prozesse

Signup and view all the flashcards

Was sind Interrupts?

Signale von Hardware oder Software, die den Prozessor unterbrechen.

Signup and view all the flashcards

Study Notes

Okay, hier sind Ihre detaillierten Lernnotizen zum Thema Prozessverwaltung, die für das Lernen optimiert sind:

Definition: Programm

  • Ein Programm ist eine statische Anweisung zum Verarbeiten auf einem Computersystem.
  • Ein Programm wird durch einen Compiler in eine ausführbare Datei umgewandelt.
  • Das Betriebssystem lädt die ausführbare Datei in den Adressraum eines Prozesses.

Definition: Prozess (Schwergewichtig)

  • Ein Prozess ist ein Programm in Ausführung.
  • Ein Prozess ist ein Programm, das gerade aktiv ist.
  • Pro CPU läuft zu einem Zeitpunkt nur ein Prozess in der Hardware.
  • Diese alleinige Verfügbarkeit ist zeitlich begrenzt, sonst läge kein Multitasking-Betriebssystem vor.

Definition: Prozesskontext

  • Der Prozesskontext umfasst alle Informationen, die ein Prozess bei der Ausführung auf der CPU benötigt.
  • Zum Prozesskontext gehören unter anderem:
    • Werte in CPU-Registern (Program Counter, Instruction Register, Stack Register, Flags usw.) gehören dazu.
    • Die Belegung des Caches mit Befehlen und Daten.
    • Die Belegung des Hauptspeichers mit Programmcode und Daten.

Definition: Kontextwechsel

  • Ein Kontextwechsel ist der Vorgang, bei dem ein aktiver Prozess A auf der CPU durch einen anderen Prozess B ersetzt wird.
  • Diese Aktivitäten werden vom Steuerwerk der CPU in Zusammenarbeit mit dem Betriebssystem ausgeführt.

Erforderliche Tätigkeiten beim Kontextwechsel

  • Zu den erforderlichen Tätigkeiten gehören:
    • Sichern aller notwendigen Registerinformationen des Prozesses A an einem bekannten Ort.
    • Laden aller notwendigen Registerinformationen des neuen Prozesses B in die entsprechenden Register.
    • Laden aller notwendigen Befehle und Daten des neuen Prozesses B in den Cache.
  • Jeder Kontextwechsel beansprucht Zeit für seine Durchführung.
  • Der Hardware-Kontext des laufenden Prozesses wird gesichert.
  • Der Hardware-Kontext des neu aktivierten Prozesses wird in die Ablaufumgebung geladen.
  • Wenn ein Prozess abgelöst wird, muss der Hardware-Kontext für eine spätere Reaktivierung gespeichert werden.
  • Der Hardware-Kontext wird im PCB (Prozesskontrollblock) gesichert.
  • Der Hardware-Kontext des neu zu aktivierenden Prozesses wird aus seinem PCB in die Ablaufumgebung geladen.
  • Beim Kontextwechsel werden Registerinhalte wie Stackpointer (SP) und Program Status Word (PSW) bewegt.

Prozesskontrollblock (PCB)

  • Ein PCB fasst alle Informationen zu einem einzelnen Prozess zusammen.
  • Bei der Erzeugung eines neuen Prozesses legt das Betriebssystem einen PCB als Verwaltungsstruktur an.
  • Für jeden Prozess existiert somit ein eigener PCB.

PCB Inhalt

  • Programmzähler
  • Prozesszustand.
  • Initiale (statische) und dynamische Priorität.
  • Verbrauchte Prozessorzeit seit dem Start des Prozesses.
  • Eigene Prozessnummer (PID).
  • Prozessnummer des erzeugenden Prozesses (Eltern- oder Vaterprozess).
  • Zugeordnete Betriebsmittel (z.B. Dateien (Dateideskriptoren) und Netzwerkverbindungen).
  • Aktuelle Registerinhalte (je nach Prozessor).

Prozesstabelle

  • Die Prozesstabelle fasst alle Informationen aller erzeugten Prozesse zusammen.

Prozesse erzeugen

  • Betriebssysteme erzeugen, bearbeiten, unterbrechen und beenden Prozesse laufend.
  • Es muss einen Mechanismus geben, der den ersten Prozess erzeugt.
  • Dieser erste Prozess erhält die Prozess-ID 0 (Null).

Prozess-ID

  • Jeder Prozess erhält eine eindeutige Prozess-ID (PID) zur Unterscheidung und Verwaltung.
  • Die PID ist üblicherweise eine ganze Zahl, größergleich Null.

Beispiele für die erste Prozess-ID unter verschiedenen Betriebssystemen

  • Unter Unix-artigen Systemen (wie Linux) ist der erste Prozess der init-Prozess mit PID 1.
  • Unter Windows gibt es einen System-Idle-Prozess mit der PID 0 (Leerlaufprozess).
  • Wenn kein anderer Prozess bereit ist, wird der Leerlaufprozess ausgeführt, um ungenutzte CPU-Zeit zu nutzen.

Ablauf der Prozesserzeugung

  • Der Programmcode und die Programmdaten werden in den Speicher geladen.
  • Dem Prozess wird eine eindeutige Identifikation (PID) zugeordnet.
  • Ein neuer PCB wird in der Prozesstabelle angelegt.

Prozesslebenszyklus

  • Ein Prozess durchläuft verschiedene Zustände:
    • Bereit: zur Bearbeitung vorbereitet.
    • Aktiv: hat eine CPU.
    • Blockiert: wartet auf Ressourcen.
    • Beendet: nicht mehr im System vorhanden.

Zustandsübergänge

  • Diese Zustandsübergänge lassen sich wie folgt beschreiben:
    1. Das Betriebssystem wählt einen Prozess aus (Aktivieren).
    2. Das Betriebssystem wählt einen anderen Prozess aus (Deaktivieren, Preemption, Vorrangunterbrechung).
    3. Der Prozess wird blockiert (z. B. wegen Warten auf Input, Betriebsmittel wird angefordert).
    4. Der Blockierungsgrund wird aufgehoben (Betriebsmittel verfügbar).
    5. Prozessbeendigung oder schwerwiegender Fehler (Terminieren des Prozesses).

Unterschied zwischen schlafendem/blockiertem und angehaltenem/beendetem Prozess

  • Schlafender Prozess: Wartet auf eine bestimmte Bedingung oder ein Ereignis.
  • Angehaltener Prozess: Wurde durch ein Signal angehalten und wartet auf ein weiteres Signal.
  • Lauffähigkeit bedeutet nicht automatische CPU-Zeit.
  • Ein angehaltener Prozess behält seinen Status, bis er aufgehoben wird.

Prozessstatus

  • Mögliche Zustände sind:
    • Zombie
    • Dämon

Zombie-Prozess

  • Ein Zombie-Prozess ist beendet, aber noch nicht aus der Prozesstabelle ausgetragen.
  • Der Elternprozess muss den Zombie-Prozess austragen.
  • Zombie-Prozesse verbrauchen keine Rechenleistung oder Speicher, nur einen Prozesseintrag.

Dämon-Prozess

  • Ein Dämon-Prozess führt seine Arbeit unabhängig vom Terminal im Hintergrund aus.
  • Auf einem Betriebssystem laufen meistens mehrere Programme gleichzeitig im Hintergrund (Dienste).

Thread (Leichtgewichtiger Prozess)

  • Ein Thread ist ein Teil eines Prozesses, der einen unabhängigen Kontrollfluss repräsentiert.
  • Ein Prozess kann aus mehreren Threads bestehen, was zu mehreren nebenläufigen Kontrollflüssen führt.
  • Ein Thread ist wie "ein Prozess in einem Prozess".
  • Bei mehreren Threads innerhalb eines Prozesses hat man "mehrere Prozesse innerhalb eines Prozesses".
  • Es gibt unterschiedliche Verfahrensweisen bei der Nutzung von Betriebsmitteln.

Vorteile von Threads

  • Einfacher und schneller Kontextwechsel: Weniger aufwändig, da Threads Ressourcen gemeinsam nutzen.
  • Gemeinsamer Zugriff auf Betriebsmittel: Ermöglicht Zusammenarbeit und Datenfreigabe.
  • Einfache Implementierung von Funktionen: Vereinfacht die Implementierung einzelner Funktionen (modularer Code)

Nachteile von Threads

  • Spezielle Kenntnisse erforderlich: Programmierung erfordert Sorgfalt wegen potenzieller Probleme (Deadlocks, Race Conditions).
  • Gemeinsamer Zugriff auf Betriebsmittel: Kann zu Synchronisationsproblemen und Konflikten führen.
  • Debugging und Fehlersuche: Können schwierig sein, da Fehler schwer zu reproduzieren sind.

Threadzustände

  • Mögliche Zustände:
    • Laufend (running)
    • Bereit (ready)
    • Wartend (waiting)

Wann muss ein Thread einen Prozessor verlassen?

  • Wenn die zugestandene Zeit abgelaufen ist.
  • Wenn der Thread auf ein Objekt oder eine Benachrichtigung warten muss.
  • Wenn ein Thread mit höherer Priorität bereit ist.

Threadprioritäten

  • Jedem Thread wird eine Priorität zugeordnet.
  • Systemthreads haben höhere Priorität als Anwendungsthreads.
  • Der Thread mit der höchsten Priorität erhält Prozessorzeit.

Wer legt die Threadprioritäten fest?

  • Das Betriebssystem.
  • Die Prioritätszuordnung ist wichtig, um z.B. eine andere Anwendung zu aktivieren.
  • Die Priorität kann erhöht oder erniedrigt werden.

Priorität erhöhen

  • Aufgaben mit Vorrang werden bevorzugt behandelt.

Priorität erniedrigen

  • Thread wird nur in bestimmten Situationen ausgeführt.
  • Ein Garbage Collector erhält Priorität, wenn keine andere Ausführungseinheit die CPU benötigt.

Was passiert, wenn mehrere Threads die gleiche Priorität haben?

  • Der Scheduler entscheidet, welcher Prozess als Nächstes die CPU erhält (Dispatcher).

Multithreading

  • Multithreading bezieht sich auf die Fähigkeit eines Betriebssystems, mehrere Threads innerhalb eines Prozesses gleichzeitig auszuführen.
  • Eine große Fehlerquelle ist der gleichzeitige Zugriff mehrerer Komponenten auf eine gemeinsame Ressource.

Beispiel für Multithreading

  • Ein Textverarbeitungsprogramm startet mehrere Threads:
    • Texteditor (Reagiert auf Eingaben).
    • Automatische Speicherung.
    • Rechtschreibprüfung.

Prozess vs. Thread (Vergleich)

  • Prozess:
    • Eigenständiges Programm mit eigenen Ressourcen.
    • Isolierter Speicherbereich.
  • Ressourcenintensiver.
  • Aufwändigere Kommunikation (IPC).
  • Thread:
    • Kleinste Ausführungseinheit innerhalb eines Prozesses.
  • Teilt Ressourcen mit dem Prozess.
  • Weniger Isolation.
  • Weniger ressourcenintensiv.
  • Einfache Kommunikation über gemeinsame Daten.
  • Prozesse sind unabhängiger und isolierter als Threads, die Ressourcen teilen.

Scheduling

  • Das Betriebssystem verteilt die verfügbare Prozessorzeit auf alle Prozesse.
  • Als Auftrag bzw. Job wird eine parallel ausgeführte Aktivität bezeichnet.

Prozessmanager

  • Der Prozessmanager verwaltet die Prozesse (Jobs).
  • Er besteht aus Scheduler und Dispatcher.

Dispatcher

  • Der Dispatcher entzieht dem aktiven Prozess die CPU und teilt sie dem nächsten zu.
  • D.h. er führt den tatsächlichen Prozesswechsel aus.

Scheduling-Arten

  • Kurzfristiges Scheduling (CPU-Scheduling).
  • Mittelfristiges Scheduling (Vergabe des Speichers).
  • Langfristiges Scheduling (Verwaltung ankommender Aufgaben).

Schematische Darstellung der Scheduling-Hierarchie im Betriebssystem

  • (Grafik: Lang-, Mittel- und Kurzfristiges Scheduling in konzentrischen Kreisen)

Non-preemptive Scheduling

  • Ein Prozess gibt die CPU nur ab, wenn er:
    • In den Zustand Blockiert wechselt.
    • Die CPU freiwillig abgibt.
    • Sich selbst beendet.
  • Ein Prozess kann die CPU so lange nutzen, bis er terminiert.

Preemptive Scheduling

  • Einem Prozess kann die CPU zu einem beliebigen Zeitpunkt entzogen werden.
  • Die Prozessorzeit wird üblicherweise in kleine Zeiteinheiten (Zeitscheiben/Quantum) eingeteilt.

Zeitscheibe (Quantum)

  • Zeitraum, innerhalb dessen ein Prozess die CPU nutzen darf, ohne verdrängt zu werden.
  • Kann durch Interrupts unterbrochen werden.

Bei der Vergabe der CPU werden bestimmte Scheduling-Ziele angestrebt

  • Fairness: Garantierte Mindestzuteilung für jeden Prozess.
  • Effizienz: Hohe Auslastung der CPU.
  • Minimierung der Antwortzeit und Wartezeit.
  • Optimierung des Durchsatzes.
  • Minimierung der Durchlaufzeit.
  • Vorhersehbarkeit der Ausführung.

Prozessoptimierung

  • Herausfordernd, da Scheduling-Ziele sich widersprechen können.
    • Durchlaufzeit: Die gesamte Zeit, die ein Prozess im System verbringt (Bedienzeit + Wartezeiten).
    • Wartezeit: Die Zeit, die ein Prozess auf die Ausführung warten muss.
    • Bedienzeit: Die Zeit, in der ein Prozess die CPU tatsächlich nutzt.
    • Antwortzeit: Die Zeit, in der ein Anwender auf die Bearbeitung seines Auftrags warten muss.
  • Durchsatz: Anzahl der Prozesse, die ein System in einer bestimmten Zeit bearbeiten kann.
  • CPU-Auslastung: Prozentsatz der CPU-Kapazität, der während der Bearbeitung von Prozessen genutzt wird.

Scheduling-Verfahren

  • Unterscheidung in Scheduling-Verfahren für Batch-, Dialog- und Echtzeitsysteme.

Batch-orientierte Prozesse

  • First Come First Serve (FCFS): Aufträge werden in der Reihenfolge des Eintreffens abgearbeitet.
  • Shortest Job First (SJF)/Shortest Process First (SPF): Der Job mit der kürzesten Bedienzeit wird ausgewählt.
  • Shortest Remaining Time Next (SRTN): Der Prozess mit der kürzesten Restrechenzeit wird ausgewählt.
  • Nachteile von SJF/SPF/SPN und SRTN: Kann zu Starvation führen (Prozesse erhalten nie CPU-Zeit). Es ist schwer vorherzusagen, wie lange ein Prozess dauern wird.

Dialog-orientierte Prozesse

  • Round Robin (RR): FCFS in Verbindung mit einer Zeitscheibe; alle Prozesse sind gleich wichtig.
  • Priority Scheduling (PS): Der Prozess mit der höchsten Priorität wird ausgewählt.
  • Garantiertes Scheduling: Jedem Prozess wird der gleiche Anteil der CPU zugeteilt.
  • Lottery Scheduling: Zufällige Auswahl eines Prozesses.

Round Robin (RR)

  • Jeder Prozess bekommt ein Quantum zugeteilt.
  • Nach Ablauf des Quantums wird der Prozess unterbrochen und in die Warteschlange eingetragen

Priority Scheduling

  • Wählt PS immer jeweils denjenigen Prozess aus, der aktuelle die höchste Priorität hat.
  • Es setzt eine Verwaltung von Prioritäten voraus.

FSS (Fair Share Scheduling)

  • Jedem Prozess wird der gleiche Anteil der CPU zugeteilt.
  • Gibt es also N Prozesse, so wird jedem Prozess (1/N) der CPU-Leistung zur Verfügung gestellt.

Lottery Scheduling

  • Ist eine mögliche Strategie.
  • Jede Scheduling-Entscheidung erfolgt dabei zufällig, in der Form des Lotterieloses.

Scheduling für Realtime-Prozesse

  • Echtzeitsysteme benötigen schnelle und berechenbare Reaktionen.
  • Scheduling-Algorithmen:
    • Minimal Deadline First (MDF).
    • Polled Loop. Interrupt-gesteuert.

Minimal Deadline First (MDF)

  • Ist stets derjenige Prozess auszuwählen, dem die nächste Deadline am nächsten ist.

Polled Loop

  • Alle Geräte erhalten die Möglichkeit in einer Schleife auf ein Ereignis zu warten und dieses dann zu bearbeiten.

Interrupt-gesteuerte Systeme

  • Warten z.B. auf Interrupts von Ereignisquellen und führen dann die ISR aus.

Unterscheidung in 2 Kategorien im Bereich der Echtzeit

  • Harte Echtzeit:
    • Antwort muss immer in der Zeitschranke liegen.
    • Eine Verspätung führt zu schwerem Fehler.
  • Weiche Echtzeit:
    • Antwort sollte meist in der Zeitschranke liegen
    • Eine Verspätung führt zu lästigen Fehler

Multi-Level-Scheduling mit Prioritäten

  • Eine Strategie ist die Unterstützung verschiedener Prozess-Prioritäten mit eigenen Warteschlangen.
  • Jeder Prioritätsstufe ist eine eigene Warteschlange zugeordnet.
  • Es gibt ein Multi-Level-Feedback-Scheduling, wo ein Prozess die Warteschlange wechseln kann.
  • Quantum und aktuelle Priorität werden verwaltet und zyklisch angepasst.
  • Ein-/Ausgabe-intensive Prozesse erhalten ein höheres Quantum, rechenintensive ein kürzeres.

Interrupt

  • Interrupts werden durch Hardware oder Software ausgelöst.
  • Hardware-Interrupts: z.B. Tastatur, Maus, Netzwerkkarte.
  • Software-Interrupts: z.B. Systemaufrufe.
  • Timer-Interrupts: Verwaltung der CPU-Zeit.

Reaktion des Betriebssystems

  • Das Betriebssystem kann auf unvorhergesehene Ereignisse auf die folgende Weise reagieren:
    • Interrupt-Handler.
    • Prioritätssteuerung.
  • Multitasking.
    • Fehlermanagement.

Erkennung einer Unterbrechungsanforderung durch die CPU

  • Die CPU erkennt durch spezielle Signale der Interrupt-Controllern eine Unterbrechungsanforderung
  • Arten von Signalen:
    • Interrupt Request Line(IRQ).
  • Interrupt Vector Table(IVT).
    • Prioritätsmechanismen.

Unterbrechungsbearbeitung

  • Wie bereits erwähnt, können Interrupts vom Betriebssystem auch ausgeblendet (maskiert) werden
  • Die Bearbeitung der Interrupts erfolgt durch: I-Interrupt-Controller. II-Interrupt-Service-Routine(ISR) III-Interrupt-Request-Bearbeitung (IRQ-Bearbeitung)

Polling

  • Geräte werden zyklisch abgefragt, um deren Kommunikationsbereitschaft festzustellen.
  • Leicht zu implementieren.
  • Die CPU muss ständig arbeiten, die Effizienz wird beeinträchtigt.

Interrupt

  • Ereignisquellen melden sich beim Auftreten eines Ereignisses, das dann behandelt werden muss

Synchron

  • Treten bei identischen Randbedingungen auf.
  • Werden auch als Exceptions bezeichnet.

Asynchron

  • Unterbrechen für kurze Zeit das Programm, Beispiele: Bearbeitung auf Plattenspeicherblocks oder die Ankunft einer Nachricht von Netzwerk Adaptern

Interrupts bearbeitung

Die CPU wird über das Vorliegen von einem (oder mehreren) Interrupts informiert Anschließend ist die CPU für die Abarbeitung des Interrupts zuständig

Interrupt Service Routine

Hier werden die Anweisungen auf der CPU ausgeführt, die einem bestimmten Interrupt zugeordnet sind Für jeden Interrupt-Typ gibt es eine ISR.

  • Der Interrupt ist das synchrone oder asynchrone Ereignis

Hardwarebedingte Interrupts

  • Interrupt-Request Bearbeitung: Die Anforderung (IRQ) erfolgt durch einen Interrupt-Controller

Studying That Suits You

Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

Quiz Team

Related Documents

More Like This

Mastering Laboratory Management
5 questions
Operating System Basics and Processes
25 questions
Program vs Process
41 questions

Program vs Process

EnthralledConnemara6772 avatar
EnthralledConnemara6772
Use Quizgecko on...
Browser
Browser