Documente online.
Zona de administrare documente. Fisierele tale
Am uitat parola x Creaza cont nou
 HomeExploreaza
upload
Upload




Criteriile ce se iau in considerare la definirea performantei unui algoritm de planificare

Informatica


Criteriile ce se iau în considerare la definirea performantei unui algoritm de planificare pot fi :

utilizarea UCP-ului;



timpul de prelucrare;

timpul de asteptare;

timpul de raspuns.

Utilizarea UCP-ului  reprezinta fractiunea din timp cât UCP este ocupat. Uneori se ia în considerare timpul alocat atât pentru programele uti 616e41g lizator cât si pentru cele sistem, alteori numai pentru programele uti 616e41g lizator ("useful work"). Scopul este de a tine UCP-ul cât mai mult timp ocupat, crescând astfel performanta sistemului.

Timpul de prelucrare poate fi definit ca timpul care se scurge între momentul când programul este lansat în executie si momentul terminarii lui.

Timpul de asteptare este timpul cât un program, pe durata executiei sale, asteapta alocarea resurselor necesare. Poate fi exprimat ca diferenta dintre timpul de prelucrare si timpul efectiv de executie.

Timpul de raspuns este utilizat cel mai frecvent de catre sistemele de operare de timp real sau cu partajarea timpului. Definitiile difera pentru cele doua tipuri de sisteme. Astfel, la sistemele cu partajarea timpului poate fi definit, de ex., ca timpul care se scurge din momentul scrierii ultimului caracter al liniei de comanda pâna când primul rezultat apare la terminal (se mai numeste timp de raspuns la un teminal). La sistemele în timp real, poate fi definit ca timpul dintre momentul în care apare un eveniment si momentul când este executata prima instructiune a rutinei de tratare (se mai numeste timp de raspuns la un eveniment) .

A) FCFS (First Come, First Served)

Este unul din cei mai simpli si mai intuitivi algoritmi de planificare, care poate fi caracterizat astfel:

- primul proces lansat este executat fara intrerupere de catre procesor pana la terminarea sa

- in momentul in care procesul aflat in starea running se termina, dintre procesele aflate in starea ready este planificat pentru executie cel care a fost lansat cu cel mai mult timp in urma; acest proces la randul sau ramane in starea running pana la terminarea sa, apoi se reia algoritmul

Sa consideram ca exemplu urmatorul set de procese:

Procesul Momentul

lansarii

Durata totala a

executiei

P

P

P

P

S-a considerat o unitate generica de masura a timpului. Se observa ca nu este tratat cazul in care

doua procese au fost lansate in acelasi timp, deoarece un asemenea caz nu poate apare in practica: intre

doua procese, intotdeauna unul a fost lansat mai devreme decat celalalt. Modul in care procesele sunt

planificate pentru a fi executate de catre procesor poate fi observat in figura urmatoare:

P P P P

Ramane insa o problema: un proces care nu efectueaza nici un apel sistem poate fi executat de

catre procesor un timp oricat de lung. Aceasta situatie nu este exclusiv teoretica, deoarece este oricand

posibil ca un proces sa ramana cantonat intr-o bucla infinita din cauza unei erori de programare.

Trebuie deci sa cautam alti algoritmi, care sa elimine acest neajuns.

B) SJN (Shortest Job Next)

Conform acestui algoritm, procesul aflat in starea running este scos din aceasta stare si

trecut in starea ready dupa o perioada fixata de timp (daca bineinteles nu a efectuat un apel sistem

sau nu s-a terminat mai inainte de expirarea timpului alocat). Dintre procesele aflate in starea ready,

va fi planificat pentru executie procesul care are cel mai mic necesar de timp pentru a se

termina. Rezulta deci ca procesul care tocmai a parasit starea running are sanse de a fi replanificat

imediat la procesor.

Fie urmatorul exemplu:

Procesul Momentul

lansarii

Durata totala a

executiei

P

P

P

P

Pentru un sistem in care procesul aflat in executie este eliberat din starea running dupa 3 unitati

de timp, procesele vor fi executate in felul urmator (pentru simplitate, consideram din nou ca nu se fac

apeluri sistem):

P P P P P

Putem face doua observatii:

- procesul P nu foloseste in intregime perioada de 3 unitati de timp pe care o are la

dispozitie; din acest motiv, planificatorul de procese este apelat la momentul 5 si nu la momentul 6

- la momentul 8 avem de ales intre doua procese, P si P , ambele avand nevoie de inca 4

unitati de timp pentru executie; in acest caz, planificatorul poate alege pe oicare dintre cele doua

procese; de asemenea, la momentul 11 (care nu este reprezentat in diagrama) procesul P este scos din

starea running, dar tot el este replanificat imediat pentru executie, deoarece are necesarul de

timp (1 unitate de timp) mai mic decat procesul P (4 unitati de timp)

Acest algoritm nu este potrivit pentru sistemele uzuale, deoarece presupune cunoasterea

dinainte a duratelor de timp necesare executarii tuturor proceselor, ceea ce este de cele mai multe ori

imposibil. Totusi, in sisteme dedicate unor aplicatii precis definite, este posibila cunoasterea unor

asemenea informatii despre procese, caz in care algoritmul SJN poate fi foarte util.

C) Round-Robin

Si in acest caz, procesul aflat in starea running este eliminat dupa expirarea cuantei de timp

maxime alocate. Planificatorul mentine o lista a proceselor aflate in starea ready si trimite in executie

procesul aflat la inceputul acestei liste. In plus, procesul care tocmai a fost scos din starea running

este plasat la sfarsitul listei (desigur, daca nu a facut un apel de sistem, caz in care este trecut in starea

waiting, sau s-a terminat). Astfel, procesele sunt executate unul dupa altul, iar un proces scos din starea

running va fi din nou planificat pentru executie numai dupa ce toate celelalte procese aflate in starea

ready au fost si ele planificate.

Considerand din nou exemplul anterior, de data aceasta pentru algoritmul Round-Robin, obtinem

urmatoarea diagrama:

P P P P P P P

Un proces care tocmai a fost eliminat din starea running poate fi replanificat imediat pentru

executie numai daca nu exista nici un alt proces in starea ready.

Datorita simplitatii conceptuale si de implementare, precum si faptului ca nu necesita

cunoasterea unor informatii suplimentare despre procese, algoritmul round-robin este cel mai utilizat

in sistemele de operare.


Document Info


Accesari: 1200
Apreciat: hand-up

Comenteaza documentul:

Nu esti inregistrat
Trebuie sa fii utilizator inregistrat pentru a putea comenta


Creaza cont nou

A fost util?

Daca documentul a fost util si crezi ca merita
sa adaugi un link catre el la tine in site


in pagina web a site-ului tau.




eCoduri.com - coduri postale, contabile, CAEN sau bancare

Politica de confidentialitate | Termenii si conditii de utilizare




Copyright © Contact (SCRIGROUP Int. 2024 )