Inhaltliche Aufgabe

  1. Formen Sie ihren bisherigen Anwendungsfall so um, dass Sie eine Menge von mindestens vier periodischen Tasks $\tau_{1}, \cdots, \tau_{4}$ bekommen. Falls dies überhaupt nicht gehen sollte, definieren Sie eine fiktive Anwendung mit mindestens vier periodischen Ereignissen. Zwei der Tasks benutzen die kritische Ressource R1 und zwei die kritische Ressource R2. Es kann also vorkommen, dass ein Task $\tau$ über einen Semaphor $S_{i}$ auf eine Ressource $R_{i}$ zugreifen will während der Task $\tau^{'}$ die Ressource R schon benutzt.
  2. Stellen Sie diese periodische Taskmenge $\Gamma$ in einer technischen Tabelle dar. Bei den Ausführungszeiten $C_{i}$ unterscheiden sie zwischen nichtkritischen $NC$ und kritischen $CC$ Bereichen. Die Taskmenge kann asynchron sein, d.h. die Startzeiten $\Phi_{i}$ können von 0 verschieden sein.
  3. Benutzen Sie als Basisstrategie für die nominale Priorität RM.
  4. Szenario 1: Priority Inversion: Erzeugen Sie eine Situation, in der das priority inversion Problem auftritt, wenn man nur RM benutzt.
  5. Szenario 2: Deadlock: Erzeugen Sie eine weitere Situation, in der ein Deadlock aufgrund wechselseitiger Ressourcenanforderungen auftritt, wenn man nur RM benutzt.
  6. Lösung des Priority Inversion Problems: Zeigen Sie, wie sie das Problem aus Szenario 1 durch Anwendung von RM + Priority Inheritance Protokoll lösen können.
  7. Lösung des Deadlock Problems: Zeigen Sie, wie sie das Problem aus Szenario 2 durch Anwendung von RM + Priority Ceiling Protokoll lösen können.

Gerd Doeben-Henisch 2013-01-16