Inhaltsverzeichnis:
- Definition - Was bedeutet Critical Section Routine (CSR)?
- Techopedia erklärt das Critical Section Routine (CSR)
Definition - Was bedeutet Critical Section Routine (CSR)?
Critical Section Routine (CSR) ist ein Codeabschnitt, für den ein Prozess eine exklusive Sperre erhält, sodass kein anderer Prozess ihn gleichzeitig ausführen kann. In einem Betriebssystem werden häufig ein oder mehrere Prozesse gleichzeitig ausgeführt, wodurch diese Prozesse gezwungen werden, miteinander um den Zugriff auf Dateien und Ressourcen zu konkurrieren. Es sollte nur ein Prozess auf die Ressource zugreifen dürfen, während ein Teil des Codes für die Ressource ausgeführt wird.
Um sicherzustellen, dass ein Prozess in der CSR nicht fehlschlägt, während andere Prozesse warten, wird von der Prozessverwaltungskomponente ein Zeitlimit festgelegt. Auf diese Weise kann ein Prozess nur für eine begrenzte Zeit auf eine exklusive Sperre zugreifen.
Techopedia erklärt das Critical Section Routine (CSR)
Die Hauptanforderungen für die Implementierung eines CSR sind:
- Gegenseitiger Ausschluss: Wenn ein Prozess in einem CSR ausgeführt wird, kann kein anderer Prozess eintreten.
- Fortschrittsbedingung: Wenn in einem CSR kein Prozess ausgeführt wird und einige Prozesse darauf zugreifen möchten, können sie dies in einer bestimmten Zeit tun. Einer der Prozesse wird in den CSR eingegeben, während andere warten.
- Eingeschränktes Warten: Wenn ein Prozess die Eingabe einer CSR anfordert und bevor die Anforderung erteilt wird, muss die Anzahl der Prozesse, die während dieses Zeitraums auf die Eingabe der CSR warten, nach oben begrenzt werden, um sicherzustellen, dass kein Prozess ausfällt und jeder Prozess in der Warteschlange steht erhält eine Wende, um die CSR einzugeben.
Der CSR in einem bestimmten Codeteil kann anhand der folgenden Eigenschaften identifiziert werden:
- Code ist durch eine Lese-Schreib-Aktualisierungssequenz von Operationen gekennzeichnet.
- Abschnitte des Codes ändern Variablen in einem anderen Code, der eine Lese-Schreib-Aktualisierungs-Operationssequenz ausführt.
- Das Vorhandensein von Code, der durch Ändern auf eine Datenstruktur eines anderen Codes zugreift, oder von Code, der eine Datenstruktur verwendet, die durch einen anderen Prozess geändert werden könnte.
Das Konzept des kritischen Abschnitts kann auf Hardware angewendet werden, die die Interrupt-Funktion verwendet. Wenn ein Prozess in einen kritischen Abschnitt eintritt, sollten alle Interrupts auf dem Prozessor deaktiviert werden, damit andere Prozesse keine Sperre für die Ressource anfordern können. In ähnlicher Weise werden Interrupts wieder aktiviert, wenn ein Prozess die Ausführung beendet. Ein anderer Ansatz ist die Verwendung eines Semaphors, einer speziellen Variablen, die wie ein Signal wirkt, um die Ausführung oder Beendigung eines Prozesses zu steuern.




