170 likes | 259 Views
Ştefan Stăncescu. PARTEA II SISTEME DE OPERARE. CURSUL 9 GESTIUNE DE PROCESE. GESTIUNE DE PROCESE. blocat - stare complet inactiva, fara time share stare proces memorata, gata de a fi inclusa in time share activ - stare activa in slot time share
E N D
Ştefan Stăncescu PARTEA IISISTEME DE OPERARE CURSUL 9 GESTIUNE DE PROCESE
GESTIUNE DE PROCESE blocat - stare complet inactiva, fara time share stare proces memorata, gata de a fi inclusa in time share activ - stare activa in slot time share gata - stare inactiva dar pregatita pentru a primi slot in time share
GESTIUNE DE PROCESE • Gestiune de procese: • Politici de alocare slot time share • Dispecer de procese (Dispatcher): • proces prioritar al SO care se ocupa de gestiune de procese “aplicatii” • arbitrarea intre procese in alocarea de time slot
GESTIUNE DE PROCESE • Criterii de apreciere algoritmi de dispecerizare: • fair play • orice proces ia o parte corespunzatoare de CPU • eficienta • CPU ocupat tot timpul • timp de reactie • utilizatorii interactivi sa fie prompt serviti • timp de prelucrare • utilizatorii care cer iesiri sa fie serviti rapid • Productivitate • cresterea numarului de lucrari / unitatea de timp.
GESTIUNE DE PROCESE • Elemente specifice contradictorii ale proceselor, • pentru care dispecerizarea nu poate fi abordata standard: • orice proces are evolutie unica si imprevizibila • (chiar acelasi proces are evolutie diferita • la fiecare reluare de procesare cu alte date) • fiecare proces utilizeaza imprevizibil resurse • in cantitate (numar res.) si calitate (tip res.) • pentru fiecare proces nu se poate estima anterior rularii • aparitia si durata unei autoblocari.
GESTIUNE DE PROCESE • Principala problema: blocajul excesiv pe un proces. • Combatere simpla: ceas 50 Hz (sau la alte intervale) • - la fiecare interval - examineaza stare procese • - decizie pentrucontinuare sau terminareproces crt. • Variante dispecerizare procese: • run to completion - ruleaza tot (batch processing) • unul ia totul si-si controeaza propria evolutie • (cooperative scheduling - fiecare cedeaza) • preemtive seduling - unproces influenteazaevolutia celorlalte - cu dialog intre procese (ex: supervisor). • RT seduling – evolutii de durate autoimpuse, anterior cunoscute
GESTIUNE DE PROCESE – Agoritmi de planficare • Round Robin scheduling • (planificare circulara) • vechi, simplu, fairplay, des utilizat • regula: repartitie democratica a resursei de timp UC: • - orice proces ruleaza acleasi interval de timp – (cuanta comuna, egala pentru orice proces) • - la (a)sfarsit de cuanta sau (b)daca s-a blocat mai inainte sau daca (c)s-a sfarsit mai inainte) procesul • - trece in coada “ready (gata)” si • se alege urmatorul proces coada “ready (gata)”
GESTIUNE DE PROCESE – Agoritmi de planficare • Round Robin scheduling • Dezavantaj: alegerea dimensiuni cuantei unice: • - 5ms: se pierde timp UC (1ms) cu comutare fiecare proces • - 500ms: timp de raspuns mare la activitati interactive • (500ms x 10 procese = 5 s timp de raspuns consola) • Compromisul (100ms) e dificil - inacceptabil pentru toti
GESTIUNE DE PROCESE – Agoritmi de planficare • Priority scheduling (planificare cu prioritati) • orice proces are un nivel de prioritate, procesul cu prioritate maxima ruleaza primul(ar rula nedefinit unul) • =>prioritatea procesului on line se decrementeaza • la CLOCK IT; cand prioritatea lui scade suficient • se alege alt proces. • Prioritatile atribuite proceselor se stabilesc: • -fix – grade:general 100, colonel 90, maior 80, capitan 70 etc. • - cost:100lei/h -100;50lei/h -50 ;1leu/h - 1; etc. • -dinamic – prioritate alocata in functie de situatie curenta cerere/oferta • se va aloca prioritate marita la • procese ce solicita mult resurse neocupate • procese care solicita urgent acces (mouse fereastra)
GESTIUNE DE PROCESE – Agoritmi de planficare • Multiple queuing scheduling (planificare cu clase de prioritati) • De ex. m m cozi round robin
GESTIUNE DE PROCESE – Agoritmi de planficare • Multiple queuing scheduling (planificare cu cozi de sloturi 2^^n) • Procesul cere 500 cuante • Cozi: 1,2,4,8,16,32,64,128 • Round Robin pe 1 da 100 comutari (500ms UC pierdute) • Rulare pe m m cozi cu sloturi 2^^n • =>1=>2=>4=>8=>16=>32=>64 =>>> 7 comutari • (7ms UC pierdute)
GESTIUNE DE PROCESE – Agoritmi de planficare • Short Job First scheduling (planificare cu tratarea prioritara a lucrarilor mici) • Timp de rulare necesar in ordine ABCD:8444 • ABCD => 8+(8)+4+(8+4)+4+(8+4+4)+4 =56 • Total 56:4=14 pentru fiecare in medie. • CDBA=> 4+(4)+4+(4+4)+4+(4+4+4)+4=44 • Total 44:4=11 pentru fiecare in medie. • Se cere cunoasterea anterioara a timpului de rulare • (aplicatii RT – algoritmi de RT)
GESTIUNE DE PROCESE – Agoritmi de planficare • Short Job First scheduling – OK • dar = > trebuie aflata duratei rularii DR fiecarui proces • Pentru procese repetitive – o variabila associata fiecarui proces cu DR • actualizarea DR – “aging” formula • DRactualizat = a * DRprecedent + (1-a) DRmasurat • La fiecare rulare DRactualizat => DRprecedent in rularea ulterioara • a > 1/2 => schimbare rapida => liberalism, • a => 0 instabilitate • a < 1/2 => schimbare lenta => conservatorism, • a => 1 inadaptare
GESTIUNE DE PROCESE – Agoritmi de planficare • Planificare garntata • respectarea promisiunilor de buna rulare pentru fiecare proces • de ex: fiecare dintre n procese sa obtina DRtotal =1/n din timpul total • => fiecare proces are o variabila care sa contabilizeze DRconsumat • DRconsumat / DRtotal = 1 / prioritate la urmatoarea rulare • Planificare aleatoare cu tichete loterie • Se acorda aleator cuante, (simplu, fara “infometare”) • probabilitatea acordarii - proportionala cu “importanta” procesului • “importanta” nr. tichete - poate fi dirijata de SO • fire in cooperare pot ceda/primi tichete • client blocat pe un serviciu cedeaza tichete => server serviciu solicitat
GESTIUNE DE PROCESE – Agoritmi de planficare • Planificare pentru aplicatii in timp real - RT • microcalculatoare in aplicatii - sisteme dedicate – embedded systems • cerinte RT pentru procese – termen de incheiere impus – deadline • Hard RT cerinte absolute • Soft RT cerinte recomandate • Procese cu DR cunoscute, solicitate la evenimente • La evenimente a/periodice aparute in interval mic – planificare • Planificarea periodica • Formula Liu-Layland pentru planifiabilitate • (n procese, DRi= DR a procesului i, care se declanseaza cu perioada Pi ) • ` ∑mi=1 DRi / Pi ≤ 1
GESTIUNE DE PROCESE – Agoritmi de planficare • Planificare pentru aplicatii in timp real – RT • Exemplu: • RT periodic (ax in rotatie cu sensori si actionari) • Pi=50ms • 5 procese cu DRi=25ms fiecare • ` ∑mi=1 DRi / Pi = 5 * 25 / 50 = 2,5 > 1 • Necesare 3 procesoare (sau cresterea ceas de > 2,5 ori)
GESTIUNE DE PROCESE – Agoritmi de planficare • Planificare fire de executie • Mecanism de planificare in nucleu (tactica), cu • parametri stabiliti de proces in user mode (strategia) • Lista de fire proces in user: • nucleul nu poate impiedica politica unui proces in cuanta acestuia => planificarea nu se poate intercala firele la 2 procese diferite • daca fiecare proces forteaza politica in proces • Lista de fire proces in nucleu: • nucleul poate influenta intercalarea de fire de procese diferite - fair • Lista in nucleu – comutare lenta (salvari stari, restaurari procese) • Lista in proces - comutare rapida (fara salvari/restaurari masive) si cu informatii intre fire care pot dirija preferintele si prioritatile