Was bezeichnet man in der Prozessverwaltung als Blockieren, Verklemmen und Verhungern?
Blockieren: Ein Prozess P1 belegt ein Betriebsmittel, ein zweiter Prozess P2 benötigt dasselbe Betriebsmittel ebenfalls und wird daher blockiert, bis P1 sein belegtes Betriebsmittel freigegeben hat.
Verhungern (Starvation): Ein Prozess erhält trotz Rechenbereitschaft keine CPUZeit zugeteilt, z. B. weil ihm immer wieder Prozesse mit höherer Priorität vorgezogen werden.
Verklemmung: Zwei oder mehrere Prozesse halten jeder für sich ein oder mehrere Betriebsmittel belegt und versuchen ein weiteres zu belegen, das aber von einem anderen Prozess belegt ist. Es liegt ein Zyklus von Abhängigkeiten vor. Kein Prozess
gibt seine Betriebsmittel frei und alle Prozesse warten daher ewig. Dieser Zustand wird auch als Deadlock bezeichnet.
Verhungern (Starvation): Ein Prozess erhält trotz Rechenbereitschaft keine CPUZeit zugeteilt, z. B. weil ihm immer wieder Prozesse mit höherer Priorität vorgezogen werden.
Verklemmung: Zwei oder mehrere Prozesse halten jeder für sich ein oder mehrere Betriebsmittel belegt und versuchen ein weiteres zu belegen, das aber von einem anderen Prozess belegt ist. Es liegt ein Zyklus von Abhängigkeiten vor. Kein Prozess
gibt seine Betriebsmittel frei und alle Prozesse warten daher ewig. Dieser Zustand wird auch als Deadlock bezeichnet.
Tags: Synchronisation und Kommunikation
Source:
Source:
Was versteht man unter einem kritischen Abschnitt?
Nennen Sie die vier Kriteien nach Dijkstra
Nennen Sie die vier Kriteien nach Dijkstra
Ein kritischer Abschnitt ist ein Codeabschnitt, der zu einer Zeit nur durch einen Prozess bzw. Thread durchlaufen und in dieser Zeit nicht durch andere nebenläufige Prozesse bzw. Threads betreten werden darf. Ein Prozess bzw. Thread, der einen kritischen Abschnitt betritt, darf nicht unterbrochen werden. Sofern das Betriebssystem in dieser Zeit aufgrund einer Scheduling-Entscheidung eine Unterbrechung zulässt, darf der Prozess bzw. Thread, der den kritischen Abschnitt belegt, durch andere Prozesse, die die CPU erhalten, nicht beeinflusst werden.
Nach Dijkstra ist bei kritischen Abschnitten folgendes zu beachten:
– Mutual exclusion: Zwei oder mehr Prozesse dürfen sich nicht gleichzeitig im gleichen kritischen Abschnitt befinden.
– Es dürfen keine Annahmen über die Abarbeitungsgeschwindigkeit und die Anzahl der Prozesse bzw. Prozessoren gemacht werden. Der kritische Abschnitt muss unabhängig davon geschützt werden.
– Kein Prozess außerhalb eines kritischen Abschnitts darf einen anderen nebenläufigen Prozess blockieren.
– Fairness Condition: Jeder Prozess, der am Eingang eines kritischen Abschnitts wartet, muss ihn irgendwann betreten dürfen (kein ewiges Warten).
Nach Dijkstra ist bei kritischen Abschnitten folgendes zu beachten:
– Mutual exclusion: Zwei oder mehr Prozesse dürfen sich nicht gleichzeitig im gleichen kritischen Abschnitt befinden.
– Es dürfen keine Annahmen über die Abarbeitungsgeschwindigkeit und die Anzahl der Prozesse bzw. Prozessoren gemacht werden. Der kritische Abschnitt muss unabhängig davon geschützt werden.
– Kein Prozess außerhalb eines kritischen Abschnitts darf einen anderen nebenläufigen Prozess blockieren.
– Fairness Condition: Jeder Prozess, der am Eingang eines kritischen Abschnitts wartet, muss ihn irgendwann betreten dürfen (kein ewiges Warten).
Tags: Synchronisation und Kommunikation
Source:
Source:
Welche Maßnahmen sind zu treffen, damit es beim Durchlaufen eines kritischen Abschnitts nicht zu Inkonsistenzen kommt? Gehen Sie dabei auf den Begriff des gegenseitigen Ausschlusses (mutual exclusion) ein!
Um Inkonsistenzen zu vermeiden, muss ein kritischer Abschnitt geschützt werden. Dies kann durch gegenseitigen (oder wechselseitigen) Ausschluss (engl.: mutual exclusion) erreicht werden. Prozesse, die einen kritischen Abschnitt ausführen
wollen, müssen warten, bis dieser frei ist. Mit einem wechselseitigen Ausschluss wird also die Illusion einer atomaren Anweisungsfolge geschaffen, denn echt atomar wird sie natürlich nicht ausgeführt. Es kann ja immer noch vorkommen, dass ein nebenläufiger Prozess zwischendurch die CPU erhält.
-> Semaphor
wollen, müssen warten, bis dieser frei ist. Mit einem wechselseitigen Ausschluss wird also die Illusion einer atomaren Anweisungsfolge geschaffen, denn echt atomar wird sie natürlich nicht ausgeführt. Es kann ja immer noch vorkommen, dass ein nebenläufiger Prozess zwischendurch die CPU erhält.
-> Semaphor
Tags: Synchronisation und Kommunikation
Source:
Source:
Was sind Semaphore? Gehen Sie dabei kurz auf die Semaphoroperationen P() und V() ein!
Das Semaphor-Konzept ist ein Konzept zur Lösung des Mutual-Exclusion-Problems auf Basis von Sperren. Ein Semaphor verwaltet intern eine Warteschlange für die Prozesse bzw. Threads, die gerade am Eingang eines kritischen Abschnitts
warten müssen, und einen Semaphorzähler. Es kommt auf die Initialisierung des Semaphorzählers an, wie viele Prozesse in den kritischen Abschnitt dürfen. Für den Eintritt in den bzw.
Austritt aus dem kritischen Abschnitt gibt es zwei Operationen:
– P() wird beim Eintritt in den kritischen Abschnitt aufgerufen. Der Semaphorzähler wird um 1 reduziert, sofern er größer als 0 ist. Wenn er gerade auf 0 steht, wird der Eintritt verwehrt, der Prozess/Thread wird in die Warteschlange eingereiht und suspendiert.
– V() wird beim Verlassen des kritischen Abschnitts aufgerufen. Der Semaphorzähler wird wieder um 1 erhöht, so dass ein weiterer Prozess/Thread in den kritischen Abschnitt darf.
warten müssen, und einen Semaphorzähler. Es kommt auf die Initialisierung des Semaphorzählers an, wie viele Prozesse in den kritischen Abschnitt dürfen. Für den Eintritt in den bzw.
Austritt aus dem kritischen Abschnitt gibt es zwei Operationen:
– P() wird beim Eintritt in den kritischen Abschnitt aufgerufen. Der Semaphorzähler wird um 1 reduziert, sofern er größer als 0 ist. Wenn er gerade auf 0 steht, wird der Eintritt verwehrt, der Prozess/Thread wird in die Warteschlange eingereiht und suspendiert.
– V() wird beim Verlassen des kritischen Abschnitts aufgerufen. Der Semaphorzähler wird wieder um 1 erhöht, so dass ein weiterer Prozess/Thread in den kritischen Abschnitt darf.
Tags: Synchronisation und Kommunikation
Source:
Source:
Warum müssen die Semaphor-Operationen P() und V() selbst wieder ununterbrechbar sein?
Semaphor-Operationen müssen selbst wieder ununterbrechbar, also atomar sein, weil eine Unterbrechung zu Inkonsistenzen in der Warteschlangenbearbeitung oder im Semaphorzähler führen kann. Die korrekte Implementierung eines Semaphors benötigt daher am besten auch eine unteilbare Hardware-Operation wie etwa TSL.
Tags: Synchronisation und Kommunikation
Source:
Source:
Welche Auswirkung hat die folgende, falsche Nutzung eines binären Semaphors?
V(); ... kritischer Abschnitt ...; P();
V(); ... kritischer Abschnitt ...; P();
Diese Anweisungsfolge führt dazu, dass alle Prozesse nur noch im kritischen Abschnitt zugelassen sind. Sie kommen alle problemlos in den kritischen Abschnitt hinein.
Tags: Synchronisation und Kommunikation
Source:
Source:
Welche Auswirkung hat die folgende, falsche Nutzung eines binären Semaphors?
P(); ... kritischer Abschnitt ...; P();
P(); ... kritischer Abschnitt ...; P();
Diese Anweisungsfolge führt dazu, dass nach kurzer Zeit kein Prozess mehr in den kritischen Abschnitt darf und die ersten Prozesse möglicherweise auch im kritischen Abschnitt verbleiben
Tags: Synchronisation und Kommunikation
Source:
Source:
Nennen Sie die vier notwendigen und hinreichenden Bedingungen, die zu einem Deadlock führen!
Ein Deadlock kann nur eintreten, wenn folgende vier Bedingungen eintreffen:
– Mutual Exclusion für die benötigten Betriebsmittel.
– hold and wait Prozesse belegen Betriebsmittel und fordern weitere an.
– No Preemption Kein Entzug eines Betriebsmittels ist möglich.
– circular waiting Zwei oder mehrere Prozesse warten in einer Warteschleife auf weitere Betriebsmittel.
– Mutual Exclusion für die benötigten Betriebsmittel.
– hold and wait Prozesse belegen Betriebsmittel und fordern weitere an.
– No Preemption Kein Entzug eines Betriebsmittels ist möglich.
– circular waiting Zwei oder mehrere Prozesse warten in einer Warteschleife auf weitere Betriebsmittel.
Tags: Synchronisation und Kommunikation
Source:
Source:
Warum lassen sich Deadlocks bei nebenläufigen Prozessen schwer ganz vermeiden?
Deadlock-Vermeidung wird durch die Aufweichung mindestens eines der Kriterien erreicht. Deadlocks lassen sich a priori aber nur schwer vermeiden, weil sonst nur jeder Prozess ohne Gefahr eines Deadlocks zum Ablauf kommen dürfte. Alle Betriebsmittel müssten im Vorfeld reserviert werden.
Tags: Synchronisation und Kommunikation
Source:
Source:
Welche Alternative zur Behandlung von Deadlocks kennen Sie?
Eine in der Praxis häufig eingesetzte Technik ist das Erkennen und Beseitigen von Deadlocks zur Laufzeit, wobei man hierzu sog. Betriebsmittelbelegungsgraphen einsetzt. Dies sind Graphen, die als Knoten Ressourcen und Prozesse/Threads enthalten, und Kanten, welche die Belegung der Ressourcen durch Prozesse/Threads aufzeigen. Als Maßnahmen zur Beseitigung eines Deadlocks sind das Abbrechen eines Prozesses/Threads oder das Entziehen eines Betriebsmittels möglich.
Tags: Synchronisation und Kommunikation
Source:
Source:
Was sind Race Conditions?
Race Conditions sind Situationen, bei denen zwei oder mehr Prozesse gemeinsame Betriebsmittel nutzen und die Endergebnisse der Nutzung von der zeitlichen Reihenfolge der Operationen abhängen.
Tags: Synchronisation und Kommunikation
Source:
Source:
Erläutern Sie kurz die Funktionsweise von Pipes!
Wie der Name andeutet handelt es sich bei einer Pipe um einen Datenstrom von einem Prozess zu einem anderen. Daten, die ein Prozess in ein Ende der Pipe schreibt, können auf der anderen Seite von einem anderen Prozess gelesen werden. Eine Pipe stellt damit einen unidirektionalen Datenstrom bereit. Die Daten werden
von einem Prozess ohne Nachrichtenbegrenzer in die Schreibseite eingetragen, die von einem lesenden Prozess aus dem anderen Ende (Leseseite) entnommen werden können. Eine bidirektionale Kommunikation zweier Prozesse kann über die Einrichtung von zwei Pipes erreicht werden. Eine Pipe stellt einen Pufferbereich
fester Länge dar. Das Auslesen erfolgt in der Reihenfolge, in der die Daten eingetragen werden (FIFO-Puffer).
von einem Prozess ohne Nachrichtenbegrenzer in die Schreibseite eingetragen, die von einem lesenden Prozess aus dem anderen Ende (Leseseite) entnommen werden können. Eine bidirektionale Kommunikation zweier Prozesse kann über die Einrichtung von zwei Pipes erreicht werden. Eine Pipe stellt einen Pufferbereich
fester Länge dar. Das Auslesen erfolgt in der Reihenfolge, in der die Daten eingetragen werden (FIFO-Puffer).
Tags: Synchronisation und Kommunikation
Source:
Source:
Flashcard set info:
Author: learner94
Main topic: Informatik
Topic: Betriebssysteme
Published: 26.08.2017
Card tags:
All cards (134)
CPU-Scheduling (8)
Einführung (3)
Selbststudium Fragen (21)
Synchronisation und Kommunikation (12)