1. Szeregowanie w systemach czasu rzeczywistego

Podobne dokumenty
4. Procesy pojęcia podstawowe

4. Procesy pojęcia podstawowe

Systemy wbudowane - wykład 9. Systemy czasu rzeczywistego Notes. Systemy czasu rzeczywistego Notes. Systemy czasu rzeczywistego Notes.

Organizacja oprogramowania

4. Procesy pojęcia podstawowe

Systemy Czasu Rzeczywistego (SCR)

PRZERWANIA. 1. Obsługa zdarzeń, odpytywanie i przerwania Obsługa zdarzeń jest jedną z kluczowych funkcji w prawie każdym systemie czasu rzeczywistego.

Planowanie przydziału procesora CPU scheduling. Koncepcja szeregowania. Planista przydziału procesora (planista krótkoterminowy) CPU Scheduler

Wykład 6. Planowanie (szeregowanie) procesów (ang. process scheduling) Wojciech Kwedlo, Wykład z Systemów Operacyjnych -1- Wydział Informatyki PB

Planowanie przydziału procesora

Planowanie przydziału procesora

J. Ułasiewicz Programowanie aplikacji współbieżnych 1

Program jest więc strukturą statyczną zapisaną na jakimś nośniku. Natomiast proces jest wykonującym się programem.

Prezentacja systemu RTLinux

1.1 Definicja procesu

Przełączanie kontekstu. Planista średnioterminowy. Diagram kolejek. Kolejki planowania procesów. Planiści

Planowanie przydziału procesora

Ogólna koncepcja planowania. Planowanie przydziału procesora. Komponenty jądra w planowaniu. Tryb decyzji. Podejmowanie decyzji o wywłaszczeniu

5. Model komunikujących się procesów, komunikaty

Autor: dr inż. Zofia Kruczkiewicz, Programowanie aplikacji internetowych 1

Systemy czasu rzeczywistego wstęp

Fazy procesora i wejścia-wyjścia. Planowanie przydziału procesora. Czasy faz procesora. Planowanie przydziału procesora

Planowanie przydziału procesora

PRZERWANIA. P1 - Procedura obslugi przerwania. Obsługa zdarzenia Z1 poprzez procedurę obsługi przerwania P1

Mariusz Rudnicki PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO CZ.3

SYSTEMY OPERACYJNE WYKLAD 6 - wątki

Jedrzej Ułasiewicz Komputerowe systemy sterowania 1

Mariusz Rudnicki PROGRAMOWANIE WSPÓŁBIEŻNE I SYSTEMY CZASU RZECZYWISTEGO CZ.3

Projektowanie oprogramowania systemów PROCESY I ZARZĄDZANIE PROCESAMI

dr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1

Podstawy Informatyki Układ przerwań

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

Mogą pracować w środowisku: Scentralizowanym -mikrokontroler Rozproszonym sieć sterująca, systemy hierarchiczne. Komunikacja z syst.

Podstawowe zagadnienia

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

Metody obsługi zdarzeń

Współczesne aplikacje sterowania i akwizycji danych są zbiorem komunikujących się wątków lub procesów współbieżnych.

Systemy operacyjne. Wprowadzenie. Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

Technika mikroprocesorowa. Systemy operacyjne czasu rzeczywistego

1 Podstawowe definicje i pojęcia współbieżności

Szeregowanie zadań w Linux Kernel 2.6. Daniel Górski Przemysław Jakubowski

Zarządzanie procesorem

PROGRAMOWANIE SYSTEMÓW WBUDOWANYCH

Zarządzanie procesami i wątkami

Systemy operacyjne Procesy i wątki

Systemy operacyjne III

7. Szeregowanie procesów w systemie QNX6 Neutrino

Systemy wbudowane. Systemy operacyjne czasu rzeczywistego

Informatyka, systemy, sieci komputerowe

Dodatek B. Zasady komunikacji z otoczeniem w typowych systemach komputerowych

INDU-22. Przemysłowy Sterownik Mikroprocesorowy. Przeznaczenie. masownica próżniowa

Przerwania, polling, timery - wykład 9

Wieloprogramowanie. Systemy operacyjne / Procesy i wątki str.4/32. Proces w systemie operacyjnym. Tworzenie i kończenie procesów

Systemy czasu rzeczywistego. Systemy czasu rzeczywistego. Systemy czasu rzeczywistego. Systemy czasu rzeczywistego - przykłady

WPROWADZENIE DO SYSTEMÓW CZASU RZECZYWISTEGO

Jadro Linux 2.6. a zadania czasu rzeczywistego. Artur Lewandowski. Jądro Linux 2.6 p.1/14

Wielowątkowość mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011

Automatyczne zamykanie miesiąca za pomocą harmonogramu zadań ApwPlan

Systemy czasu rzeczywistego. Systemy czasu rzeczywistego. Systemy czasu rzeczywistego. Systemy czasu rzeczywistego - przykłady

MIKROPROCESORY architektura i programowanie

Bazy danych w sterowaniu

Systemy czasu rzeczywistego wstęp

Przykłady implementacji planowania przydziału procesora

Analiza ilościowa w przetwarzaniu równoległym

Procesy, wątki i zasoby

Działanie systemu operacyjnego

dr inż. Jarosław Forenc

Wykład 3: Implementacja programów wbudowanych

Materiały pomocnicze 1

SYSTEMY OPERACYJNE LABORATORIUM 2014/2015

* Wymień typowe standardy sygnałów procesowych: - analogowy - dwustanowe

REAL-TIME LINUX. ZGODNOŚĆ Z POSIX ( PSE51 (minimal realtime system profile)

Linux: Procesy. Systemy Operacyjne. Mateusz Hołenko. 26 marca 2013

Wątek - definicja. Wykorzystanie kilku rdzeni procesora jednocześnie Zrównoleglenie obliczeń Jednoczesna obsługa ekranu i procesu obliczeniowego

Systemy Czasu Rzeczywistego (SCR)

Instrukcja Obsługi. Przeczytaj uważnie przed użyciem

Zegar - układ wysyłający regularne impulsy o stałej szerokości (J) i częstotliwości (f)

Komputerowe systemy sterowania

przydziału procesora Przykłady implementacji planowania przydziału procesora Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

Pilot zdalnego sterowania DANE TECHNICZNE FUNKCJE PILOTA ZDALNEGO STEROWANIA

Programowanie współbieżne i rozproszone

projekt akademicki w Institute for Mining and Technology of New Mexico. Autor Victor Yodaiken FSMLabs komercyjna odmiana RTLinuxPro

Działanie systemu operacyjnego

Mikroprocesor Operacje wejścia / wyjścia

Działanie systemu operacyjnego

PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO

Definicja systemu operacyjnego (1) Definicja systemu operacyjnego (2) Miejsce systemu operacyjnego w architekturze systemu komputerowego

SYSTEMY OPERACYJNE WYKLAD 6 - procesy

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

Systemy operacyjne. Paweł Pełczyński

Mariusz Rudnicki PROGRAMOWANIE SYSTEMÓW CZASU RZECZYWISTEGO CZ.1

Systemy czasu rzeczywistego Real Time Systems. Automatyka i Robotyka I stopień ogólnoakademicki

Język Java wątki (streszczenie)

Mechanizmy pracy równoległej. Jarosław Kuchta

Programowanie usług działających w tle

Programowanie współbieżne Wykład 2. Iwona Kochańska

PAMIĘCI SYNCHRONICZNE

projektowanie systemu

Systemy Operacyjne - zarządzanie procesami

Działanie komputera i sieci komputerowej.

Transkrypt:

J. Ułasiewicz Systemy Czasu Rzeczywistego 1 1. Szeregowanie w systemach czasu rzeczywistego 1.1 Definicje Zadanie - proces lub wątek Gotowych do wykonania zadań jest zwykle dużo więcej niż mogących je wykonać procesorów. Zatem nieustannie należy rozstrzygać który z gotowych zadań ma otrzymać procesor. Rozstrzyganie które z zadań gotowych ma być teraz wykonywany, realizowane jest przez procedurę szeregującą. Procedura szeregująca (ang. scheduler, dispatcher) Procedura szeregująca część systemu operacyjnego, wykonująca funkcję wybierania ze zbioru zadań gotowych, zadania które ma być teraz wykonywany. W3 W1 W2 W3 W6 t1 t2 t3 t4 t5 t6 Rys. 0-1 Działanie funkcji szeregującej Kryteria optymalizacji procedury szeregującej: czas reakcji na zdarzenie, przepustowość, wydajność, wykorzystanie zasobów Szeregowanie w systemach czasu rzeczywistego powinno zapewniać gwarantowany czas reakcji na zdarzenie, terminowość i przewidywalność. Decyzje szeregujące podejmowane są na bieżąco na skutek określonych zdarzeń i uwzględniają atrybuty wszystkich gotowych do wykonania zadań. Atrybuty: priorytetzadania, stanzadania, strategia szeregowania, dotychczasowe zużycie zasobów.

J. Ułasiewicz Systemy Czasu Rzeczywistego 2 Ze względu na sposób podejmowania decyzji wyróżniamy dwa rodzaje szeregowania: Szeregowanie statyczne (ang. pre-run-time scheduling) Szeregowanie dynamiczne (ang. run-time scheduling) Szeregowanie statyczne plan przydziału zadań do zasobów sporządzany jest z góry. Warunkiem stosowalności metody jest aprioryczna znajomość zadań wraz z ich charakterystykami czasowymi Szeregowanie dynamiczne plan przydziału zadań do zasobów sporządzany jest na bieżąco. Podstawą działania szeregowania dynamicznego są priorytety. Metoda może być stosowana, gdy charakterystyki czasowe zadań nie są z góry znane. zadania gotowe P1 T1 T3 Tn P2 szeregowanie procesory P k

J. Ułasiewicz Systemy Czasu Rzeczywistego 3 Zasady przydziału zadań do procesorów: Do każdego z procesorów w danym momencie przydzielony jest, co najwyżej jedno zadanie. Każde zadanie w danym momencie przydzielone jest do dokładnie jednego procesora. Podział ze względu na przyczynę podejmowania decyzji szeregujących: Szeregowanie wymuszane czasem (ang. clock driven scheduling) Szeregowanie wymuszane zdarzeniami(ang. event driven scheduling) Szeregowanie wymuszane czasem Decyzje szeregujące podejmowane są w specyficznych często ustalonych z góry momentach czasu. Decyzje szeregujące Z2 Z1 Z5 Z1 Z4 Gdy parametry zadań są znane apriori plan szeregowania można ułożyć w postaci tabeli szeregowanie cykliczne. Z2 czas Szeregowanie wymuszane zdarzeniami Decyzje szeregujące podejmowane są gdy, zachodzą określone zdarzenia: Zadanie staje się gotowe Procesor jest samoistnie zwalniany przez bieżące zadanie wywołanie blokujące) Zmienia się priorytet jakiegoś zadania Priorytet zadania(ang. task priority) Priorytet zadania jest miarą pilności danego zadania względem innych zadań wykonywanych na tym samym komputerze.

J. Ułasiewicz Systemy Czasu Rzeczywistego 4 Procedura szeregująca może być uaktywniona gdy 1. Wystąpiło przerwanie sprzętowe. 2. Wystąpiło przerwanie wewnętrzne (wyjątek). 3. Proces bieżący wykonał wywołanie systemowe. Szeregowanie jest powoływane także gdy zmienia się stan zadania bieżącego. 1. Zadanie bieżące blokuje się. 2. Zadanie bieżące jest wywłaszczane. 3. Zadanie bieżące samoistnie zwalnia procesor. Podział ze względu na wywłaszczalność Szeregowanie wywłaszczające Szeregowanie kooperacyjne Wywłaszczanie Gdy wykonywane zadanie jest przez system zawieszone bo pojawiło się zadanie ważniejsze mówimy że zostało wywłaszczone (ang. preempted). Zdarzenie Z2 Wznowienie Z1 Wywlaszczenie Czas Rysunek 0-1 Zadanie Z2 wywłaszcza zadanie Z1 Szeregowanie wywłaszczające (ang. preemptive scheduling) Zadanie bieżące może, w nie dającym się przewidzieć momencie czasu, utracić procesor na którym wykonywany będzie inne, pilniejsze zadanie.

J. Ułasiewicz Systemy Czasu Rzeczywistego 5 Szeregowanie wywłaszczające (ang. preemptive scheduling) Decyzje szeregujące podejmowane są gdy: Zadanie staje się gotowe Procesor jest zwalniany przez bieżące zadanie Zmienia się priorytet jakiegoś zadania Szeregowanie kooperacyjne (ang. coperative scheduling) Szeregowanie kooperacyjne to taki sposób organizacji pracy zadań takie że zadanie bieżące przełączany jest na inne tylko poprzez wykonanie określonych funkcji systemowych.

J. Ułasiewicz Systemy Czasu Rzeczywistego 6 1.2 Charakterystyka zadań W systemach czasu rzeczywistego wyróżniamy następujące typy zadań: 1. Zadania asynchroniczne (ang. asynchronous) aktywowane przerwaniami. 2. Zadania synchroniczne (ang. synchronous) aktywowane układami odmierzania czasu. 3. Zadania drugoplanowe (ang. background ) wykonywane w miarę wolnego czasu procesora. 1.2.1 Procesy i wątki asynchroniczne Zadanie (asynchroniczne i synchroniczne) Z i charakteryzuje się następującymi ograniczeniami czasowymi: C i a i Z i s i f i d i czas Rysunek 0-2 Charakterystyki czasowe zadania Czas napłynięcia zadania (ang. arrival time) a i czas w którym pojawi się zadanie Z i Czas wykonania zadania (ang. computation time) - c i maksymalny czas potrzebny do wykonania zadania w sytuacji gdy wykonuje się na procesorze jako jedyne i ma ono wszystkie potrzebne zasoby. Ostateczny termin zakończenia (ang. deadline time) - d i Czas rozpoczęcia przetwarzania (ang. start time) - s i Czas zakończenia przetwarzania (ang. finishing time) - f i Luźny czas zadania (ang. laxity time) - X i = d i - a i - e i Czas spóźnienia zadania (ang. lateness time) - L i = f i - d i Ograniczenia kolejności (ang. Precedence Constraints), specyfikuje że dane zadanie powinno poprzedzać inne.

J. Ułasiewicz Systemy Czasu Rzeczywistego 7 Elementarną funkcją systemu czasu rzeczywistego jest reagowanie na zdarzenia reprezentowane przez przerwania. Reakcja na zdarzenia może być wykonana na trzy sposoby: Trzy strategie reagowania na zdarzenie: 1. Wszystkie czynności wykonywane są przez procedurę obsługi przerwania. 2. Wewnątrz procedury obsługi przerwania wykonane będą najważniejsze czynności a resztę pracy wykona odblokowany specjalnie wątek lub proces. 3. Wewnątrz procedurę obsługi przerwania nie są wykonywane żadne czynności a jedyną jego funkcją jest odblokowanie pewnego wątku lub procesu. W ramach ISR można wykonać tylko niewiele prostych czynności. Powody tego są następujące: 1. Czynności wykonywane w ramach ISR nie podlegają szeregowaniu. 2. W czasie wykonywania ISR przerwania pozostają domyślnie zablokowane. 3. Konstrukcja większości systemów operacyjnych nie dopuszcza aby w ramach ISR wykonywane były wywołania systemowe. Zasada obsługi przerwań: W kodzie procedury obsługi przerwania wykonać należy tylko niezbędne czynności. Następnie, gdy jest taka potrzeba, należy powiadomić pewien wątek lub proces o wystąpieniu przerwania. Wątek ten lub proces wykona resztę pracy.

J. Ułasiewicz Systemy Czasu Rzeczywistego 8 przerwanie W0 ISR Z1 zadanie obsługi przerwania W1 odblokowanie zadania W1 blokada W0 zadanie drugoplanowe Czas Rys. 2 Procedura obsługi przerwania odblokowuje zadanie do { czekaj_na_zdarzenie(z1); obsłuż_zdarzenie; } while(1); Przykład 1 Kod działania wątku obsługującego zdarzenie Z1 Procesy i wątki asynchroniczne (ang. asynchronous processes, threads) Procesy i wątki asynchroniczne po utworzeniu pozostają w stanie zablokowania a wznawiane są poprzez przerwania reprezentujące zachodzące w systemie zdarzenia. Po obsłużeniu zdarzenia ponownie przechodzą one w stan zablokowania. P1 P2 P1 P3 P1 przerwania W1 W2 W1 W2 W3 W0 zadanie drugoplanowe Rys. 3 Zadania asynchroniczne W1 Czas

J. Ułasiewicz Systemy Czasu Rzeczywistego 9 1.3 Procesy i wątki synchroniczne W systemach czasu rzeczywistego wiele zdarzeń synchronizowanych jest upływem czasu. Przykład: regulator cyfrowy. Mierzy cyklicznie wielkość regulowaną, oblicza sygnał błędu według oblicza wielkość sterującą która podawana jest na układ wykonawczy. Procesy i wątki synchroniczne (ang. synchronous processes, threads) Procesy i wątki synchroniczne po utworzeniu pozostają w stanie zablokowania a wznawiane są poprzez układy odmierzania czasu. Po wykonaniu zaplanowanych czynności ponownie przechodzą w stan zablokowania lub kończą się. W2 T2 zegar T2 = 6 T1 = 7 W1 W0 T1 zadania drugoplanowe Czas Rys. 4 Zadania synchroniczne Ze względu na regularność wyróżnia się dwa rodzaje zadań synchronicznych: periodyczne i aperiodyczne. Zadania periodyczne uruchamiane są w stałych odstępach czasowych. Zadania aperiodyczne uruchamiane są w nieregularnych odstępach czasowych. Czas kolejnej aktywacji obliczany jest dla nich w trakcie aktywacji bieżącej.

J. Ułasiewicz Systemy Czasu Rzeczywistego 10 Nie da się wyznaczyć harmonogramu czasu aktywacji zadań aperiodycznych, można jednak wyznaczyć czas kolejnej aktywacji na podstawie informacji znanych w czasie bieżącego uruchomienia. // Zadania periodyczne // Zadanie aperiodyczne zaprogramuj czasomierz do { na cykl T i zdarzenie Z; wykonaj_czynności; do { i=i+1; czekaj_na_zdarzenie(z); oblicz Ti; wykonaj_czynności; czekaj(ti;) } while(1); } while(1); Przykład 2 Pseudokod zadań periodycznych i aperiodycznych

J. Ułasiewicz Systemy Czasu Rzeczywistego 11 1.3.1 Zadania drugoplanowe W systemach oprócz funkcji kluczowych występują także funkcje co do których nie jest wymagane spełnienie wymagań czasu rzeczywistego. Zadania drugoplanowe (ang. background tasks) Zadania drugoplanowe realizują zadania co do których nie jest wymagane spełnienie ograniczeń czasowych. Typowe zadania drugoplanowe to obsługa procesów wyświetlania, drukowania czy wykonywanie procedur diagnostycznych. Przedłużenie się czasu ich realizacji nie spowoduje istotnego zaburzenia pracy systemu. Wykonują się w miarę wolnego czasu procesora. Asynchroniczne Synchroniczne Drugoplanowe Aktywacja Zdarzenia Czas Procedura szeregująca Wymagany punkt zablokowania Tak Tak Nie Priorytet Wysoki Wysoki, średni Niski Funkcja Obsługa zdarzeń Czynności periodyczne i aperiodyczne Czynności pomocnicze Tabela 1 Porównanie zadań asynchronicznych, synchronicznych i drugoplanowych

J. Ułasiewicz Systemy Czasu Rzeczywistego 12 1.4 Algorytmy szeregowania zadań cyklicznych 1.4.1 Zadania cykliczne W systemach czasu rzeczywistego często występują zadania cykliczne. Zadania cykliczne charakteryzują się: Okresem (ang. period) T i czas co który się pojawiają Fazą (ang. phase) f i czas pierwszego pojawienia się Czasem wykonania - c i f i Ti Ti Rysunek 0-3 Zadanie cykliczne Z i c i Z i c i czas Własności zadań cyklicznych Wszystkie zadania są periodyczne ze znanym okresem. Przedział T i pomiędzy kolejnymi wystąpieniami zadania nazywamy okresem. Wszystkie instancje zadania mają niezmienny czas wykonania c i Względny ostateczny termin zakończenia zadania d i jest dla wszystkich instancji zadania taki sam równy ich okresowi (instancja zadania musi się zakończyć przed pojawieniem się następnej). Zadania są od siebie niezależne Współczynnik wykorzystania procesora: U = n i= 1 c T i i Jeżeli współczynnik wykorzystania procesora jest większy od 1 to dany zbiór zadań nie może być szeregowany przez żaden algorytm.

J. Ułasiewicz Systemy Czasu Rzeczywistego 13 1.4.2 Wykonywanie cykliczne Jednym z pierwszych algorytmów szeregowania zadań było wykonywanie cykliczne CE (ang. Cyclic Executive) Procedura szeregująca wywoływana jest w cyklu małym (ang. minor cycle). Cyklem głównym (ang. major cycle) jest najmniejszy wspólna wielokrotność z cykli poszczególnych zadań (p 1, p 2,..., p n ). Plan zaszeregowania sporządzany jest dla cyklu głównego. W cyklu głównym wszystkie zadania przyporządkowane do procesora powinny zostać wykonane tak, aby czasy zakończenia zadań nie zostały przekroczone. Zadanie Okres Czas obliczeń Z1 25 10 Z2 25 7 Z3 50 5 Z4 50 4 Z5 100 5 Przykład 3 Szeregowanie cykliczne, duży cykl 100, mały cykl 25 ustaw przerwania na 25 jednostek do { czekaj_na_przerwanie; wykonaj(z1); wykonaj(z2); wykonaj(z3); czekaj_na_przerwanie; wykonaj(z1); wykonaj(z2); wykonaj(z4); wykonaj(z5); czekaj_na_przerwanie; wykonaj(z1); wykonaj(z2); wykonaj(z3); czekaj_na_przerwanie; wykonaj(z1); wykonaj(z2); wykonaj(z4); } while(1) 100 25 25 25 25 Z1 Z2 Z3 Z1 Z2 Z4 Z5 Z1 Z2 Z3 Z1 Z2 Z4 Rys. 5 Szeregowanie cykliczne zadań Z1, Z2, Z3, Z4, Z5 czas

J. Ułasiewicz Systemy Czasu Rzeczywistego 14 Zalety szeregowania cyklicznego: Determinizm Brak wywłaszczeń Wady szeregowania cyklicznego: Opracowanie tabeli wykonywania cyklicznego jest w ogólności trudne (problem NP trudny). Trudna aktualizacja Problem z włączeniem zadań o długim okresie Niemożliwe włączenie zadań asynchronicznych

J. Ułasiewicz Systemy Czasu Rzeczywistego 15 1.4.3 Szeregowanie RM (Rate Monotonic) Szeregowanie stosowane tylko do zadań cyklicznych Zasady szeregowania RM: Priorytety przydzielane są zadaniom w zależności od okresu wznawiania. Zadania najczęściej wznawiane otrzymują najwyższe priorytety a kolejne priorytety niższe. Priorytety przydziela się na stałe przed rozpoczęciem przetwarzania. Dopuszcza się możliwość wywłaszczenia bieżącego zadania, gdy zadanie o wyższym priorytecie staje się gotowe. Wyniki teoretyczne: Wykazano że algorytm RM jest optymalny spośród wszystkich algorytmów ze stałym przydziałem priorytetów. Wykazano że zbiór n zadań jest szeregowany według algorytmu RM gdy współczynnik wykorzystania procesora jest mniejszy od U gr = 1 n 2 1 n. Dla n U gr = ln 2 0.69 Mogą jednak istnieć plany dla wyższego współczynnika wykorzystania procesora. Z e i T i Ui = e i / T i Z1 1 4 0.25 Z2 2 5 0.4 Z3 5 20 0.25 Przykład 4 Szeregowanie RM

J. Ułasiewicz Systemy Czasu Rzeczywistego 16 1.4.4 Algorytm szeregowania EDF (Earliest Deadline First) Zasady szeregowania RM: Priorytety przydzielane są zadaniom dynamicznie w zależności od wartości wymaganego czasu zakończenia obliczeń. Zadanie które musi najszybciej zakończyć obliczenia otrzymuje najwyższy priorytet. Jako że absolutny czas zakończenia zadania może ulec zmianie to priorytety zadań także mogą ulegać zmianie. Dopuszcza się możliwość wywłaszczenia bieżącego zadania gdy zadanie o wyższym priorytecie staje się gotowe. Wyniki teoretyczne: Wykazano że algorytm EDF jest optymalny spośród wszystkich algorytmów z dynamicznym przydziałem priorytetów. Wykazano że zbiór n zadań jest szeregowany według algorytmu EDF gdy współczynnik wykorzystania procesora jest mniejszy od U gr 1. Porównanie: Algorytmy ze stałymi priorytetami są łatwiejsze w implementacji W przypadku przeciążenia zachowanie się algorytmów ze stałymi priorytetami jest bardziej przewidywalne nie wykonają się zadania o niższym priorytecie. W przypadku przeciążenia zachowanie się algorytmu EDF jest mniej przewidywalne mogą się nie wykonać zadania o wysokim priorytecie. W przypadku algorytmów ze stałymi priorytetami możliwe jest poprawne szeregowanie mimo przekroczonego teoretycznego współczynnika wykorzystania procesora.