А.В. Столяров - Программирование на языке ассемблера NASM для ОС Unix (1110582), страница 30
Текст из файла (страница 30)
125) âî âðåìÿ èñïîëíåíèÿ îïåðàöèè ââîäà-âûâîäàöåíòðàëüíûé ïðîöåññîð ìîã íåïðåðûâíî îïðàøèâàòü êîíòðîëëåð óñòðîé129ñòâà íà ïðåäìåò åãî ãîòîâíîñòè (çàâåðøåíà ëè òðåáóåìàÿ îïåðàöèÿ), ïîñëå ÷åãî ïðîèçâåñòè íåîáõîäèìûå äåéñòâèÿ ïî ïîäãîòîâêå ê âîçîáíîâëåíèþ ðàáîòû àêòèâíîé çàäà÷è â ÷àñòíîñòè, ñêîïèðîâàòü ïðî÷èòàííûåäàííûå èç áóôåðà êîíòðîëëåðà â îáëàñòü ïàìÿòè, â êîòîðîé çàäà÷à îæèäàåò ïîÿâëåíèÿ äàííûõ. Ñëåäóåò îòìåòèòü, ÷òî â ýòîì ñëó÷àå ïðîöåññîðáûë áû íåïðåðûâíî çàíÿò âî âðåìÿ îïåðàöèè ââîäà-âûâîäà, íåñìîòðÿ íàòî, ÷òî íèêàêèõ ïîëåçíûõ âû÷èñëåíèé îí ïðè ýòîì íå ïðîèçâîäèë.
Òàêîéñïîñîá âçàèìîäåéñòâèÿ íàçûâàåòñÿ àêòèâíûì îæèäàíèåì . ßñíî, ÷òîàêòèâíîå îæèäàíèå íåýôôåêòèâíî, òàê êàê ïðîöåññîðíîå âðåìÿ ìîæíîáûëî áû èñïîëüçîâàòü ñ áîëüøåé ïîëüçîé. Ïðè ïåðåõîäå ê ìóëüòèçàäà÷íîé îáðàáîòêå, ïîêàçàííîé íà ðèñ. 4.3 íà ñòð. 125, âîçíèêàåò îïðåäåëåííàÿïðîáëåìà.  ìîìåíò çàâåðøåíèÿ îïåðàöèè ââîäà-âûâîäà ïðîöåññîð çàíÿòèñïîëíåíèåì âòîðîé çàäà÷è. Ìåæäó òåì, â ìîìåíò çàâåðøåíèÿ îïåðàöèèòðåáóåòñÿ êàê ìèíèìóì ïåðåâåñòè ïåðâóþ çàäà÷ó èç ñîñòîÿíèÿ áëîêèðîâêè â ñîñòîÿíèå ãîòîâíîñòè; áîëåå òîãî, ìîãóò ïîòðåáîâàòüñÿ è äðóãèåäåéñòâèÿ, òàêèå êàê êîïèðîâàíèå äàííûõ èç áóôåðà êîíòðîëëåðà, ñáðîñêîíòðîëëåðà (íàïðèìåð, âûêëþ÷åíèå ìîòîðà äèñêà), à â áîëåå ñëîæíûõñèòóàöèÿõ èíèöèèðîâàíèå äðóãîé îïåðàöèè ââîäà-âûâîäà, ðàíåå îòëîæåííîé (ýòî ìîæåò áûòü îïåðàöèÿ ÷òåíèÿ ñ òîãî æå äèñêà, êîòîðóþçàòðåáîâàëà äðóãàÿ çàäà÷à â òî âðåìÿ, êàê ïåðâàÿ îïåðàöèÿ åùå âûïîëíÿëàñü). Ïðîáëåìà ñîñòîèò â òîì, êàêèì îáðàçîì îïåðàöèîííàÿ ñèñòåìàóçíàåò î çàâåðøåíèè îïåðàöèè ââîäà-âûâîäà, åñëè ïðîöåññîð ïðè ýòîìçàíÿò âûïîëíåíèåì äðóãîé çàäà÷è è íåïðåðûâíîãî îïðîñà êîíòðîëëåðàíå ïðîèçâîäèò.Ðåøèòü ïðîáëåìó ïîçâîëÿåò àïïàðàò ïðåðûâàíèé .
 äàííîì êîíêðåòíîì ñëó÷àå â ìîìåíò çàâåðøåíèÿ îïåðàöèè êîíòðîëëåð ïîäàåò öåíòðàëüíîìó ïðîöåññîðó îïðåäåëåííûé ñèãíàë (ýëåêòðè÷åñêèé èìïóëüñ),íàçûâàåìûé çàïðîñîì ïðåðûâàíèÿ . Öåíòðàëüíûé ïðîöåññîð, ïîëó÷èâýòîò ñèãíàë, ïðåðûâàåò âûïîëíåíèå àêòèâíîé çàäà÷è è ïåðåäàåò óïðàâëåíèå ïðîöåäóðå îïåðàöèîííîé ñèñòåìû, êîòîðàÿ âûïîëíÿåò âñå äåéñòâèÿ,íåîáõîäèìûå ïî îêîí÷àíèè îïåðàöèè ââîäà-âûâîäà. Òàêàÿ ïðîöåäóðà íàçûâàåòñÿ îáðàáîò÷èêîì ïðåðûâàíèÿ . Ïîñëå çàâåðøåíèÿ ïðîöåäóðûîáðàáîò÷èêà óïðàâëåíèå âîçâðàùàåòñÿ àêòèâíîé çàäà÷å.Äëÿ ðåàëèçàöèè ïàêåòíîãî ìóëüòèçàäà÷íîãî ðåæèìà äîñòàòî÷íî, ÷òîáû íà óðîâíå àïïàðàòóðû áûëè ðåàëèçîâàíû ïðåðûâàíèÿ, çàùèòà ïàìÿòèè äâà ðåæèìà ðàáîòû ïðîöåññîðà.
Åñëè æå íåîáõîäèìî ðåàëèçîâàòü ñèñòåìó ðàçäåëåíèÿ âðåìåíè èëè ðåàëüíîãî âðåìåíè, òðåáóåòñÿ íàëè÷èå âàïïàðàòóðå åùå îäíîãî êîìïîíåíòà òàéìåðà . Äåéñòâèòåëüíî, ïëàíèðîâùèêó îïåðàöèîííîé ñèñòåìû ðàçäåëåíèÿ âðåìåíè íóæíà âîçìîæíîñòü îòñëåæèâàíèÿ èñòå÷åíèÿ êâàíòîâ âðåìåíè, âûäåëåííûõ ïîëüçîâàòåëüñêèì ïðîãðàììàì; â ñèñòåìå ðåàëüíîãî âðåìåíè òàêàÿ âîçìîæíîñòüòàêæå íåîáõîäèìà, ïðè÷åì òðåáîâàíèÿ ê íåé äàæå áîëåå æ¼ñòêèå: íå ñíÿââîâðåìÿ ñ ïðîöåññîðà àêòèâíîå íà òîò ìîìåíò ïðèëîæåíèå, ïëàíèðîâùèê130ðèñêóåò íå óñïåòü âûäåëèòü áîëåå âàæíûì ïðîãðàììàì íåîáõîäèìîå èìïðîöåññîðíîå âðåìÿ, â ðåçóëüòàòå ÷åãî ìîãóò íàñòóïèòü íåïðèÿòíûå ïîñëåäñòâèÿ (âñïîìíèòå ïðèìåð ñ àâòîïèëîòîì ñàìîë¼òà). Òàéìåð ïðåäñòàâëÿåò ñîáîé ñðàâíèòåëüíî ïðîñòîå óñòðîéñòâî, âñÿ ôóíêöèîíàëüíîñòüêîòîðîãî ñâîäèòñÿ ê ãåíåðàöèè ïðåðûâàíèé ÷åðåç ðàâíûå ïðîìåæóòêèâðåìåíè.
Ýòè ïðåðûâàíèÿ äàþò âîçìîæíîñòü îïåðàöèîííîé ñèñòåìå ïîëó÷èòü óïðàâëåíèå, ïðîàíàëèçèðîâàòü òåêóùåå ñîñòîÿíèå èìåþùèõñÿ çàäà÷ è ïðè íåîáõîäèìîñòè ñìåíèòü àêòèâíóþ çàäà÷ó.Èòàê, äëÿ ðåàëèçàöèè ìóëüòèçàäà÷íîé îïåðàöèîííîé ñèñòåìû àïïàðàòíîå îáåñïå÷åíèå êîìïüþòåðà îáÿçàíî ïîääåðæèâàòü:• àïïàðàò ïðåðûâàíèé;• çàùèòó ïàìÿòè;• ïðèâèëåãèðîâàííûé è îãðàíè÷åííûé ðåæèìû ðàáîòû öåíòðàëüíîãîïðîöåññîðà;• òàéìåð.Ïåðâûå òðè ñâîéñòâà íåîáõîäèìû â ëþáîé ìóëüòèçàäà÷íîé ñèñòåìå, ïîñëåäíåå ìîæåò îòñóòñòâîâàòü â ñëó÷àå ïàêåòíîé ïëàíèðîâêè (õîòÿ â ðåàëüíî ñóùåñòâóþùèõ ñèñòåìàõ òàéìåð ïðèñóòñòâóåò âñåãäà). Ñëåäóåò îáðàòèòü âíèìàíèå, ÷òî èç ïåðå÷èñëåííûõ ñâîéñòâ òîëüêî òàéìåð ÿâëÿåòñÿîòäåëüíûì óñòðîéñòâîì, îñòàëüíûå òðè ïðåäñòàâëÿþò ñîáîé îñîáåííîñòèöåíòðàëüíîãî ïðîöåññîðà.Òåîðåòè÷åñêè ïðè íàëè÷èè òàéìåðà ìîæíî ñäåëàòü ïðåðûâàíèå ïî òàéìåðóïðåðûâàíèåì â ñèñòåìå.
 ýòîì ñëó÷àå îïåðàöèîííàÿ ñèñòåìà, ïîëó÷èâ óïðàâëåíèå â ðåçóëüòàòå òàêîãî ïðåðûâàíèÿ, äîëæíà áóäåò óæå ñàìà îïðîñèòü âñå àêòèâíûå êîíòðîëëåðû âíåøíèõ óñòðîéñòâ íà ïðåäìåò çàâåðøåíèÿ âûïîëíÿâøèõñÿ îïåðàöèé, à òàêæå ïðîâåðèòü, íå íàõîäèòñÿ ëè àêòèâíàÿ çàäà÷à âêàêîì-òî ¾ñïåöèàëüíîì¿ ñîñòîÿíèè, îáîçíà÷àþùåì ïîòðåáíîñòü â ñèñòåìíîì âûçîâå. Ðåàëüíî òàêàÿ ñõåìà ïîðîæäàåò ìíîæåñòâî ïðîáëåì, ïðåæäå âñåãî ñ ýôôåêòèâíîñòüþ, à âûèãðûø îò å¼ ïðèìåíåíèÿ íåî÷åâèäåí.åäèíñòâåííûì 4.2. Âèäû ïðåðûâàíèéÑîâðåìåííûé òåðìèí ¾ïðåðûâàíèå ¿ äîâîëüíî äàëåêî óøåë â ñâîåìðàçâèòèè îò èçíà÷àëüíîãî çíà÷åíèÿ; íà÷èíàþùèå ïðîãðàììèñòû ÷àñòî ñóäèâëåíèåì îáíàðóæèâàþò, ÷òî íåêîòîðûå ïðåðûâàíèÿ âîâñå íè÷åãî íåïðåðûâàþò.
Äàòü ñòðîãîå îïðåäåëåíèå ïðåðûâàíèÿ áûëî áû íåñêîëüêîçàòðóäíèòåëüíî. Âìåñòî ýòîãî ïîïûòàåìñÿ îáúÿñíèòü ñóùíîñòü ðàçëè÷íûõ âèäîâ ïðåðûâàíèé è íàéòè ìåæäó íèìè òî îáùåå, ÷òî è îïðàâäûâàåòñóùåñòâîâàíèå ñàìîãî òåðìèíà.131 4.2.1. Âíåøíèå (àïïàðàòíûå) ïðåðûâàíèÿÏðåðûâàíèÿ â èçíà÷àëüíîì ñìûñëå óæå çíàêîìû íàì èç ïðåäûäóùåãî ïàðàãðàôà. Òå èëè èíûå óñòðîéñòâà âû÷èñëèòåëüíîé ñèñòåìû ìîãóòîñóùåñòâëÿòü ñâîè ôóíêöèè íåçàâèñèìî îò öåíòðàëüíîãî ïðîöåññîðà; âýòîì ñëó÷àå èì ìîæåò âðåìÿ îò âðåìåíè òðåáîâàòüñÿ âíèìàíèå îïåðàöèîííîé ñèñòåìû, íî åäèíñòâåííûé öåíòðàëüíûé ïðîöåññîð (èëè, ÷òîíè÷óòü íå ëó÷øå, âñå èìåþùèåñÿ â ñèñòåìå öåíòðàëüíûå ïðîöåññîðû)ìîæåò áûòü èìåííî â òàêîé ìîìåíò çàíÿò îáðàáîòêîé ïîëüçîâàòåëüñêîéïðîãðàììû.
Àïïàðàòíûå (èëè âíåøíèå ) ïðåðûâàíèÿ áûëè ïðèçâàíû ðåøèòü ýòó ïðîáëåìó. Äëÿ ïîääåðæêè àïïàðàòíûõ ïðåðûâàíèé ïðîöåññîðèìååò ñïåöèàëüíî ïðåäíàçíà÷åííûå äëÿ ýòîãî êîíòàêòû; ýëåêòðè÷åñêèéèìïóëüñ, ïîäàííûé íà òàêîé êîíòàêò, âîñïðèíèìàåòñÿ ïðîöåññîðîì êàêñèãíàë î òîì, ÷òî íåêîòîðîìó óñòðîéñòâó òðåáóåòñÿ âíèìàíèå îïåðàöèîííîé ñèñòåìû.  ñîâðåìåííûõ àðõèòåêòóðàõ, îñíîâàííûõ íà îáùåé øèíå,äëÿ çàïðîñà ïðåðûâàíèÿ èñïîëüçóåòñÿ îäíà èç äîðîæåê øèíû.Ïîñëåäîâàòåëüíîñòü ñîáûòèé ïðè âîçíèêíîâåíèè è îáðàáîòêå ïðåðûâàíèÿ âûãëÿäèò ïðèáëèçèòåëüíî ñëåäóþùèì îáðàçîì3 :1. Óñòðîéñòâî, êîòîðîìó òðåáóåòñÿ âíèìàíèå ïðîöåññîðà, óñòàíàâëèâàåò íà øèíå ñèãíàë ¾çàïðîñ ïðåðûâàíèÿ¿.2.
Ïðîöåññîð äîâîäèò âûïîëíåíèå òåêóùåé ïðîãðàììû äî òàêîé òî÷êè, â êîòîðîé âûïîëíåíèå ìîæíî ïðåðâàòü òàê, ÷òîáû ïîòîì âîññòàíîâèòü åãî ñ òîãî æå ìåñòà; ïîñëå ýòîãî ïðîöåññîð âûñòàâëÿåò íàøèíå ñèãíàë ¾ïîäòâåðæäåíèå ïðåðûâàíèÿ¿. Ïðè ýòîì äðóãèå ïðåðûâàíèÿ áëîêèðóþòñÿ.3. Ïîëó÷èâ ïîäòâåðæäåíèå ïðåðûâàíèÿ, óñòðîéñòâî ïåðåäàåò ïî øèíåíåêîòîðîå ÷èñëî, èäåíòèôèöèðóþùåå äàííîå óñòðîéñòâî; ýòî ÷èñëîíàçûâàþò íîìåðîì ïðåðûâàíèÿ .4. Ïðîöåññîð ñîõðàíÿåò ãäå-òî (îáû÷íî â ñòåêå àêòèâíîé çàäà÷è) òåêóùèå çíà÷åíèÿ ñ÷åò÷èêà êîìàíä è ðåãèñòðà ôëàãîâ; ýòî íàçûâàåòñÿ ìàëûì óïðÿòûâàíèåì . Ñ÷åò÷èê êîìàíä è ðåãèñòð ôëàãîâäîëæíû áûòü ñîõðàíåíû ïî òîé ïðè÷èíå, ÷òî âûïîëíåíèå ïåðâîéæå èíñòðóêöèè îáðàáîò÷èêà ïðåðûâàíèÿ èçìåíèò (èñïîðòèò) è òî,è äðóãîå, ñäåëàâ íåâîçìîæíûì ïðîçðà÷íûé (ò.
å. íåçàìåòíûé äëÿïîëüçîâàòåëüñêîé çàäà÷è) âîçâðàò èç îáðàáîò÷èêà; îñòàëüíûå ðåãèñòðû îáðàáîò÷èê ïðåðûâàíèÿ ìîæåò ïðè íåîáõîäèìîñòè ñîõðàíèòüñàìîñòîÿòåëüíî.5. Óñòàíàâëèâàåòñÿ ïðèâèëåãèðîâàííûé ðåæèì ðàáîòû öåíòðàëüíîãîïðîöåññîðà, ïîñëå ÷åãî óïðàâëåíèå ïåðåäàåòñÿ íà òî÷êó âõîäà ïðî3 Çäåñü ïðèâîäèòñÿ îáùàÿ ñõåìà; â äåéñòâèòåëüíîñòè âñå íàìíîãî ñëîæíåå.132öåäóðû â îïåðàöèîííîé ñèñòåìå, íàçûâàåìîé, êàê ìû óæå ãîâîðèëè, îáðàáîò÷èêîì ïðåðûâàíèÿ . Àäðåñ îáðàáîò÷èêà ìîæåò áûòüïðåäâàðèòåëüíî ñ÷èòàí èç ñïåöèàëüíûõ îáëàñòåé ïàìÿòè, ëèáî âû÷èñëåí èíûì ñïîñîáîì.Íàïîìíèì, ÷òî ïåðåêëþ÷åíèå èç ïðèâèëåãèðîâàííîãî ðåæèìà ðàáîòûöåíòðàëüíîãî ïðîöåññîðà â îãðàíè÷åííûé ìîæíî îñóùåñòâèòü ïðîñòîéêîìàíäîé, ïîñêîëüêó â ïðèâèëåãèðîâàííîì ðåæèìå äîñòóïíû âñå âîçìîæíîñòè ïðîöåññîðà; â òî æå âðåìÿ, ïåðåõîä èç îãðàíè÷åííîãî (ïîëüçîâàòåëüñêîãî) ðåæèìà îáðàòíî â ïðèâèëåãèðîâàííûé ïðîèçâåñòè ñ ïîìîùüþ îáû÷íîé êîìàíäû íåëüçÿ, ïîñêîëüêó ýòî ëèøèëî áû ñìûñëà ñàìîñóùåñòâîâàíèå ïðèâèëåãèðîâàííîãî è îãðàíè÷åííîãî ðåæèìîâ.
 ýòîìïëàíå ïðåðûâàíèå èíòåðåñíî åù¼ è òåì, ÷òî ïðè åãî âîçíèêíî-âåíèè ðåæèì ðàáîòû öåíòðàëüíîãî ïðîöåññîðà ñòàíîâèòñÿ ïðèâèëåãèðîâàííûì. 4.2.2. Âíóòðåííèå ïðåðûâàíèÿ (ëîâóøêè)×òîáû ïîíÿòü, î ÷åì ïîéäåò ðå÷ü â ýòîì ïàðàãðàôå, ðàññìîòðèì ñëåäóþùèé âîïðîñ: ÷òî ñëåäóåò äåëàòü öåíòðàëüíîìó ïðîöåññîðó, åñëè àêòèâíàÿ çàäà÷à âûïîëíèëà öåëî÷èñëåííîå äåëåíèå íà íîëü? ßñíî, ÷òîäàëüíåéøåå âûïîëíåíèå ïðîãðàììû ëèøåíî ñìûñëà: ðåçóëüòàò äåëåíèÿíà íîëü íåâîçìîæíî ïðåäñòàâèòü êàêèì-ëèáî öåëûì ÷èñëîì, òàê ÷òî âïåðåìåííîé, êîòîðàÿ äîëæíà áûëà ñîäåðæàòü ðåçóëüòàò ïðîèçâåä¼ííîãî äåëåíèÿ, â ëó÷øåì ñëó÷àå áóäåò ñîäåðæàòüñÿ ìóñîð; ñîîòâåòñòâåííî,è êîíå÷íûå ðåçóëüòàòû, ñêîðåå âñåãî, îêàæóòñÿ èððåëåâàíòíûìè.