5) Realzeitscheduling

Ähnliche Dokumente
5) Realzeitscheduling

Scheduling in Echtzeitbetriebssystemen. Prof. Dr. Margarita Esponda Freie Universität Berlin

5. Foliensatz Betriebssysteme und Rechnernetze

Betriebssysteme I WS 2015/2016. Betriebssysteme / verteilte Systeme Tel.: 0271/ , Büro: H-B 8404

Prozesse und Prozessmanagement des BS. 1 Unterschied Prozess, Threads. 1.1 Prozess. 1.2 Threads

Echtzeitscheduling (1)

Betriebssysteme (BTS)

Einführung. Schedulingziel. Klassisches Scheduling-Problem. 6. Kapitel Ressource Prozessor: Scheduling

Systeme 1. Kapitel 5. Scheduling

CPU-Scheduling - Grundkonzepte

Konzepte und Methoden der Systemsoftware. Aufgabe 1: Multi-Feedback-Scheduling. SoSe bis P

Hausübung 2. Konzepte und Methoden der Systemsoftware. Aufgabe 1: Einfache Schedulingstrategien. SoSe bis

Betriebssysteme I WS 2013/2014. Betriebssysteme / verteilte Systeme rolanda.dwismuellera@duni-siegena.de Tel.: 0271/ , Büro: H-B 8404

Systeme I: Betriebssysteme Kapitel 7 Scheduling. Wolfram Burgard

Übersicht. Monoprozessor-Scheduling. Einführung Anforderungen und Thread-Typen Zustandsmodelle

Systeme I: Betriebssysteme Kapitel 7 Scheduling. Maren Bennewitz

Quantitative Methoden. Betriebssysteme

Echtzeitfähige Ereignisgetriebene Scheduling-Strategien

Round-Robin Scheduling (RR)

Scheduling. Prozess-Ablaufplanung. Prof. Dr. Margarita Esponda Freie Universität Berlin WS 2011/2012

Verteilte Echtzeit-Systeme

Betriebssysteme. Teil 13: Scheduling

(Prof. Dr. J. Schlichter, WS 2011 / 2012) Übungsleitung: Dr. Wolfgang Wörndl

8. Vorlesung Betriebssysteme

Begriff: Scheduling Planung, Schedule Plan. Verplanung der CPU-Zeit an die Threads (bzw. Prozesse)

Echtzeitsysteme: Grundlagen. Dipl.-Inf. J. Richling Wintersemester 2003/2004

Hausübung 2(Musterlösung)

Betriebssysteme Kap F: CPU-Steuerung CPU-Scheduling

RTOS Einführung. Version: Datum: Autor: Werner Dichler

Vorbereitung zur Prüfung Echtzeitbetriebssysteme

Betriebssysteme und Systemsoftware

Programme werden durch den Ablauf eines oder mehrerer Prozesse (engl.: process, task) von einem Rechner abgearbeitet.

Technische Informatik II. SoSe Jörg Kaiser IVS EOS

B.5 Prozessverwaltung B.5. Prozessverwaltung Prof. Dr. Rainer Manthey Informatik II 1

3. Scheduler und Schedulingstrategien

Betriebssysteme Wintersemester 2005/06

Proseminar KVBK : Scheduler unter Linux

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

Übung zu Grundlagen der Betriebssysteme. 7. Übung

Ein Scheduler für alle Fälle Robert Kaiser, SYSGO AG

Real-Time Operating Systems Ein Überblick

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Wolfram Burgard

5 CPU Scheduling. FH Regensburg BT/SS04 Betriebssysteme Wirtschaftsinformatik. 5.1 Grundlagen CPU Burst / I/O Burst

Scheduling. Gliederung. Was ist Scheduling? Scheduling. Übersicht: 1. Einführung und Übersicht. 2. Prozesse und Threads. 3. Interrupts. 4.

6.1 Einführung. Kapitel 6 Scheduling. Klassisches Scheduling-Problem. Anwendungs-Beispiele von Scheduling. Scheduling (zu deutsch etwa

3. Echtzeit-Scheduling Grundlagen

Scheduling-Strategien (online, nicht-präemptiv) für Einprozessorsysteme

5 Echtzeit-Programmierung

Test (Lösungen) Betriebssysteme, Rechnernetze und verteilte Systeme

(b) Worin besteht der Unterschied zwischen online und offline Scheduling?

Betriebssysteme G: Parallele Prozesse (Teil A: Grundlagen)

Prinzipien und Komponenten eingebetteter Systeme

Klausur. Betriebssysteme SS 2007

Dämon-Prozesse ( deamon )

Algorithmen II Vorlesung am

J. Reinier van Kampenhout Robert Hilbrich Hans-Joachim Goltz. Workshop Echtzeit Fraunhofer FIRST

(a) Wie unterscheiden sich synchrone und asynchrone Unterbrechungen? (b) In welchen drei Schritten wird auf Unterbrechungen reagiert?

DHBW Stuttgart, Studiengang Elektrotechnik, 5. HJ, Vorlesung: Realzeitsysteme Sep ) Task-Verwaltung

Der Scheduler von Windows Konzepte und Strategien

Threads and Scheduling

Technische Informatik II

Task A Zündung. Task B Einspritzung. Task C Erfassung Pedalwert. J. Schäuffele, Th. Zurawka: Automotive Software Engineering, Vieweg, 2003

Scheduling. Scheduling Tanenbaum Kap. 2.4, Stallings Kap , Glatz Kap. 3.4

Architektur Verteilter Systeme Teil 2: Prozesse und Threads

Universität Stuttgart Institut für Automatisierungs- und Softwaretechnik Prof. Dr.-Ing. Dr. h. c. P. Göhner. Übung 5: Semaphoren

7.Vorlesung Betriebssysteme Hochschule Mannheim

Systemsoftware (SYS) Fakultät für Informatik WS 2008/2009 Christian Baun. Übungsklausur

Domänenanalyse Threadverwaltung/Scheduling

, SS2012 Übungsgruppen: Do., Mi.,

Echtzeitprogrammierung und Echtzeitverhalten von Keil RTX. Frank Erdrich Semester AI 7

Einführung. Anwendung. logischer Adreßraum. Kontrollfluß (Thread) = CPU führt Instruktionen aus. Was charakterisiert einen Kontrollfluß?

Zeit- und ereignisgesteuerte Echtzeitsysteme

Prozesse und Scheduling

5 Kernaufgaben eines Betriebssystems (BS)

Betriebssystembau (BSB)

Sequentielle Programm- / Funktionsausführung innerhalb eines Prozesses ( thread = Ausführungsfaden )

Musterlösung Prüfung WS 01/02

BP 2 Prozessorvergabe - Multiprozessoren: Kern-Fäden. besten, wenn der Zusatzaufwand für Kontextumschaltungen gering ist.

Verteilte Systeme. Verteilte Systeme. 5 Prozeß-Management SS 2016

Scheduling-Theorie. Mathematische Modelle und Methoden für deterministische Scheduling-Probleme. LiSA - A Library of Scheduling Algorithms

Übungen zum Fach Betriebssysteme Kapitel 3

OSEK / OSEKtime Ausgewählte Kapitel eingebetteter Systeme

Inhaltsverzeichnis. 2.4 Thread-Systeme. 2.1 Was ist ein Prozess? 2.2 Scheduling. 2.3 Interprozesskommunikation

Aufbau eines Echtzeit-Betriebssystems für Embedded Systems

Betriebssysteme (BS)

Prozessdatenverarbeitung II Echtzeit-Programmierung

Übung I Echtzeitbetriebssysteme

Systeme I: Betriebssysteme Kapitel 4 Prozesse. Maren Bennewitz

Betriebssysteme. Dipl.-Ing.(FH) Volker Schepper

Schedulingalgorithmen Rechenzeitverteilung auf Betriebssystemebene. Andi Drebes Fachbereich Informatik Universität Hamburg

Roboter- und Automatisierungstechnik

Anfragen werden als Ganzes erfüllt und erst nach Ablauf der Zeit der

Grundlagen Rechnerarchitektur und Betriebssysteme

Transkript:

Inhalte Anforderungen Klassifizierungen Verschiedene Verfahren: FIFO, Round Robin, Least Laxity, EDF, fixed/dyn. Prio. Beispiele und Aufgaben Seite 1

Motivation Gegeben: Ein Einprozessorsystem, das Multiprogrammierung erlaubt. Prozess, der von der CPU bedient wird, ist im Status running. Prozesse, die auf CPU warten, sind im Status ready. Frage: Welcher der lauffähigen Prozesse soll als nächster bedient werden? Kriterien aus Sicht der Prozesse: Fairness: kein Prozess soll zu lange auf CPU-Zuteilung warten. Wichtigkeit: Prozesse mit hoher Priorität werden bevorzugt abgearbeitet. Kriterien aus Sicht der CPU: Maximaler Durchsatz Maximale Auslastung der CPU Minimale mittlere Wartezeit (= Zeit, bis ein Prozess abgearbeitet wird = Reaktionszeit)) Minimale mittlere Systemzeit (= Wartezeit + Ausführungszeit) Kriterien sind z.t. widersprüchlich. Im Allgemeinen wird eine Mischung dieser Kriterien gewählt. Seite 2

Scheduling: Unter Scheduling versteht man die Vergabe des Prozessors an ablaufwillige Tasks nach einem festgelegten Algorithmus (Schedulingverfahren), so dass alle harten/festen Echtzeitanforderungen und möglichst viele weiche Echtzeitanforderungen erfüllt werden. Der Scheduler stellt die Tasks in die Bereitliste, die der Dispatcher abarbeitet, indem er die nächste Task dem Prozessor übergibt. Problemstellungen beim Scheduling Ist es für eine Menge von Tasks möglich, alle Zeitbedingungen einzuhalten? falls ja, existiert (mindestens) ein Schedule, d.h. zeitliche Aufteilung der CPU an die Tasks mathematische Analyse: Scheduling Analysis ggf. unter Berücksichtigung eines Schedulingverfahrens Kann der Schedule in endlicher Zeit berechnet werden? Findet das benutzte Schedulingverfahren diesen Schedule? ein optimales Schedulingverfahren findet den Schedule immer, falls dieser existiert Seite 3

Scheduling Analysis (Feasibility Analysis) Vorab-Analyse, ob für eine Taskmenge ein Schedule existiert Zentrale Größe: Prozessorauslastung H Notwendige Bedingung für Existenz eines Schedule: H 1 (bzw. 100%) Gilt auch für periodische Tasks, falls Zeitschranke = Periode Beispiel: Seite 4

Klassifizierung von Schedulingverfahren: Statisches Scheduling Dynamisches Scheduling Nicht-präemptives Scheduling Präemptives Scheduling Nicht-präemptives Scheduling Präemptives Scheduling Statische Prioritäten Dynamische Prioritäten Statische Prioritäten Dynamische Prioritäten Nicht prioritätsbasiert Nicht prioritätsbasiert Seite 5

Klassifizierung von Schedulingverfahren: Statisches oder dynamisches Scheduling statisch: Schedule wird bereits vor der Ausführung berechnet Zuordnungstabelle enthält Startzeit für jede Task CPU-Zuteilung zur Laufzeit durch Dispatcher entspricht Prinzip der synchronen Programmierung (determiniertes Verhalten) dynamisch: Zuordnung Task - CPU zur Laufzeit berechnet entspricht asynchroner Programmierung (flexibel bei Änderungen) Statische oder dynamische Prioritäten es gibt aber auch Verfahren ganz ohne Prioritäten Präemptives oder nicht-präemptives Scheduling Präemptiv: höherpriore Task verdrängt niederpriore Nicht-präemptiv: Prozessorfreigabe durch die Task selbst präemptives Scheduling meist vorteilhafter (Reaktionszeit!) Seite 6

Klassifizierung von Schedulingverfahren: Task 1 fertig Task 2 fertig Task 1 (wichtig) Task 2 (weniger wichtig) Präemption Ruhe Ereignis für Task 2 Ereignis für Task 1 Ereignis für Task 2 Ereignis für Task 1 a) Präemptives Scheduling b) Nicht-präemptives Scheduling Seite 7

Scheduling in Abhängigkeit der Ausführungszeiten der Prozesse Grundlegendes Problem: Woher weiß man a-priori, wie lange ein Prozess dauern wird? Lösung: Aus der Dauer der Prozesse in der Vergangenheit auf das Verhalten in der Zukunft schließen. Einfache Schätzverfahren verwenden Zeitfenster, z.b. den Durchschnitt der letzten n Prozesse oder 80% des Maximalwerts der letzten n Prozesse Exponential-Averaging versucht, adaptiv aus der Vergangenheit zu lernen: Sei T(n) die Schätzung für den n-ten Prozess und t(n) seine tatsächliche Dauer, dann erhält man die Schätzung für den (n+1)-prozess durch T(n+1) = α * t(n) + (1 α) * T(n) mit: α liegt in [0,1] und beeinflusst die Art des Lernens: Extremfälle: α = 0 => T(n+1) = T(n), d.h. die Schätzung ist immer gleich. Es findet kein Lernen statt. α = 1 => T(n+1) = t(n), d.h. nur der letzte Wert wird für die Schätzung herangezogen, was einem hektischen Verhalten entspricht. Kompromiss: Verwendung von 0 < α < 1, wodurch ein exponentielles Abklingen der Vergangenheit erreicht wird (je größer α, desto schneller wird die Vergangenheit vergessen). Seite 8

Scheduling in Abhängigkeit der Ausführungszeiten der Prozesse Exponential-Averaging: Schaue in die Vergangenheit und versuche, die Zukunft vorherzusagen (mittels gewichteter Mittelwertbildung) Tatsächliche Dauer t(n) des Prozesses Geschätzte Dauer T(n+1) des folgenden Prozesses Seite 9

Verschiedene Schedulingverfahren: FIFO-Verfahren Zeitscheibenverfahren (Round Robin, time slice scheduling) Scheduling mit festen Prioritäten (fixed priority scheduling (FPS)) Für zyklische Tasks: Ratenmonotones Scheduling (RMS) Verfahren der kleinsten Restantwortzeit (earliest deadline first (EDF)) Verfahren des kleinsten Spielraums (least laxity first (LLF)) Verfahren Guaranteed Percentage Scheduling (GP) Seite 10

FIFO Scheduling (first-in-first-out): Dynamisch, nicht-präemptiv, ohne Prioritäten Task, deren Einplanung am weitesten zurückliegt, bekommt Prozessor Einfache Realisierung, aber keine Berücksichtigung der Zeitbedingungen Beispiel. Siehe Gantt Diagramm (Balkenplan) unten Für harte Realzeitsysteme nicht geeignet Task A B C D Ausführungs zeit 8 ms 5 ms 2 ms 10 ms Task A bereit Task B bereit Task C bereit Task D bereit t [ms] A B C D 5 10 15 20 t [ms] 25 Seite 11

FIFO Scheduling (first-in-first-out): Warteschlangenmodell: [ neue Task ] CPU [ Task fertig ] FIFO-Warteschlange Es gibt auch die LIFO-Strategie, bei der der Prozess, der als letzter CPU-Zeit angefordert hat und damit am kürzesten wartet, CPU-Zugriff erhält; für diese Strategie gibt es auch eine präemptive Variante: Seite 12

FIFO Scheduling (first-in-first-out): Beispiel Task Periode p i Ausführungszeit e i 1 150 ms 15 ms 2 10 ms 1 ms H = 20% Deadline für 1. Aus- Führung von Task 2 1. Ausführung von Task 2 fertig Task 1 Task 2 ruhend 0 verpasst 5 10 15 20 25 t [ms] Ereignis für Task 1 Ereignis für Task 2 Ereignis für Task 2 Seite 13

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

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 A B C Ausführungszeit 6 ms 8 ms 7 ms D 3 ms Seite 15

FIFO 0 A 6 t [ms] A, B, C, D SPT D 0 3 t [ms] A, B, C, D Seite 16

Round Robin Verfahren (RR): Dynamisch, präemptiv, ohne Prioritäten Jede Task bekommt einen festgelegten Zeitschlitz, zu der sie den Prozessor bekommt Reihenfolge gem. Kreis (manchmal auch nach zeitlichem Eintreffen) Periodendauer abh. von der Anzahl der Tasks Für harte Realzeitsysteme untauglich A D B C Task A B C D Ausführungs zeit 25 ms 20 ms 30 ms 20 ms Zeitschlitz (Quantum) = Q = 10 ms A B C D A B C D A C t [ms] 0 10 40 50 80 100 A, B, C, D Seite 17

Round Robin Verfahren (RR): Warteschlangenmodell: [ neue Task ] FIFO-Warteschlange CPU [ Task fertig ] [ Task nicht fertig ] RR versucht, Fairness gegenüber Kurzläufern und soweit möglich auch gegenüber Langläufern zu gewähren rechnender Prozess wird vom BS nach dem Ablauf einer Zeitscheibe (time slice, Q=Quantum) unterbrochen und wieder hinten in die Warteschlange eingefügt Wichtige Frage: Wie lang ist Q? Q : FIFO Q 0 : Prozessor-Sharing, d.h. CPU wird gleichmäßig auf die z. Zt. Aktiven Prozesse aufgeteilt, wodurch jeder Prozess genau 1/n der CPU-Leistung erhält. sehr problematische Annahme, dass Zerhacken in kleinste Scheiben nichts kostet. Richtwerte: 20 bis 50 ms Seite 18

Round Robin Verfahren: Übung: Zeichnen Sie den Ablauf der einzelnen Tasks und berechnen Sie die durchschnittliche Reaktionszeit für Zeitschlitz = 1ms. Reihenfolge gem. Alphabet. Task Ankunftszeit Ausführungszeit A 0 ms 4 ms B 2 ms 3 ms C 4 ms 6 ms D E 11 ms 3 ms Deadline für 1. Aus- 12 ms Führung von Task 62 ms Task A Task B Task C Task D Task E ruhend 0 5 10 15 20 25 t [ms] Seite 19

Round Robin Verfahren: Übung: Zeichnen Sie den Ablauf der einzelnen Tasks und berechnen Sie die durchschnittliche Reaktionszeit für Zeitschlitz = 5ms). Reihenfolge gem. Alphabet. Task Ankunftszeit Ausführungszeit A 0 ms 4 ms B 2 ms 3 ms C 4 ms 6 ms D E 11 ms 3 ms Deadline für 1. Aus- 12 ms Führung von Task 62 ms Task A Task B Task C Task D Task E ruhend 0 5 10 15 20 25 t [ms] Seite 20

Multilevel Feedback Scheduling (MFS): mehrere Warteschlangen mit Prioritäten, Zeitscheiben und Rückkopplung: Neu ankommende Jobs werden in die höchste Prioritätsklasse eingeordnet Abarbeitung nach Round-Robin: unterschiedliche Quantengröße, Klassen hoher Priorität haben kleine Quanten, bei kleiner Priorität große Quanten, d.h. Q1 < Q2 < < Qn. Wenn Job in seiner Zeitscheibe nicht fertig wird, wandert er in die nächst niedrigere Prioritätsklasse Bedient wird nicht-präemptiv Beispiel: 3 Warteschlangen: Q1=8ms mit max. 10 Zeitschlitzen, Q2=16ms mit max. 5 Zeitschlitzen, Q3=FIFO: Ein neuer Prozess landet in Warteschlange Q1 die mittels FIFO verwaltet wird. Wenn der Prozess an der Reihe ist erhält er 8 ms CPU-Zeit. Wenn der Prozess nicht fertig geworden ist, landet er unmittelbar in Q2. In Q2 wartet der Prozess wieder gemäß FIFO und erhält zusätzliche 16 ms. Reicht dies immer noch nicht, dann wir der Prozess unterbrochen und in Warteschlange Q3 verschoben. Seite 21

Multilevel Feedback Scheduling (MFS): mehrere Warteschlangen mit Prioritäten, Zeitscheiben und Rückkopplung: Seite 22

Übung 1 zum MFS Verfahren: Für das MFS Verfahren stehen 6 Warteschlangen zur Verfügung. Jeder Prozess in einer Warteschlange bekommt seine eigene Zeitscheibe, jedoch alle mit dem Quantum Q = 1. Jeder Prozess beginnt in der Warteschlange 1. Wenn ein Prozess nicht fertig wird, wandert er in die nächst niedere (FIFO-) Warteschlange. Task Ankunftszeit Ausführungszeit A 0 ms 6 ms B 1 ms 2 ms C 3 ms 3 ms D 4 ms 6 ms E 8 ms 1 ms F 16 ms 1 ms Übung: Zeichnen Sie den Ablauf der einzelnen Tasks in ein Gantt-Diagramm Seite 23

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 A B A6 B2 A6 B2 A5 Seite 24

Übung 2 zum Multilevel Feedback Scheduling (MFS): Gegeben sei folgende Scheduling-Strategie mit vier Prioritätsklassen. Jeder Klasse ist eine eigene FIFO-Warteschlange und ein eigenes Quantum zugeordnet: Es wird Process Aging verwendet, d.h. wenn das Zeitquantum eines Prozesses abgelaufen ist, wird er an das Ende der Warteschlange mit nächstniedriger Priorität gestellt. Neuen Prozessen ist eine bestimmte Priorität zugeordnet. Sie werden an das Ende der Warteschlange ihrer Prioritätsklasse angehängt. Es wird am Ende jeder Zeiteinheit überprüft, welcher Prozess am Anfang der nicht leeren Warteschlange mit der höchsten Priorität steht und dieser dann im nächsten Schritt bearbeitet. Ein Prozess, der zum Zeitpunkt t ankommt, wird erst ab dem Zeitpunkt (t +1) berücksichtigt, d.h. er kann frühestens eine Zeiteinheit nach seiner Ankunft die CPU verwenden. Stellen Sie für die ersten 15 Zeiteinheiten tabellarisch die Warteschlangen der einzelnen Prioritätsklassen sowie die Prozesszuteilung für die folgenden Prozesse dar: Seite 25

Lösungsblatt zur MFS Übung 2 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 A(3) A B(5) Running Incoming Prio 0, Q=1 A(3) Prio 1, Q=4 Prio 2, Q=8 Prio 3, FIFO Seite 26

Round Robin Verfahren mit individueller Zeitscheibenlänge: Dauer der Zeitscheibe einer Task sollte proportional zu deren Prozessorauslastung H = e/p sein Beispiel: Task Periode p i Ausführungszeit e i H Zeitscheibe T1 10 ms 1 ms 10% 0,5 ms T2 10 ms 5 ms 50% 2,5 ms T3 15,4 ms 5,5 ms 36% 1,8 ms Task T1 Task T2 0,5 2,5 0,5 0,5 0,5 2,5 2,5 2,5 Deadline Task T3 1,8 1,8 1,8 0,1 Task ist fertig idle T1, T2 T3 T1, T2 0 5 10 15 20 t [ms] Ereignis für T1, T2, T3 Ereignis für T1 und T2 Seite 27

Vergleich der Verfahren FIFO und Round Robin anhand der Übungen: Bei FIFO werden keine Prozesse verdrängt, das spart Prozesswechselzeiten FIFO begünstigt lange Prozesse RR begünstigt die Antwortzeiten bei kurzen Prozessen und benachteiligt die langen Prozesse Bei großen Zeitschlitzen geht RR über in FIFO Bei kleinen Zeitschlitzen nimmt der Zeitaufwand für den Prozesswechsel überhand Kleine Zeitschlitze bedeuten kurze Antwortzeiten Seite 28

Scheduling mit festen Prioritäten (fixed priority scheduling (FPS)) : Dynamisches Scheduling mit statischen Prioritäten präemptive und nicht-präemptive Strategie ist möglich, wobei die präemptive Variante unter Umständen die Einhaltung von Zeitbedingungen garantieren kann Task mit höchster Priorität bekommt Prozessor für harte Echtzeitsysteme nur bedingt geeignet Task Ausführungszeit Priorität A 8 ms 1 (höchste) B 5 ms 1 (höchste) C 2 ms 2 D 10 ms 3 Bei Tasks mit gleicher Priorität: Weitere Bedingung nötig, z.b. FIFO A B C D 5 10 15 20 25 t [ms] Seite 29

Scheduling mit festen Prioritäten (fixed priority scheduling (FPS)) mit Rate monotonic scheduling (RMS) für rein periodische Anwendungen: Priorität ist umgekehrt proportional zur Periodendauer, d.h. Task mit der kleinsten Zykluszeit erhält die höchste Priorität Präemptive Strategie Einhaltung der Zeitschranken (Deadlines) ist vorab überprüfbar, falls Periodendauer ist konstant und Zeitschranke = Deadline Ausführungszeit ist konstant und bekannt Tasks sind voneinander unabhängig (Keine Synchr.) Busy Period Analysis:Tritt bei periodischen Tasks keine Verletzung der Zeitschranken bis zu dem Zeitpunkt auf, an dem der Prozessor das erste Mal in den Ruhezustand geht, dann wird auch danach keine Verletzung der Zeitschranken mehr auftauchen. Seite 30

Scheduling mit festen Prioritäten (fixed priority scheduling (FPS) mit Rate monotonic scheduling (RMS) Task Ausführungszeit Periode Prio Beispiel: Erste geplante Ausführung aller Tasks bei t = 0 ms. Danach werden die Tasks zyklisch wiederholt. A 10 ms 40 ms 1 B 20 ms 50 ms 2 C 10 ms 80 ms 3 D 20 ms 100 ms 4 Task D wird unterbrochen A B C A B D 1 A C B A D 2 t [ms] ABCD 0 10 A B 50 AC 80 BD 100 A 120 Seite 31

Scheduling mit festen Prioritäten (fixed priority scheduling (FPS)) mit Rate monotonic scheduling (RMS): Beispiel für das RMS: Task Periode p i Ausführungszeit e i Priorität 1 150 ms 15 ms 2 (niedrig) 2 10 ms 1 ms 1 (hoch) Präemption Präemption Task 1 2 ms 9 ms 4 ms Task 2 1 ms 1 ms idle 0 5 10 15 20 t [ms] Ereignis für Task 1 Ereignis für Task 2 Ereignis für Task 2 Seite 32

Scheduling mit festen Prioritäten (fixed priority scheduling (FPS)) mit Rate monotonic scheduling (RMS): Beispiel für das RMS: Worst Case: Ereignisse treten gleichzeitig auf Task Periode p i Ausführungszeit e i Priorität 1 150 ms 15 ms 2 (niedrig) 2 10 ms 1 ms 1 (hoch) Task 1 Task 2 idle 0 5 10 15 20 t [ms] Ereignis für Task 1 und Task 2 Ereignis für Task 2 Ereignis für Task 2 Seite 33

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 Task 2 ihre Zeitschranken verletzen. Beispiel: Task Periode p i Ausführungszeit e i Prioritäten vertauscht 1 150 ms 15 ms 1 (hoch) 2 10 ms 1 ms 2 (niedrig) Task 1 Task 2 Deadline für 1. Ausführung von Task 2 verpasst Ereignis für Task 1 und Task 2 Ereignis für Task 2 Ereignis für Task 2 t [ms] Seite 34

Scheduling mit festen Prioritäten (fixed priority scheduling (FPS)) mit Rate monotonic scheduling (RMS): Beispiel: Transportsystem mit T1 = Kameradatenverarbeitung, T2 = Motorsteuerung und T3 = Transpondererkennung (aperiodische Task T3 wird mit Deadline periodisiert) H = e 1 /p 1 + e 2 /p 2 + e 3 /p 3 = 95,71 % 2 mögliche Prioritätenfestlegung für T1 und T2, da p 1 = p 2 : T1 > T2 > T3 T2 > T1 > T3 Task Periode p i Ausführungszeit e i H T1 10 ms 1 ms 10% T2 10 ms 5 ms 50% T3 (15,4 ms) 5,5 ms 36% Seite 35

Scheduling mit festen Prioritäten (fixed priority scheduling (FPS)) mit Rate monotonic scheduling (RMS): Ablauf mit Prioritäten T1 > T2 > T3 Präemption Task Periode p i Ausführungszeit e i Prio T1 10 ms 1 ms 1 T2 10 ms 5 ms 2 T3 15,4 ms 5,5 ms 3 Task T1 Task T2 Task T3 1 5 4 1 5 1,5 Deadline Task ist fertig idle 0 T1, T2 T3 T1, T2 5 10 15 20 t [ms] verpasst (um 2,1) Ereignis für T1, T2, T3 Ereignis für T1 und T2 Seite 36

Scheduling mit festen Prioritäten (fixed priority scheduling (FPS)) mit Rate monotonic scheduling (RMS): Ablauf mit Prioritäten T2 > T1 > T3 Task Periode p i Ausführungszeit e i Prio T1 10 ms 1 ms 2 T2 10 ms 5 ms 1 T3 15,4 ms 5,5 ms 3 Task T1 Task T2 Task T3 5 1 Präemption 4 5 1 1,5 Deadline Task ist fertig idle 0 T1, T2 T3 T1, T2 5 10 15 20 t [ms] verpasst (um 2,1) Ereignis für T1, T2, T3 Ereignis für T1 und T2 Seite 37

Übung (Voraussetzung: Tasks werden EINEM Prozessor zugeteilt): 1) Vergeben Sie die Prioritäten nach dem Rate Monotonic Prinzip (RMS) 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 40 ms 110 ms? Seite 38

Lösung zu Teilaufgabe 1: In Abhängigkeit der Periodendauer ergibt sich folgende Prioritätsvergabe: P(2) > P(4) > P(3) > P(1) Lösungsblatt 1 zur Teilaufgabe 2: Priorität Task 2 Task 4 Task 3 Task 1 50 100 150 200 250 t [ms] Seite 39

Lösungsblatt 2 zur Teilaufgabe 3: Taskzustände in Abhängigkeit der Zeit Zustand von Task 3 laufend ablaufwillig ruhend 50 100 150 200 250 t [ms] Seite 40

Verfahren der kleinsten Restantwortzeit (earliest deadline first (EDF)) Dynamisches Scheduling mit dynamischen Prioritäten, i.d.r. präemptiv Task mit kleinster Restantwortzeit bekommt den Prozessor, d.h. wo die Deadline am nächsten ist Optimales Scheduling-Verfahren, das immer einen ausführbaren Schedule findet, wenn H 100% ist Jedoch hoher Rechenaufwand für das Scheduling Task Ausführungszeit Ankunfts zeit Deadline A 10 ms 0 ms 40 ms B 10 ms 0 ms 30 ms C 30 ms 30 ms 100 ms D 40 ms 50 ms 200 ms E 10 ms 70 ms 90 ms B A C D 1 E D 2 t [ms] AB 0 10 C D 50 E 100 Deadline von B ist früher als von A, und von E ist früher als von D (Präemption) Seite 41

Verfahren der kleinsten Restantwortzeit (earliest deadline first (EDF)) Beispiel Transportsystem: gemäß Busy Period Analysis werden die Zeitschranken auch in Zukunft eingehalten Deadline T3=15,4; T1=T2=10 Deadline T3=14,4; T2=9 Task Periode p i Ausführungszeit e i Prio T1 10 ms 1 ms dyn. T2 10 ms 5 ms dyn. T3 (15,4 ms) 5,5 ms dyn. Deadline T3=5,4; T1=T2=10 Task T1 Task T2 1 5 1 5 Deadline Task T3 5,5 1,5 Task ist fertig idle 0 T1, T2 T3 T1, T2 5 10 15 20 t [ms] Ereignis für T1, T2, T3 Ereignis für T1 und T2 Seite 42

Laxity A=10; B=20 Verfahren des kleinsten Spielraums (least laxity first (LLF)) Dynamisches Scheduling mit dynamischen Prioritäten, i.d.r. präemptiv Task mit kleinstem Spielraum (Laxity) bekommt den Prozessor Optimales Scheduling-Verfahren Jedoch sehr hoher Rechenaufwand Deadlines sind absolut für harte Echtzeitsysteme am besten geeignet Laxity A=10; B=0 Laxity D=90; E=10 Task Ausführungszeit Ankunfts zeit Deadline A 30 ms 0 ms 40 ms B 10 ms 0 ms 30 ms C 30 ms 30 ms 100 ms D 40 ms 50 ms 200 ms E 10 ms 70 ms 90 ms Merkregel: A 1 B A 2 AB 0 10 C D 50 C E E D 100 120 t [ms] Laxity der rechnenden Task bleibt konstant Laxity der anderen Tasks sinkt stetig Seite 43

Verfahren des kleinsten Spielraums (least laxity first (LLF)) Beispiel Transportsystem: L1=9, L2=5, L3=9,9 Task T1 Task T2 Task T3 Spielraum (Laxity): L1, L2 und L3 Grob-Darstellung: in ms statt 1/10 ms L1=5, L2=5, L3=5,9 5 L1=4, L3=4,9 1 L1=9, L2=5, L3=3,9 L3=3,9 5,5 L1=8, L2=4, L3=3,9 L1=7, L2=3 Task Periode p i Ausführungszeit e i Prio 5 T1 10 ms 1 ms dyn. T2 10 ms 5 ms dyn. T3 (15,4 ms) 5,5 ms dyn. L1=3, L2=3 1 Deadline Task ist fertig idle 0 T1, T2 T3 T1, T2 5 10 15 20 t [ms] Ereignis für T1, T2, T3 Ereignis für T1 und T2 Seite 44

Verfahren Guaranteed Percentage Scheduling (GP) Dynamisches, präemptives Scheduling ohne Prioritäten Jeder Task wird fester Teil des Prozessors zugewiesen, d.h. feingranulares Round Robin mit HW-Unterstützung Optimales Scheduling-Verfahren auf Einprozessorsystemen: H=100% Tasks sind zeitlich isoliert, laufen gleichmäßig ab und starten sofort Periodendauer unabhängig von der Anzahl der Tasks für harte Echtzeitsysteme gut geeignet Beispiel: Threads Periode = 100 Taktzyklen Thread A, 30% Thread B, 20% Thread C, 40%... Thread A 30 Taktzyklen Thread B 20 Taktzyklen Thread C 40 Taktzyklen Thread A 30 Taktzyklen Thread B 20 Taktzyklen Thread C 40 Taktzyklen... 100 Taktzyklen 100 Taktzyklen Seite 45

Verfahren Guaranteed Percentage Scheduling (GP) Beispiel: Transportsystem (100-Zyklen-Intervall) T1 mit 10 Taktzyklen T2 mit 50 Taktzyklen T3 mit 36 Taktzyklen Task Periode p i Ausführungszeit e i H T1 10 ms 1 ms 10% T2 10 ms 5 ms 50% T3 15,4 ms 5,5 ms 36% Task T1 Task T2 Task T3 Deadline Task ist fertig idle 0 T1, T2 T3 T1, T2 5 10 15 20 t [ms] Ereignis für T1, T2, T3 Ereignis für T1 und T2 Seite 46

Übung zum Scheduling-Verfahren Gegeben ist nebenstehender Taskplan. Bitte füllen Sie die u.s. Tabelle entsprechend des geforderten Scheduling -Verfahrens aus: 1. FIFO 2. Round Robin 3. Earliest Deadline 4. Least Laxity Task Dauer in ms Ankunftszeit in ms Deadline in ms A 20 10 100 B 10 10 30 C 20 0 50 D 30 30 100 E 20 60 90 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. Neuberechnung bei 3. und 4. alle 10 ms. Die Deadlines sind als absolut zu nehmen. 10 ms 20 ms 30 ms 40 ms 50 ms 60 ms 70 ms 80 ms 90 ms 100 ms 1. 2. 3. 4. Seite 47