Êíèãà: Àðõèòåêòóðà îïåðàöèîííîé ñèñòåìû UNIX

6.3 ÊÎÍÒÅÊÑÒ ÏÐÎÖÅÑÑÀ

6.3 ÊÎÍÒÅÊÑÒ ÏÐÎÖÅÑÑÀ

Êîíòåêñò ïðîöåññà âêëþ÷àåò â ñåáÿ ñîäåðæèìîå àäðåñíîãî ïðîñòðàíñòâà çàäà÷è, âûäåëåííîãî ïðîöåññó, à òàêæå ñîäåðæèìîå îòíîñÿùèõñÿ ê ïðîöåññó àïïàðàòíûõ ðåãèñòðîâ è ñòðóêòóð äàííûõ ÿäðà. Ñ ôîðìàëüíîé òî÷êè çðåíèÿ, êîíòåêñò ïðîöåññà îáúåäèíÿåò â ñåáå ïîëüçîâàòåëüñêèé êîíòåêñò, ðåãèñòðîâûé êîíòåêñò è ñèñòåìíûé êîíòåêñò[17]. Ïîëüçîâàòåëüñêèé êîíòåêñò ñîñòîèò èç êîìàíä è äàííûõ ïðîöåññà, ñòåêà çàäà÷è è ñîäåðæèìîãî ñîâìåñòíî èñïîëüçóåìîãî ïðîñòðàíñòâà ïàìÿòè â âèðòóàëüíûõ àäðåñàõ ïðîöåññà. Òå ÷àñòè âèðòóàëüíîãî àäðåñíîãî ïðîñòðàíñòâà ïðîöåññà, êîòîðûå ïåðèîäè÷åñêè îòñóòñòâóþò â îïåðàòèâíîé ïàìÿòè âñëåäñòâèå âûãðóçêè èëè çàìåùåíèÿ ñòðàíèö, òàêæå âêëþ÷àþòñÿ â ïîëüçîâàòåëüñêèé êîíòåêñò.

Ðåãèñòðîâûé êîíòåêñò ñîñòîèò èç ñëåäóþùèõ êîìïîíåíò:

• Ñ÷åò÷èêà êîìàíä, óêàçûâàþùåãî àäðåñ ñëåäóþùåé êîìàíäû, êîòîðóþ áóäåò âûïîëíÿòü öåíòðàëüíûé ïðîöåññîð; ýòîò àäðåñ ÿâëÿåòñÿ âèðòóàëüíûì àäðåñîì âíóòðè ïðîñòðàíñòâà ÿäðà èëè ïðîñòðàíñòâà çàäà÷è.

• Ðåãèñòðà ñîñòîÿíèÿ ïðîöåññîðà (PS), êîòîðûé óêàçûâàåò àïïàðàòíûé ñòàòóñ ìàøèíû ïî îòíîøåíèþ ê ïðîöåññó. Ðåãèñòð PS, íàïðèìåð, îáû÷íî ñîäåðæèò ïîäïîëÿ, êîòîðûå óêàçûâàþò, ÿâëÿåòñÿ ëè ðåçóëüòàò ïîñëåäíèõ âû÷èñëåíèé íóëåâûì, ïîëîæèòåëüíûì èëè îòðèöàòåëüíûì, ïåðåïîëíåí ëè ðåãèñòð ñ óñòàíîâêîé áèòà ïåðåíîñà è ò. ä. Îïåðàöèè, âëèÿþùèå íà óñòàíîâêó ðåãèñòðà PS, âûïîëíÿþòñÿ äëÿ îòäåëüíîãî ïðîöåññà, ïîòîìó-òî â ðåãèñòðå PS è ñîäåðæèòñÿ àïïàðàòíûé ñòàòóñ ìàøèíû ïî îòíîøåíèþ ê ïðîöåññó.  äðóãèõ èìåþùèõ âàæíîå çíà÷åíèå ïîäïîëÿõ ðåãèñòðà PS óêàçûâàåòñÿ òåêóùèé óðîâåíü ïðåðûâàíèÿ ïðîöåññîðà, à òàêæå òåêóùèé è ïðåäûäóùèé ðåæèìû âûïîëíåíèÿ ïðîöåññà (ðåæèì ÿäðà/çàäà÷è). Ïî çíà÷åíèþ ïîäïîëÿ òåêóùåãî ðåæèìà âûïîëíåíèÿ ïðîöåññà óñòàíàâëèâàåòñÿ, ìîæåò ëè ïðîöåññ âûïîëíÿòü ïðèâèëåãèðîâàííûå êîìàíäû è îáðàùàòüñÿ ê àäðåñíîìó ïðîñòðàíñòâó ÿäðà.

• Óêàçàòåëÿ âåðøèíû ñòåêà, â êîòîðîì ñîäåðæèòñÿ àäðåñ ñëåäóþùåãî ýëåìåíòà ñòåêà ÿäðà èëè ñòåêà çàäà÷è, â ñîîòâåòñòâèè ñ ðåæèìîì âûïîëíåíèÿ ïðîöåññà.  çàâèñèìîñòè îò àðõèòåêòóðû ìàøèíû óêàçàòåëü âåðøèíû ñòåêà ïîêàçûâàåò íà ñëåäóþùèé ñâîáîäíûé ýëåìåíò ñòåêà èëè íà ïîñëåäíèé èñïîëüçóåìûé ýëåìåíò. Îò àðõèòåêòóðû ìàøèíû òàêæå çàâèñèò íàïðàâëåíèå óâåëè÷åíèÿ ñòåêà (ê ñòàðøèì èëè ìëàäøèì àäðåñàì), íî äëÿ íàñ ñåé÷àñ ýòè âîïðîñû íåñóùåñòâåííû.

• Ðåãèñòðîâ îáùåãî íàçíà÷åíèÿ, â êîòîðûõ ñîäåðæèòñÿ èíôîðìàöèÿ, ñãåíåðèðîâàííàÿ ïðîöåññîì âî âðåìÿ åãî âûïîëíåíèÿ. ×òîáû îáëåã÷èòü ïîñëåäóþùèå îáúÿñíåíèÿ, âûäåëèì ñðåäè íèõ äâà ðåãèñòðà — ðåãèñòð 0 è ðåãèñòð 1 — äëÿ äîïîëíèòåëüíîãî èñïîëüçîâàíèÿ ïðè ïåðåäà÷å èíôîðìàöèè ìåæäó ïðîöåññàìè è ÿäðîì.

Ñèñòåìíûé êîíòåêñò ïðîöåññà èìååò «ñòàòè÷åñêóþ ÷àñòü» (ïåðâûå òðè ýëåìåíòà â íèæåñëåäóþùåì ñïèñêå) è «äèíàìè÷åñêóþ ÷àñòü» (ïîñëåäíèå äâà ýëåìåíòà). Íà ïðîòÿæåíèè âñåãî âðåìåíè âûïîëíåíèÿ ïðîöåññ ïîñòîÿííî ðàñïîëàãàåò îäíîé ñòàòè÷åñêîé ÷àñòüþ ñèñòåìíîãî êîíòåêñòà, íî ìîæåò èìåòü ïåðåìåííîå ÷èñëî äèíàìè÷åñêèõ ÷àñòåé. Äèíàìè÷åñêóþ ÷àñòü ñèñòåìíîãî êîíòåêñòà ìîæíî ïðåäñòàâèòü â âèäå ñòåêà, ýëåìåíòàìè êîòîðîãî ÿâëÿþòñÿ êîíòåêñòíûå óðîâíè, êîòîðûå ïîìåùàþòñÿ â ñòåê ÿäðîì èëè âûòàëêèâàþòñÿ èç ñòåêà ïðè íàñòóïëåíèè ðàçëè÷íûõ ñîáûòèé. Ñèñòåìíûé êîíòåêñò âêëþ÷àåò â ñåáÿ ñëåäóþùèå êîìïîíåíòû:

• Çàïèñü â òàáëèöå ïðîöåññîâ, îïèñûâàþùàÿ ñîñòîÿíèå ïðîöåññà (ðàçäåë 6.1) è ñîäåðæàùàÿ ðàçëè÷íóþ óïðàâëÿþùóþ èíôîðìàöèþ, ê êîòîðîé ÿäðî âñåãäà ìîæåò îáðàòèòüñÿ.

• ×àñòü àäðåñíîãî ïðîñòðàíñòâà çàäà÷è, âûäåëåííàÿ ïðîöåññó, ãäå õðàíèòñÿ óïðàâëÿþùàÿ èíôîðìàöèÿ î ïðîöåññå, äîñòóïíàÿ òîëüêî â êîíòåêñòå ïðîöåññà. Îáùèå óïðàâëÿþùèå ïàðàìåòðû, òàêèå êàê ïðèîðèòåò ïðîöåññà, õðàíÿòñÿ â òàáëèöå ïðîöåññîâ, ïîñêîëüêó îáðàùåíèå ê íèì äîëæíî ïðîèçâîäèòüñÿ çà ïðåäåëàìè êîíòåêñòà ïðîöåññà.

• Çàïèñè ÷àñòíîé òàáëèöû îáëàñòåé ïðîöåññà, îáùèå òàáëèöû îáëàñòåé è òàáëèöû ñòðàíèö, íåîáõîäèìûå äëÿ ïðåîáðàçîâàíèÿ âèðòóàëüíûõ àäðåñîâ â ôèçè÷åñêèå, â ñâÿçè ñ ÷åì â íèõ îïèñûâàþòñÿ îáëàñòè êîìàíä, äàííûõ, ñòåêà è äðóãèå îáëàñòè, ïðèíàäëåæàùèå ïðîöåññó. Åñëè íåñêîëüêî ïðîöåññîâ ñîâìåñòíî èñïîëüçóþò îáùèå îáëàñòè, ýòè îáëàñòè âõîäÿò ñîñòàâíîé ÷àñòüþ â êîíòåêñò êàæäîãî ïðîöåññà, ïîñêîëüêó êàæäûé ïðîöåññ ðàáîòàåò ñ ýòèìè îáëàñòÿìè íåçàâèñèìî îò äðóãèõ ïðîöåññîâ.  çàäà÷è óïðàâëåíèÿ ïàìÿòüþ âõîäèò èäåíòèôèêàöèÿ ó÷àñòêîâ âèðòóàëüíîãî àäðåñíîãî ïðîñòðàíñòâà ïðîöåññà, íå ÿâëÿþùèõñÿ ðåçèäåíòíûìè â ïàìÿòè.

• Ñòåê ÿäðà, â êîòîðîì õðàíÿòñÿ çàïèñè ïðîöåäóð ÿäðà, åñëè ïðîöåññ âûïîëíÿåòñÿ â ðåæèìå ÿäðà. Íåñìîòðÿ íà òî, ÷òî âñå ïðîöåññû ïîëüçóþòñÿ îäíèìè è òåìè æå ïðîãðàììàìè ÿäðà, êàæäûé èç íèõ èìååò ñâîþ ñîáñòâåííóþ êîïèþ ñòåêà ÿäðà äëÿ õðàíåíèÿ èíäèâèäóàëüíûõ îáðàùåíèé ê ôóíêöèÿì ÿäðà. Ïóñòü, íàïðèìåð, îäèí ïðîöåññ âûçûâàåò ôóíêöèþ creat è ïðèîñòàíàâëèâàåòñÿ â îæèäàíèè íàçíà÷åíèÿ íîâîãî èíäåêñà, à äðóãîé ïðîöåññ âûçûâàåò ôóíêöèþ read è ïðèîñòàíàâëèâàåòñÿ â îæèäàíèè çàâåðøåíèÿ ïåðåäà÷è äàííûõ ñ äèñêà â ïàìÿòü. Îáà ïðîöåññà îáðàùàþòñÿ ê ôóíêöèÿì ÿäðà è ó êàæäîãî èç íèõ èìååòñÿ â íàëè÷èè îòäåëüíûé ñòåê, â êîòîðîì õðàíèòñÿ ïîñëåäîâàòåëüíîñòü âûïîëíåííûõ îáðàùåíèé. ßäðî äîëæíî èìåòü âîçìîæíîñòü âîññòàíàâëèâàòü ñîäåðæèìîå ñòåêà ÿäðà è ïîëîæåíèå óêàçàòåëÿ âåðøèíû ñòåêà äëÿ òîãî, ÷òîáû âîçîáíîâëÿòü âûïîëíåíèå ïðîöåññà â ðåæèìå ÿäðà.  ðàçëè÷íûõ ñèñòåìàõ ñòåê ÿäðà ÷àñòî ðàñïîëàãàåòñÿ â ïðîñòðàíñòâå ïðîöåññà, îäíàêî ýòîò ñòåê ÿâëÿåòñÿ ëîãè÷åñêè-íåçàâèñèìûì è, òàêèì îáðàçîì, ìîæåò ïîìåùàòüñÿ â ñàìîñòîÿòåëüíîé îáëàñòè ïàìÿòè. Êîãäà ïðîöåññ âûïîëíÿåòñÿ â ðåæèìå çàäà÷è, ñîîòâåòñòâóþùèé åìó ñòåê ÿäðà ïóñò.

• Äèíàìè÷åñêàÿ ÷àñòü ñèñòåìíîãî êîíòåêñòà ïðîöåññà, ñîñòîÿùàÿ èç íåñêîëüêèõ óðîâíåé è èìåþùàÿ âèä ñòåêà, êîòîðûé îñâîáîæäàåòñÿ îò ýëåìåíòîâ â ïîðÿäêå, îáðàòíîì ïîðÿäêó èõ ïîñòóïëåíèÿ. Íà êàæäîì óðîâíå ñèñòåìíîãî êîíòåêñòà ñîäåðæèòñÿ èíôîðìàöèÿ, íåîáõîäèìàÿ äëÿ âîññòàíîâëåíèÿ ïðåäûäóùåãî óðîâíÿ è âêëþ÷àþùàÿ â ñåáÿ ðåãèñòðîâûé êîíòåêñò ïðåäûäóùåãî óðîâíÿ.

ßäðî ïîìåùàåò êîíòåêñòíûé óðîâåíü â ñòåê ïðè âîçíèêíîâåíèè ïðåðûâàíèÿ, ïðè îáðàùåíèè ê ñèñòåìíîé ôóíêöèè èëè ïðè ïåðåêëþ÷åíèè êîíòåêñòà ïðîöåññà. Êîíòåêñòíûé óðîâåíü âûòàëêèâàåòñÿ èç ñòåêà ïîñëå çàâåðøåíèÿ îáðàáîòêè ïðåðûâàíèÿ, ïðè âîçâðàòå ïðîöåññà â ðåæèì çàäà÷è ïîñëå âûïîëíåíèÿ ñèñòåìíîé ôóíêöèè, èëè ïðè ïåðåêëþ÷åíèè êîíòåêñòà. Òàêèì îáðàçîì, ïåðåêëþ÷åíèå êîíòåêñòà âëå÷åò çà ñîáîé êàê ïîìåùåíèå êîíòåêñòíîãî óðîâíÿ â ñòåê, òàê è èçâëå÷åíèå óðîâíÿ èç ñòåêà: ÿäðî ïîìåùàåò â ñòåê êîíòåêñòíûé óðîâåíü ñòàðîãî ïðîöåññà, à èçâëåêàåò èç ñòåêà êîíòåêñòíûé óðîâåíü íîâîãî ïðîöåññà. Èíôîðìàöèÿ, íåîáõîäèìàÿ äëÿ âîññòàíîâëåíèÿ òåêóùåãî êîíòåêñòíîãî óðîâíÿ, õðàíèòñÿ â çàïèñè òàáëèöû ïðîöåññîâ.

Íà Ðèñóíêå 6.8 èçîáðàæåíû êîìïîíåíòû êîíòåêñòà ïðîöåññà. Ñëåâà íà ðèñóíêå èçîáðàæåíà ñòàòè÷åñêàÿ ÷àñòü êîíòåêñòà.  íåå âõîäÿò: ïîëüçîâàòåëüñêèé êîíòåêñò, ñîñòîÿùèé èç ïðîãðàìì ïðîöåññà (ìàøèííûõ èíñòðóêöèé), äàííûõ, ñòåêà è ðàçäåëÿåìîé ïàìÿòè (åñëè îíà èìååòñÿ), à òàêæå ñòàòè÷åñêàÿ ÷àñòü ñèñòåìíîãî êîíòåêñòà, ñîñòîÿùàÿ èç çàïèñè òàáëèöû ïðîöåññîâ, ïðîñòðàíñòâà ïðîöåññà è çàïèñåé ÷àñòíîé òàáëèöû îáëàñòåé (èíôîðìàöèè, íåîáõîäèìîé äëÿ òðàíñëÿöèè âèðòóàëüíûõ àäðåñîâ ïîëüçîâàòåëüñêîãî êîíòåêñòà). Ñïðàâà íà ðèñóíêå èçîáðàæåíà äèíàìè÷åñêàÿ ÷àñòü êîíòåêñòà. Îíà èìååò âèä ñòåêà è âêëþ÷àåò â ñåáÿ íåñêîëüêî ýëåìåíòîâ, õðàíÿùèõ ðåãèñòðîâûé êîíòåêñò ïðåäûäóùåãî óðîâíÿ è ñòåê ÿäðà äëÿ òåêóùåãî óðîâíÿ. Íóëåâîé êîíòåêñòíûé óðîâåíü ïðåäñòàâëÿåò ñîáîé ïóñòîé óðîâåíü, îòíîñÿùèéñÿ ê ïîëüçîâàòåëüñêîìó êîíòåêñòó; óâåëè÷åíèå ñòåêà çäåñü èäåò â àäðåñíîì ïðîñòðàíñòâå çàäà÷è, ñòåê ÿäðà íåäåéñòâèòåëåí. Ñòðåëêà, ñîåäèíÿþùàÿ ìåæäó ñîáîé ñòàòè÷åñêóþ ÷àñòü ñèñòåìíîãî êîíòåêñòà è âåðõíèé óðîâåíü äèíàìè÷åñêîé ÷àñòè êîíòåêñòà, îçíà÷àåò òî, ÷òî â òàáëèöå ïðîöåññîâ õðàíèòñÿ èíôîðìàöèÿ, ïîçâîëÿþùàÿ ÿäðó âîññòàíàâëèâàòü òåêóùèé êîíòåêñòíûé óðîâåíü ïðîöåññà.


Ðèñóíîê 6.8. Êîìïîíåíòû êîíòåêñòà ïðîöåññà

Ïðîöåññ âûïîëíÿåòñÿ â ðàìêàõ ñâîåãî êîíòåêñòà èëè, åñëè ãîâîðèòü áîëåå òî÷íî, â ðàìêàõ ñâîåãî òåêóùåãî êîíòåêñòíîãî óðîâíÿ. Êîëè÷åñòâî êîíòåêñòíûõ óðîâíåé îãðàíè÷èâàåòñÿ ÷èñëîì ïîääåðæèâàåìûõ â ìàøèíå óðîâíåé ïðåðûâàíèÿ. Íàïðèìåð, åñëè â ìàøèíå ïîääåðæèâàþòñÿ ðàçíûå óðîâíè ïðåðûâàíèé äëÿ ïðîãðàìì, òåðìèíàëîâ, äèñêîâ, âñåõ îñòàëüíûõ ïåðèôåðèéíûõ óñòðîéñòâ è òàéìåðà, òî åñòü 5 óðîâíåé ïðåðûâàíèÿ, òî, ñëåäîâàòåëüíî, ó ïðîöåññà ìîæåò áûòü íå áîëåå 7 êîíòåêñòíûõ óðîâíåé: ïî îäíîìó íà êàæäûé óðîâåíü ïðåðûâàíèÿ, 1 äëÿ ñèñòåìíûõ ôóíêöèé è 1 äëÿ ïîëüçîâàòåëüñêîãî êîíòåêñòà. 7 óðîâíåé áóäåò äîñòàòî÷íî, äàæå åñëè ïðåðûâàíèÿ áóäóò ïîñòóïàòü â «íàèõóäøåì» èç âîçìîæíûõ ïîðÿäêîâ, ïîñêîëüêó ïðåðûâàíèå äàííîãî óðîâíÿ áëîêèðóåòñÿ (òî åñòü åãî îáðàáîòêà îòêëàäûâàåòñÿ öåíòðàëüíûì ïðîöåññîðîì) äî òåõ ïîð, ïîêà ÿäðî íå îáðàáîòàåò âñå ïðåðûâàíèÿ ýòîãî è áîëåå âûñîêèõ óðîâíåé.

Íåñìîòðÿ íà òî, ÷òî ÿäðî âñåãäà èñïîëíÿåò êîíòåêñò êàêîãî-íèáóäü ïðîöåññà, ëîãè÷åñêàÿ ôóíêöèÿ, êîòîðóþ ÿäðî ðåàëèçóåò â êàæäûé ìîìåíò, íå âñåãäà èìååò îòíîøåíèå ê äàííîìó ïðîöåññó. Íàïðèìåð, åñëè âîçâðàùàÿ äàííûå, äèñêîâîå çàïîìèíàþùåå óñòðîéñòâî ïîñûëàåò ïðåðûâàíèå, òî ïðåðûâàåòñÿ âûïîëíåíèå òåêóùåãî ïðîöåññà è ÿäðî îáðàáàòûâàåò ïðåðûâàíèå íà íîâîì êîíòåêñòíîì óðîâíå ýòîãî ïðîöåññà, äàæå åñëè äàííûå îòíîñÿòñÿ ê äðóãîìó ïðîöåññó. Ïðîãðàììû îáðàáîòêè ïðåðûâàíèé îáû÷íî íå îáðàùàþòñÿ ê ñòàòè÷åñêèì ñîñòàâëÿþùèì êîíòåêñòà ïðîöåññà è íå âèäîèçìåíÿþò èõ, òàê êàê ýòè ÷àñòè íå ñâÿçàíû ñ ïðåðûâàíèÿìè.

Îãëàâëåíèå êíèãè


Ãåíåðàöèÿ: 0.643. Çàïðîñîâ Ê ÁÄ/Cache: 2 / 0
ïîäåëèòüñÿ
Ââåðõ Âíèç