„Earliest Deadline First“ – Versionsunterschied
[ungesichtete Version] | [gesichtete Version] |
Koempy (Diskussion | Beiträge) K Hinweis, dass EDF in der Regel nur in der Forschung eingesetzt wird |
Harry8 (Diskussion | Beiträge) →Funktionsweise: Link auf BKL aufgelöst |
||
(20 dazwischenliegende Versionen von 19 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
'''Earliest Deadline First (EDF)''' ist |
'''Earliest Deadline First (EDF)''' ist ein [[Prozess-Scheduler|Scheduling]]-Verfahren von Betriebssystemen, mit dessen Hilfe es den [[Prozess (Informatik)|Prozessen]] (engl. {{lang|en|Tasks}}) [[Prozessor]]-Zeit zuteilt. Es gehört zu den zeitbasierten Verfahren, denn es trifft seine Entscheidungen so, dass Fertigstellungstermine (Deadlines) eingehalten werden. Die [[Präemptives Multitasking#Präemptives Multitasking|präemptive]] Variante von Earliest Deadline First wird vor allem für [[Echtzeitsystem]]e verwendet. |
||
⚫ | |||
⚫ | |||
* Der Task, der als erstes fertig sein muss, erhält den Prozessor |
|||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
# Es wird immer genau der Task dem Prozessor zugeteilt, dessen Deadline als nächstes kommt, d.h. dessen Frist unter den bereitstehenden Tasks am ehesten abläuft. |
|||
== Prozessorauslastung == |
|||
⚫ | EDF kann den Prozessor bis zur maximalen [[Prozessorauslastung]] einplanen. Dies gilt allerdings nur für Tasksysteme, in denen die Zeitspanne bis zur Deadline eines Tasks jeweils größer oder gleich der Periode der jeweiligen Task selbst ist. Des Weiteren dürfen zwischen den Tasks keine Abhängigkeiten bestehen und keine gemeinsame Ressource verwendet werden, da dadurch ein [[Deadlock (Informatik)|Deadlock]] verursacht werden könnte. |
||
== Siehe auch == |
|||
⚫ | |||
* [[Deadline Monotonic Scheduling]] (DMS) |
|||
* [[Rate Monotonic Scheduling]] (RMS) |
|||
== Quellen == |
|||
* [http://lrs2.fmi.uni-passau.de/skripten/SS05/EZ_Vorl_2.3.2_EDF.pdf Planung nach Fristen (earliest deadline first, EDF)], [[Universität Passau]], [[PDF]] (504 kB) |
|||
⚫ | |||
'''Optimalität''': |
|||
EDF ist optimal für die Scheduling-Klasse 1|preempt, async|L_max, es ist '''nicht''' optimal i.A. bei 1|non-preempt, sync|L_max |
|||
# "1" steht für einen Prozessor |
|||
# "(non-)preempt" für (nicht-)unterbrechbare Tasks |
|||
# "(a)sync" für (a)synchrone Taskaktivierung, d.h. alle Tasks werden gleichzeitig bereit (sync) oder unterschiedlich (async) |
|||
# "L_max" ist die zu minimierende [[Kostenfunktion]]; steht für "max. Lateness", also der maximalen Zeit (l), die zwischen vollständiger Ausführung (c) und Deadline (d) verbleibt: l = c - d (L_max ist NEGATIV bei erfolgreicher Planung) |
|||
'''Auslastung''': |
|||
⚫ | |||
[[Kategorie:Betriebssystemtheorie]] |
[[Kategorie:Betriebssystemtheorie]] |
||
[[en:Earliest deadline first scheduling]] |
|||
[[fr:Earliest deadline first scheduling]] |
|||
[[ja:Earliest Deadline First]] |
|||
[[nl:Earliest deadline first scheduling]] |
Aktuelle Version vom 30. Mai 2019, 19:57 Uhr
Earliest Deadline First (EDF) ist ein Scheduling-Verfahren von Betriebssystemen, mit dessen Hilfe es den Prozessen (engl. Tasks) Prozessor-Zeit zuteilt. Es gehört zu den zeitbasierten Verfahren, denn es trifft seine Entscheidungen so, dass Fertigstellungstermine (Deadlines) eingehalten werden. Die präemptive Variante von Earliest Deadline First wird vor allem für Echtzeitsysteme verwendet.
Funktionsweise
[Bearbeiten | Quelltext bearbeiten]- Alle, zu dem betrachteten Zeitpunkt, bereitstehenden Tasks werden nach aufsteigenden Fertigstellungsterminen (engl. Deadlines) geordnet
- Der Task, der als erstes fertig sein muss, erhält den Prozessor
Es werden immer die Zeitpunkte für das Scheduling betrachtet, an denen entweder ein neuer Task gestartet wird oder ein gerade noch aktiver Task beendet wird.
EDF ist dabei sehr flexibel, denn es kann sowohl für präemptives, wie auch für kooperatives Multitasking verwendet werden. Außerdem kann es in aperiodischen sowie periodischen Plänen eingesetzt werden.
Prozessorauslastung
[Bearbeiten | Quelltext bearbeiten]EDF kann den Prozessor bis zur maximalen Prozessorauslastung einplanen. Dies gilt allerdings nur für Tasksysteme, in denen die Zeitspanne bis zur Deadline eines Tasks jeweils größer oder gleich der Periode der jeweiligen Task selbst ist. Des Weiteren dürfen zwischen den Tasks keine Abhängigkeiten bestehen und keine gemeinsame Ressource verwendet werden, da dadurch ein Deadlock verursacht werden könnte.