SHPORA.net :: PDA

Login:
đćăèńòđàöèÿ

Main
FAQ

ăóìàíèòàđíûć íàóêè
ćńòćńòâćííûć íàóêè
ìàòćìàòèśćńêèć íàóêè
òćőíèśćńêèć íàóêè
Search:
Title: | Body:

a.Terminarea proces

Într-un sistem UNIX procesele se termină prin execuția apelului sistem exit. Un proces care a executat exit intră în starea zombie, î?i abandonează resursele ?i î?i distruge contextul mai puțin intrarea din tabela de procese. Sintaxa apelului este:
^exit (status)
unde valoarea status este întoarsă părintelui pentru examinare.
^algoritm exit
^intrări: codul de retur pentru procesul părinte
^ie?iri: niciuna
{
^ignoră toate semnalele;
^if( conducătorul grupului de procese este asociat cu terminalul de control)
{
^trimite semnalul de suspendare a tuturor membrilor grului de procese;
^inițializează grupul proceselor pentru toți membrii la 9;
}
^închide toate fi?ierele (versiunea internă a algoritmului close);
^eliberează directorul curent (algoritmul iput);
^eliberează rădăcina curentă (schimbată) dacă există (alg. iput);
^eliberează regiunile de memorie asociate procesului (alg. freereg);
^scrie înregistrarea cu informații de contabilitate;
^trece procesul în starea zombie;
^atribuie PID-ului părinte al tuturor fiilor ca fiind procesul init (1);
^dacă vreun proces fiu era în starea zombie trimite semnalul de "terminare proces fiu" către init;
^trimite semnal de "terminare proces fiu" procesului părinte;
^comută contextul;
}
^Nucleul dezactivează tratarea semnalelor de către proces deoarece nu mai are nici un sens tratarea semnalelor. Dacă procesul care execută exit este un conducător de grup de procese asociat cu un terminal de control, nucleul presupune că utlizatorul nu mai face nimic util ?i trimite semnalul de suspendare către toate procesele aflate în grupul de procese.
Astfel, dacă un utilizator tastează "sfâr?it de fi?ier" din shell-ul login-ului în timp ce mai există procese în execuție asociate terminalului, procesul care face exit le va trimite un semnal de suspendare. Nucleul inițializează, de asemenea, numărul de grup la 0 pentru procesele din grup, deoarece este posibil ca un alt proces să ia identificatorul procesului care tocmai a executat exit ?i să fie un conducător de grup.