Dispecerizări, cursuri gratuite, rezumate și teze

Procesele de dispecerizare (sarcini) sunt determinarea priorității obținerii unui procesor pentru procese (sarcini) care sunt într-o stare gata pentru executarea lor. Dispecerizarea proceselor este asociată cu transferul acesteia de la starea gata la starea de execuție (cont). Dispecerizarea, pentru un anumit proces, poate fi efectuată de mai multe ori, adică procesul poate trece de mai multe ori de la starea de pregătire la starea de execuție și înapoi la intervalul de existență. Deoarece numai o singură sarcină poate fi executată în fiecare ciclu de ceas, dispecerizarea implică crearea și modificarea unei coadă de sarcini (procese) gata de execuție. Elementele acestei coadă (precum și alte cozi în sistemul de calcul) sunt descriptorii de activitate pe "nivelul fizic".







Descriptorul de sarcini este o structură specială de informații în care ...
Caracteristicile sarcinii necesare pentru gestionarea de către sistemul de operare sunt stocate. Inițial, descriptorul de sarcină este generat în etapa e¨ difuzare. Înainte de a executa sarcina, un astfel de descriptor este încărcat în memoria RAM împreună cu e¨ cod și date. Informațiile despre sarcină, care sunt stocate în descriptor, sunt împărțite în mai multe grupuri, iar partea e¨ modificări dinamice asupra intervalului de existență al problemei. Luați în considerare aceste grupuri:

· Informații privind identificarea sarcinilor (numele sarcinii, tipul de sarcină);

· Informații despre resursele necesare pentru sarcină pentru e¨ implementarea și resursele utilizate în prezent (identificatori ai dispozitivelor externe necesare);

· Informații despre starea actuală a sarcinii (conținutul unor registre de procesoare);

· Informații privind sarcinile conexe (numele procesului părinte și procesele ancestrale);

Dispecerizări, cursuri gratuite, rezumate și teze

Dispecerizarea disciplinelor este o regulă de bază care realizează prioritatea furnizării (alocării) procesorului (timpul procesorului) la sarcini (procese) gata de execuție. Orice disciplină specifică de dispecerizare are două funcții interdependente - alocarea timpului procesorului unei anumite sarcini (proces) și crearea și modificarea unei coadă de sarcini gata de efectuat (service queue). Dispeceratul este implementat de o componentă specială a sistemului de operare - dispecerul (managerul de sarcini). Luați în considerare cele mai importante discipline de dispecerizare.

1. FCFS (primul venit, primul servit) - înainte ca procesorul să primească sarcina, care a intrat deja în starea gata. Această disciplină este simplă în implementare, egală atât în ​​drepturile proceselor "lungi", cât și în cele "scurte", timpul mediu petrecut în coada de așteptare este foarte semnificativ.







2. SJN (următoarea sarcină mai scurtă - următoarea cu sarcina cea mai scurtă) - înainte ca procesorul să primească sarcina care are timpul minim de serviciu personalizat. Această disciplină necesită ca, pentru fiecare sarcină, mașina să aibă nevoie de o estimare a timpului, valoarea căreia este specificată ca parametru de activitate. Această disciplină este mai dificil de implementat decât FCFS, este discriminatoriu față de "procesele lungi", timpul mediu de așteptare în coada de pregătire este mai mic decât în ​​cazul FCFS. SJN are un dezavantaj semnificativ. Sarcini blocate temporar (de exemplu, așteptarea finalizării I / O) vor sfârși la sfârșitul coadajului de așteptare, chiar dacă acestea necesită o cantitate mică de timp CPU.

3. SRT (cel mai scurt timp rămas) - înainte ca procesorul să primească o sarcină care are cel mai mic timp pentru a finaliza. Acest timp este definit ca diferența dintre timpul de serviciu ordonat și timpul procesorului pe care sarcina le-a primit deja. SRT este liber de dezavantajul tipic SJN. SRT este complexă în implementarea și discriminarea proceselor "lungi".

Disciplinele de dispecerizare examinate sunt non-preemptive, spre deosebire de disciplinele dislocatoare, care vor fi descrise ulterior. Dispecerizarea disciplinei dislocabile va fi numită disciplină care implică o posibilă întrerupere a sarcinii curente pentru a oferi procesorului o altă sarcină gata de îndeplinit. Să luăm în considerare câteva discipline de dislocare de bază ale expedierii:

4. RR (robin rotund) - disciplină ciclică (carusel). Dispatcherul alocă o anumită cantitate de timp procesor (intervalul de multiplexare) pregătită pentru sarcină. Dacă sarcina nu are timp să se execute în timpul acestui cuantum, controlerul traduce e¨ înapoi la sfârșitul coada de pregătire și alocă următorul cuantum de timp al procesorului pentru o altă sarcină finită. Această disciplină discriminează procesele lungi. E¨ este convenabil să se utilizeze în sistemele de calcul multi-utilizator unde este necesar să se servească un număr mare de solicitări provenite de la diferite stații de lucru ale sistemului.

5. Discipline pe baza priorităților absolute ale sarcinilor. Fiecare sarcină are o prioritate exprimată de o valoare specifică care nu se schimbă pe întreaga perioadă a existenței problemei. Înainte ca procesorul să primească acea sarcină gata, care are în prezent cea mai mare prioritate în raport cu alte sarcini gata. Această disciplină este caracteristică sistemelor în timp real, este discriminatorie față de procesele îndelungate și nu oferă garanții pentru service pentru astfel de procese.

6. Discipline bazate pe priorități dinamice ale sarcinilor. Pentru fiecare sarcină este setată valoarea inițială de prioritate, care apoi se schimbă în timp. Astfel, prioritatea problemei este o funcție a timpului. Tipul specific al acestor funcții poate fi diferit, însă orientarea generală a acestora este că, cu cât sarcina este mai lungă în coada de pregătire, cu atât este mai mare e¨ prioritate. Acest lucru vă permite să garantați întreținerea proceselor scurte și lungi.

7. Discipline cu cozile multiple. Dispecerul suportă mai multe cozi de sarcini gata de execuție. Fiecare linie este deservită de disciplina sa. Un astfel de dispecer este complicat în implementare, deoarece în componența sa trebuie să existe un mecanism suplimentar pentru trecerea de la o coadă de gata la alta. O modalitate mai ușoară de a implementa un dispecer (static) este să presupunem că sarcina, odată într-o anumită rundă de pregătire, rămâne acolo până la executarea completă. O metodă mai complexă de implementare (dinamică) este modul în care o sarcină poate trece de la o rundă de pregătire la alta în intervalul de existență.

Gropi suplimentare în acest proces







Articole similare

Trimiteți-le prietenilor: