А.В. Столяров - Введение в операционные системы (1152218), страница 14
Текст из файла (страница 14)
Ýòîò äðàéâåð óæåîñóùåñòâëÿåò äåéñòâèÿ, íåîáõîäèìûå äëÿ âûïîëíåíèÿ ïîñòóïèâøåãî çàïðîñà ñ ó÷åòîì îñîáåííîñòåé êîíêðåòíîãî èìåþùåãîñÿ ôèçè÷åñêîãî äèñêîâîãîóñòðîéñòâà.Îòìåòèì, ÷òî ïî îêîí÷àíèè îïåðàöèè ââîäà-âûâîäà ñîîáùåíèå îá ýòîìïîëó÷àåò ñíà÷àëà îáðàáîò÷èê ñîîòâåòñòâóþùåãî ïðåðûâàíèÿ, êîòîðûé óæåïåðåäàåò ïîëó÷åííóþ èíôîðìàöèþ íóæíîìó äðàéâåðó. Îáðàáîò÷èêè ïðåðûâàíèé òàêæå îòíîñÿòñÿ ê ñëîþ óïðàâëåíèÿ ôèçè÷åñêèìè óñòðîéñòâàìè.60пользовательское ПОаппаратно-независимые компоненты ОСдрайверы физических устройствоперационнаясистемаобработчики прерыванийа п п а р а т у р аÐèñ. 16: Óðîâíè îðãàíèçàöèè ââîäà-âûâîäà11.5Óðîâíè ïðîãðàììíîé îðãàíèçàöèè ââîäà-âûâîäà ïðåäûäóùåì ïàðàãðàôå óïîìèíàëèñü, êðîìå àïïàðàòóðû, ðàçëè÷íûåêîìïîíåíòû ïðîãðàììíîãî îáåñïå÷åíèÿ, íàõîäÿùèåñÿ íà ðàçíûõ óðîâíÿõ âû÷èñëèòåëüíîé ñèñòåìû, ïðè÷åì ìîæíî áûëî çàìåòèòü, ÷òî îïðåäåëåííûé îáìåí äàííûìè ïðîèçâîäèòñÿ èíîãäà è â ðàìêàõ îäíîãî ñëîÿ: òàê, äðàéâåð ôàéëîâîé ñèñòåìû è äðàéâåð ëîãè÷åñêîãî äèñêà îáà îòíîñÿòñÿ ê óðîâíþ óïðàâëåíèÿ ëîãè÷åñêèìè óñòðîéñòâàìè, à, ñêàæåì, äðàéâåð ôèçè÷åñêîãî äèñêàè îáðàáîò÷èê ïðåðûâàíèÿ îò ôèçè÷åñêîãî äèñêà − ê óðîâíþ óïðàâëåíèÿôèçè÷åñêèìè óñòðîéñòâàìè. öåëÿõ áîëüøåé íàãëÿäíîñòè ìîæíî äëÿ ïðîãðàìì, ó÷àñòâóþùèõ â îáåñïå÷åíèè ââîäà-âûâîäà íà ðàçíûõ óðîâíÿõ âû÷èñëèòåëüíîé ñèñòåìû, ââåñòèñâîå ñîáñòâåííîå äåëåíèå íà ñëîè.
Îäèí èç âàðèàíòîâ òàêîãî äåëåíèÿ ïîêàçàííà ðèñ. 16.Ðàçóìååòñÿ, òàêîå äåëåíèå îñòàåòñÿ âî ìíîãîì óñëîâíûì. Òàê, ôàéëîâàÿñèñòåìà è äðàéâåð ëîãè÷åñêîãî äèñêà ïî-ïðåæíåìó îêàçûâàþòñÿ îòíîñÿùèìèñÿ ê îäíîìó ñëîþ, íà ýòîò ðàç àïïàðàòíî-íåçàâèñèìûõ êîìïîíåíòîâ ÎÑ.Êðîìå òîãî, ñëîé îáðàáîò÷èêîâ ïðåðûâàíèé íå ÿâëÿåòñÿ ñëîåì â ïîëíîìñìûñëå ñëîâà. Äðàéâåðû ôèçè÷åñêèõ óñòðîéñòâ îòäàþò ðàñïîðÿæåíèÿ óñòðîéñòâàì î ïðîâåäåíèè òåõ èëè èíûõ îïåðàöèé íàïðÿìóþ, è òàê æå íàïðÿìóþìîæåò îñóùåñòâëÿòüñÿ ÷òåíèå ðåçóëüòàòîâ.
Îäíàêî ìîìåíò, êîãäà ñëåäóåò íà÷àòü ÷òåíèå, âûáèðàåòñÿ ñ ïîìîùüþ îáðàáîò÷èêîâ ïðåðûâàíèé, ò.ê. èìåííîîïðåäåëåííîå ïðåðûâàíèå ñèãíàëèçèðóåò î òîì, ÷òî äàííûå äëÿ ÷òåíèÿ ãîòîâû. Îáðàáîòêà ïðåðûâàíèé ìîæåò ñûãðàòü ñâîþ ðîëü è ïðè âûáîðå ìîìåíòàäëÿ èíèöèèðîâàíèÿ îïåðàöèè ââîäà-âûâîäà. Äåéñòâèòåëüíî, â ìîìåíò, êîãäàäðàéâåð ïîëó÷èë íà âõîä çàïðîñ íà ïðîâåäåíèå îïåðàöèè, óñòðîéñòâî, êîòîðûì óïðàâëÿåò ýòîò äðàéâåð, ìîæåò áûòü åùå çàíÿòî îáðàáîòêîé ïðåäûäóùåéîïåðàöèè.  ýòîì ñëó÷àå è ìîìåíò íà÷àëà îïåðàöèè îïðåäåëåòñÿ ïðè ïîñðåäñòâå îáðàáîò÷èêîâ ïðåðûâàíèé.6111.611.6.1Âçàèìîäåéñòâèå ÎÑ ñ àïïàðàòóðîéÏîíÿòèå êîíòðîëëåðàÄëÿ óïðàâëåíèÿ âíåøíèìè óñòðîéñòâàìè öåíòðàëüíûé ïðîöåññîð ñïîñîáåí ãåíåðèðîâàòü îïðåäåëåííûå êîìáèíàöèè ëîãè÷åñêèõ çíà÷åíèé; â ÷àñòíîñòè, íà ñîâðåìåííûõ àðõèòåêòóðàõ ïðîöåññîð ìîæåò ïåðåäàâàòü ïî îáùåéøèíå îïðåäåëåííûå çíà÷åíèÿ ïî îïðåäåëåííûì àäðåñàì.ßñíî ïðè ýòîì, ÷òî íèêàêîé èç âûâîäîâ (íîæåê) ïðîöåññîðà íå ìîæåò ñîîòâåòñòâîâàòü êîíêðåòíûì äåéñòâèÿì ñ âíåøíèìè óñòðîéñòâàìè, òàêèì êàê ïåðåìåùåíèå ÷èòàþùèõ ãîëîâîê, çàïóñê èëè îñòàíîâ ìîòîðîâ è ò.ï.:âî-ïåðâûõ, ðàçëè÷íûõ äåéñòâèé òàêîãî ðîäà ñëèøêîì ìíîãî, à âûâîäîâ ó ïðîöåññîðà − îãðàíè÷åííîå êîëè÷åñòâî, è, âî-âòîðûõ, òàêîå ïîñòðîåíèå àðõèòåêòóðû îãðàíè÷èëî áû àññîðòèìåíò óñòðîéñòâ, êîòîðûìè ìîæåò óïðàâëÿòüäàííûé êîíêðåòíûé ïðîöåññîð. ñâÿçè ñ ýòèì ìåæäó âíåøíèì ôèçè÷åñêèì óñòðîéñòâîì è ïðîöåññîðîìâñåãäà èìååòñÿ îïðåäåëåííûé ïîñðåäíèê, íàçûâàåìûé êîíòðîëëåðîì äàííîãîóñòðîéñòâà.Êîíòðîëëåð ïðåäñòàâëÿåò ñîáîé ýëåêòðîííóþ ëîãè÷åñêóþ ñõåìó, ïîäêëþ÷åííóþ, ñ îäíîé ñòîðîíû, ê îáùåé øèíå êîìïüþòåðà, ÷òî ïîçâîëÿåò îáìåíèâàòüñÿ äàííûìè ñ ïðîöåññîðîì, è, ñ äðóãîé ñòîðîíû, − ê ñîîòâåòñòâóþùåìóôèçè÷åñêîìó óñòðîéñòâó.Ïîñêîëüêó êîíòðîëëåð ñîçäàåòñÿ âñåãäà äëÿ óïðàâëåíèÿ êîíêðåòíûìóñòðîéñòâîì, äëÿ íåãî íå ñîñòàâëÿåò ïðîáëåìû ãåíåðèðîâàòü èìåííî òàêèåýëåêòðè÷åñêèå ñèãíàëû, êîòîðûå íåîáõîäèìû äëÿ ðàáîòû äàííîãî óñòðîéñòâà.Ñ äðóãîé ñòîðîíû, ïîñêîëüêó ëþáîé êîíòðîëëåð âçàèìîäåéñòâóåò ñ ïðîöåññîðîì ïóòåì ïðèåìà è ïåðåäà÷è îïðåäåëåííûõ ÷èñëîâûõ çíà÷åíèé ïî øèíå,ïðîöåññîð ìîæåò áûòü çàïðîãðàììèðîâàí íà ðàáîòó ñ ëþáûì êîíòðîëëåðîì,êîòîðûé òîëüêî ìîæíî ôèçè÷åñêè ïîäêëþ÷èòü ê îáùåé øèíå äàííîãî êîìïüþòåðà.
Áëàãîäàðÿ ýòîìó ïðîöåññîð ìîæåò ðàáîòàòü è ñ óñòðîéñòâàìè, êîòîðûõ íà ìîìåíò âûïóñêà äàííîãî ïðîöåññîðà åùå íå ñóùåñòâîâàëî.11.6.2Ïîðòû è áóôåðà ââîäà-âûâîäàÏîñêîëüêó ê îáùåé øèíå ìîæåò áûòü ïîäêëþ÷åíî îäíîâðåìåííî áîëüøîåêîëè÷åñòâî ðàçëè÷íûõ êîíòðîëëåðîâ, íåîáõîäèìî êàêèì-òî îáðàçîì ðàçëè÷àòü, êîìó ïðåäíàçíà÷åíû ïåðåäàâàåìûå äàííûå èëè, íàîáîðîò, êòî äîëæåíîòâåòèòü íà çàïðîñ äàííûõ. Äëÿ ýòîãî ââîäèòñÿ ïîíÿòèå ïîðòà ââîäà-âûâîäà.Ïîðò ââîäà-âûâîäà ïðåäñòàâëÿåò ñîáîé àáñòðàêöèþ, èìåþùóþ àäðåñ,ïðåäñòàâèìûé íà äàííîé øèíå. Äëÿ êàæäîãî ïîðòà âîçìîæíû (ñ òî÷êè çðåíèÿ ïðîöåññîðà) îïåðàöèè çàïèñè è ÷òåíèÿ, òî åñòü, ñîîòâåòñòâåííî, ïåðå62äà÷è çíà÷åíèÿ ïî çàäàííîìó àäðåñó è çàïðîñà çíà÷åíèÿ ñ çàäàííîãî àäðåñà.Äèàïàçîí âîçìîæíûõ çíà÷åíèé, êàê è äèàïàçîí àäðåñîâ ïîðòîâ, çàâèñèò îòàðõèòåêòóðû øèíû.
Çà êàæäûì êîíòðîëëåðîì ÷èñëèòñÿ îäèí èëè íåñêîëüêî (à èíîãäà öåëàÿ îáëàñòü) òàêèõ ïîðòîâ ââîäà-âûâîäà, ïðè÷åì, âîçìîæíî,÷òî íåêîòîðûå èç íèõ ìîãóò áûòü òîëüêî ïðî÷èòàíû, à íåêîòîðûå − òîëüêîçàïèñàíû.Îòìåòèì, ÷òî ïîðò ââîäà-âûâîäà íåñêîëüêî ïîõîæ íà îáûêíîâåííóþ ÿ÷åéêó ïàìÿòè. Áîëåå òîãî, â íåêîòîðûõ àðõèòåêòóðàõ, êàê ìû óâèäèì ïîçæå,ïîðòû ââîäà-âûâîäà ðàñïîëàãàþòñÿ â òîì æå àäðåñíîì ïðîñòðàíñòâå, ÷òî èîáû÷íàÿ îïåðàòèâíàÿ ïàìÿòü, è ÷èòàþòñÿ/çàïèñûâàþòñÿ òåìè æå êîìàíäàìèïðîöåññîðà. Òåì íå ìåíåå, ïîðò ââîäà-âûâîäà ÿ÷åéêîé ïàìÿòè íå ÿâëÿåòñÿ,ïîñêîëüêó â áîëüøèíñòâå ñëó÷àåâ íè÷åãî íå õðàíèò, à çíà÷åíèÿ, ÷èòàåìûåèç ïîðòà, îáû÷íî îòëè÷àþòñÿ îò çíà÷åíèé, òóäà çàíîñèìûõ (íå ãîâîðÿ óæå îòîì, ÷òî ìíîãèå ïîðòû äîñòóïíû òîëüêî íà ÷òåíèå èëè, íàîáîðîò, òîëüêî íàçàïèñü).
Çíà÷åíèå, çàïèñûâàåìîå â ïîðò, ìîæåò ïðåäñòàâëÿòü ñîáîé êîä êîìàíäû, íàïðèìåð, íà âêëþ÷åíèå ìîòîðà æåñòêîãî äèñêà, à çíà÷åíèå, èç òîãîæå ïîðòà ÷èòàåìîå, − êîä, ïî êîòîðîìó ìîæíî îïðåäåëèòü òåêóùåå ñîñòîÿíèåóñòðîéñòâà.Êðîìå ïîðòîâ, íåêîòîðûå êîíòðîëëåðû èìåþò åùå è áóôåðà ââîäà-âûâîäà.Òàêèå áóôåðà ïðåäñòàâëÿþò ñîáîé îïåðàòèâíóþ ïàìÿòü, êîíñòðóêòèâíî ÿâëÿþùóþñÿ ÷àñòüþ êîíòðîëëåðà è ïðåäíàçíà÷åííóþ äëÿ îáìåíà ìàññèâàìèèíôîðìàöèè ìåæäó êîíòðîëëåðîì è öåíòðàëüíûì ïðîöåññîðîì. Íàïðèìåð,äàííûå, ïðåäíàçíà÷åííûå äëÿ çàïèñè íà äèñê, íåîáõîäèìî ñêîïèðîâàòü â áóôåð êîíòðîëëåðà ýòîãî äèñêà, à çàòåì äàòü ÷åðåç ïîðòû ñîîòâåòñòâóþùóþêîìàíäó íà çàïèñü; íàîáîðîò, ïðè ÷òåíèè èíôîðìàöèè ñ äèñêà îíà ïîìåùàåòñÿ â áóôåð êîíòðîëëåðà, îòêóäà åå ìîæíî ïîòîì ñêîïèðîâàòü â îñíîâíóþïàìÿòü.Äðóãèì ïðèìåðîì áóôåðà ââîäà-âûâîäà ìîæíî ñ÷èòàòü âèäåîïàìÿòü, òîåñòü ïàìÿòü, â êîòîðîé õðàíèòñÿ èçîáðàæåíèå, âèäèìîå íà ýêðàíå äèñïëåÿ.11.6.3Ïîäõîäû ê àäðåñàöèè ïîðòîâÍà íåêîòîðûõ ïðîöåññîðàõ ïîðòû ââîäà-âûâîäà èìåþò îòäåëüíîå àäðåñíîåïðîñòðàíñòâî (êàê ïðàâèëî, ìåíüøåé ðàçðÿäíîñòè, ÷åì ïðîñòðàíñòâî àäðåñîâîïåðàòèâíîé ïàìÿòè).
 ýòîì ñëó÷àå äëÿ ðàáîòû ñ ïîðòàìè èñïîëüçóþòñÿîòäåëüíûå èíñòðóêöèè ïðîöåññîðà (íàïðèìåð, IN è OUT âìåñòî MOV).Àëüòåðíàòèâíîå ðåøåíèå − ðàçìåñòèòü êîíòðîëëåðû óñòðîéñòâ â òîì æåàäðåñíîì ïðîñòðàíñòâå, ÷òî è îïåðàòèâíóþ ïàìÿòü.  ýòîì ñëó÷àå ïðîöåññîðóíå íóæíû îòäåëüíûå èíñòðóêöèè äëÿ ðàáîòû ñ ïîðòàìè, âñå äåëàåòñÿ îáû÷íîéêîìàíäîé MOV. Òàêàÿ ñõåìà áûëà, íàïðèìåð, ðåàëèçîâàíà íà PDP-11.63Îäíî èç äîñòîèíñòâ òàêîé ñõåìû − âîçìîæíîñòü ñîïîñòàâèòü íåêîòîðûåîáëàñòè ïîðòîâ ââîäà-âûâîäà âèðòóàëüíûì àäðåñàì íåêîòîðûõ ïðîöåññîâ,ïðåäîñòàâèâ, òàêèì îáðàçîì, îòäåëüíûì ïðîöåññàì âîçìîæíîñòü âçàèìîäåéñòâèÿ ñ îïðåäåëåííûìè óñòðîéñòâàìè íàïðÿìóþ, áåç ïîñðåäñòâà îïåðàöèîííîé ñèñòåìû.
 ðåçóëüòàòå, íàïðèìåð, ìîæíî âûíåñòè íåêîòîðûå äðàéâåðûóñòðîéñòâ èç ÿäðà â ïîëüçîâàòåëüñêèå ïðîöåññû.Îòñóòñòâèå ñïåöèàëüíûõ èíñòðóêöèé äëÿ âçàèìîäåéñòâèÿ ñ ïîðòàìè äåëàåò âîçìîæíûì íàïèñàíèå äðàéâåðîâ íà ÿçûêàõ âûñîêîãî óðîâíÿ (òàêèõ êàêC++) áåç ïðèìåíåíèÿ âñòàâîê íà ÿçûêå àññåìáëåðà.Ê íåäîñòàòêàì åäèíîãî àäðåñíîãî ïðîñòðàíñòâà ìîæíî îòíåñòè, íàïðèìåð, òîò ôàêò, ÷òî íà ïîðòû ðàñõîäóåòñÿ îñíîâíîå àäðåñíîå ïðîñòðàíñòâî,êîòîðîãî ìîæåò áûòü íå òàê ìíîãî. Íà PDP-11 ýòà ïðîáëåìà áûëà äîñòàòî÷íî àêòóàëüíîé, ò.ê. àäðåñà íà ýòîé ìàøèíå áûëè 16-áèòîâûå. Êðîìå òîãî, íàñîâðåìåííûõ ïðîöåññîðàõ ïðèìåíÿåòñÿ êåø-ïàìÿòü, òàê ÷òî ó÷àñòêè àäðåñíîãî ïðîñòðàíñòâà, ñîîòâåòñòâóþùèå áóôåðàì è ïîðòàì, èç ïðîöåññà êåøèðîâàíèÿ ïðèõîäèòñÿ èñêóññòâåííî èñêëþ÷àòü.
Íàêîíåö, îïåðàòèâíàÿ ïàìÿòüè êîíòðîëëåðû óñòðîéñòâ ïðåäñòàâëÿþò ñîáîé ñóùíîñòè âåñüìà ðàçëè÷íûå,è ïîìåñòèòü èõ íà îäíó îáùóþ øèíó ìîæåò îêàçàòüñÿ çàòðóäíèòåëüíî, à ïîñòðîåíèå äâóõ ðàçíûõ øèí ïðè èñïîëüçîâàíèè îäíîãî îáùåãî ïðîñòðàíñòâààäðåñîâ ïðèâîäèò ê íåîáõîäèìîñòè íà òîì èëè èíîì óðîâíå ïðèíèìàòü ðåøåíèå, ïî êàêîé øèíå ñëåäóåò ðàáîòàòü ñ êîíêðåòíûì àäðåñîì.Åùå îäèí âîçìîæíûé ïîäõîä, ïðèìåíÿåìûé â àðõèòåêòóðå i386, ÿâëÿåòñÿêîìáèíèðîâàííûì. Ïîðòû ââîäà-âûâîäà â ýòîì ñëó÷àå ðàçìåùàþòñÿ â îòäåëüíîì àäðåñíîì ïðîñòðàíñòâå, à áóôåðà − â îáùåì.11.6.4Êîíòðîëëåð êàê ñðåäñòâî àáñòðàãèðîâàíèÿÑîâðåìåííûå êîíòðîëëåðû óñòðîéñòâ ñàìè ïðåäñòàâëÿþò ñîáîé äîñòàòî÷íî ñëîæíûå óñòðîéñòâà, ïîçâîëÿþùèå â ðÿäå ñëó÷àåâ àáñòðàãèðîâàòüñÿ îòíåêîòîðûõ îñîáåííîñòåé àïïàðàòóðû, ÷òî ñíèìàåò ÷àñòü íàãðóçêè ñ äðàéâåðîâ óñòðîéñòâ.Òàê, áîëüøèíñòâî ñîâðåìåííûõ æåñòêèõ äèñêîâ íà ñàìîì äåëå èìååò ãåîìåòðèþ (ðàñïîëîæåíèå ñåêòîðîâ), îòëè÷àþùóþñÿ îò âèäèìîé äëÿ îïåðàöèîííîé ñèñòåìû.
Íàïðèìåð, íà äîðîæêàõ, ðàñïîëîæåííûõ áëèæå ê öåíòðó äèñêà,äëÿ ñîõðàíåíèÿ áîëåå-ìåíåå ïîñòîÿííîé ïëîòíîñòè çàïèñè äàííûõ ðàçìåùàþò ìåíüøå ñåêòîðîâ, ÷åì íà âíåøíèõ äîðîæêàõ (ðèñ. 17); âìåñòå ñ òåì, ñòî÷êè çðåíèÿ âñåé îñòàëüíîé ñèñòåìû ãåîìåòðèÿ äèñêà ñîñòîèò èç Nh ñòîðîí,Nc äîðîæåê íà êàæäîé ñòîðîíå (öèëèíäðîâ), Ns ñåêòîðîâ íà êàæäîé äîðîæêå, ïðè÷åì âñå òðè ïàðàìåòðà ïîñòîÿííû è íå çàâèñÿò îò çíà÷åíèÿ äðóãèõ.6448333432161529443647188762891419126110000115 4364620321113745271343221226232524132310238253535304517314637484738241412 11134222151039214 16338576201719183229443130110000114227392840413941404342Ðèñ. 17: Ôèçè÷åñêàÿ è âèðòóàëüíàÿ ãåîìåòðèÿ äèñêàÔóíêöèþ îòîáðàæåíèÿ âèðòóàëüíîé ãåîìåòðèè íà ôèçè÷åñêóþ áåðåò íà ñåáÿêîíòðîëëåð äèñêà.Òàêèì îáðàçîì, âíóòðè ñëîÿ, îáîçíà÷åííîãî íàìè êàê àïïàðàòóðà, òàêæå èìåþòñÿ ðàçëè÷íûå óðîâíè àáñòðàãèðîâàíèÿ.