340 likes | 584 Vues
Übungen/Aufgaben zur Vorlesung „Realzeitsysteme“. Inhalte Übung Architektur „Pipelining“ Übung Synchr./asyn. Programmierung „Toaster“ Übung Taskzustände Übungen Realzeitscheduling „FIFO“, „SPT“, „Round Robin“, „RMS“, „Least laxity“
E N D
Übungen/Aufgaben zur Vorlesung „Realzeitsysteme“ • Inhalte • Übung Architektur „Pipelining“ • Übung Synchr./asyn. Programmierung „Toaster“ • Übung Taskzustände • Übungen Realzeitscheduling „FIFO“, „SPT“, „Round Robin“, „RMS“, „Least laxity“ • Übungen Task-Synchronisation „wechselseitiger Ausschluss“, „Deadlock“ • Übung zum Petri-Netz • Übung zur Speicherverwaltung „Kompaktifizierung“ • Anlage • Aufgabe synchrone Programmierung „Transportsystem“ • Aufgaben Scheduling mit Template • Aufgaben Semaphore • Aufgaben Petri-Netze • ……………….
Architekturen von Realzeitsystemen Pipeline-Verarbeitung von Befehlen: Übung 3: Takt 4 Personen wollen Wäsche waschen, trocknen und bügeln; Waschen dauert 30 min, Trocknen 40 min und Bügeln 20 min. Wie lange dauern die Aktionen ohne Pipelining? Wie lange dauern die Aktionen mit Pipelining?
Realzeitprogrammierung Übung: Toaster 1 - Korb; 2 - Druckfeder; 3 - Heizwendel; 4 - Endlagenkontakt; 5 - Temperatursensor; 6 – Rastung; 7 - Auslösemagnet; 8 - Schaltrelais (oder Triac); 9 - Stopptaste 10 - Drehschalter; 11 - Kontrollanzeige. Daraufhin drückt die Druckfeder 2 den Korb 1 wieder nach oben. Zur Beeinflussung des Ablaufs sind eine Stopptaste 9 (vorzeiti-ges Beenden) und ein Dreh-schalter 10 (zum Einstellen des Bräunungsgrades) vorgesehen. Das Toasten selbst beruht auf einer Erregung der Heizwendel 3. Hierzu muss das Schaltrelais 8 erregt werden. Wir legen die Brotscheiben ein und drücken den Korb 1 nach unten. Er rastet in dieser Lage ein. Dieser Betriebszustand wird mittels des Endlagenkontaktes 4 signalisiert. Dies bewirkt dass der Toast-Vorgang beginnt. Um ihn zu beenden, wird der Auslösemagnet 7 erregt und somit Rastung 6 ausgelöst.
Realzeitprogrammierung Übung: Toaster • Realisieren Sie den geschilderten Programmablauf durch synchrones Programmieren, indem Sie ein Flussdiagramm mit Abfrage- und Warteschleifen erstellen. • Realisieren Sie den geschilderten Programmablauf durch asynchrones Programmieren, indem Sie die erforderlichen Interrupts kennzeichnen und für jedes Ereignis ein eigenständiges Flussdiagramm erstellen. Die Programme müssen dann durch einen Interrupthandler gestartet werden. Ereignis 1 Ereignis 2 Ist was zu erledigen? erledigen erledigen ………… erledigen Stop Stop
Task-Verwaltung Taskzustände und Warteschlangenmodell: Übung: Gegeben seien 4 Prozesse, die zu unterschiedlichen Zeitpunkten gestartet werden und sich in die ready-Warteschlange einreihen. Der Scheduler arbeitet nach dem LIFO-Verfahren. Einige Prozesse benötigen Zugriff auf den Drucker. Die dritte Spalte der nebenstehenden Tabelle gibt an, nach wie vielen Zeiteinheiten im Zustand running ein Prozess auf den Drucker zugreifen möchte. Während der 4 Zeiteinheiten dauernden Druckphase wird der Prozessor für andere Prozesse freigegeben. Nach Beendigung des Druckvorgangs reiht sich der Prozess wieder in die ready-Warteschlange ein. Geben Sie zu den ersten 22 Zeiteinheiten die aktuellen Prozesszustände der Prozesse P1 bis P4 an. Beachten Sie, dass ein ankommender Prozess bei seiner Ankunft den Zustand new annimmt und erst nach einer Zeiteinheit in einen anderen Zustand wechselt, wobei keine CPU-Zeit verbraucht wird. Des Weiteren können Prozesse, die ihren Druckvorgang beendet haben, direkt in den Zustand running wechseln, ohne vorher eine Zeiteinheit im Zustand ready verbringen zu müssen (gilt nur für diese Übung). Unterscheiden sie zum besseren Verständnis beim Zustand suspended zwischen blocked (Drucker ist fremdbelegt) und waiting (Drucker ist eigenbelegt, d.h. Task druckt gerade selber). 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 P1 ne ru ru P2 - - ne P3 - ne re P4 - - -
Realzeitscheduling • FIFO Scheduling (first-in-first-out): • Übung: Zeichnen Sie den Ablauf der einzelnen Tasks und berechnen Sie die durchschnittliche Reaktionszeit (Wartezeit im Zustand „bereit“) dieser Tasks beim FIFO-Verfahren. Deadline für 1. Aus-Führung von Task 2 Task A Task B Task C Task D Task E ruhend t [ms] 5 0 15 20 25 10
Realzeitscheduling • FIFO Scheduling (first-in-first-out): • Hauptproblem bei FIFO ist die Benachteiligung kurzlaufender Jobs durch Langläufer • Beispiel aus dem täglichen Leben: analoges Problem an Supermarktkassen • Lösung hier: Schnellkassen für Kunden mit maximal 10 Artikeln • Entsprechend beim CPU-Scheduling: ausführungszeitabhängige Strategien • Shortest-Processing-Time-First (SPT), auch Shortest-Job-First (SJF) • Voraussetzung: Ausführungszeit der Tasks ist bekannt • Man kann zeigen, dass die mittlere Reaktionszeit von SPT für die Klasse der nicht-präemptiven Strategien minimal ist, d.h. SPT ist die optimale Strategie bzgl. der Wartezeit. • Übung: Zeichnen Sie den Ablauf der einzelnen Tasksund berechnen Sie die durchschnittliche Reaktionszeit(Wartezeit) dieser Tasks für FIFO und SPT unter derVoraussetzung, dass alle zum ZeitpunktT=0 kurz hintereinander eintreffen: A,B,C,D.
Realzeitscheduling • Round Robin Verfahren: • Übung: Zeichnen Sie den Ablauf der einzelnen Tasks und berechnen Sie die durchschnittliche Reaktionszeit (Wartezeit) dieser Tasks beim Round Robin Verfahren (Zeitschlitz = 1ms und 5ms). Deadline für 1. Aus-Führung von Task 2 Task A Task B Task C Task D Task E ruhend t [ms] 5 0 15 20 25 10
Realzeitscheduling • Scheduling mit festen Prioritäten (fixed priority scheduling (FPS)) mit Rate monotonic scheduling (RMS): • Zuteilung der Prioritäten gemäß dem Rate Monotonic Prinzip ist essentiell! • Würde man keine Präemption zulassen oder die Prioritäten anders herum verteilen, so würde im obigen Beispiel Task 2 ihre Zeitschranken verletzen. • Zeichnen Sie dazu die Abläufe: • Übung1: Vertauschen Sie beim Beispiel auf Seite 24 die Prioritäten, so dass gilt: • Übung2: Ablauf ohne Präemption.
Realzeitscheduling • Übung zum Scheduling-Verfahren • Gegeben ist nebenstehender Taskplan. • Bitte füllen Sie die u.s. Tabelle entsprechend des • geforderten Scheduling -Verfahrens aus: • FIFO • Round Robin • Earliest Deadline • Least Laxity • In dem Fall, dass Prioritäten gesetzt werden müssen, soll dies gemäß der Buchstabenreihenfolge im • Alphabet erfolgen. Falls eine Zeitscheibe notwendig ist, ist diese mit 10 ms anzunehmen.
Task-Synchronisation Übung zum wechselseitigen Ausschluss: Zwei Task A und B (mit absteigender Priorität, A hat die höchste) benutzen exklusiv zwei gemeinsame Speicherbereiche, die jeweils durch eine Semaphore geschützt werden (gestr. Linie = Programmcode, nT = Ausführungsdauer). • Tragen Sie den zeitlichen Verlauf mit den entsprechenden Taskzuständen (blockiert = wartet auf Sema, ablaufwillig = durch höhere Prio verdrängt) der zwei Tasks im Bereich 0<=t<=20T ein, wobei sie zwei Fälle unterscheiden: • Fall 1: Task A wird bei T=5t und B bei T=0t gestartet • Fall 2: Task A wird bei T=2t und B bei T=0t gestartet • Die zwei Semaphore S1 und S2 sind mit 1 initialisiert. Task B (Prio 2) Task A (Prio 1) T T REQ S1 REQ S2 2T 2T REQ S2 REQ S1 3T 3T REL S2 REL S1 2T 2T REL S1 REL S2 T T END END
Task-Synchronisation Übung: Formular zum Zeichnen der Soll-Abläufe laufend blockiert Task A ablaufwillig laufend Task B blockiert ablaufwillig 5 15 20 10
Task-Synchronisation • Verklemmungen • Beispiel 3: Deadlock durch Programmierfehler (Erzeuger/Verbraucher-Problem) • Wie ist der Programmierfehler zu beheben? Erzeuger Verbraucher While (true) { REQ SWait; REQ SFree; /*erzeuge Produkt*/ REL SWait; REL SProd; } While (true) { REQ SProd; REQ SWait; /*verbrauche Produkt*/ REL SWait; REL SFree; } Initialisierung: SWait = 1 SFree = 2 SProd = 0
Task-Synchronisation Übung: gegenseitiges Blockieren beim Zugriff auf kritische Bereiche Zeichnen Sie bitte den Soll-Ablauf der zwei Tasks A und B unter Verwendung des priority ceiling protocols (pcp) im Bereich 0<=t<=20T ein: laufend blockiert Task A ablaufwillig laufend Task B blockiert ablaufwillig 5 15 20 10
Petrinetze zur Synchronisation Grundlegende Verhaltensweisen von Petri-Netzen Übung: Erläutern Sie die Schaltweise der zwei Petri-Netze a) und b)
Speicherverwaltung Übung zum Thema Kompaktifizierung: Welche der 3 Auf der nächsten Seite angegebenen Kompaktifizierungen ist die optimale: 1, 2 oder 3? Berechnen Sie dazu die notwendigen Speicherplatz- Verschiebungen von der Ausgangssituation zu den jeweiligen alternativen Endsituationen. 0K Betriebs-system 300K P1 500K P2 600K 400K 1000K P3 1200K 300K 1500K P4 1900K 200K 2100K Ausgangssituation
Speicherverwaltung Beispiele für Kompaktifizierung 0K 0K 0K Betriebs-system Betriebs-system Betriebs-system 300K 300K 300K P1 P1 P1 500K 500K 500K P2 P2 P2 600K 600K 600K P3 P4 3) 1) 2) 1000K 1000K 900K 1000K P4 P3 1200K 1200K 1200K 1500K 1500K 1500K 900K 900K P4 1900K 1900K 1900K P3 2100K 2100K 2100K ??K verschoben ??K verschoben ??K verschoben
Speicherverwaltung Beispiel für Beladys Optimalalgorithmus (BO): Es wird die Seite ersetzt, auf die in der Zukunft am längsten nicht zugegriffen wird. 0 1 2 3 0 1 4 0 1 2 3 4 7 0 0 0 0 0 0 0 0 0 0 3 3 7 1 1 1 1 1 1 1 1 2 2 2 2 Speichergröße m=3; 8 Seitenfehler 2 3 3 3 4 4 4 4 4 4 4 Beispiel für Least Recently Used (LRU): Es wird die Seite ersetzt, auf die am längsten nicht mehr zugegriffen wurde. 1 2 1 5 7 5 7 8 2 1 7 2 2 8 5 9 7 1 2 7 (19 Seitenfehler bei m=1) 1 1 1 1 1 1 1 1 2 2 2 22 2 2 2 7 7 7 7 2 2 2 2 2 2 8 8 8 8 8 8 8 8 8 8 1 1 1 5 5 5 5 5 5 1 1 1 1 1 5 5 5 5 2 2 m=4; 10 Seitenfehler 7 7 7 7 7 7 7 7 7 7 7 9 9 9 9 9 Übung: Wieviele Seitenfehler gibts beim Beladys Optimalalgorithmus?
Aufgaben zur Vorlesung „Realzeitsysteme“ • Anlage • Aufgabe synchrone Programmierung „Transportsystem“ • Aufgaben Scheduling mit Template • Aufgaben Semaphore • Aufgaben Petrinetze • ……………….
Aufgabe Synchrone Programmierung Teilaufgaben zur Steuerung eines fahrerlosen Transportsystems: - Task 1 übernimmt Kameradatenverarbeitung mit Periode T - Task 2 steuert den Motor mit Periode 2T 1) Wie ist die Variable t im Flussdiagramm zu programmieren, damit der u.g. zeitliche Ablauf gegeben ist? 2) Wie sieht Flussdiagramm und zeitlicher Ablauf aus, wenn Task 1 mit der Periode 2T und Task 2 mit der Periode 3T aufgerufen werden? 3) Kann es zu einer Verletzung der Einhaltung der Periodenzeiten kommen, obwohl die Summe der Ausführungszeiten <= T ist? Periodische Unterbrechung im Abstand T t = Kameradaten-verarbeitung aufrufen t == ? Motorsteuerung nein ja Kameradaten-verarbeitung Motorsteuerung aufrufen ruhend t = Ende der Unterbrechung 2T T 3T 4T 5T 6T
Aufgabe Synchrone Programmierung Motorsteuerung Kameradaten-verarbeitung ruhend 2T T 3T 4T 5T 6T 7T
Aufgabe Scheduling Aufgaben (Voraussetzung: Tasks werden EINEM Prozessor zugeteilt): 1) Vergeben Sie die Prioritäten nach dem Rate Monotonic Prinzip 2) Stellen Sie den zeitlichen Verlauf aller 4 Tasks dar unter der Voraussetzung, dass alle Tasks gleichzeitig bereit sind (s. Lösungsblatt 1) 3) Zeichnen Sie für die Task 3 ihre Zustände (ruhend, ablaufwillig, laufend) über eine Zeitachse von 0 bis 250 ms (s. Lösungsblatt 2).
Aufgabe Scheduling Lösung zu Aufgabe 1: In Abhängigkeit der Periodendauer ergibt sich folgende Prioritätsvergabe: P(2) > P(4) > P(3) > P(1) Vorlage zur Aufgabe 2: Priorität Task 2 Task 4 Task 3 Task 1 t [ms] 50 150 200 250 100
Aufgabe Scheduling Taskzustände in Abhängigkeit der Zeit In einem rein zeitgesteuerten System entfällt der Zustand blockiert (stattdessen ruhend). In ereignisgesteuerten Systemen wartet die Task auf ein Zeitgeberereignis und ist dann dem Zustand blockiert zuzurechnen. Zustand von Task 3 blockiert laufend ablaufwillig ruhend t [ms] 50 150 200 250 100
Aufgaben SemaphoreÜbersicht (Dijkstra) • Einsatz von Semaphoren: • Wechselseitiger Ausschluss (INIT = 1): REQ …. Kritischer Bereich …. REL • Zählende Semaphore (INIT = N): Bis zu N verschiedene Prozesse dürfen in den kritischen Bereich eintreten (z.B. N=4: Nutzung von vier verfügbaren Bandgeräten) • Blockierende Semaphore (INIT = 0) dient zur Prozesssynchronisation:Nach Prozess A kommt Prozess B (Reihenfolge),P()-Operation an der Stelle, wo gewartet werden muss und V()-Operation signalisiert, dass Wartebedingung erfüllt ist Prozess A ….. REL S REQ S ….. Prozess B Beachte: Deadlocks (Verklemmungen) entstehen, wenn die Reihenfolge der P/V-Operationen falsch gewählt wurde. Notationen: P(S) = passeeren = Verringern um den Wert 1: Request, wait, down, aquire, … V(S) = vrijgeven = Erhöhen um den Wert 1: Release, up, signal, …
Aufgaben SemaphoreBeispiele aus dem Internet Philosophenproblem: http://www.nt.fh-koeln.de/fachgebiete/inf/diplom/semwork/beispiele/phil/phil.html Durchsetzen einer Reihenfolge: http://www.nt.fh-koeln.de/fachgebiete/inf/diplom/semwork/beispiele/reihenf/reihenf.html Wechselseitiger Ausschluss: http://www.nt.fh-koeln.de/fachgebiete/inf/diplom/semwork/beispiele/waus/waus.html Erzeuger/Verbraucherproblem: http://www.nt.fh-koeln.de/fachgebiete/inf/diplom/semwork/beispiele/erzver/erzver.html
Aufgaben SemaphoreAufgabe 1 Vorgegeben sind die Anordnung von Semaphor-Anweisungen am Anfang und am Ende dreier Tasks A, B und C. In der folgenden Tabelle sind die Anfangswerte für die drei Semaphor-Variablen S1, S2 und S3 eingetragen. Ermitteln Sie für die 4 Fälle a), b), c) und d) der Tabelle, ob und in welcher Reihenfolge diese Tasks bei der angegebenen Initialisierung der Semaphor-Variablen ablaufen. REQ S1 REQ S1 REQ S1 Task A REL S2 REQ S2 Task B REL S3 REL S1 REQ S3 REQ S3 REQ S3 Task C REL S2 REL S2
Aufgaben SemaphoreAufgabe 2 Task C läuft an, wenn A und B abgelaufen sind. A B Task A REL S1 Task B REL S2 REQ S1 REQ S2 Task C S1 S2 C Aufgabe: Task C läuft an, wenn A oder B abgelaufen sind. Zeichne das Petri-Netz und formuliere die Semaphor-Anweisungen.
Aufgaben SemaphoreAufgabe 3 Gegeben ist folgendes Petri-Netz (Stellen-/Transitions-Netz) zur Beschreibung der Ablaufreihenfolge dreier Tasks A, B und C. Wie lautet die Ablaufreihenfolge, wenn S1 = S2 = S3 = 0, S4 = 1 ist und S1 mit 1 initialisiert wird? Ergänzen Sie die Taskanweisungen für A, B und C am Anfang und am Ende mit den entsprechenden Semaphore-Anweisungen (REQ und REL), so dass der Ablauf der o. g. Reihenfolge entspricht und kein Deadlock möglich ist? B S2 S1 A S4 S3 Init C
Aufgaben SemaphoreAufgabe 4 Durch eine geeignete Synchronisierung soll der folgende Ablauf von 4 Tasks (3 Überwachungs-tasks und 1 Protokollierungstask) erzwungen werden: U1 P U2 U3 P P 1) Führen Sie in jeder Task die erforderlichen Semaphor-Anweisungen ein, mit denen die geforderte Reihenfolge sichergestellt ist. 2) Wie müssen die von Ihnen benutzten Semaphor-Variablen initialisiert werden, damit die geforderte Reihenfolge bei der Task U1 beginnt?
Aufgaben PetrinetzStufenweises Vorgehen beim Modellieren • Interpretation für Stellen und Transitionen • Kausalen Stellen-/Transitionszusammenhang formulieren • Entwurf eines zusammenhängenden Prozess-Netzes • Festlegung von Anfangsmarkierungen und Schaltregeln Gewicht n>1: Kanten bewegen beim Schalten n Marken. Kapazität k>1 : Transition t kann erst dann schalten, wenn die Kapazität keiner der Stellen im Nachbereich von t überschritten wird.
Aufgaben PetrinetzAufgabe 1 • Bilden Sie folgenden Ablauf bei einem Frisör als Petrinetz ab; als (markenerzeugende Systemgrenzen gelten die zwei Transitionen Eingang und Ausgang: • Im Warteraum eines Frisörs sind 10 Stühle, auf denen drei Kunden sitzen • Es gibt zwei Bedienstete, die jeweils einen Kunden bedienen; während der Bedienung kann der Frisör den Kunden nicht wechseln • Eine Bedienung läuft immer in folgender Reihenfolge ab: Haare waschen, Haare schneiden, Haare trocknen • Es gibt für die zwei Frisöre nur folgende Hilfsmittel: eine Schere und einen Trockner • Die Hilfsmittel werden nach Gebrauch wieder zurückgelegt bzw. frei gegeben • Hinweis: Kunden, Bedienstete und Hilfsmittel sind Stellen bzw. Marken
Aufgaben PetrinetzAufgabe 2 • Bilden Sie folgenden Ablauf einer Leiterplattenbestückung durch zwei Roboter als Bedingung/Ereignis-Netz ab: • 2 Roboter bestücken Leiterplatten mit elektronischen Bauelementen • Bauelemente (unbestückte Leiterplatinen) werden auf einem Fließband antransportiert • Ist einer der Roboter frei, nimmt er die Leiterplatte vom Fließband und montiert die Bauelemente • Sind beide Roboter frei, wird nichtdeterministisch entschieden, wer die Leiterplatte nimmt • Nur jeweils eine Leiterplatte darf zu einem Zeitpunkt abtransportiert werden • Zusatzaufgabe: • Beim Bestücken darf jeweils nur EIN Roboter auf das Bauelemente-Magazin zugreifen
Aufgaben PetrinetzAufgabe 3 Gegeben ist folgendes Petri-Netz (Stellen/Transitions-Netz) zur Beschreibung der Ablaufreihenfolge der zwei Task A und B: ABABAB…. TeilAufgabe a: Erweitern Sie das Netz um Transitionen und Stellen, damit die Reihenfolge lautet: AABBAABB… Gewicht und Kapazität sollen weiter = 1 sein. TeilAufgabe b: Sie können für dieselbe Reihenfolge AABBAABB… die Anzahl der Transitionen und Stellen verringern, wenn sie ein Gewicht > 1 zulassen. Zeichnen Sie ein entsprechendes Petrinetz. B S2 S1 A Init