- Formen Sie ihren bisherigen Anwendungsfall so um, dass Sie eine Menge von mindestens vier periodischen Tasks
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
über einen Semaphor
auf eine Ressource
zugreifen will während der Task
die Ressource R schon benutzt.
- Stellen Sie diese periodische Taskmenge
in einer technischen Tabelle dar. Bei den Ausführungszeiten
unterscheiden sie zwischen nichtkritischen
und kritischen
Bereichen. Die Taskmenge kann asynchron sein, d.h. die Startzeiten
können von 0 verschieden sein.
- Benutzen Sie als Basisstrategie für die nominale Priorität RM.
- Szenario 1: Priority Inversion: Erzeugen Sie eine Situation, in der das priority inversion Problem auftritt, wenn man nur RM benutzt.
- Szenario 2: Deadlock: Erzeugen Sie eine weitere Situation, in der ein Deadlock aufgrund wechselseitiger Ressourcenanforderungen auftritt, wenn man nur RM benutzt.
- 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.
- 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