4.5 Aufgaben zum Kapitel Prozessverwaltung

[gesichtete Version][gesichtete Version]
Keine Bearbeitungszusammenfassung
Zeile 2: Zeile 2:


<br />
<br />
== Aufgabe 1 ==
<p>
<p>
<loop_area type="task">
== So geht es weiter: ==
<loop_task title="Prozesszustände">
<p>
Skizzieren Sie in einem Schaubild die drei grundlegenden Prozesszustände und die jeweils möglichen Zustandsübergänge. Geben Sie für alle Zustandsübergänge jeweils den Grund des Zustandswechsels an.
</p>
</loop_task>
</loop_area>
</p>
 
<br />
== Aufgabe 2 ==
<p>
<loop_area type="task">
<loop_task title="Von 'rechnend' nach 'bereit'">
<p>
Bei welcher Art von Schedulingstrategien ist auch ein direkter Übergang vom Prozesszustand "rechnend" zum Prozesszustand "bereit" möglich?
</p>
</loop_task>
</loop_area>
</p>
 
<br />
== Aufgabe 3 ==
<p>
<loop_area type="task">
<loop_task title="Rund um die Prozessbegriffe">
<p>
Grenzen Sie die Begriffe Programm, Prozess, Prozesskontext und Prozesszustand gegeneinander ab und erklären Sie diese.
</p>
</loop_task>
</loop_area>
</p>
 
<br />
== Aufgabe 4 ==
<p>
<loop_area type="task">
<loop_task title="Kontextwechsel">
<p>
Erläutere zwei Dinge, die bei einem Kontextwechsel auf der CPU erledigt werden müssen.
</p>
</loop_task>
</loop_area>
</p>
 
<br />
== Aufgabe 5 ==
<p>
<loop_area type="task">
<loop_task title="Prozesserzeugung unter Unix/Linux">
<p>
Welcher grundlegende Befehl steht unter Unix/Linux für die Erzeugung eines neuen Prozesses zur Verfügung? (Nennen Sie nur den Befehl.)
</p>
<p>
Durch die Ausführung dieses Befehls entsteht aus dem Eltern-Prozess ein Kind-Prozess. An welcher Stelle beginnt anschließend die Abarbeitung des Kind-Prozesses (sobald er die CPU zugeteilt bekommt)?
</p>
</loop_task>
</loop_area>
</p>
 
<br />
== Aufgabe 6 ==
<p>
<loop_area type="task">
<loop_task title="Prozesskontrollblock">
<p>
Nenne fünf Informationen, die vom Betriebssystem für einen Prozess in seinem zugehörigen Prozesskontrollblock verwaltet werden.
</p>
</loop_task>
</loop_area>
</p>
 
<br />
== Aufgabe 7 ==
<p>
<loop_area type="task">
<loop_task title="Alle Prozesskontrollblöcke">
<p>
Jeder Prozess besitzt seinen eigenen Prozesskontrollblock. Wie nennt man die Datenstruktur, in der alle Prozesskontrollblöcke zusammengefasst werden?
</p>
</loop_task>
</loop_area>
</p>
 
<br />
== Aufgabe 8 ==
<p>
<loop_area type="task">
<loop_task title="Scheduler und Dispatcher">
<p>
Erläutere den Unterschied zwischen einem Scheduler und einem Dispatcher.
</p>
</loop_task>
</loop_area>
</p>
 
<br />
== Aufgabe 9 ==
<p>
<loop_area type="task">
<loop_task title="Scheduling-Ziele">
<p>
Nenne drei Ziele, die ein Scheduling-Algorithmus verfolgen sollte.
</p>
<p>
Erläutere, inwieweit ein gleichzeitiges Erreichen der genannten Ziele realistisch ist.
</p>
</loop_task>
</loop_area>
</p>
 
<br />
== Aufgabe 10 ==
<p>
<loop_area type="task">
<loop_task title="Scheduling">
<p>
Wofür stehen die Abkürzungen FCFS, SJF, SRTN, RR, PS im Kontext des Scheduling?</p>
</loop_task>
</loop_area>
</p>
 
<br />
== Aufgabe 11 ==
<p>
<loop_area type="task">
<loop_task title="SJF und FCFS">
<p>
Diskutieren Sie die Vor- und Nachteile der Scheduling-Strategien SJF und FCFS.
</p>
</loop_task>
</loop_area>
</p>
 
<br />
== Aufgabe 12 ==
<p>
<loop_area type="task">
<loop_task title="RR und FCFS">
<p>
Erläutern Sie in Bezug auf Scheduling, warum das Round-Robin-Verfahren nicht die Nachteile des FCFS-Verfahrens hat.</p>
<p>
</p>
</loop_task>
</loop_area>
</p>
 
<br />
== Aufgabe 13 ==
<p>
<loop_area type="task">
<loop_task title="(Non-) preemptive">
<p>
Erläutere den Unterschied zwischen "preemptive" und "non-preemptive" in Bezug auf Scheduling-Strategien.
</p>
<p>
</p>
</loop_task>
</loop_area>
</p>
 
<br />
 
== Aufgabe 14 ==
<p>
<loop_area type="task">
<loop_task title="Preemptive oder non-preemptive">
<p>
Betrachte die Scheduling-Verfahren FCFS, SJF, RR und PS.<br />
Welche dieser Verfahren sind preemptive, welche sind non-preemptive?
</p>
<p>
</p>
</loop_task>
</loop_area>
</p>
 
<br />
== Aufgabe 15 ==
<p>
<loop_area type="task">
<loop_task title="Scheduling für P1 bis P5">
<p>
Gegeben seien fünf Prozesse P1, P2, P3, P4 und P5 mit den Gesamtrechenzeiten 2, 3, 6, 10 und 19 Zeiteinheiten, die quasi gleichzeitig zum Zeitpunkt 0 am System eintreffen. Gehen Sie davon aus, dass die Reihenfolge des Eintreffens (bei kaum wahrnehmbaren zeitlichen Unterschieden) P4, P1, P5, P3, P2 lautet. Es gibt keine Unterscheidung unterschiedlicher Prioritäten.
</p>
<p>
Skizzieren Sie für diese Situation wann welcher Prozess bearbeitet wird für die Schedulingstrategien FCFS, SJF, SRTN und RR. Gehen Sie für die preemptive(n) Strategie(n) von einer Zeitscheibe der Länge 2 Zeiteinheiten aus.
</p>
<p>
<small>
(Hinweis: Diese Aufgabe ist so gemeint, dass zum Zeitpunkt 0 bereits alle Prozesse im Zustand "bereit" auf eine Zuteilung der CPU warten.)
</small>
</p>
</loop_task>
</loop_area>
</p>
 
<br />
== Aufgabe 16 ==
<p>
<loop_area type="task">
<loop_task title="Scheduling mit Priorität">
<p>
Betrachte die Prozesse A bis E, welche mit unterschiedlichen Prioritäten versehen sind. Die Rechenzeit ist schon im Voraus bekannt, siehe folgende Tabelle.
</p>
<p>
Welche Ausführungsreihenfolge ergibt sich beim Priority-Scheduling, wenn zusätzlich mit einem Zeitquantum von einer Zeiteinheit (ZE) gearbeitet wird?
</p>
<p>
{| class="wikitable"
|-
! Prozess !! A !! B !! C !! D !! E
|-
| Rechenzeit (ZE) ||style="text-align:center"| 12 ||style="text-align:center"| 7 ||style="text-align:center"| 4 ||style="text-align:center"| 8 ||style="text-align:center"| 10
|-
| Priorität || &nbsp; Mittel &nbsp; || &nbsp; Niedrig &nbsp; || &nbsp; Hoch &nbsp; || &nbsp; Hoch &nbsp; || &nbsp; Mittel &nbsp;
|}
</p>
<p>
<small>
Hinweis: Alle Prozesse sind zum Startzeitpunkt bereit und können sofort die CPU übernehmen. Die Priorität der Prozesse ändert sich nicht, bei gleicher Priorität ist die Round-Robin-Strategie anzuwenden.</small>
</p></loop_task>
</loop_area>
</p>
 
<br />
== Aufgabe 17 ==
<p>
<loop_area type="task">
<loop_task title="Aktives Warten mit while">
<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.
Zur Realisierung des aktiven Wartens kann eine while-Schleife genutzt werden. </p>
<p>
Geben Sie den für das aktive Warten nötigen Programmcode an, der zu Beginn bzw. am Ende eines kritischen Abschnitts ausgeführt werden muss.
</p>
<p>
Erläutern Sie warum das aktive Warten einen zeitlichen Nachteil mit sich bringt, und unter welcher Bedingung dieser Nachteil in Kauf genommen werden kann.
</p>
</loop_task>
</loop_area>
</p>
 
<br />
== Aufgabe 18 ==
<p>
<loop_area type="task">
<loop_task title="TSL">
<p>
Wofür steht die Abkürzung TSL (im Kontext der Prozesssynchronisation)?
</p>
</loop_task>
</loop_area>
</p>
 
<br />
== Aufgabe 19 ==
<p>
<loop_area type="task">
<loop_task title="Aufgabe des TSL-Befehls">
<p>
Erläutern Sie, welche Aufgabe der TSL-Befehl bei der Ausführung auf einer CPU erfüllt.
</p>
</loop_task>
</loop_area>
</p>
 
<br />
== Aufgabe 20 ==
<p>
<loop_area type="task">
<loop_task title="Aktiv warten mit TSL">
<p>
Welches Problem löst der TSL-Befehl in Zusammenhang mit aktivem Warten?
</p>
</loop_task>
</loop_area>
</p>
 
<br />
== Aufgabe 21 ==
<p>
<loop_area type="task">
<loop_task title="Semaphor">
<p>
Ein Semaphor ist eine Datenstruktur, welche aus zwei "Dingen" sowie zwei darauf definierten Funktionen besteht.
</p>
<p>
Welche beiden "Dinge" sind gemeint?<br />
Welche Aufgabe erfüllen die beiden Funktionen?
</p>
</loop_task>
</loop_area>
</p>
 
<br />
== Aufgabe 22 ==
<p>
<loop_area type="task">
<loop_task title="Mutex">
<p>
Was versteht man unter einem Mutex (im Kontext der Prozesssynchronisation)?
</p>
</p>
<p>
<p>
<loop_area type="arrangement"><loop_toc> </loop_toc></loop_area>
</p>
</p>
</loop_task>
</loop_area>
</p>
<br />
== Aufgabe 23 ==
<p>
<loop_area type="task">
<loop_task title="Arbeitsweise eines Zählsemaphors">
<p>
Erläutere anhand eines selbstgewählten Beispiels die Arbeitsweise eines Zählsemaphors.
</p>
</loop_task>
</loop_area>
</p>


<div class="autoit_do_not_print">
<div class="autoit_do_not_print">

Version vom 30. Januar 2015, 19:38 Uhr