Algoritmi de planificare

1) Primul venit, primul servit (primul venit, primul servit)

FIFO coadă (First In, First Out).

Un astfel de algoritm de selecție a procesului realizează o planificare non-preemptivă. Un proces care a primit un procesor pe care îl are la dispoziție îl ia înaintea expirării procesului de explozie actual al procesorului. Apoi, un nou proces de la începutul coadajului este selectat pentru execuție.







- dacă un proces cu o explozie lungă a procesorului, atunci procesele scurte care au trecut la starea "gata" după un proces lung vor aștepta un timp foarte îndelungat pentru începerea execuției lor

- algoritmul FCFS nu este practic aplicabil sistemelor de partajare a timpului

- timpul de răspuns mediu prea mare în procesele interactive

2) Robin rotund (RR)

(Round Robin este un fel de carusel copil în SUA)

Algoritmi de planificare

La executarea procesului sunt posibile două opțiuni:

Timpul de utilizare continuă a procesorului cerut de proces (restul procesului curent de procesare) este mai mic sau egal cu lungimea fantei de timp. Apoi, procesul eliberează în mod voluntar procesorul înainte de expirarea cuantumului de timp, se selectează un nou proces de executare de la începutul coadajului și cronometrul începe să numere din nou cuantumul.

§ Durata restului procesului actual de spargere a procesorului este mai mare decât fragmentul de timp. Apoi, după expirarea acestui cuantum, procesul este întrerupt de un cronometru și plasat la sfârșitul cozii de procese gata pentru execuție, iar procesorul este alocat să utilizeze procesul la începutul acestuia.

- dacă cuantumul timpului este prea mic și, în consecință, comutarea în context este prea frecventă, comutatorul de comandă reduce dramatic performanța sistemului







3) Cele mai scurte locuri de muncă (SJF)

("Mai întâi cea mai scurtă lucrare" sau "Shortest Job First" (SJF))

Nu se aplică cuantizarea timpului.

Algoritmul SJF pentru planificarea pe termen scurt poate fi fie preventiv, fie non-preemptiv. Cu programare non-preemptivă SJF, procesorul este furnizat procesului selectat pentru tot timpul necesar, indiferent de evenimentele care apar în sistemul de calcul. Cu planificarea SJF preemptivă, procesele noi din coadă sunt pregătite pentru a fi executate (de la cei nou-născuți sau deblocați) în timpul procesului selectat. Dacă explozia CPU-ului unui proces nou este mai mică decât restul procesului de spargere al procesorului, procesul de execuție este înlocuit cu unul nou.

4) Planificarea prioritară

În planificarea prioritară, fiecărui proces i se atribuie o anumită valoare numerică - prioritatea, conform căreia procesorul îi este alocat. Procesele cu aceleași priorități sunt planificate în ordinea FCFS. Pentru algoritmul SJF, prioritatea următoarei explozii a procesorului este dată ca prioritate. Cu cât valoarea evaluării este mai mică, cu atât mai mare este prioritatea procesului.

5) Cozile pe mai multe niveluri

Pentru sistemele în care procesele pot fi ușor sortate în grupuri diferite, a fost dezvoltată o altă clasă de algoritmi de programare. Pentru fiecare grup de procese, se creează o coadă de procese care sunt într-o stare gata (a se vedea figura). Aceste cozi sunt atribuite priorităților fixe. Prioritatea cozii de procese lansate de studenți este mai mică decât pentru coada proceselor lansate de profesori. Aceasta înseamnă că niciun proces utilizator nu va fi selectat pentru execuție, atâta timp cât există cel puțin un proces de sistem gata și niciun proces student nu va primi un procesor la dispoziția sa dacă există procese de pregătire a profesorilor. În cadrul acestor cozi, o varietate largă de algoritmi pot fi utilizate pentru planificare. De exemplu, pentru procesele mari de numărare, poate fi folosit algoritmul FCFS, iar pentru procesele interactive poate fi folosit algoritmul RR. Această abordare, numită cozile pe mai multe niveluri, crește flexibilitatea planificării: pentru procese cu caracteristici diferite, se aplică algoritmul cel mai potrivit pentru ei.

Algoritmi de planificare







Articole similare

Trimiteți-le prietenilor: