Documente Academic
Documente Profesional
Documente Cultură
Planificarea proceselor
Fire de executie
Sisteme de operare
Lect. Dr. Ozten CHELAI
0 24 27 30
P2 P3 P1
0 3 6 30
Timpul de aspteptare pentru P1 = 6; P2 = 0; P3 = 3
Media timpului de asteptare: (6 + 0 + 3)/3 = 3
Mai buna decat in cazul anterior
Efectul Convoy (convoi) procesele mai scurte inaintea celor mai
lungi
Planificarea SJF (Shortest-
Job-First)
Asociaza fiecarui proces, lungimea timpului CPU
necesar executiei. Utilizeaza lungimea pentru a
planifica intai procesele cu timpul cel mai mic.
Doua scheme:
Non-preemptiva – odata alocat CPU procesului, nu poate
fi intrerupt pana nu se termina timpul de executie
Preemptiva – daca un nou proces soseste cu lungimea
CPU mai mica decat timpul ramas din executia procesului
curent, se aloca. Aceasta schema este Shortest-
Remaining-Time-First (SRTF)
SJF este optima – da media cea mai mica pentru
timpul de asteptare.
Planificarea cu prioritati
un numar (intreg) este asociat fiecarui proces
CPU este alocat procesului cu cea mai mare prioritate (cel mai
mic intreg ≡ cea mai mare prioritate)
Preemptiva
Non-preemptiva
SJF este o planificare cu prioritati in care prioritatea este cel mai
mic timp de executie (CPU burst time)
Problema ≡ Infometarea (Starvation) – procesele cu prioritate
mica se poata sa nu se execute vreodata
Solutie ≡ Imbatranirea (Aging) – cu cresterea timpului creste
prioritatea procesului
Planificarea circulara (Round-
Robin)
Procesele sunt plasate într-o coadă unică de aşteptare pentru
procese ready.
Fiecare proces primeste CPU o cuanta de timp
Va fi servit întotdeauna primul proces, iar la încheierea cuantei
alocate lui, procesul va trece la sfârşitul cozii de aşteptare.
Daca sunt n procese si cuanta este q, fiecare proces primeste
1/n timp CPU in unitati de q, deci nici un proces nu asteapta mai
mult de (n-1)q unitati de timp
Problema constă în alegerea dimensiunii cuantei de timp
q mare => FIFO
q mic => q trebuie sa fie mare relativ la timpul de comutare a
contextului, altfel overheadul este prea mare
Planificare cu cozi multiple de
asteptare (multilevel queue)
Procesele READY sunt grupate pe clase de priorităŃi. Pentru
fiecare nivel de prioritate se crează o coadă de aşteptare
foreground (interactive)
background (batch)
Fiecare coada are propriul algoritm de planificare
foreground – RR
background – FCFS
Planificarea trebuie realizata intre cozi
Planificarea cu prioritate fixa; (i.e., servirea tuturor din foreground
apoi din background). Posibilitate - infometare (starvation).
Felii de timp (Time slice) – fiecare coada primeste CPU un
anumit timp care poate fi apoi planificat de fiecare. Exemplu:
80% foreground in RR
20% to background in FCFS
Planificarea Multilevel Queue
Multilevel Feedback Queue
Un proces se poate muta intre diferitele cozi;
imbatranirea (aging) se poate implementa astfel
Planificatorul Multilevel-feedback-queue definit de
urmatorii parametri:
Numarul de cozi
Algoritmii de planificare pentru fiecare coada
Metodele utilizate pentru a determina cand sa se
actualizeze un proces
Metodele utilizate pentru a determina cand sa se
retrogradeze un proces
Metodele utilizate pentru a determina in care coada sa
intre un proces atunci cand e necesar
Planificarea multiprocesor
Planificarea cand sunt mai multe CPU
disponibile
Procesoare omogene intr-un multiprocesor
Partajarea incarcarii
Procesare asimetrica – numai un procesor
acceseaza structurile de date, usurand
concurenta la date
Planificare de timp-real
Hard real-time systems – necesita terminarea
unui task critic intr-un timp garantat
Soft real-time computing – necesita ca
procesele critice sa primeasca prioritate fata
de cele mai putin critice
Planificare cu separarea
politicii de mecanism