Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Übungen/Aufgaben zur Vorlesung „Realzeitsysteme“

Ähnliche Präsentationen


Präsentation zum Thema: "Übungen/Aufgaben zur Vorlesung „Realzeitsysteme“"—  Präsentation transkript:

1 Ü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 ……………….

2 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?

3 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.

4 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

5 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. Task Ankunftszeit Drucken nach Zeiteinheit Benötigte Zeiteinheiten im Zustand running P1 5 6 P2 2 4 7 P3 1 - P4 3 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). 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 - - -

6 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. Task Ankunftszeit Ausführungszeit A 0 ms 4 ms B 2 ms 3 ms C 6 ms D 11 ms E 12 ms Deadline für 1. Aus-Führung von Task 2 Task A Task B Task C Task D Task E ruhend t [ms] 5 10 15 20 25

7 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 Tasks und berechnen Sie die durchschnittliche Reaktionszeit (Wartezeit) dieser Tasks für FIFO und SPT unter der Voraussetzung, dass alle zum Zeitpunkt T=0 kurz hintereinander eintreffen: A,B,C,D. Task Ausführungszeit A 6 ms B 8 ms C 7 ms D 3 ms

8 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). Task Ankunftszeit Ausführungszeit A 0 ms 4 ms B 2 ms 3 ms C 6 ms D 11 ms E 12 ms Deadline für 1. Aus-Führung von Task 2 Task A Task B Task C Task D Task E ruhend t [ms] 5 10 15 20 25

9 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. Task Periode pi Ausführungszeit ei Priorität 1 150 ms 15 ms 1 (hoch) 2 10 ms 1 ms 2 (niedrig)

10 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 Dauer in ms Ankunftszeit in ms Deadline in ms A 40 10 keine B 30 C 20 50 D 80 10 ms 20 ms 30 ms 40 ms 50 ms 60 ms 70 ms 80 ms 90 ms 100 ms 1. 2. 3. 4.

11 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 A (Prio 1) Task B (Prio 2) T T REQ S2 REQ S1 2T 2T REQ S1 REQ S2 3T 3T REL S1 REL S2 2T 2T REL S2 REL S1 T T END END

12 Task-Synchronisation
Übung: Formular zum Zeichnen der Soll-Abläufe laufend Task A blockiert ablaufwillig laufend Task B blockiert ablaufwillig 5 10 15 20

13 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

14 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 Task A blockiert ablaufwillig laufend Task B blockiert ablaufwillig 5 10 15 20

15 Petrinetze zur Synchronisation
Grundlegende Verhaltensweisen von Petri-Netzen Übung: Erläutern Sie die Schaltweise der zwei Petri-Netze a) und b)

16 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

17 Speicherverwaltung Beispiele für Kompaktifizierung 1) 3) 2) 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 1) 2) 3) 1000K P4 1000K 1000K 900K P3 1200K 1200K 1200K 1500K 1500K 1500K 900K 900K P4 1900K 1900K 1900K P3 2100K 2100K 2100K ??K verschoben ??K verschoben ??K verschoben

18 Speicherverwaltung Beispiel für Beladys Optimalalgorithmus (BO):
Es wird die Seite ersetzt, auf die in der Zukunft am längsten nicht zugegriffen wird. Speichergröße m=3; 8 Seitenfehler Beispiel für Least Recently Used (LRU): Es wird die Seite ersetzt, auf die am längsten nicht mehr zugegriffen wurde. (19 Seitenfehler bei m=1) m=4; 10 Seitenfehler Übung: Wieviele Seitenfehler gibts beim Beladys Optimalalgorithmus?

19 Aufgaben zur Vorlesung „Realzeitsysteme“
Anlage Aufgabe synchrone Programmierung „Transportsystem“ Aufgaben Scheduling mit Template Aufgaben Semaphore Aufgaben Petrinetze ……………….

20 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 T 2T 3T 4T 5T 6T

21 Aufgabe Synchrone Programmierung
Motorsteuerung Kameradaten-verarbeitung ruhend T 2T 3T 4T 5T 6T 7T

22 Aufgabe Scheduling Ausführungszeit Periodendauer Priorität Task 1
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). Ausführungszeit Periodendauer Priorität Task 1 20 ms 500 ms ? Task 2 10 ms 40 ms Task 3 30 ms 160 ms Task 4 110 ms

23 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 50 100 150 200 250 t [ms]

24 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 50 100 150 200 250 t [ms]

25 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, …

26 Aufgaben Semaphore Beispiele aus dem Internet
Philosophenproblem: Durchsetzen einer Reihenfolge: Wechselseitiger Ausschluss: Erzeuger/Verbraucherproblem:

27 Aufgaben Semaphore Aufgabe 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 Task A REL S2 REQ S2 Task B REL S3 REL S1 REQ S3 Task C REL S2 Fall a) b) c) d) S1 2 3 S2 1 S3

28 Aufgaben Semaphore Aufgabe 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.

29 Aufgaben Semaphore Aufgabe 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 S1 S2 A S3 S4 Init C

30 Aufgaben Semaphore Aufgabe 4
Durch eine geeignete Synchronisierung soll der folgende Ablauf von 4 Tasks (3 Überwachungs-tasks und 1 Protokollierungstask) erzwungen werden: U1 P U2 P U3 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?

31 Aufgaben Petrinetz Stufenweises Vorgehen beim Modellieren
Interpretation für Stellen und Transitionen Kausalen Stellen-/Transitionszusammenhang formulieren Entwurf eines zusammenhängenden Prozess-Netzes Festlegung von Anfangsmarkierungen und Schaltregeln Stellen (passive Elemente) Transitionen (aktive Elemente) Zustände Übergänge Aussagen Beweise Reagenzien Chem. Reaktionen Materialien Produktionsaktivitäten Speicher Prozessoren 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.

32 Aufgaben Petrinetz Aufgabe 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

33 Aufgaben Petrinetz Aufgabe 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

34 Aufgaben Petrinetz Aufgabe 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 S1 S2 A Init


Herunterladen ppt "Übungen/Aufgaben zur Vorlesung „Realzeitsysteme“"

Ähnliche Präsentationen


Google-Anzeigen