a.Terminarea proces
^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.