a.Grupuri de proces

Сделай свою wap-шпаргалку =) попробуй конструктор сайтов http://www.panweb.com/


De?i procesele оntr-un sistem UNIX sunt identificate printr-un numгr unic (PID), sistemul trebuie sг identifice uneori procesele dupг "grup". De exemplu, procesele cu un strгmo? comun care este un login shell sunt оn general оnrudite ?i de aceea toate aceste procese primesc semnale cвnd un utilizator apasг tastele "Delete" sau "Break" sau cвnd linia cгtre terminal este оntreruptг. Nucleul utilizeazг identificatorul de grup al proceselor pentru a identifica grupurile de procese оnrudite care trebuie sг primesacг un semnal comun pentru evenimente sigure. Acesta salveazг identificatorul de grup оn tabela proceselor; procesele aflate оn acela?i grup au acela?i ID de grup. Apelul sistem setpgrp iniюialiazeazг numгrul de grup pentru un proces ?i-l seteazг ca fiind egal cu valoarea ID de proces propriu. Sintaxa apelului sistem este:
^grp=setpgrp();
unde grp este noul numгr al grupului de procese.
Un fiu reюine numгrul de grup de proces al pгrintelui оn timpul apelului sistem fork.
Setpgrp are, de asemenea, importanюг оn setarea terminalului de control al unui proces.
#include <signal.h>
^main()
{
^register int i;
^setpgrp();
^for(i=0;i<10;i++)
{
^if(fork()==0)
{
/* procesul fiu */
^if(i[and]1)
^setpgrp();
^printf("pid=[procent]d pgrp=[procent]d pgrp=[procent]d
", getpid(), getpgrp());
^pause();/*se suspendă execuţa apelului sistem */
}
}
^kill(0,SIGINT);
}
În programul de mai sus, procesul anulează numărul său de grup şi crează 10 procese fii. Când sunt creaţi, fiecare proces fiu are acelaşi număr de grup cu al procesului părinte, dar procesele create în timpul iteraţiilor impare din ciclu resetează numărul de grup. Apelurile sistem getpid şi getpgrp întorc PID-ul şi ID-ul grupului (GID) ale procesului care se execută, iar apelului sistem pause suspendă execuţia procesului până când acesta recepţionează un semnal. La sfârşit, procesul părinte execută apelului sistem kill şi trimite un semnal de întrerupere tuturor proceselor din grupul său de procese. Nucleul trimite semnalul către 5 procese "pare" care nu şi-au schimbat propriu grup de procese în timp ce, cele 5 procese "impare" continuă ciclul.