шпаргалка

a.Grupuri de proces

[ Назад ]
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.

КАТЕГОРИИ:

Network | английский | архитектура эвм | астрономия | аудит | биология | вычислительная математика | география | Гражданское право | демография | дискретная математика | законодательство | история | квантовая физика | компиляторы | КСЕ - Концепция современного естествознания | культурология | линейная алгебра | литература | математическая статистика | математический анализ | Международный стандарт финансовой отчетности МСФО | менеджмент | метрология | механика | немецкий | неорганическая химия | ОБЖ | общая физика | операционные системы | оптимизация в сапр | органическая химия | педагогика | политология | правоведение | прочие дисциплины | психология (методы) | радиоэлектроника | религия | русский | сертификация | сопромат | социология | теория вероятностей | управление в технических системах | физкультура | философия | фотография | французский | школьная математика | экология | экономика | экономика (словарь) | язык Assembler | язык Basic, VB | язык Pascal | язык Си, Си++ |