Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

TI 2 Übung 5 23-Jun-05 Bernhard Tellenbach

Ähnliche Präsentationen


Präsentation zum Thema: "TI 2 Übung 5 23-Jun-05 Bernhard Tellenbach"—  Präsentation transkript:

1 TI 2 Übung 5 23-Jun-05 Bernhard Tellenbach

2 - 2 - © TIK/CSG ( ) TI2 Übung 5 Prüfungsvorbereitung Allgemeine Hinweise zur Prüfung Bemerkungen zu den Aufgaben Aufgabe 5 (Semaphore) Selbständiges Lösen der Übung 5

3 - 3 - © TIK/CSG ( ) Prüfungsvorbereitung Begriffe/Konzepte kennen Nachschlagen erlaubt, kostet aber zu viel Zeit Topsy Aufrufe aus den Übungen kennen Learning by doing, es gibt viele alte TI Prüfungen! Bei Unklarheiten Kollegen fragen (Lerngruppe) Falls immer noch unklar, Assistent kontaktieren Fragestunde am von 9:00-13:00 im VAW B1 nutzen!!

4 - 4 - © TIK/CSG ( ) Vorgehen bei Prüfungen Alle Aufgabentexte durchlesen Welche sind für mich einfach, welche schwierig? Wo kann ich mit wenig Aufwand viele Punkte holen? Programmieraufgaben: Aufwand meist hoch! Reihenfolge festlegen! Eigentlich allen klar, wird während der Prüfung aber oft vergessen...

5 - 5 - © TIK/CSG ( ) Bemerkungen zu den Aufgaben I Zuerst die anspruchsvollen Aufgaben Anspruchsvolle Aufgaben: 1, 4 und 5 und 2 e) Begriff/Konzepte: Aufgaben 2 (ausser e) ), 3 und 6 Aufgabe 1: Interprozess Kommunikation Aufgabe 2: Ablaufplanung (Scheduling) Aufgabe 3: Speicherverwaltung Aufgabe 4: Wechselseitiges Ausschlussproblem Aufgabe 5: Semaphore Aufgabe 6: Zuverlässige Datenübermittlung

6 - 6 - © TIK/CSG ( ) Bemerkungen zu den Aufgaben II Auf den ersten Blick schwierige Aufgaben sind beim genauerer Betrachtung oft einfach Bspl: Aufgabe 5 (Semaphore) Es gibt einen einfacheren Ansatz als der als Hinweis angagebene! Lösungsansatz suchen. Zeit: 15 Minuten

7 - 7 - © TIK/CSG ( ) Aufgabe 5 (Semaphore) Gemäss Hinweis: Agent teilt mit, welche Betriebsmittel er ausgewählt hat Die beiden Raucher, welche eines der Betriebsmittel jeweils besitzen, werden aktiv Jeder der beiden muss feststellen, welcher andere Raucher aktiv ist. Danach wissen sie, welcher der noch inaktive Raucher ist Aktivieren des inaktiven Rauchers durch einen der aktiven Raucher

8 - 8 - © TIK/CSG ( ) R3R2R1 Agent: Signal(B1), Signal(B2) wait(B1)wait(B2)wait(B3) weckt Jeder Raucher weckt seinen Raucher, falls dieser rauchen darf! JA: Rauchen Nein: Wen aufwecken? JA: Rauchen Nein: Wen aufwecken? JA: Rauchen Nein: Wen aufwecken? weckt Problem: Wie weiss ein Raucher, ob er vom Agenten oder von einem anderen Raucher geweckt wurde? Von Raucher augeweckt? Benötigt pro Raucher eine Testvariable Testvariable des inaktiven Rauchers wird vom Raucher, der ihn aufweckt, gesetzt

9 - 9 - © TIK/CSG ( ) Problem: Wie merken die beiden vom Agenten geweckten Raucher, welcher Raucher nicht geweckt wurde (dieser darf dann schliesslich rauchen)? Information, welch Raucher vom Agenten geweckt wurden, muss global abrufbar sein z.B. für jedes Betriebsmittel eine globale Variable (w1, w2,w3) Falls nötig: Schreibzugriffe über Semaphor regeln (MuLö: Ja) R3R2R1 wait(B3) Von Agenten augeweckt Wird von R2 geweckt, raucht. weckt wait(s) w1++, w3++ signal(s) while(w1<2 and w3<2) noop if w3=2 signal(B3)... wait(s) w2++, w3++ signal(s) while(w2<2 and w3<2) noop if w2=2 signal(B2)... weckt wait(s) w2++, w3++ signal(s) while(w2<2 and w3<2) noop if w2=2 signal(B2)... weckt wait(s) w2++, w3++ signal(s) while(w2<2 and w3<2) noop if w2=2 signal(B2)... weckt wait(s) w2++, w3++ signal(s) while(w2<2 and w3<2) noop if w2=2 signal(B2)... weckt wait(s) w2++, w3++ signal(s) while(w2<2 and w3<2) noop if w2=2 signal(B2)... weckt wait(s) w1++, w3++ signal(s) while(w1<2 and w3<2) noop if w3=2 signal(B3)... wait(s) w2++, w3++ signal(s) while(w2<2 and w3<2) noop if w2=2 signal(B2)... weckt

10 © TIK/CSG ( ) Der Agent wählt zwei Betriebsmittel aus und meldet, welches er nicht gewählt hat Ein anderer Lösungsweg (ignorieren des Hinweises, ebenfalls in MuLö): Verlangt: Der Agent informiert die Raucher über die von ihm gewählten Betriebsmittel über signal Operationen R3R2R1 Agent: Signal(notB3) wait(notB1)wait(notB2)wait(notB3) weckt Rauchen signal(Rückmeldung) Rauchen signal(Rückmeldung) Rauchen signal(Rückmeldung)

11 © TIK/CSG ( ) Selbständiges Lösen der Übung 5 Wir stehen für Fragen zur Verfügung Testate: Übung zu gutem Teil gelöst oder ab Uhr (Di) / (Fr)

12 © TIK/CSG ( ) Algorithmus zum Lösen von TI2 Aufgaben: Text genau durchlesen Löse die Aufgabe Armes Schwein! Gibt es noch einen einfachern Lösungsweg? (z.B. Aufgabe 4) Lösungsweg gefunden Ich hänge fest! Problem in kurzer Zeit überweindbar? Ja (gefunden) Armes Schwein! Weiter zur nächste Aufgabe Lösungsweg nicht gefunden * Bereits alle versucht Es hat noch... Schade... Ja (nicht gefunden) Ok, dann weiter Zur nächsten... Nein * Ja * =(Hilfs)Assistent fragen


Herunterladen ppt "TI 2 Übung 5 23-Jun-05 Bernhard Tellenbach"

Ähnliche Präsentationen


Google-Anzeigen