a.Salvarea contextului

[ ]
Nucleul salveaz contextul unui proces ori de cte ori el introduce n stiv un nou cadru context de nivel sistem. n particular, aceasta se ntmpl cnd sistemul recepioneaz o ntrerupere, cnd execut un apel sistem, sau cnd nucleul face o schimbare de context.
Sistemul rspunde de tratarea ntreruperilor, indiferent dac ele sunt ntreruperi hardware (cum ar fi de la ceas sau de la dispozitivele periferice), ntreruperi programabile (execuia instruciunilor proiectate pentru a genera , sau excepii (cum ar fi erori de pagin).Dac UCP lucreaz la un nivel de execuie procesor mai sczut dect nivelul ntreruperii, el accept ntreruperea naintea decodificrii instruciunii urmtoare ?i ridic nivelul de execuie al procesorului, astfel nct nici o alt ntrerupere a acelui nivel nu se poate produce ct timp trateaz ntreruperea curent pstrnd integritatea structurilor de date ale nucleului. Nucleul trateaz ntreruperea cu urmtoarea secven de operaii: 1. Salveaz contextul registru curent al procesului n execuie ?i creeaz un nou cadru context.
2. Determin "sursa" sau cauza ntreruperii, identific tipul ntreruperii (de ceas sau de disc) ?i numrul unitii care a produs ntreruperea, dac este cazul(cum ar fi driverul de disc). Cnd sistemul recepioneaz o ntrerupere, aceasta prime?te un numr de la ma?in pe care l folose?te ca deplasament ntr-o tabel, numit de obicei vector de ntrerupere. De obicei conine adresa rutinei de tratare a ntreruperii corespunztoare sursei de ntrerupere ?i calea de gsire a parametrilor pentru rutin. 3. Nucleul invoc rutina de tratare a ntreruperii. Stiva nucleu pentru noul cadru context este din punct de vedere logic distinct de stiva nucleu pentru cadrul context anterior.
4. Dup terminarea execuiei rutinei de tratare a ntreruperii se reia execuia proceslui curent.
Nucleul execut o secven de instruciuni specifice ma?inii ?i reface context registrul ?i stiva nucleu a cadrului context anterior a?a cum erau n momentul apariiei ntreruperii ?i apoi reia execuia cadrului restaurat.

:

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