Blocul de control al procesului și contextul procesului

Pentru ca sistemul de operare să gestioneze procesele, acesta trebuie să aibă toate informațiile necesare pentru aceasta. În acest scop, pentru fiecare proces este creată o structură specială de informații, numită descriptor de proces (Block Control Process, PCB). În general, descriptorul de proces conține următoarele informații:







- identificator de proces (așa-numitul PID este un identificator de proces);

- tipul (sau clasa) procesului, care definește pentru supraveghetor anumite reguli de furnizare a resurselor;

- prioritatea procesului, conform căreia supraveghetorul furnizează resurse. Într-o clasă de procese, procesele prioritare sunt în primul rând întreținute;

- o variabilă de stare care determină starea procesului (gata de funcționare, în timp de execuție, așteptare pentru un dispozitiv I / O etc.);

- Informații despre resursele pe care procesul le deține și / sau care au dreptul de a le utiliza (pointeri pentru deschiderea fișierelor, informații despre operații de I / O incomplete etc.);

- parametrii de pornire (momentul în care procesul ar trebui să fie activat și frecvența acestei proceduri);

descriptorii de sarcină sunt de obicei situate în permanență în memoria RAM la locul de muncă supervizor de viteză care le organizează în liste (cozile), și afișează procesul de schimbare de stare, prin mutarea descriptorul corespunzător dintr-o listă la alta. Pentru fiecare stat (cu excepția stării de execuție pentru un sistem uniprocesor), sistemul de operare menține o listă corespunzătoare de sarcini în această stare. Cu toate acestea, pot exista mai multe liste pentru starea de așteptare, dar deoarece multe tipuri diferite de resurse pot provoca starea de așteptare.







În unele sisteme de operare, numărul de descriptori (descriptori) este determinat rigid și în avans, în altele, sistemul poate aloca zone de memorie pentru descriptori noi, după cum este necesar.

În sistemele de operare în timp real, numărul de procese este de obicei fixat și, prin urmare, este recomandabil să se determine în avans (în stadiul de generare sau configurare a sistemului de operare) numărul de descriptori. Pentru a utiliza sistemul de operare, cum ar fi sisteme de uz general (care sunt acum rare, iar în trecutul recent, destul de des ca un scop general de sisteme de calcul dobândite minicalculatoare și instalat pe timp real, care sistem de operare) este, de obicei, numărul de descriptori este luat cu unele rezerve, precum și apariția unor noi sarcina este asociată cu umplerea acestei structuri de informații. Deoarece descriptorii de proces sunt în mod constant localizați în memoria principală (pentru a accelera munca dispeceratului), numărul lor nu ar trebui să fie foarte mare. Dacă este necesar, au un număr mare de sarcini același mâner pot fi furnizate la momente diferite pentru diferite scopuri, dar reduce semnificativ viteza de răspuns a sistemului.

Pentru o prelucrare mai eficientă a datelor în sistemele în timp real, este recomandabil să existe sarcini constante / integral sau parțial întotdeauna existente în sistem, indiferent dacă cerința a fost primită pe ele sau nu. Fiecare sarcină constantă are o anumită zonă RAM (sarcini RAM-rezidentă), indiferent dacă sarcina este executată în acest moment sau nu. Această zonă, în special, poate fi utilizată pentru stocarea mai devreme a datelor primite de sarcină. Datele pot fi stocate în el, chiar dacă sarcina este într-o stare de așteptare sau chiar într-o stare de inactivitate.

Pentru suportul hardware al funcționării sistemelor de operare cu aceste structuri de informație (descriptori de sarcini), mecanismele adecvate pot fi implementate în procesoare. De exemplu, microprocesoare Intel80h86 începând cu 80286, există TR registru special (registrul de sarcini), indicând localizarea TSS (Sarcina de stat Segment), în care atunci când trecerea de la o sarcina la alta este stocată automat conținutul registrelor CPU. În mod tipic, în sistemele de operare moderne pentru aceste microprocesoare, descriptorul de sarcini include TSS. Cu alte cuvinte, descriptorul de sarcini are dimensiuni mai mari decât TSS și include câmpuri tradiționale, cum ar fi identificatorul sarcinii, numele, tipul, prioritatea și așa mai departe.







Articole similare

Trimiteți-le prietenilor: