b.Gestiun semn

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


Nucleul verificг recepюionarea unui semnal cвnd un proces este gata sг se оntoarcг din modul nucleu оn modul utilizator ?i cвnd acesta intrг sau pгrгse?te starea de sleep la o prioritate scгzutг programatг. Nucleul trateazг semnalele doar cвnd un proces se оntoarce din modul nucleu оn modul utilizator. Astfel, un semnal nu are un efect imediat оntr-un proces care ruleazг оn modul nucleu. Dacг un proces ruleazг оn modul utilizator ?i nucleul trateazг o оntrerupere care presupune trimiterea unui semnal cгtre proces, nucleul va recunoa?te ?i trata semnalul cвnd se va оntoarce din оntrerupere. Astfel, un proces niciodatг nu se va executa оn modul utilizator оnainte de tratarea semnalelor importante. Algoritm pentru recunoa?terea semnalelor:
^algoritmul issig /* test pentru recepюia semnalelor */
^intrгri: niciuna
^ie?iri: adevгrat, dacг procesul recepюioneazг semnale pe care nu le ignorг;
^fals, оn celelalte cazuri
{
^while( cвmpul semalului recepюionat оn intrarea din tabela proceselor nu este 0)
{
^gгse?te numгrul semnalului trimis cгtre proces;
^if( semnalul este de "terminare fiu")
{
^if( se ignorг semnalul de "terminare fiu")
elibereazг intrгrile din tabela proceselor corespunzгtoare fiilor aflaюi оn stгrile zombie;
^else if( intercepteazг semnale de "terminare proces fiu")
^return (adevгrat);
}
^else if(dacг nu este ignorat semnalul)
^return (adevгrat);
^?terge bitul semnalului recepюionat din cвmpul
semnalului aflat оn tabela proceselor;
}
^return (fals);
}
Оn algoritmul issig, nucleul ?terge indicatorii care marcheazг apariюia semnalelor pe care procesul vrea sг le ignore dar noteazг existenюa semnalelor pe care acesta nu le ignorг.
Nucleul trateazг semnalele оn contextul procesului care le recepюioneazг, deci un proces trebuie sг ruleze pentru a putea trata semnalele. Existг trei cazuri оn tratarea semnalelor: procesul apeleazг exit la recepюionarea semnalului, acesta ignorг semnalul, sau executг o funcюie particularг (definitг de utilizator).