Algoritmi de planificare a proceselor pentru sisteme în timp real - Lucrare de licență -
description
Transcript of Algoritmi de planificare a proceselor pentru sisteme în timp real - Lucrare de licență -
![Page 1: Algoritmi de planificare a proceselor pentru sisteme în timp real - Lucrare de licență -](https://reader036.fdocumente.com/reader036/viewer/2022082418/5681576c550346895dc50f6c/html5/thumbnails/1.jpg)
UNIVERSITATEA POLITEHNICA BUCUREŞTI
FACULTATEA DE ELECTRONICĂ, TELECOMUNICAŢII ŞI TEHNOLOGIA INFORMAŢIEI
Algoritmi de planificare a proceselor pentru sisteme în timp real
- Lucrare de licență -
Coordonator: Student: Conf. dr. ing. Ștefan Stăncescu Alexandru – Alin Hoțoi
![Page 2: Algoritmi de planificare a proceselor pentru sisteme în timp real - Lucrare de licență -](https://reader036.fdocumente.com/reader036/viewer/2022082418/5681576c550346895dc50f6c/html5/thumbnails/2.jpg)
SISTEMELE IN TIMP REAL
Ce înseamna “sistemele în timp real” ?
Tipuri de sisteme REAL-TIME – HARD și SOFT
TASK-urile (periodice, aperiodice) și multi-tasking
Stările unui TASK
![Page 3: Algoritmi de planificare a proceselor pentru sisteme în timp real - Lucrare de licență -](https://reader036.fdocumente.com/reader036/viewer/2022082418/5681576c550346895dc50f6c/html5/thumbnails/3.jpg)
SISTEMELE IN TIMP REAL
Au fost definite ca fiind: “acele sisteme în care corectitudinea sistemului nu depinde numai de rezultatul logic al calculului, dar și de momentul în care rezultatele sunt produse”
Sisteme RT-SOFT – întâlnesc constrângeri de timp de cele mai multe ori, nu este necesar ca de fiecare dată o constrângere să fie atinsă. Unele nerespectări ale
deadline-urilor sunt tolerate.
Sisteme RT-HARD – întâlnesc mereu constrângeri exacte, fiecare sistem de managemet al resurselor trebuie să lucreze în ordinea corectă pentru a îndeplini constrângerile de timp. Nerespectarea deadline-urilor nu este tolerată.
![Page 4: Algoritmi de planificare a proceselor pentru sisteme în timp real - Lucrare de licență -](https://reader036.fdocumente.com/reader036/viewer/2022082418/5681576c550346895dc50f6c/html5/thumbnails/4.jpg)
CATEGORII DE TASK-URI Periodice (time - triggered)
Aperiodice (event - triggered)
În sistemele multi-tasking:
Preemptive – procesul cu prioritatea mai mare preia controlul procesorului de la un proces cu prioritate mai mică.
Non-Preemptive – fiecare proces poate controla procesorul atât timp cât are nevoie de el.
![Page 5: Algoritmi de planificare a proceselor pentru sisteme în timp real - Lucrare de licență -](https://reader036.fdocumente.com/reader036/viewer/2022082418/5681576c550346895dc50f6c/html5/thumbnails/5.jpg)
DE CE AVEM NEVOIE DE PLANIFICARE ?
Fiecare task (proces) pe care noi dorim sa-l executăm are nevoie de resurse.
Resursele: procesor, segmente de memorie, comunicații, dispozitive I/O.
Calculul trebuie executat într-un mod particular (unul față de celălalt și/sau în raport cu timpul).
Planificarea: Dacă procesele nu se vor executa după o anumită planificare se va ajunge la o congestie a resurselor, concluzia este că avem nevoie de planificare. Planificarea este produsă de planificator (scheduler).
Planificatorul (Scheduler) – este modulul care implementează algoritmii de planificare.
Planificare validă – atunci când toate task-urile își ating deadline-urile.
![Page 6: Algoritmi de planificare a proceselor pentru sisteme în timp real - Lucrare de licență -](https://reader036.fdocumente.com/reader036/viewer/2022082418/5681576c550346895dc50f6c/html5/thumbnails/6.jpg)
ALGORITMI DE PLANIFICARE A PROCESELOR ÎN REAL-TIME
Planificatorul folosit pentru planificarea proceselor RT este o unitate de program care controlează lansarea în executie.
Planificarea poate fi:- Pre-execuție (offline)- Dinamică (online)- Preeptivă- Nepreemptivă
![Page 7: Algoritmi de planificare a proceselor pentru sisteme în timp real - Lucrare de licență -](https://reader036.fdocumente.com/reader036/viewer/2022082418/5681576c550346895dc50f6c/html5/thumbnails/7.jpg)
Algoritmi cu prioritate fixă Algoritmi cu prioritate dinamică Algoritmi hibrizi
Rate Monotonic scheduling
Deadline Monotonic scheduling
Earliest Deadline First
Least Laxity First
Maximum Urgency First
ALGORITMI DE PLANIFICARE A PROCESELOR ÎN REAL-TIME
![Page 8: Algoritmi de planificare a proceselor pentru sisteme în timp real - Lucrare de licență -](https://reader036.fdocumente.com/reader036/viewer/2022082418/5681576c550346895dc50f6c/html5/thumbnails/8.jpg)
ALGORITMI DE PLANIFICARE A PROCESELOR ÎN REAL-TIME
P
D
ta
CR
t
Notații folosite: P = perioada de repetiție R = timp de răspuns (timpul în care execuția task-ului de încheie) D = timpul limită maxim (deadline) – timpul până când execuția
task-ului trebuie să se încheie C = timp de execuție / calcul – durata maximă a task-ului ta = timp de apariție – determină momentul în care task-ul este
disponibil pentru execuție
![Page 9: Algoritmi de planificare a proceselor pentru sisteme în timp real - Lucrare de licență -](https://reader036.fdocumente.com/reader036/viewer/2022082418/5681576c550346895dc50f6c/html5/thumbnails/9.jpg)
ALGORITMUL RATE MONOTONIC (RM)
Prezentarea algoritmului: - Asignarea priorităților se face în funcție de rata fiecarui task;
- Unui task cu o rată mai mare i se atribuie o prioritate mai mare;
U = Utilizarea = 0.693 (Liu și Leyland)
1
2 1m
mi
i i
CU m
P
Unde Ci este timpul de calcul, iar Pi este perioada de realizare
Dacă U < 0.693 planificabilitatea este garantată;
Task-urile pot fi planificate chiar dacă U > 0.693.
![Page 10: Algoritmi de planificare a proceselor pentru sisteme în timp real - Lucrare de licență -](https://reader036.fdocumente.com/reader036/viewer/2022082418/5681576c550346895dc50f6c/html5/thumbnails/10.jpg)
ALGORITMUL EDF (Early Deadline First)
Prezentarea algoritmului:
- Algoritm cu prioritate dinamică- Prioritățile sunt asignate în funcție de deadline:
- procesul cu deadline-ul cel mai devreme, are prioritate mai mare;- procesul cu deadline-ul mai tarziu, are prioritate mai mică;
Analiza funcționarii:
- Utilizarea cozilor de sarcini;
- Este optim pentru programarea monoprocesor a unui set de sarcini periodice;
- Condiția suficientă, dar nu și necesară este:
1
1m
i
i i
CU
P
![Page 11: Algoritmi de planificare a proceselor pentru sisteme în timp real - Lucrare de licență -](https://reader036.fdocumente.com/reader036/viewer/2022082418/5681576c550346895dc50f6c/html5/thumbnails/11.jpg)
Algoritmul LLF (Least Laxity First)
Prezentarea algoritmului:
- Prioritate dinamică- Optim pentru sisteme cu task-uri periodice în timp real
Analiza funcționarii: - Se utilizează cozile de sarcini - Prioritățile se alocă pe baza “relaxării”
L = (di - ti) - c`i
![Page 12: Algoritmi de planificare a proceselor pentru sisteme în timp real - Lucrare de licență -](https://reader036.fdocumente.com/reader036/viewer/2022082418/5681576c550346895dc50f6c/html5/thumbnails/12.jpg)
TESTAREA ALGORITMIILOR DE PLANIFICARE
Aplicația STORM - este un instrument de planificare, testare și simulare a proceselor RT
- este oferit gratuit- limbajul de programare Java
Analiza funcționării:- are implementat un motor de simulare a proceselor- algoritmi implementați (EDF, FP, RR, LLF etc)- suport pentru task-uri periodice și aperiodice
- rezultatele și planificarea sunt evidențiate prin diagrame Gantt - parametri proceselor sunt introduși de utilizator intr-un fișier
.xml care va fi apoi executat, rezultând diagramele Gantt
![Page 13: Algoritmi de planificare a proceselor pentru sisteme în timp real - Lucrare de licență -](https://reader036.fdocumente.com/reader036/viewer/2022082418/5681576c550346895dc50f6c/html5/thumbnails/13.jpg)
Se va testa un set de 5 procese periodice, având fiecare un set de parametri după cum urmează:
•period = perioada•activationDate = timpul de activare•WCET = Wrost Case Execution Time = cât de mult poate dura în cel mai rau caz un proces•Priority = prioritatea•Deadline = momentul limită până când trebuie terminat procesul
TESTAREA ALGORITMIILOR DE PLANIFICARE
Parametri T1 T2 T3 T4 T5
period 10 9 6 8 15
activationDate 0 2 4 8 10
WCET 4 3 2 2 3
priority 1 1 1 1 1
deadline 10 9 6 8 12
![Page 14: Algoritmi de planificare a proceselor pentru sisteme în timp real - Lucrare de licență -](https://reader036.fdocumente.com/reader036/viewer/2022082418/5681576c550346895dc50f6c/html5/thumbnails/14.jpg)
Algoritmul EDF pentru un sistem monoprocesor
![Page 15: Algoritmi de planificare a proceselor pentru sisteme în timp real - Lucrare de licență -](https://reader036.fdocumente.com/reader036/viewer/2022082418/5681576c550346895dc50f6c/html5/thumbnails/15.jpg)
Algoritmul EDF pentru un sistem multiprocesor
![Page 16: Algoritmi de planificare a proceselor pentru sisteme în timp real - Lucrare de licență -](https://reader036.fdocumente.com/reader036/viewer/2022082418/5681576c550346895dc50f6c/html5/thumbnails/16.jpg)
Algoritmul Round-Robin pentru un sistem monoprocesor
![Page 17: Algoritmi de planificare a proceselor pentru sisteme în timp real - Lucrare de licență -](https://reader036.fdocumente.com/reader036/viewer/2022082418/5681576c550346895dc50f6c/html5/thumbnails/17.jpg)
Algoritmul Round-Robin pentru un sistem multiprocesor
![Page 18: Algoritmi de planificare a proceselor pentru sisteme în timp real - Lucrare de licență -](https://reader036.fdocumente.com/reader036/viewer/2022082418/5681576c550346895dc50f6c/html5/thumbnails/18.jpg)
CONCLUZII
planificarea multiprocesor oferă mai multe avantaje decât cea monoprocesor din punct de vedere al utilizării per procesor algoritmul EDF oferă o planificabilitate mai bună avantajul acestui algoritm este că folosește resursele la capacitate maximă algoritmul EDF este implementat pe cateva sisteme distribuite în timp-real: Hartik, Shark , Erika , Spring EDF permite o mai bună explorare a resurselor și poate îmbunatăți performanțele unui sistem RT
Round – Robin
Round-robin asigură partajarea echitabilă a resurselor sistemului între procese; Procesele scurte se pot termina într-o singură cuantă, obţinându-se astfel un timp de răspuns bun; Procesele lungi au nevoie de mai multe cuante de timp, ciclând în coadă până când se termină;
EDF
![Page 19: Algoritmi de planificare a proceselor pentru sisteme în timp real - Lucrare de licență -](https://reader036.fdocumente.com/reader036/viewer/2022082418/5681576c550346895dc50f6c/html5/thumbnails/19.jpg)
Vă mulțumesc !