Ubungen zur Vorlesung¨ Betriebssysteme I Studiengang Informatik WS 2013/2014
AG Betriebssysteme FB3
Prof. Dr. Jan Peleska, Florian Lapschies Abgabetermin: 04.11.2013
Ubungszettel 1 ¨
Aufgabe 1: Petersons Algorithm
In der Vorlesung wurde euch Petersons Algorithmus zum gegenseitigen Ausschluss von zwei auf einen kritischen Abschnitt zugreifenden Prozessen vorgestellt. Dieser Algorithmus ist in Listing 1 abgedruckt.
Hierbei sind beide Prozesse ¨uber eine Eindeutige Prozess-ID aus{0,1}identifiziert. Beide Prozesse rufen vor dem Betreten des kritischen Abschnitts enter region() und nach dem Verlassen leave region() mit ihrer jeweiligen Prozess-ID auf.
Listing 1: Petersons Algorithmus 1 v o l a t i l e i n t t u r n ;
2 v o l a t i l e bool i n t e r e s t e d [ 2 ] = {f a l s e, f a l s e}; 3
4 /∗ p i d i s t aus {0 , 1} ∗/
5 void e n t e r r e g i o n (i n t p i d ) { 6 i n t e r e s t e d [ p i d ]= true; 7 t u r n = p i d ;
8 while ( t u r n == p i d && i n t e r e s t e d [1−p i d ] ) ; 9 }
10
11 void l e a v e r e g i o n (i n t p i d ) { 12 i n t e r e s t e d [ p i d ] = f a l s e; 13 }
a) Erl¨autert die Funktionsweise dieses Algorithmus. Geht dabei insbesondere auf die Rolle der interes- ted-Flags und der turn-Variable ein. Wie w¨urde sich der Algorithmus nur mit turn-Variable und ohne interested-Flags verhalten? Wie hilft die Hinzunahme der interested-Flags den Algorithmus zu verbes- sern?
b) Modelliert den Algorithmus mit dem UPPAAL Tool.
c) Stellt Verifikationsbedingungen f¨ur die folgenden Eigenschaften auf und pr¨uft mit UPPAAL, ob Euer Modell diese erf¨ullt:
• Generelle Erreichbarkeit der kritischen Sektion f¨ur beide Prozesse.
• Gegenseitiger Ausschluss.
• Fairness f¨ur beide Prozesse.
• Freiheit von Deadlocks
d) Ist der Gegenseitige Ausschluss weiterhin gew¨ahrleistet, wenn Zeile 6 und 7 in dem Algorithmus ver- tauscht werden? Erl¨autere den Grund hierf¨ur. Modelliert diesen abge¨anderten Algorithmus mit UPPAAL.
Gebt gegebenenfalls eine Ausf¨uhrungsreihenfolge an, die das Gegenteil beweist und f¨ugt die zugeh¨orige Trace-Datei der elektronischen Abgabe hinzu.
Hinweise
Die Abgabe erfolgt als Ausdruck am Ende der Vorlesung und zus¨atzlich elektronisch ¨uber ein Git- Repository1 Repository. F¨ur das Repository nutzt Ihr den Gitlab-Dienst unseres Fachbereichs2 und gebt
1Eine besonders gute Einf¨uhrung zu Git findet sich untergit-scm.com/book/.
2Gitlab Dienst des FB3:https://gitlab.informatik.uni-bremen.de
Eurem Tutor Lese- und Schreibzugriff. Die Dokumentation der Aufgabenl¨osung ist in LaTeX anzufer- tigen. Bitte vergesst nicht die Namen aller Gruppenmitglieder mitanzugeben. Die elektronische Abgabe soll alle mit UPPAAL erstellten Dateien, sowie die LaTeX Dateien der Dokumentation umfassen.