Sunteți pe pagina 1din 25

Sisteme in timp real si distribuite (STRD)

Cap.3 Elemente de planificare a executiei proceselor

Sisteme in timp real si distribuite 2010-2011 E.Borcoci

ELEMENTE DE PLANIFICARE A EXECUTIEI PROCESELOR

1.1 NOTIUNI DE PROGRAMARE CONCURENTA 3 1.1.1 Procese secventiale 3 1.2 GRAFUL SITUATIILOR PROCESELOR INTR-UN SISTEM DE OPERARE 4 1.2.1 Graf general al situatiilor proceselor 4 1.2.2 Exemplu: Graful situatiilor proceselor intr-un sistem de operare UNIX 6 1.3 PRINCIPII DE PLANIFICARE A EXECUTIEI PROCESELOR IN SISTEMELE DE OPERARE IN TIMP REAL 1.3.1 Structura de principiu a unui planificator 8 1.3.2 Mecanisme de planificare pe termen scurt 9
1.3.2.1 Elemente ce determina variantele de metode de planificare: 1.3.2.2 Planificatoare fara prioritati 1.3.2.2.1 a. Planificarea ciclica (round robin) cu suspendare fortata 1.3.2.2.2 b. Planificarea ciclica cu suspendare mixta 1.3.2.2.3 c. Planificarea ciclica cu diviziune neuniforma si suspendare mixta 1.3.2.2.4 d. Planificarea ciclica folosind numai autosuspendare 1.3.2.2.5 e. Planificarea ciclica cu cicluri multiple (generalizare) 1.3.2.3 Planificatoare cu prioritati 1.3.2.3.1 a. Generalitati 1.3.2.3.2 b. Planificarea cu rata monotona in functie de perioada (RM) 1.3.2.3.3 c. Planificarea cu prioritate maxima pentru cel mai apropiat termen limita (EDF) 1.3.2.3.4 d. Calculul timpului de raspuns in cel mai defavorabil caz in planificarea RM 1.3.2.3.5 e. Planificarea cu rata monotona asociata termenelor limita ( DMPO) 9 10 10 13 14 15 17 17 17 18 21 23 24

Sisteme in timp real si distribuite 2010-2011 E.Borcoci

1 INTRODUCERE 2 IMPLEMENTAREA SUBSISTEMELOR CU COMAND PROGRAMAT N TIMP REAL 3 LEMENTE DE PLANIFICARE A EXECUTIEI PROCESELOR 3.1 Notiuni de programare concurenta
3.1.1 Procese secventiale
Asa cum s-a prezentat in cap.2 un proces secvential este o generalizare a unei masini cu numar finit de stari. In practica un proces este un program in executie impreuna cu datele si stiva asociate.Un program concurent este o colectie de procese (taskuri) executate (logic) in paralel. In implementarea proceselor paraleleismul poate fi fizic sau virtual (obtinut prin intercalarea in timp a fazelor de executie ale mai multor procese.Mai exact, procesele pot sa fie executate : a. prin multiplexare in timp pe un monoprocesor(paralelism virtual) b. prin multiplexare fizica sau in timp pe un sistem multiprocesor (paralelism fizic si/sau virtual), avand acces la o memorie comuna c. prin multiplexare pe mai multe procesoare care nu au o memorie comuna (retea de procesoare sau sisteme distribuite) d. solutii combinate din a, b, c. In fig. 1.1 este reprezentata viata unui proces.

Inexistent

Creat

Initializat

Executabil

Terminat

Figura 3-1 Ciclul de viata al unui proces Un proces poate fi terminat chiar daca nu a fost executat. Starea de executabil arata ca procesul poate fi pus in executie din punctul sau de vedere daca are un procesor disponibil.

Sisteme in timp real si distribuite 2010-2011 E.Borcoci

3.2 Graful situatiilor proceselor intr-un sistem de operare


Din punct de vedere al OS un proces secvential se poate afla intr-una din mai multe situatii: inexistent (neinstalat), creat (initializat) , in executie, suspendat din cauza lipsei unitatii centrale de prelucraree, blocat in asteptarea scurgerii unui interval de timp sau eveniment, terminat, etc. Tranzitiile procesului intre aceste situatii se fac prin proceduri ale OS , folosind apeluri de sistem initiate de procesul insusi sau de catre alte procese.

3.2.1 Graf general al situatiilor proceselor


Urmatorul graf este de principiu, ilustrand principalele situatii in care se poate afla un proces secvential (PS). Diverse OS in functie de complexitatea si obiectivele lor pot avea ca graf un subset al acestuia sau dimpotriva unul mai complex. Obs.: Cand nu se specifica altfel, vom considera in continuare prin termenul de proces o instantiere a acestuia. Consideram urmatoarele situatii ale unui proces: - neinstalat (NI) : PS este rezident pe un suport de memorie externa ( sau in memoria principala MP dar executivul nu cunoaste despre existenta acestuia). Aceasta nu constituie de fapt o stare propriu-zisa d.p.d.v. al Executivului ci este considerata numai ca referinta de start pentru crearea procesului. - instalat, inactiv (I): PS a fost creat printr-un mecanism oarecare (de regula la initiativa unui alt proces; primul proces al sistemului este creat prin initializarea speciala executata la incarcarea sistemului). PS este inactiv in sensul ca nu este gata de executie. La instalare (creare) se aloca pentru proces: - memorie pentru codul programului, date proprii, stiva. Uneori codul programului este acelasi cu cel al altui proces (cazul replicilor aceluiasi proces). - un vector de stare (bloc de control al procesului BCP) structura de date generalizata accesibila executivului si in care sunt inscrise informatii asupra procesului: - identitatea PS (un numar) - prioritatea ( daca e cazul) - starea procesului ( d.p.d.v. al executivului) - informatii de sistem pentru manevrarea procesului (adrese de legatura, contoare de timp, informatii privind resursele folosite de proces ca de ex. fisiere deschise, etc. La instalare se face si initializarea variabilelor procesului. Executivul mentine un tabel de procese si informatii auxiliare pentru manevrarea acestora. La terminarea procesului se face dealocarea memoriei alocate si actualizarea tabelelor sistemului. In sistemele simple memoria poate fi alocata fix intre mai multe procese.In acest caz resursele de memorie alocate unui proces vor fi tot timpul rexervate indiferent daca procesul este activ din punct de vedere al executivului sau nu. - Gata de executie ( READY) PS se afla intr-o, coada de asteptare a executiei pe CPU. El are toate resursele disponibile mai putin CPU - in Executie (RUN) procesul se afla in executie pe CPU. Planificatorul executivului determina politica de planificare si deci timpul alocat pentru executie fiecarui proces. Exista mai multe moduri de executie: - prin rotatie (ciclic) cu diviziune uniforma sau neuniforma a timpului intre PS - dupa prioritati in mod preemptiv sau non-preemptiv Sisteme in timp real si distribuite 2010-2011 E.Borcoci 4

metode combinate: de ex. prioritati pe mai multe nivele si politica ciclica pe fiecare nivel.

- Blocat (B) in asteptare producerii unui eveniment sau scurgerii unui interval de timp. PS poate trece in aceasta situatie fie la initiativa proprie sau la initiativa altui proces, daca acela are drepturi de a-l bloca pe cel in cauza. - terminat (T) PS a fost terminat. El nu mai exista , cu exceptia, uneori, a unei urme a sa in procesul parinte. De ex. in sistemul UNIX, dupa terminarea unui PS , acesta isi poate pastra inregistrarea sa ca atare in tabelul de procese al nucleului, dar nu dispune de vreo alta resursa. Tranzitiile PS dintr-o situatie in alta se fac: - voluntar la initiativa PS care executa pentru aceasta un apel de sistem; - fortat la initiativa planificatorului ( ex. expirarea unei cuante de timp alocate pentru o faza de executie a procesului) sau a altor procese
autoblocare deblocare Blocat blocare terminare activare Instalat Terminat Gata suspendare terminare exit executie Executie

creare

Neinstalat

tranzitie fortata tranzitie voluntara

Figura 3-2 Graful general al situatiilor proceselor intr-un sistem de operare Tranzitiile voluntare au loc numai in cazul in care Ps este in executie. In rest tranzitiile sunt fortate datorate OS sau altor procese de utilizator. Activarea PS Un PS initiat este activat de catre un alt proces. El este trecut in starea Gata si pentru aceasta este adaugat la o coada de asteptare a proceselor gata de executie asociata nivelului sau de prioritate. In aceasta situatie singura resursa ce lipseste procesului este CPU. Tranzitii Gata- Executie PS este pus in executie conform politicii de planificare, atunci cand ii vine randul in coada de asteptare. Un PS este suspendat de catre planificatorul OS la terminarea cuantei de timp sau se autosuspenda dupa terminarea unei faze a sa de executie. El va fi reinscris, conform prioritatii sale, intr-o coada (asociata starii Gata ) a proceselor gata de executie. PS va fi pus din nou in executie intr-un moment de timp (sau ciclu) urmator. Blocarea si deblocarea unui proces Sisteme in timp real si distribuite 2010-2011 E.Borcoci 5

Un PS aflat in executie se poate autobloca (pentru a nu ocupa CPU in mod inutil), pana la aparitia unui eveniment sau expirarea unui anumit interval de timp, prin executarea unui apel de sistem. Un proces aflat in starea gata poate fi blocat de un altul aflat in executie , daca acesta din urma are drepturile necesare si daca el a detectat o conditie care impune blocarea primului. Deblocarea unui proces se face de catre OS sau alt proces in momentul detectarii indeplinirii conditiilor de deblocare. Tranzitii spre starea Terminat Un PS aflat in executie poate fi terminat la initiativa proprie si executa pentru aceasta un apel exit, prin care informeaza OS despre acest lucru. Se face dealocarea resurselor pentru acest proces. In principiu un proces aflat in starile blocat sau gata ar putea fi terminat (daca este cazul) si la initiativa altor procese, daca acestea au drepturile necesare. Un apel al executivului ( de sistem) facut de un PS aflat in executie se poate termina prin: - return la PS apelant, - blocarea sau suspendarea ( dupa caz) PS apelant si punerea in executie de catre planificator, a altui proces din lista proceselor gata de executie.

3.2.2

Exemplu: Graful situatiilor proceselor intr-un sistem de operare UNIX

Vom exemplifica principiile de mai sus prin graful situatiilor proceselor intr-un sistem de operare UNIX, fara a intra in detalii legate de varianta particulara de sistem.

In mem externa

READY Ready suspended

In mem interna

Wait suspended

Wake up

Terminated

Swap out sleep Wake up Ready execute

exit Interrupt Run(K)

Wait, Asleep

preempt Ready preempted activate Created return

return

Apel sistem

Run(U) RUN

Creare prin apelul fork tranzitie fortata tranzitie voluntara

Figura 3-3 Graful situatiei proceselor intr-un sistem de operare generic UNIX Sisteme in timp real si distribuite 2010-2011 E.Borcoci 6

Cu exceptia unui proces initial toate procesele sunt create printr-un apel special de sistem numit fork. Ca urmare a acestui apel de catre un proces parinte, se duplica zona de cod, date si stiva ale parintelui si se creaza inregistrarea procesului fiu in zonele de date ale sistemului. In mod frecvent, apelul fork este urmat de un alt apel numit exec prin care codul de program al fiului se inlocueste cu altul diferit de cel al parintelui, rezultand un proces diferit ca actiune de cel al parintelui. Daca in memoria interna exista loc suficient atunci PS creat intra in starea Ready, iar daca nu, atunci el este memorat in memoria externa (pe disc) prin actiunea numita swap (starea Ready suspended). Executia unui proces se poate face cu doua nivele de prioritate: - in mod nucleu ( Run K) caz in care procesul a apelat o functie de sistem si are acces la date de sistem ale nucleului care sunt protejate , - in mod utilizator (RunU) caz in care procesul are acces numai la datele proprii. In graful din figura nu exista toate tranzitiile din graful de principiu, in schimb exista altele in plus. De exemplu, procesele in asteptare (autoblocate prin apelul sleep()) pe conditii de evenimente sau timp pot fi trecute temporar pe disc, pentru a nu incarca memoria interna in mod inutil. Deblocarea unui PS se face prin functia wake up, executata de sistem atunci cand apare evenimentul specificat, in asteptarea caruia s-a produs blocarea. La deblocare PS trece in coada Ready asociata prioritatii lui. Planificarea executiei proceselor se bazeaza pe prioritati si cuante de timp alocate pentru executie. Masurarea timpului se face cu ajutorul unor intreruperi periodice (aprox. 60 de intreruperi /s).La fiecare intrerupere periodica (de ceas), procesul in executie in mod utilizator este trecut in modul nucleu si se executa in continuare rutina planificatorului (handler de intreruperi). Daca planificatorul decide ca va trebui pus in executie alt proces, atunci cel intrerupt va fi trecut in starea Ready- preempted si se va pune in executie noul proces.

Sisteme in timp real si distribuite 2010-2011 E.Borcoci

3.3 Principii de planificare a executiei proceselor in sistemele de operare in timp real


Planificatorul de procese este unul dintre programele importante ale oricarui sistem de operare multiproces. El determina ordinea temporala si duratele de executie ale proceselor. Intr-o structura monoprocesor, unitatea centrala de prelucrare (CPU) este alocata succesiv diverselor procese, conform politicii de planificarea adoptate (vezi graful situatiilor proceselor).

3.3.1 Structura de principiu a unui planificator


-tipuri de cozi de procese necesare pentru planificare coada de job-uri (procese) - multimea tuturor proceselor din sistem coada proceselor in starea ready-to-run - multimea tuturor proceselor rezidente in memeoria principala asteptand executia (le lipseste resursa CPU) cozi de asteptare la dispozitive I/O - multimea care asteapta pentru a efectua operatii I/O . Procedurile planificatorului transfera procesele intre aceste cozi.

planificare pe termern lung (activare) creare (enter) JOB-Q

suspendare

planificare pe termen scurt (lansare in executie) CPU terminare (end)

RDY-Q terminarea unei operatii I/O operatie I/O WAIT-I/O--Q

proces in executie pe CPU

cerere de acces la operatie I/O

Figura 3-4 Cozile asociate planificatorului JOB-Q coada de job-uri in asteptarea activarii RDY-Q coada proceselor instalate in memoria principala, in asteptarea executiei pe CPU (pot fi mai multe cozi logice cu prioroitati diferite) WAIT-I/O-Q - coada proceselor in asteptarea accesului la operatii I/O Planificarea : pe termen scurt - (short term scheduling-STS) selectarea procesului urmator care va intra in executie pe CPU -STS invocat frecvent ( ms) trebuie sa fie rapid - STS- executa comutarea de context (context switch) - salvarea vectorului de stare ( ex.: starea principala a procesului, valorile registrelor din CPU, valoarea contorului de program, informatii asupra resurselor alocate si fisierelor deschise, prioritatea, etc.) al procesului suspendat temporar- pentru a putea fi reluat mai tarziu Sisteme in timp real si distribuite 2010-2011 E.Borcoci 8

- restabilirea vectorului de stare al procesului urmator repus in executie - timpul consumat cu comutarea de context = overhead trebuie sa fie cat mai mic in comparatie cu cel consumat cu prelucrarile propriu-zise; depinde de hardware pe termen lung (long term scheduling-LTS) selectarea proceselor care intra in coada RDY-Q - LTS - invocat relativ rar (secunde) poate fi mai lent - LTS controleaza gradul de multiprogramare al sistemului Viteza de lucru a unui proces: -(cazul - I/O bound process) limitata de timpul de acces la I/O procesul consuma mai putine resurse CPU si mai multe resurse I/O -(cazul - CPU bound process) limitata de timpul de acces la CPU procesul consuma multe resurse CPU (pentru calcule efective) si efectueaza mai putine operatii I/O.

3.3.2 Mecanisme de planificare pe termen scurt


3.3.2.1 Elemente ce determina variantele de metode de planificare:
Nota: vom face distinctie intre activarea unui proces semnificand trecerea sa in starea ready si activarea executiei sau punerea in executie a sa pe CPU ( tranzitia ready -> run) a. metoda de activare a executiei proceselor: periodica: - cu diviziune uniforma a timpului intre procese - cu diviziune neuniforma a timpului intre procese - asincrona procesele sunt activate la detectarea anumitor evenimente observate de catre alte procese ; diviziunea timpului intre procese este implicit neuniforma. b. modul de suspendare temporara a executiei unui proces: - voluntara - la initiativa procesului, care executa pentru asta un apel special al unei functii de sistem - fortata - la initiativa OS sau a altor procese, daca : - a expirat timpul (cuanta de timp curenta de executie ) alocat acestui proces, - este necesara punerea in executie a unui alt proces prioritar; deci procesul curent trebuie temporar suspendat. c. prioritati ale proceselor: fara prioritati, cu prioritati alocate proceselor : fixe sau variabile dinamic (in timpul executiei) d. numarul total al instantierilor de proces aflate in starea gata de executie sau executie : fix sau variabil. Notatii generale

Nota generala: cand nu se specifica altfel, vom denumi instantierea unui proces, pe scurt proces. Date de proiectare: T minimum time between two process releases intervalul minim intre doua cereri succesive de punere in executie a unui proces. In cazul proceselor strict ciclice T este perioada de activare a executiei unui proces - caz tipic in sistemele de telecomunicatii. J release jitter - fluctuatia momentelor de activare a unui proces, masurata fata de un set de momente periodice D- deadline- termenul limita (admisibil) de generare a raspunsului din momentul modificarii unei intrari. Sisteme in timp real si distribuite 2010-2011 E.Borcoci 9

N numarul de procese din sistem aflate in starea Ready sau Run P- prioritatea procesului (daca e cazul) Date ce caracterizeaza comportamentul efectiv (in timp) al procesului : B timpul maxim de blocare a unui proces (worst case blocking time) - daca e cazul C timpul maxim consumat de prelucrarile unui proces ( computation time) dim momentul intrarii intr-o faza executie si pana genereaza un raspuns ( cu conditia sa nu fie intrerupt) - in cazul proceselor descrise prin EFSM, executate discontinuu si care la o executie pe CPU efectueaza o singura tranzitie pe graful EFSM, C poate fi durata maxima a unei tranzitii - C poate fi masurat sau estimat analitic prin inspectarea EFSM si a calculelor aferente tranzitiilor I interference time timpul de interferenta cu alte procese (cresterea timpului aparent de calcul al unui proces, fata de timpul propriu C - datorita suspendarilor sale din cauza executarii eventuale a unor procese prioritare ce ruleaza pe acelasi CPU R worst case response time timpul real maxim de raspuns - al unui proces (incluzand si suplimentul de intarziere datorat interferentei cu alte procese) U- utilization ratio gradul e utilizare a CPU de catre un proces ( este in general = C/T daca procesul reuseste a fi pus in executie la intervalele cerute T). Clasificarea proceselor din punct de vedere al necesitatilor de activare a executiei

- periodice : caracterizate in esenta de setul de parametri (T= fix, D, C). Procesul va trebui executat la fiecare T si consuma un timp-CPU maximum = C , iar termenul limita de generare a raspunsului ( consideram aici un caz particularizat al lui D si anume D este masurat din momentul punerii in executie a procesului, in fiecare ciclu T) - aperiodice ( sporadice) - cu executie activata de evenimente care apar aperiodic la intervale variabile T; in acest caz T > 0 va fi considerat limita inferioara a intervalelor T adica T = min ( T) si astfel vom avea acelasi set T, C, D care caracterizeaza necesitatile procesului. Deci o activare periodica aexecutiei procesului la intervale T poate satisface in principiu conditiile de timp real pentru intervale oarecari T > T. Exemplu: un proces periodic primeste cadre video la fiecare T = 40 ms (25 cadre pe secunda), comprima fiecare cadru intr-un timp maxim C=10 ms si trebuie sa livreze cadrul comprimat intr-un timp D = 15 ms catre un proces de transmisie in retea.

3.3.2.2

Planificatoare fara prioritati


3.3.2.2.1 a. Planificarea ciclica (round robin) cu suspendare fortata

a.1 Metoda de planificare - cel mai simplu mod de planificare, fara prioritati, cu alocare fixa a timpului - fiecare proces doreste executie continua, dar el exte multiplexat in timp cu alte procese de catre planificator - activare a executiei ciclica, cu perioada T pentru N procese independente (N = fix) - suspendare fortata a procesului curent in executie, la expirarea unei cuante de timp alocate - diviziunea timpului intre procese este uniforma Sistemul are un ciclu de baza T divizat in N cuante de timp de dimensiune T/N. Fiecare proces primeste cate o cuanta de timp pentru executia unei faze ale sale, dupa care este suspendat in mod fortat de planificator. Planificatorul este activat la fiecare T/N, prin de exemplu prin intreruperi periodice (IP) ale unui ceas de timp real. Sisteme in timp real si distribuite 2010-2011 E.Borcoci 10

Planificatorul executa in intervalul de timp tex , suspendarea procesului curent si comutarea de context, adica : - salvarea conextului pentru procesul curent ce va fi suspendat (in vederea reluarii sale ulterioare). Un exemplu de context minim ar fi valorile registrelor CPU in momentul intreruperii procesului. Salvarea se poate face de ex. in stiva privata a procesului sau in alte zone speciale din memorie. Unele procesoare au instructiuni speciale la nivel assembler pentru a facilita comutarea de context - comutarea pe alt proces ( determinarea noului proces de pus in executie) - restabilirea contextului procesului urmator, inainte de a-l relua - repunerea in executie a noului proces.
T
t ex -P0IP T/N NEXT -P1-

..

-P(N-1)-

-P0-

Ready
PREEMPT

Run

- Pi Reluarea, executia, suspendarea lui P i

Figura 3-5 Activitatea in timp a planificatorului cu suspendare fortata a. diagrama de timp b. graful de tranzitii c. activitatea planificatorului pentru executia unui proces In figura 1-4 se prezinta activitatea in timp a sistemului. Pentru o buna eficienta este necesar sa existe relatia : tex << T/N Din graful de tranzitii al situatiilor proceselor intr-un se implementeaza de catre acest planificator doar starile Ready si Run. Tranzitiile intre stari sunt PREEMPT pentru suspendarea unui proces si NEXT pentru punerea in executie a urmatorului. Fiecare proces este executat cu o discontinuitate T. Aceasta nu trebuie sa fie deranjanta la scara de timp a procesului. Valoarea T trebuie considerata la proiectare si comparata cu intervalele de timp ale modificarilor intrarilor si cerintele de timp ale fiecarui proces, in functie de metoda prin care se citesc intrarile aferente procesului. Procesul este intrerupt dupa expirarea cuantei de timp T/N si repus in executie cu perioada T. a.2 Timpul de raspuns al procesului de timp real a.2.1 Evolutia procesului - asincrona relativ la ciclul de planificare - fie un proces Pi cu executie continua avand ciclul de lucru: repeat forever { Citirea intrarilor; faza (I) Prelucrari; faza P Generarea iesirii; faza (O) } Timpul consumat pentru fazele I si O este aproximativ zero (la o buna proiectare este mult mai mic decat C ). Timpul maxim consumat cu prelucrarile este C (vezi notatia generala). - daca procesul Pi ar fi executat singur atunci timpul de raspuns maxim la modificarea unei intrari ar fi R =2C ( vezi cursul 2) Sisteme in timp real si distribuite 2010-2011 E.Borcoci 11

- daca Pi este executat eriodic la fiecare T avand pentru executie cate o cuanta de timp de durata c = T/N , atunci timpul de raspuns maxim creste semnificativ. Problema: a. Sa se arate ca daca c < C atunci la cresterea lui N nu se poate satisface o conditie limita R < D indiferent de valoarea fixata a lui D, deci procesul nu poate fi de timp real b. Conditia normala este c > C ( de ce?). Sa se arate ca in acest caz vom avea R < T + 2C indiferent de valoarea lui N deci procesul poate satisface o valoare limita de timp real D T + 2C. c. Care este timpul minim de raspuns ( in cazul cel mai favorabil), daca c > C ? a.2.2 Evolutia procesului este ciclica, sincronizata relativ la ciclul de planificare - in acest caz la punerea in executie a lui Pi se incepe cu faza I, iar dupa o executie I.P,O se asteapta activarea urmatoare. - consideram C < c < 2C. Sa se arate ca in acest caz R T + C. -concluzie: metoda de planificare prezentata nu permite un timp de raspuns limita D < T, cee ce constituie un dezavantaj. a.3 Elemente de implementare a planificatorului Structura de date a planificatorului contine: lista proceselor de executat. In cazul nostru fiind fixa, ea poate fi memorata intr-un tablou sau chiar incorporata in algoritmul de planificare ( bucla cu N parcurgeri) fara a mai avea o structura de date separate. In caz general lista este o coada de asteptare a intrarii in executie. cate o stiva pentru fiecare proces ( am presupus ca salvarile de context se fac in stive) blocurile de control ale proceselor BCPi , i = 0,.. N-1 care contin informatii ca: numarul procesului, adresa de baza a stivei, adresa varfului curent al stivei, adrese de legatura, contori proprii procesului, etc.

Algoritmul simplificat de planificare este dat de catre pseudocodul: (Expirare de timp = IP) -> PREEMPT: Salveaza context P curent in stiva acestuia (inscrie P in coada Q-RDY a proceselor gata de executie)* NEXT: (Extrage indicele urmatorului proces din Q-RDY)* Comuta pe stiva urmatorului proces Restabileste contextul acestuia Pune in executie procesul Obs.: marcajul * semnifica : daca este cazul, - adica daca s-a organizat o structura de coada a proceselor gata de executie. Algoritmul se poate simplifica in cazul listei fixe de procese daca se construieste un ciclu cu N parcurgeri, pentru a pune succesiv in executie fiecare proces. a.4 Avantaje si dezavantaje ale metodei Avantaje: simplitate, PS se pot programa arbitrar- fara nici o restrictie, nici un proces nu poate acapara CPU din proprie initiativa sau din eroare. Dezavantaje: planificare rigida, fara prioritati, ce nu tine seama de necesitatile specifive ale proceselor, deci ineficienta pentru procese cu cerinte de timp foarte diferite. Timpul maxim de raspuns la modificarile intrarilor unui proces este superior lui T. Se presupune apriori ca toate procesele au cerinte de timp comparabile cu T. Timpul de calcul al CPU este utilizat ineficient deoarece orice proces primeste o cuanta de timp c = T/N la fiecare T indiferent ca are sau nu nevoie efectiva de acest timp. Sisteme in timp real si distribuite 2010-2011 E.Borcoci 12

3.3.2.2.2

b. Planificarea ciclica cu suspendare mixta

- imbunatatirea utilizarii timpului de procesor in metoda precedenta, prin admiterea autosuspendarilor in cazul in care un proces nu doreste (din motive proprii) sa-si utilizeze in intregime cuanta de timp alocata de planificator; suspendarea devine mixta - se creaza posibilitatea servirii proceselor aperiodice ( sporadice) . Daca perioada T este suficient de mica pentru a determina un timp de raspuns acceptabil, atunci procesul sporadic va fi activat in executie cel putin odata in fiecare ciclu; in caz ca nu exista evenimente relevante procesul sporadic se va autosuspenda cedand timpul sau altui proces. - la graful din figura 2.b se adauga la procedura PREEMPT o procedura WAIT ( apel de sistem prin care un proces pus in executie cere autosuspendare pana in ciclul T urmator) figura 3.
a
Ready
PREEMPT WAIT T/N NEXT

Run

tranzitie fortata tranzitie voluntara

- Pi .
WAIT

- P i+1 -

timp disponibil prin autosuspendarea lui P i

Figura 3-6 Activitatea in timp a planificatorului cu suspendare mixta a. graful de tranzitii b. activitatea planificatorului pentru autosuspendarea procesului Pi - timpul disponibil rezultat din autosuspendarea unui proces se poate aloca: a. unui proces de baza executat in toate intervalele disponibile b. se adauga la timpul alocat procesului urmator Pi+1. Acesta va primi desigur in continuarea intervalului suplimentar cedat de Pi , cuanta de timp T/N ce i se cuvenea de drept. Pseudocodul pentru procedura WAIT (varianta a.): WAIT: Invalideaza intreruperile periodice ; (de ce?) Salveaza context P curent in stiva acestuia (inscrie P in coada Q-RDY a proceselor gata de executie)* Comuta pe stiva procesului de baza PB Restabileste contextul acestuia Pune in executie procesul si revalideaza intreruperile periodice

Problema: Gasiti un pseudocod al procedurii WAIT pentru varianta b. astfel incat sa evitati intreruperea inutila a lui Pi+1 de catre IP, pentru ca apoi sa se puna in executie tot Pi+1 in intervalul ce il are alocat fix. Indicatie: se va construi un ceas de timp real (contor CNT) mai fin, cu ajutorul unor intreruperi periodice IP1 cu perioada T/NK, unde K >>1 este numarul de unitati de timp ale ceasului intr-o cuanta de timp c = T/N. Fiecare IP1 va decrementa contorul CNT cu o unitate intr-o Sisteme in timp real si distribuite 2010-2011 E.Borcoci 13

procedura de servire a IP1. la fiecare conditie CNT =0 (la fiecare K unitati de timp), se va activa procedura de planificare echivalenta lui PREEMPT+NEXT si se repune ceasul CNT=K. In cazul unei autosuspendari, procedura WAIT va adauga valoarea K la valoarea curenta non-zero a lui CNT. Se construieste asfel un interval de timp mai mare pana la ajungerea la 0 a lui CNT, prelungind corespunzator timpul alocat procesului urmator. Exemplu 1. Pseudocodul unui proces care negasind modificari relevante pe intrari se autosuspenda . Citeste intrarile WHILE NOT modificari_relevante { Citeste intrarile WAIT } Prelucrari: .

3.3.2.2.3 c. Planificarea ciclica cu diviziune neuniforma si suspendare mixta c.1 Metoda de planificare - generalizare a metodei precedente, utila atunci cand cerintele de timp de calcul C ale proceselor sunt inegale - cuantele de timp alocate proceselor sunt inegale fiecare proces primeste in ciclul T o cuanta de timp ci = ni TIP, unde TIP este o perioada a unor intreruperi periodice folosite pentru masurarea timpului. - vom avea relatia
N-1

= T (1) i i=0 unde T este ciclul sistemului de planificare - suspendarea unui proces se face fortat la expirarea cuantei sale sau prin autosuspendare daca nu doreste a utiliza in intregime cuanta alocata - momentele de suspendare pot fi generate cu ajutorul unui temporizator (cronometru) al planificatorului care se initializeaza cu ni in momentul activarii executiei procesului si scade cu o unitate la fiecare TIP ; expirarea temporizatorului activeaza executia procedurii de planificare. Aceasta executa actiunile descrise in paragraful a. si pune in executie urmatorul proces.

c0

T t

P0

P1

P2

PN-1

P0

activarea procedurii de planificare

Figura 3-7 Planificarea ciclica cu diviziune neuniforma Sisteme in timp real si distribuite 2010-2011 E.Borcoci 14

c.2 Variante de implementare: 1. Evolutia procesului - asincrona relativ la ciclul de planificare; in acest caz planificatorul aloca cuante de timp de executie conform planificarii fixe independent de fazele de executie ale proceselor 2. Evolutia procesului - sincronizata relativ la ciclul de planificare - adica fiecare activare a executiei unui proces se face cu fazele I, P, O; in acest caz este natural a presupune ca Ci < ci si dupa efectuarea unei faze I, P, O procesul executa un apel de sistem si se autosuspenda aloca: - in cazul unei autosuspendari atat in cazul 1. cat si in cazul 2. timpul disponibil se poate - procesului urmator - unui proces de baza

c.3 Avantaje si dezavantaje ale metodei Avantaje: aceleasi ca cele de la paragraful b; in plus flexibilitate mai mare Dezavantaje: planificare rigida, fara prioritati. Timpul maxim de raspuns la modificarile intrarilor unui proces este superior lui T. Se presupune apriori ca toate procesele au cerinte de timp de raspuns comparabile cu T. 3.3.2.2.4 d. Planificarea ciclica folosind numai autosuspendare d.1 Metoda de planificare - simplificare a metodelor precedente posibila datorita ipotezei: fiecare proces executa la o activare a executiei sale o secventa de actiuni limitata in timp, dupa care se autosuspenda (de exemplu procese descrise prin EFSM si care executa la o activare a executiei doar cate o singura tranzitie intre doua stari principale) - se renunta la suspendarea fortata - salvarea de context se simplifica (poate fi executata in mare parte in proces, inainte de a se autosuspenda) Ipoteze de lucru: - perioada T de activare a executiei pentru fiecare proces - conditie de planificabilitate: N-1 tpi max = Ci < T (2) i=0 unde tpi max este timpul maxim de executie al unei faze (tranzitii) la o activare a executiei procesului Pi - conditie de timp real pentru citirea intrarilor asociate proceselor:

T < TI min

(3)

unde TI min este intervalul minim de timp intre doua modificari succesive ale celei mai rapide intrari (in multimea tuturor proceselor)

Sisteme in timp real si distribuite 2010-2011 E.Borcoci

15

T <T
P0 IP autosuspendari timp disponibil P1

..

P(N-1)

P0

Figura 3-8 Diagrama de timp a executiei proceselor d.2 Elemente de implementare a planificatorului Procedura de planificare ciclu cu N parcurgeri; la fiecare parcurgere se apeleaza o procedura echivalenta procesului curent Initializari: for i =0 to N-1 { Initializeaza variabilela principala de stare a procesului Pi : Si = 0 ; Initializeaza variabilele auxiliare; Valideaza intreruperile periodice;} repeat forever { Proces_de_baza: PB } La fiecare intrerupere periodica executa procedura de servire a cererii de intrerupere (SCI). PRi este o procedura asociata procesului Pi . La fiecare activare PRi conform intrarii curente asociate lui Pi si starii principale curente executa tranzitia corespunzatoare pe graful procesului Pi . SCI: Salveaza contextul lui PB for i =0 to N-1 { Call PRi } Restabileste contextul pentru PB Valideaza intreruperile periodice; Return PRi : Prelucrari comune ; /*citirea intrarilor, etc.*/ Determina starea principala curenta Prelucrari asociate starii curente Return

Nota: in loc de Return la PB se poate utiliza varianta Wait_for_interrupt. In implementare se poate folosi o stiva unica pentru toate procesele. d.3 Avantaje si dezavantaje ale metodei Avantaje: - simplitate, viteza de executie mare - flexibilitate: fiecare proces foloseste procesorul atat cat are nevoie dupa care se autosuspenda - eficienta utilizarii timpului de procesor Dezavantaje: - timpul maxim de raspuns la modificarile intrarilor unui proces este comparabil cu T - nivel de protectie redus: un proces poate acapara procesorul daca are un ciclu infinit in interior (erori) sau daca isi depaseste timpul maxim alocat prin proiectare. Remediu: combinarea autosuspendarii cu suspendarea fortata la atingerea unui termen limita alocat unei executii a unui proces; astfel se realizeaza protectia planificatorului in raport cu tentativele unui proces de a acapara procesorul. Sisteme in timp real si distribuite 2010-2011 E.Borcoci 16

3.3.2.2.5 e. Planificarea ciclica cu cicluri multiple (generalizare)

Oricare dintre metodele precedente pot fi extinse prin definirea unui macrociclu MT cu M cicluri de durata T. Valoarea MT este de fapt perioada de functionare a planificarii. - in interiorul intervalelor T se pot pune in executie diferite procese (dintre cele N) - in cazul suspendarii mixte cuantele de timp alocate pot fi diferite intre procese si de la un ciclu la altul
c00 ciclul 0 T P0 P3 P6 PN-1 P0 P2 c01 ciclul 1 T P5 PN-1 P0 P4 c0M-1 ciclul M-1 T P8 PN-1 t

P0 executat cu perioada T

P1,.. P8 executate cu perioada MT

PN-1 executat in intervalele disponibile

Figura 3-9 Exemplu de planificare ciclica cu diviziune neuniforma - generalizare la mai multe nivele de macrocicluri - posibila

3.3.2.3

Planificatoare cu prioritati

3.3.2.3.1 a. Generalitati - multe aplicatii au prelucrari de prioritati diferite -> implica planificare cu prioritati - principiu general : se vor executa mai intai procesele prioritare - prioritati : fixe sau variabile - procesele aflate in starea Ready_to_run vor fi clasificate in mai multe cozi cu prioritati diferite - in fiecare coada se va aplica o politica FIFO pe nivelul respectiv tipuri de planificare: - non-preemtiva( non-intreruptibila) ; un proces neprioritar va fi executat pana la terminarea fazei sale sau cuantei de timp alocate chiar daca int timpul executiei sale apare neceesitatea de activarea a unui prioritar. In scimb procesul prioritar va fi asezat intr-o coada de procese aflate in starea Ready_to_run conform prioritatii sale - preemptiva ( intreruptibila) un proces prioritar necesar a fi executat la un moment dat, intrerupe imediat executia unui neprioritar ( acesta din urma va fi trecut intr-o stare speciala Ready_preempted) - solutie intermediara procesului prioritar aflat in executie i se permite in continuare executia ( chiar daca e necesar a se executa un prioritar) dar pentru un timp limitat Ipoteze: procesele vor cere activare a executiei: - la fiecare T pentru procese periodice ( unde T este perioada necesara de activare a executiei) - la intervale T> T pentru procese aperiodice - termenul limita D al unui proces se masoara din momentul cererii de activare a executiei ( atentie: momentul cererii de activare nu este identic cu activarea efectiva a executiei, care poate fi mai tarziu!!) Sisteme in timp real si distribuite 2010-2011 E.Borcoci 17

proces

- considerand procese de tip periodic si aperiodic rezulta trei stari in care se poate afla un

- in executie - in asteptarea unui eveniment periodic (cererea de activare periodica) - in asteptarea unui eveniment aperiodic (procese aperiodice) - consideram in continuare o colectie de procese periodice si asincrone caracterizare de seturi ( T, C, D) diferite. 3.3.2.3.2 b. Planificarea cu rata monotona in functie de perioada (RM)

T:

Rate Monotonic scheduling prioritatile sunt alocate monoton - invers proportional cu ( Ti > Tk ) (pi < pk ) (5)

unde pk este prioritatea procesului Pk. Exemplu: Proces A B C D Perioada T [ms] 25 60 40 100 Prioritatea 4 2 3 1

unde prioritatea = 1 este minima. -diagrama de timp a executiei va depinde de valorile C si D asociate proceselor precum si de modul de lucru preemptiv sau non-preemptiv a.1 Testul de planificabilitate ( admisibilitate) Problema de proiectare: dat fiind un set de N procese cu parametrii (Ti, Ci, Di) , i = 0..N, se cere sa se afle daca este posibil a planifica aceste procese respectand perioada Ti si termenul limita Di ale fiecaruia Ipoteza simplificatoare : consideram Ti = Di , ipoteza naturala Se poate arata usor ca o conditie necesara de planificabilitate este
N

C i / Ti < 1 (6) i=1 deci daca aceasta nu e satisfacuta , atunci nu exista algoritm de planificare ce poate satisface cerintele impuse pentru toate procesele. Interpretarea sumei este aceea de factor de utilizare al CPU. Se poate arata ca o conditie suficienta de planificabilitate preemptiva este

Uef =

Ci /Ti < N ( 21/N 1) = Umax

(7)

i=1 - in acest caz exista o solutie de planificare preemptiva care satisface conditiile de timp ale tuturor proceselor -la limita cand N , factorul de utilizare maxim 0.69 ceea ce arata ca utilizarea procesorului va fi limitata ( dar deoarece conditia nu este strict necesara se pot gasi solutii de planificare cu indeplinirea lilitelor de timp desi conditia 3.2-7 nu este satisfacuta. Sisteme in timp real si distribuite 2010-2011 E.Borcoci 18

- relatia de mai sus nu ofera si solutia de planificare ( afirma doar existenta ei) a.2 Exemple Exemplul 1 conditia de planificabilitate nu este indeplinita, termene limita- depasite Fie procesele ( task-urile) din tabel Proces A B C Perioada T=D [ms] 30 40 50 C [ms] 10 10 12 Prioritate a 3 2 1 Utilizarea [U] 0.33 0.25 0.24 Uef = 0.82 Umax=0.78

Presupunem cazul cel mai defavorabil in care A,B,C sunt activate simultan la t=0. Diagrama de mai jos arata ca procesul C nu indeplineste conditia de timp

A B 52 C 0 10 20 30 40 50 executie 60 depasire t = 52 !!

proces completat, termen limita indeplinit termen limita neindeplinit momentele dorite de activare a executiei

suspendat (preempted)

Figura 3-10 Exemplu de planificare preemptiva in care procesul C nu indeplineste termenul limita Exemplul 2 planificare preemptiva, conditia de planificabilitate nu este indeplinita, termene limita- respectate! Fie procesele ( task-urile) din tabel Presupunem cazul cel mai defavorabil in care A,B,C sunt activate simultan la t=0. Diagrama de mai jos arata ca desi conditia de planificabilitate nu este indeplinita totusi toate procesele indeplinesc termenele limita. Utilizarea [U] 0.25 0.25 19

Proces A B

Perioada T=D [ms] 20 40

C [ms] 5 10

Prioritate a 3 2

Sisteme in timp real si distribuite 2010-2011 E.Borcoci

80

40

0.5 Uef = 1.0 Umax=0.78

A B

C 0 10 20 30 40 50 60 70 80

proces completat, termen limita indeplinit termen limita neindeplinit momentele dorite de activare a executiei

executie suspendat (preempted)

Figura 3-11 Exemplu de planificare preemptiva in care se indeplineste termenul limita desi conditia suficienta de planificabilitate nu este indeplinita - diagramele de timp pot constitui demonstratii constructive ale solutiilor de planificare in masura in care sunt periodice si se constata intr-o perioada indeplinirea termenelor Exemplul 3 planificare non- preemptiva, conditia de planificabilitate nu este indeplinita, termene limita - respectate! Consideram aceleasi valori ca in exemplul 1 dar cu planificare non-preemptiva. Se observa ca pentru portiunea desenata a diagramei de timp se indeplinesc termenele limita. Implementarea acestui tip de planificare presupune prioritati fixe, deci un sistem de operare ce admite prioritati fixe poate implementa acest planificator ( Windows-NT, Free BSD-Unix, AIX, etc.)

Sisteme in timp real si distribuite 2010-2011 E.Borcoci

20

10 A 10 B 12 C 0 10 20 30 32

10

42

10

74

10 52

54 12

40

50 executie

60

70

proces completat, termen limita indeplinit termen limita neindeplinit momentele dorite de activare a executiei

suspendat (preempted)

Figura 3-12 Exemplu de planificare non- preemptiva in care se indeplinesc termenele limita ( deoarece nu s-a reprezentat o perioada nu avem garantia indeplinirii in viitor a termenelor limita!!)

3.3.2.3.3

c. Planificarea cu prioritate maxima pentru cel mai apropiat termen limita (EDF)

Earliest Deadline First presupune ca procesul care are cel mai apropiat termen limita viitor in raport cu momentul curent va avea prioritate maxima - planificare preemptiva sau non-preemptiva Exemplul 1 varianta preemptiva - presupunem cazul din Exemplul 1, paragraful a. Notatie: Proces (T= D , C) Avem: A( 30, 10), B(40,10), C(50, 12) - conform planificarii propuse termenele limita vor fi: A: 30, 60, 90, 120, B: 40, 80, 120, .. C: 50, 100, 150, Ordonanad valorile intr-un singur sir crescator obtinem: Proces executat termen limita teoretic A 30 B 40 C 50 A 60 B (*) 80 A(**) 90 C 100 A 120 B 120 C . 150.

- secventa de executie practica nu este insa identica cu cea teoretica din cauza valorilor C - de ex. la t= 52 se termina procesul B(*) iar viitorul proces de executat A(**) desi are cel mai apropiat termen limita el nu se va pune in executie deoarece nu I-a venit momentul ( t=60); ca atare se va pune in executie C care trebuia activat ca executie la t= 50. Deoarece A are insa prioritate, la t= 60 C va fi suspendat si se pune in executie A iar la t=70 se continua C a acrui executie se va termina la t= 74. Sisteme in timp real si distribuite 2010-2011 E.Borcoci 21

10 A 10 B 12 C 0 10 20 30 32

10 10 52

10 10

10

40

50

60 executie

70

80

90

100

proces completat, termen limita indeplinit termen limita neindeplinit momentele dorite de activare a executiei

suspendat (preempted)

Figura 3-13 Exemplu de planificare EDF preemptiva in care se indeplinesc termenele limita Exemplul 2 EDF varianta non-preemptiva reluam exemplul de mai sus; in acest caz un proces odata pus in executie trebuie sa-si termine faza sa
A B C A B C A B A

10 A 10 B 12 C 0 10 20 30 32

10 10 52

10

74 10

10

12

64

40

50

60 executie

70

80

90

100

proces completat, termen limita indeplinit termen limita neindeplinit momentele dorite de activare a executiei

suspendat (preempted)

Figura 3-14 Exemplu de planificare EDF non-preemptiva in care se indeplinesc termenele limita - EDF conduce la modificarea dinamica a prioritatilor deci necesita un OS care sa fie capabil sa lucreze astfel ( ex. RT-Mach, Chorus, Spring) - implementare mai complexa decat la RM - optimalitate se poate arata ca daca avem utilizarea totala U < 1, atunci EDF garanteaza toate deadline-urile proceselor Sisteme in timp real si distribuite 2010-2011 E.Borcoci 22

3.3.2.3.4

d. Calculul timpului de raspuns in cel mai defavorabil caz in planificarea RM

- planificare preemptiva RM - pentru procesul cu prioritate maxima avem timpul de raspuns R = C - pentru un proces Pi vom avea o crestere a lui Ri fata de limita inferioara Ci , din cauza interferentelor cu procese prioritare lui Pi care il intrerup intermitent; deci Ri = Ci + Ii , unde Ii este interferenta maxim posibila a lui Pi cu procesele prioritare lui - cazul cel mai defavorabil este acela in care cele N procese sunt activate spre executie simultan - se arata in aces caz ca Ri /Tk Ck

Ri = Ci +

k hp(i)

(8)

- hp(i) semnifica procesele priorotatre fata de Pi , iar x este cel mai mic numar natural superior lui x real. - ecuatia 8 ( de tip ecuatie cu punct fix) este recursiva ; se poate rezolva prin iteratii de forma : Ri, n /Tk Ck

Ri, n+1 = Ci +

k hp(i)

(9)

iar valoarea initiala a lui Ri, 0 = Ci este Ri, 0 = Ci Calculul se opreste atunci cand de la iteratia n la n+1 nu se mai obtin modificari, daca ecuatia are solutie sau creste la infinit daca ecuatia nu are solutie (adica procesul nu e planificabil din punct de vedere al satisfacerii termenului limita.) Exemplu: Fie procesele Proces P1 P2 P3 Perioada T=D [ms] 7 12 20 C [ms] 3 3 5 Prioritate a 3 2 1

P1 are prioritate maxima : R1 = C1 = 3 P2 va fi intrerupt de P1 R2,0 = C2 = 3;

R2,1 = 3 + R2, 0 /T1 C1 = 3 + 3 /7 3 = 6

R2,2 = 3 + R2, 1 /T1 C1 = 3 + 6 /7 3 = 6 P3 va fi intrerupt de P1 si P2 R3,0 = C3 = 5;

R3,1 = 5 + R3, 0 /T1 C1 + R3, 0 /T2 C2= 5 + 5 /7 3 + 5 /12 3 = 11 23

Sisteme in timp real si distribuite 2010-2011 E.Borcoci

R3,2 = 5 + R3, 1 /T1 C1 + R3, 1 /T2 C2= 5 + 11 /7 3 + 11 /12 3 = 14 R3,3 = 5 + R3, 2 /T1 C1 + R3, 2 /T2 C2= 5 + 14 /7 3 + 14 /12 3 = 17 R3,4 = 5 + R3, 3 /T1 C1 + R3, 3 /T2 C2= 5 + 17 /7 3 + 17 /12 3 = 20 R3,5 = 5 + R3, 4 /T1 C1 + R3, 4 /T2 C2= 5 + 20 /7 3 + 20 /12 3 = 20 Problema: trasati diagrama de executie in timp a proceselor intre t= 0 si t = 20 unitati de timp. e. Planificarea cu rata monotona asociata termenelor limita ( DMPO)

3.3.2.3.5

caz

- generalizare pentru perioada T si termenul limita D diferite - in cazul D=T planificarea RM este optimala - daca D T atunci avem D < T, deci conditiile de timp de raspuns sunt mai rerstrictive - se arata ca o alocare a prioritatilor invers proportional cu valorile lui D este optima in acest - metoda se numeste : DMPO = Deadline Monotonic Priority Ordering - optimalitatea DMPO consta in : daca un set de procese Q este planificabil printr-o politica de prioritati oarecare W, atunci prin transformari succesive care conserva planificabilitatea, se poate obtine din politica W , politica DMPO.

Nota: Politica DMPO nu este identica cu EDF desi in multe cazuri produc secvente de executie asemanatoare Exemplul 1: Sa se planifice preemptiv in politica EDF si DMPO urmatoarele procese

Proces

Perioada T=D [ms] 10 15 10

Termen limita D [ms] 9 4 6

C [ms] 4 2 3

Prioritate a DMPO 1 3-maxima 2

A B C

- in acest exemplu toate procesele satisfac termenele limita (vezi diagramele de executie)

Sisteme in timp real si distribuite 2010-2011 E.Borcoci

24

A 9 B 2 C 6 0 5 10 13 15 perioada executiei = 30 suspendat (preempted) executie si raspuns termen limita al unui proces 26 16 20 23 26 25 30 4 19 17 19 27 29

momentele dorite de activare a executiei

Figura 3-15 Exemplu de planificare EDF preemptiva in care se indeplinesc termenele limita

A intrerupt de B

prioritati DMPO
19 1 27 29 3

A 9 B 2 C 6 0 5 10 13 15 perioada executiei = 30 suspendat (preempted) executie si raspuns 16 20 23 26 25 30 4 17 19

diferenta fata de EDF

momentele dorite de activare a executiei

26

termen limita al unui proces

Figura 3-16 Exemplu de planificare DMPO preemptiva in care se indeplinesc termenele limita

Sisteme in timp real si distribuite 2010-2011 E.Borcoci

25

S-ar putea să vă placă și