Descrieți pe scurt semnificația și funcția PCB

Pentru ca fiecare program să participe la execuția concomitentă, inclusiv datele să poată rula independent, trebuie configurată o structură specială de date pentru acesta în sistemul de operare, numită bloc de control al procesului (PCB, Bloc de control al procesului). Există o corespondență unu-la-unu între proces și PCB, iar procesul utilizatorului nu poate fi modificat.

ipcb

Rolul blocului de control al procesului PCB:

Pentru a facilita descrierea sistemului și gestionarea funcționării procesului, o structură de date este definită în mod specific pentru fiecare proces în nucleul OS-Process Control Block PCB (Process Control Block). Ca parte a entității de proces, PCB înregistrează toate informațiile necesare sistemului de operare pentru a descrie situația curentă a procesului și a gestiona funcționarea procesului. Este cea mai importantă structură de date înregistrate din sistemul de operare. Rolul PCB este de a face ca un program (inclusiv datele) care nu poate rula independent într-un mediu cu mai multe programe să devină o unitate de bază care poate rula independent, un proces care poate fi executat concomitent cu alte procese.

(2) PCB poate realiza modul de funcționare intermitent. Într-un mediu cu mai multe programe, programul rulează într-un mod de funcționare intermitent stop-and-go. Când un proces este suspendat din cauza blocării, acesta trebuie să păstreze informațiile despre site-ul CPU atunci când rulează. După ce are PCB-ul, sistemul poate salva informațiile despre site-ul CPU în PCB-ul procesului întrerupt pentru a fi utilizat atunci când site-ul CPU este restaurat când procesul este programat pentru execuție din nou. Prin urmare, se poate clarifica din nou că într-un mediu cu mai multe programe, ca program static în sensul tradițional, deoarece nu dispune de mijloacele pentru a-și proteja sau salva propriul loc de operare, nu poate garanta reproductibilitatea rezultatelor operaționale. , pierzându-și astfel funcționarea. semnificaţie.

(3) PCB oferă informații necesare pentru managementul procesului. Când planificatorul programează rularea unui proces, poate găsi doar programul și datele corespunzătoare conform indicatorului de adresă de început a programului și datele înregistrate în PCB-ul procesului în memorie sau stocare externă; în timpul procesului de rulare, când fișierul trebuie accesat Când fișierele sau dispozitivele I/O din sistem, acestea trebuie, de asemenea, să se bazeze pe informațiile din PCB. În plus, conform listei de resurse din PCB, pot fi învățate toate resursele necesare procesului. Se poate observa că pe parcursul întregului ciclu de viață al unui proces, sistemul de operare controlează și gestionează întotdeauna procesul conform PCB-ului.

(4) PCB oferă informații necesare pentru programarea procesului. Numai procesele aflate în starea de pregătire pot fi programate pentru execuție, iar PCB-ul oferă informații despre starea în care se află procesul. Dacă procesul este în starea de pregătire, sistemul îl introduce în coada de pregătire a procesului și așteaptă programarea programatorului. ; în plus, este adesea necesar să cunoașteți și alte informații despre proces la programare. De exemplu, în algoritmul de programare a priorităților, trebuie să cunoașteți Prioritatea procesului. În unii algoritmi de programare mai corecti, trebuie să cunoașteți și timpul de așteptare al procesului și evenimentele care au fost executate.

(5) PCB realizează sincronizarea și comunicarea cu alte procese. Mecanismul de sincronizare a proceselor este utilizat pentru a realiza operarea coordonată a diferitelor procese. Atunci când mecanismul semaforului este adoptat, acesta necesită setarea unui semafor corespunzător pentru sincronizare în fiecare proces. PCB are, de asemenea, un indicator de zonă sau de coadă de comunicare pentru comunicarea procesului.

Informații din blocul de control al procesului:

În blocul de control al procesului, acesta include în principal următoarele informații:

(1) Identificator de proces: identificatorul de proces este utilizat pentru a indica în mod unic un proces. Un proces are de obicei două tipuri de identificatori: ① identificatori externi. Pentru a facilita accesarea procesului utilizatorului, trebuie setat un identificator extern pentru fiecare proces. Este furnizat de către creator și de obicei este format din litere și cifre. Pentru a descrie relația de familie a procesului, trebuie setate și ID-ul procesului părinte și ID-ul procesului copil. În plus, un ID de utilizator poate fi setat pentru a indica utilizatorul care deține procesul. ②Identificator intern. Pentru a facilita utilizarea procesului de către sistem, este setat un identificator intern pentru proces în sistemul de operare, adică fiecărui proces i se atribuie un identificator digital unic, care este de obicei numărul de serie al unui proces.

(2) Starea procesorului: informațiile despre starea procesorului se mai numesc și contextul procesorului, care este compus în principal din conținutul diferitelor registre ale procesorului. Aceste registre includ: ①Registre de uz general, cunoscute și sub numele de registre vizibile de utilizator, care sunt accesibile de către programele utilizatorului și sunt utilizate pentru a stoca temporar informații. În majoritatea procesoarelor, există 8 până la 32 de registre de uz general. În calculatoarele structurate RISC Pot fi mai mult de 100; ②Contor de instrucțiuni, care stochează adresa următoarei instrucțiuni de accesat; ③Cuvântul de stare a programului PSW, care conține informații despre stare, cum ar fi codul de condiție, modul de execuție, semnalizarea mască de întrerupere etc.; ④ Indicator de stivă de utilizator, înseamnă că fiecare proces de utilizator are unul sau mai multe stive de sistem asociate, care sunt folosite pentru a stoca parametrii de apel de proces și de sistem și adresele de apel. Indicatorul stivei indică partea de sus a stivei. Când procesorul se află în starea de execuție, o mare parte din informațiile procesate sunt plasate în registru. Când procesul este comutat, informațiile despre starea procesorului trebuie salvate în PCB-ul corespunzător, astfel încât execuția să poată continua de la punctul de întrerupere când procesul este re-executat.

(3) Informații privind programarea procesului: Când sistemul de operare programează, este necesar să înțelegeți starea procesului și informații despre programarea procesului. Aceste informații includ: ① Starea procesului, care indică starea curentă a procesului, care este folosită ca bază pentru programarea și schimbarea procesului ②Prioritatea procesului este un număr întreg folosit pentru a descrie nivelul de prioritate al procesului care utilizează procesorul. Procesul cu prioritate mai mare ar trebui să primească mai întâi procesorul; ③Alte informații necesare pentru programarea procesului, care sunt legate de algoritmul de programare a procesului utilizat De exemplu, suma timpului în care procesul a așteptat CPU-ul, suma timpului în care procesul a fost executat și așa mai departe; ④Evenimentul se referă la evenimentul care așteaptă ca procesul să se schimbe din starea de execuție în starea de blocare, adică cauza blocării.

(4) Informații de control al procesului: Se referă la informațiile necesare pentru controlul procesului, care includ: ①Adresa programului și a datelor, adresa de memorie sau de memorie externă a programului și datele din entitatea de proces, astfel încât să poată fi programată pentru se execută când procesul este executat. , Programul și datele pot fi găsite de pe PCB; ②Mecanismul de sincronizare și comunicare a procesului, care este un mecanism necesar pentru sincronizare și comunicarea procesului, cum ar fi indicatorii de coadă de mesaje, semafoare etc., acestea pot fi plasate în PCB în întregime sau parțial; ③Lista de resurse, în care sunt listate toate resursele (cu excepția CPU) necesare procesului în timpul funcționării acestuia și există, de asemenea, o listă de resurse alocate procesului; ④Link pointer, care oferă procesului (PCB) Prima adresă a PCB-ului următorului proces din coadă.