Documente noi - cercetari, esee, comentariu, compunere, document
Documente categorii

Monoprogramarea, Mediul cu multiprogramarea

Planificarea lucrarilor

In acest caz ne referim la notiunea de batch-processing (preluarea pe laturi) in care planificatorul de job-uri primeste controlul pentru a selecta, din multimea lucrarilor (job-urilor) prezente in sistem, urmatoarea lucrare care va incepe. Sa fie executata, in acest caz, se creaza procesele corespunzatoare lucrarii si apoi sunt trecute in starea "pregatit pentru executie" dupa ce lucrarea respectiva primeste resursele de care are nevoie. Planificatorul tine gestiunea lucrarilor din sistem. Pentru aceasta au nevoie de structuri de date - blocul de control al job-urilor.

identificator lucrare

stare curenta

prioritate

timp estimat

nr de benzi

alte resurse

pointer la alta structura

(Job Control Block)

Structurile de acest fel se creaza in mod dinamic atunci cand lucrarile vin in sistem. Ori de cate ori anumite resurse sunt cerute concurent din mai multe locuri este necesara aplicarea unei politici de planificare. In acest caz, obiectivele urmarite pot fi contradictorii:

Sistemul sa ruleze cat mai multe job-uri (deci se vor rula si vor fi favorizate job-uri scurte)

Procesul sa fie cat mai mult folosit si cat mai optim (in acest caz sunt favorizate job-urile lungi)

Toata lumea sa fie multumita in egala masura, deci trebuie sa se ruleze toate procesele


Obiectivele politicilor de planificare

Disponibilitatea utilizarii in sistem a unor resurse sarace sau scumpe (de ex sunt prioritare lucrarile ce folosesc plotter-ul)

Disponibilitatea resurselor fundamentale ale sistemului (cu cat o lucrare va cere mai multa memorie si mai mult timp pentru ea, va astepta mai mult)

Asigurarea echilibrului sistemului (trebuie sa fie mixate in multiprogramare lucrari ce utilizeaza procesorul intens cu lucrari ce utilizeaza dispozitivile de I/O pentru ca nici procesorul si nici dispozitivele de I/O sa nu fie nefolosite)

Asigurarea unui pret optim al serviciilor

Garantarea serviciilor asigurate de sistem (de ex. daca sistemul dispune de 4 benzi magnetice si se primesc mai multe lucrari care folosesc fiecare o banda magnetica, se va refuza o lucrare care necesita 4 banzi magnetice, dar cand este rulata ca nu se poate rula o alta in sistem, odata acceptata sistemul trebuie sa garanteze executia lucrarilor - indiferent de timpul de asteptare)

Garantarea termenelor de executie a lucrarilor


Monoprogramarea

In acest caz nu se partajeaza resurse cu nimeni. Una din cele mai simple politici de planificare este FCFS (first come, first save).


Se considera urmatorul caz:

Job(lucrare)

Timpul de sosire in sistem

Tsi

Timpul de rulare

Tri

1

2

3

0

2

4

20

10

4



Rezultatele sunt sintetizate in tabelul:

Job

Tsi

Timpul de inceput Tii

Timul de terminate TTi

Timpul de raspuns

Ti= Tti-Tii

1

2

3

0

2

4

0

20

30

20

30

34

20

28

30



In aces caz:  TFCFS=26 ; TA=1/A* ΣTi ; ΣTi=78.


Operatiile de I/O ale unei lucrari nu pot fi suprapuse cu calculele altei lucrari ca in cazul multiprogramarii. In acest caz procesorul sta. Un criteriu de performante al algoritmului il reprezinta fluxul prin sistem (numarul de job-uri pe unitatea de timp).

Timpul de raspuns poate fi vazut ca o suma intre timpul cat lucrarea a asteptata pana cand a fost luata in considerare si timpul de rulare in unitatea centrala (procesorul a rulat), cat si timpul operatiilor de I/O (cat procesorul a stat blocat).

Media timpului de raspuns reprezinta aprecierea medie a algoritmului de planificare folosit, adica in exemplul nostru:

TA=1/n * ΣTi = 78/3 = tmediu =26

Sa consideram un alt algoritm care are scopul cresterii fluxului prin sistem, in care se ruleaza cel mai scurt job primul (Shortest Job First - SJF). Consideram aceeasi colectie de lucrari ca si in primul caz. Modul de planificare va fi urmatorul:


Job

Tsi

Tii

TTi

Ti=TTi-Tsi

1

2

3

0

2

4

0

24

20

20

34

24

20

32

20


ΣTi=72                 TA=72/3=24<TFCFS

Sa consideram si cazul in care se presupune ca se cunosc lucrarile care vor veni pentru rulare, caz in care se asteapta 4 unitati de timp pentru sosirea tuturor joburilor in sistem si apoi se ruleaza job-urile cele mai scurte:




Job

Tsi

Tii

TTi

Ti

1

0

18

38

38

2

3

2

4

8

4

18

80

16

4

TSJFFK=19,33<TSJF



Mediul cu multiprogramarea

In acest caz rezultatele vor fi mult mai bune, rulandu-se mai multe programe in paralel. Cand unul face operatii de I/O si se blocheaza, un altul foloseste procesorul. Pe termen scurt algoritmul de planiicare este Round-Robin in care fiecare proces primeste o cuanta de executie si apoi trece in coada. Pe un interval mai mare de timp, toate programele au rulat si si-au impartit timpii in mod egal.

Consideram o colectie de 5 lucrari. Avem:

Job

Tsi

Ri

Mem(kb)

Imprimanta

1

2

3

4

5

0

2

4

6

9

9

1

4

2

3

256(2B)

128(1B)

256(2B)

245(2B)

128(1B)

DA

DA

NU

NU

NU

B=BLOC

Ri=timpul de rulare in monoprogramare


Daca presupunem ca lucrarile ar fi pregatite in ordinea FCFSin monoprogramare avem:

TFCFS=9,4; WFCFS=4,06


Job

Tsi

Tii

TTi

Ti=TTi-Tsi

Wi=Ti/Ri

1

2

3

4

5

0

2

4

6

9

0

9

10

14

18

9

10

14

16

19

9

8

10

10

10

1

8

2.5

5

3.66





Σ = 47

Σ = 20.16


Atentie! Timpul de raspuns nu este un parametru foarte corect in aprecierea performantelor planificarii. O lucrare care a fost rulata imediat si a durat o ora are timpul de raspuns 1h, o lucrare servita imediat si care a durat 4h are timpul de raspuns 4h dar nu este un parametru corect. Pentru aceasta se foloseste timpul de raspuns ponderat definit ca raportul dintre timpul de raspuns si timpul de rulare.

In cazul multiprogramarii Round-Robin se considera urmatoarele ipoteze:

a)           Resursele sunt infinite (cum vine o lucrare va fi executata imediat)

b)          Operatiile de I/O nu se suprapun cu cele de calcul

Datorita planificarii Round-Robin, daca intr-o ora lucreaza o singura lucrare, ea consuma 1h din timp, daca sunt planificate 2 lucrari, fiecare consuma cate o jumatate de ora.

Head-way = fractiune din timp utilizata efectiv de fiecare lucrare


Rezultatele din diagrama se regasesc in urm tabel:

Job

Si

Tii

TTi

Ti=TTi-Tsi

Wi=Ti/Ri

1

2

3

4

5

0

2

4

6

9

0

2

4

6

9

19

4

16

13

18

19

2

12

7

9

2.11

2

3

3.5

3





Σ =49

Σ = 13.66

tM de raspuns = 9.8; wM=2.73

Lucrarile cu w mic au fost tratate mai bine


In continuare analizam cazul multiprogramarii cu suprapunere a operatiilor de I/O. Sa consideram 2 lucrari, fiecare ruland in monoprogramare 16 unitati de timp, din care 25% din timp este pierdut cu operatiile de I/O. In acest caz, prima lucrare are timpul de raspuns 16, a doua 32, iar tM=24 si w=1,5. Daca lucrarile sunt reluate in multiprogramare Round-Robin, vor exista momente cand procesorul va fi nefolosit. Daca pe masina punem sa ruleze un singur job, procesorul va sta nefolosit 25% din timp, daca sunt 2 job-uri, procesorul sta nefolosit 4%, pentru 3 joburi avem 0,4%, iar pentru 5 joburi avem 0%. In procent de 96% procesorul ruleaza 2 lucrari in mod egal, deci fiecare avanseaza cu 48%.

Daca timpul total de unitate centrala este 12 pt fiecare job, atunci timpul de terminare este 12/0,48 = 25; w=1,56.

In monoprogramare, fiecare job are 16 unitati de timp, 4 unitati de I/O si 12 de calcul, deci timpul mediu este 24.

Concluzia este ca multiprogramarea este rea pentru utilizator, dar aduce performante in utilizarea sistemului.

Daca masina are resurse finite acestea se reflecta in timpul de raspuns, performantele scazand. In exemplul de mai sus, presupunem ca imprimanta este virtualizata, iar problemele apar datorita memoriei. Daca consideram ca exista 5 blocuri de memorie disponibila, vom avea:




Job

Ri

Tsi

Tii

TTi

Ti

Wi

1

2

3

4

5

9

1

4

2

3

0

2

4

6

9

0

2

4

13.5

9

19

4

13.5

19

18

19

2

9.5

13

9

2.11

2

2.37

6.5

3






Σ =52.5

Σ =15.98


TM=10.5

WM=3.19