d.Gestiun semn

[ ]
Nucleul descarc imaginea procesului din memorie pentru semnalele care sugereaz c ceva este gre?it n proces, cum ar fi faptul c procesul execut o instruciune ilegal sau cnd acesta acceseaz o adres n afara spaiului su virtual de adrese. Dar nucleul nu descarc core-ul pentru semnale care nu implic o eroare program. Cnd un proces recepioneaz un semnal pe care anterior a decis s-l ignore, acesta continu ca ?i cnd semnalul nu ar fi aprut. Deoarece nucleul nu reseteaz cmpul din u area care arat c semnalul este ignorat, procesul va ignora semnalul ?i la apariia ulterioar a acestuia. Dac un proces recepioneaz un semnal pe care acesta se decisese anterior s-l intercepteze, acesta execut funcia de tratare a semnalului specificat de utilizator imediat cum se ntoarce n modul utilizator, dup ce nucleul parcurge urmtorii pa?i:
1.Nucleul acceseaz contextul regi?trilor salvai al utilizatorului, gsind numrtorul programului (PC) ?i pointerul stivei (SP) pe care acesta i salvase pentru ntoarcerea n procesul utilizator.
2.Acesta ?terge cmpul semnalului tratat din u area, setndu-l la starea implicit.
3.Nucleul creaz un nivel de stivei n stiva utilizator, scriind n aceasta valorile pentru PC ?i SP pe care acesta le restabile?te din contextul regi?trilor salvai al utilizatorului ?i aloc spaiu nou, dac este necesar. Stiva utilizator art ca ?i cum procesul apelase o funcie la nivel utilizator (interceptorul de semnale) n punctul unde acesta fcuse apelul sistem sau nucleul l ntrerupsese (nainte de recunoa?terea semnalului).
4.Nucleul schimb contextul regi?trilor salvai al utilizatorului: acesta reseteaz valorile pentru PC la adresa funciei de interceptare a semnalului ?i seteaz valoarea pentru SP pentru a ine evidena cre?terii stivei utilizatorului.
Dup ntoarcerea din nucleu n modul user, procesul va executa funcia de tratare a semnalului; cnd acesta termin funcia de tratare a semnalului, se ntoarce n locul din codul utilizator unde a fost gsit apelul sistem sau s-a produs ntreruperea, imitnd o ntoarcere din apelul sistem sau ntrerupere.

:

Network | | | | | | | | | | | | | | | - | | | | | | | | | | | | | | | | | | | | | () | | | | | | | | | | | | | | | | () | Assembler | Basic, VB | Pascal | , ++ |