[gesichtete Version] | [gesichtete Version] |
(LOOP2 Upgrade) |
|||
Zeile 5: | Zeile 5: | ||
<p> | <p> | ||
<loop_area type="task"> | <loop_area type="task"> | ||
<loop_task title="Kritischer Abschnitt"> | <loop_task title="Kritischer Abschnitt" id="5fa97844d9a07"> | ||
<p> | <p> | ||
Was versteht man unter einem "kritischen Abschnitt"?</p> | Was versteht man unter einem "kritischen Abschnitt"?</p> | ||
Zeile 16: | Zeile 16: | ||
<p> | <p> | ||
<loop_area type="task"> | <loop_area type="task"> | ||
<loop_task title="Aktives Warten mit while"> | <loop_task title="Aktives Warten mit while" id="5fa97844d9a10"> | ||
<p> | <p> | ||
Um bei mehreren Prozessen mit gemeinsam genutzten Betriebsmitteln kritische Abschnitte so zu schützen, dass immer nur maximal ein Prozess zur Zeit diesen kritischen Abschnitt ausführen darf, soll das aktive Warten eingesetzt werden. | Um bei mehreren Prozessen mit gemeinsam genutzten Betriebsmitteln kritische Abschnitte so zu schützen, dass immer nur maximal ein Prozess zur Zeit diesen kritischen Abschnitt ausführen darf, soll das aktive Warten eingesetzt werden. | ||
Zeile 31: | Zeile 31: | ||
<p> | <p> | ||
<loop_area type="task"> | <loop_area type="task"> | ||
<loop_task title="Nachteil des aktiven Wartens"> | <loop_task title="Nachteil des aktiven Wartens" id="5fa97844d9a18"> | ||
<p> | <p> | ||
Erläutere warum das aktive Warten einen zeitlichen Nachteil mit sich bringt, und unter welcher Bedingung dieser Nachteil in Kauf genommen werden kann. | Erläutere warum das aktive Warten einen zeitlichen Nachteil mit sich bringt, und unter welcher Bedingung dieser Nachteil in Kauf genommen werden kann. | ||
Zeile 43: | Zeile 43: | ||
<p> | <p> | ||
<loop_area type="task"> | <loop_area type="task"> | ||
<loop_task title="TSL"> | <loop_task title="TSL" id="5fa97844d9a1f"> | ||
<p> | <p> | ||
Wofür steht die Abkürzung TSL (im Kontext der Prozess-Synchronisation)? | Wofür steht die Abkürzung TSL (im Kontext der Prozess-Synchronisation)? | ||
Zeile 56: | Zeile 56: | ||
<p> | <p> | ||
<loop_area type="task"> | <loop_area type="task"> | ||
<loop_task title="Aufgabe des TSL-Befehls"> | <loop_task title="Aufgabe des TSL-Befehls" id="5fa97844d9a25"> | ||
<p> | <p> | ||
Erläutere welche Aufgabe der TSL-Befehl bei der Ausführung auf einer CPU erfüllt. | Erläutere welche Aufgabe der TSL-Befehl bei der Ausführung auf einer CPU erfüllt. | ||
Zeile 68: | Zeile 68: | ||
<p> | <p> | ||
<loop_area type="task"> | <loop_area type="task"> | ||
<loop_task title="Problemlöser TSL"> | <loop_task title="Problemlöser TSL" id="5fa97844d9a2c"> | ||
<p> | <p> | ||
Welches Problem löst der TSL-Befehl in Zusammenhang mit aktivem Warten? | Welches Problem löst der TSL-Befehl in Zusammenhang mit aktivem Warten? | ||
Zeile 80: | Zeile 80: | ||
<p> | <p> | ||
<loop_area type="task"> | <loop_area type="task"> | ||
<loop_task title="Semaphor"> | <loop_task title="Semaphor" id="5fa97844d9a33"> | ||
<p> | <p> | ||
Ein Semaphor ist eine Datenstruktur, welche aus zwei "Dingen" sowie zwei darauf definierten Funktionen besteht. | Ein Semaphor ist eine Datenstruktur, welche aus zwei "Dingen" sowie zwei darauf definierten Funktionen besteht. | ||
Zeile 102: | Zeile 102: | ||
<p> | <p> | ||
<loop_area type="task"> | <loop_area type="task"> | ||
<loop_task title="Mutex"> | <loop_task title="Mutex" id="5fa97844d9a3a"> | ||
<p> | <p> | ||
Was versteht man unter einem Mutex (im Kontext der Prozess-Synchronisation)? | Was versteht man unter einem Mutex (im Kontext der Prozess-Synchronisation)? | ||
Zeile 117: | Zeile 117: | ||
<p> | <p> | ||
<loop_area type="task"> | <loop_area type="task"> | ||
<loop_task title="Arbeitsweise eines Mutex"> | <loop_task title="Arbeitsweise eines Mutex" id="5fa97844d9a40"> | ||
<p> | <p> | ||
Erläutere anhand eines selbstgewählten Beispiels die Arbeitsweise eines Mutex. Welche Funktionsaufrufe werden rund um die kritischen Abschnitte getätigt? | Erläutere anhand eines selbstgewählten Beispiels die Arbeitsweise eines Mutex. Welche Funktionsaufrufe werden rund um die kritischen Abschnitte getätigt? | ||
Zeile 129: | Zeile 129: | ||
<p> | <p> | ||
<loop_area type="task"> | <loop_area type="task"> | ||
<loop_task title="Arbeitsweise eines Zählsemaphors"> | <loop_task title="Arbeitsweise eines Zählsemaphors" id="5fa97844d9a47"> | ||
<p> | <p> | ||
Erläutere anhand eines selbstgewählten Beispiels die Arbeitsweise eines Zählsemaphors. Welche Funktionsaufrufe werden rund um die kritischen Abschnitte getätigt? | Erläutere anhand eines selbstgewählten Beispiels die Arbeitsweise eines Zählsemaphors. Welche Funktionsaufrufe werden rund um die kritischen Abschnitte getätigt? | ||
Zeile 141: | Zeile 141: | ||
<p> | <p> | ||
<loop_area type="task"> | <loop_area type="task"> | ||
<loop_task title="Aktiv wartender Semaphor?"> | <loop_task title="Aktiv wartender Semaphor?" id="5fa97844d9a4d"> | ||
<p> | <p> | ||
Wenn Semaphore zur Prozess-Synchronisation eingesetzt werden, ist das dann auch "aktives Warten"? Oder was ist anders? Erläutere! | Wenn Semaphore zur Prozess-Synchronisation eingesetzt werden, ist das dann auch "aktives Warten"? Oder was ist anders? Erläutere! | ||
Zeile 154: | Zeile 154: | ||
<p> | <p> | ||
<loop_area type="task"> | <loop_area type="task"> | ||
<loop_task title="Ein Abend an der Bar"> | <loop_task title="Ein Abend an der Bar" id="5fa97844d9a53"> | ||
<p> | <p> | ||
In einer gemütlichen Feierabend-Kneipe ist nicht viel los. Dem Barkeeper sitzt lediglich ein Gast gegenüber. Dieser Gast jedoch hat gewaltigen Durst. Er trinkt ein Glas Schnaps nach dem anderen auf ex. Der Barkeeper füllt das leere Glas immer wieder bis oben hin auf. | In einer gemütlichen Feierabend-Kneipe ist nicht viel los. Dem Barkeeper sitzt lediglich ein Gast gegenüber. Dieser Gast jedoch hat gewaltigen Durst. Er trinkt ein Glas Schnaps nach dem anderen auf ex. Der Barkeeper füllt das leere Glas immer wieder bis oben hin auf. |
Was versteht man unter einem "kritischen Abschnitt"?
Um bei mehreren Prozessen mit gemeinsam genutzten Betriebsmitteln kritische Abschnitte so zu schützen, dass immer nur maximal ein Prozess zur Zeit diesen kritischen Abschnitt ausführen darf, soll das aktive Warten eingesetzt werden. Zur Realisierung des aktiven Wartens kann eine while-Schleife genutzt werden.
Gebe den für das aktive Warten nötigen Programmcode an, der zu Beginn bzw. am Ende eines kritischen Abschnitts ausgeführt werden muss.
Erläutere warum das aktive Warten einen zeitlichen Nachteil mit sich bringt, und unter welcher Bedingung dieser Nachteil in Kauf genommen werden kann.
Wofür steht die Abkürzung TSL (im Kontext der Prozess-Synchronisation)?
Erläutere welche Aufgabe der TSL-Befehl bei der Ausführung auf einer CPU erfüllt.
Welches Problem löst der TSL-Befehl in Zusammenhang mit aktivem Warten?
Ein Semaphor ist eine Datenstruktur, welche aus zwei "Dingen" sowie zwei darauf definierten Funktionen besteht.
Was versteht man unter einem Mutex (im Kontext der Prozess-Synchronisation)?
Erläutere anhand eines selbstgewählten Beispiels die Arbeitsweise eines Mutex. Welche Funktionsaufrufe werden rund um die kritischen Abschnitte getätigt?
Erläutere anhand eines selbstgewählten Beispiels die Arbeitsweise eines Zählsemaphors. Welche Funktionsaufrufe werden rund um die kritischen Abschnitte getätigt?
Wenn Semaphore zur Prozess-Synchronisation eingesetzt werden, ist das dann auch "aktives Warten"? Oder was ist anders? Erläutere!
In einer gemütlichen Feierabend-Kneipe ist nicht viel los. Dem Barkeeper sitzt lediglich ein Gast gegenüber. Dieser Gast jedoch hat gewaltigen Durst. Er trinkt ein Glas Schnaps nach dem anderen auf ex. Der Barkeeper füllt das leere Glas immer wieder bis oben hin auf.
Überführe diese Situation in den Kontext der Prozess-Synchronisation mit Semaphoren. Orientiere dich dabei an folgenden Fragen:
Diese Seite steht unter der Creative Commons Namensnennung 3.0 Unported Lizenz http://i.creativecommons.org/l/by/3.0/80x15.png