А.В. Столяров - Введение в операционные системы (1114673), страница 13
Текст из файла (страница 13)
Äðóãèå ÷àñòè ÿäðà îáðàùàþòñÿ ê äðàéâåðó, âûçûâàÿ åãî âíåøíèåôóíêöèè, ïðè÷åì ýòè ôóíêöèè îäèíàêîâû äëÿ âñåõ äðàéâåðîâ îïðåäåëåííîéêàòåãîðèè.Òàê, îáðàùåíèå ê äðàéâåðó æåñòêîãî äèñêà ñ öåëüþ çàïèñàòü ñåêòîð 55 èòàêîå æå îáðàùåíèå ê äðàéâåðó äèñêîâîäà äëÿ äèñêåò áóäåò (ñ òî÷êè çðåíèÿëþáîé ïîäñèñòåìû ÿäðà, êðîìå ñàìèõ ýòèõ äðàéâåðîâ) âûãëÿäåòü îäèíàêîâî, íåñìîòðÿ íà òî, ÷òî ýòè óñòðîéñòâà íà àïïàðàòíîì óðîâíå óïðàâëÿþòñÿñîâåðøåííî ïî-ðàçíîìó.Òàêèì îáðàçîì, äåòàëè ïðîöåññà óïðàâëåíèÿ êîíêðåòíûìè óñòðîéñòâàìèîêàçûâàþòñÿ ëîêàëèçîâàíû â êîäå äðàéâåðà. Ïðè íàïèñàíèè îñòàëüíûõ ÷àñòåé îïåðàöèîííîé ñèñòåìû, à òàêæå ïðè ñîçäàíèè ïîëüçîâàòåëüñêîãî ïðîãðàììíîãî îáåñïå÷åíèÿ ñòàíîâèòñÿ âîçìîæíî èõ íå ó÷èòûâàòü.5811.3.2Ñïîñîáû çàãðóçêè äðàéâåðàÎáû÷íî äðàéâåð äîëæåí âûïîëíÿòüñÿ â ïðèâèëåãèðîâàííîì ðåæèìå, òîåñòü áûòü ÷àñòüþ ÿäðà. Òåîðåòè÷åñêè âîçìîæíî âûïîëíåíèå äðàéâåðà è âïîëüçîâàòåëüñêîì ðåæèìå, íî òàêîå ïðèìåíÿåòñÿ ðåäêî.Ñóùåñòâóåò òðè îñíîâíûõ ñïîñîáà çàãðóçêè äðàéâåðà â ÿäðî:1.
Âêëþ÷åíèå êîäà äðàéâåðà â êà÷åñòâå ìîäóëÿ íà ýòàïå ñáîðêè ÿäðà. Ïðèýòîì äîáàâëåíèå èëè óäàëåíèå äðàéâåðà òðåáóåò ïåðåñáîðêè (ïåðåêîìïèëÿöèè) ÿäðà è ïåðåçàãðóçêè îïåðàöèîííîé ñèñòåìû. Çàìåòèì, ïðèýòîì ïîëüçîâàòåëþ äîëæíû áûòü äîñòóïíû èñõîäíûå òåêñòû ÿäðà ëèáî,êàê ìèíèìóì, åãî îáúåêòíûå ìîäóëè è ñîîòâåòñòâóþùèå èì èíòåðôåéñíûå ôàéëû.
Òàêîé ïîäõîä ÿâëÿåòñÿ òðàäèöèîííûì äëÿ Unix'îïîäîáíûõîïåðàöèîííûõ ñèñòåì.2. Ïîäêëþ÷åíèå äðàéâåðà íà ýòàïå çàãðóçêè îïåðàöèîííîé ñèñòåìû. Ïðèýòîì â ñèñòåìå èìååòñÿ ôàéë, ñîäåðæàùèé ñïèñîê äðàéâåðîâ, è ñàìèäðàéâåðû â âèäå îòäåëüíûõ ôàéëîâ. Ïðè çàãðóçêå ÿäðî àíàëèçèðóåòñïèñîê è ïîäêëþ÷àåò äðàéâåðû, ïîñëå ÷åãî íà÷èíàåò ðàáîòó.  ýòîìñëó÷àå äëÿ ïîäêëþ÷åíèÿ äîïîëíèòåëüíîãî äðàéâåðà äîñòàòî÷íî ïåðåçàãðóçèòü ñèñòåìó. Ïåðåêîìïèëÿöèÿ ÿäðà íå òðåáóåòñÿ.
Òðàäèöèîííî ýòîòïîäõîä èñïîëüçîâàëè ñèñòåìû ñåìåéñòâà Windows, à ðàíåå − è MS-DOS.3. Äèíàìè÷åñêàÿ çàãðóçêà ìîäóëåé â ÿäðî. Ïðè òàêîì ïîäõîäå äîñòàòî÷íîïîäãîòîâèòü ôàéë äðàéâåðà, ñîáëþäàþùèé îïðåäåëåííûå ñîãëàøåíèÿîá èìåíàõ, è âûäàòü ÿäðó ñîîòâåòñòâóþùèé ñèñòåìíûé âûçîâ, ïîñëå÷åãî ìîäóëü ñòàíîâèòñÿ ÷àñòüþ ÿäðà. Íè ïåðåçàãðóçêè, íè ïåðåêîìïèëÿöèè ÿäðà íå òðåáóåòñÿ.
Áîëåå òîãî, íåíóæíûå ìîäóëè ìîæíî èç ÿäðàèçúÿòü. Òàêàÿ âîçìîæíîñòü ïðèñóòñòâóåò ïðàêòè÷åñêè íà âñåõ ñîâðåìåííûõ Unix-ñèñòåìàõ, âêëþ÷àÿ Linux, FreeBSD è Solaris. Íåîáõîäèìîîòìåòèòü, ÷òî ïðè âûñîêîé ãèáêîñòè ýòà ìîäåëü ñ÷èòàåòñÿ íåáåçîïàñíîé, ò.ê. ïîçâîëÿåò çàïóñòèòü ïðîèçâîëüíûé êîä â ïðèâèëåãèðîâàííîìðåæèìå.11.4Ââîä-âûâîä íà ðàçíûõ óðîâíÿõ ÂÑÍà ïåðâîé ëåêöèè ìû ïðèâîäèëè óñëîâíóþ (óïðîùåííóþ) ìíîãîóðîâíåâóþ ñòðóêòóðíóþ ñõåìó âû÷èñëèòåëüíîé ñèñòåìû (ñì.
ðèñ. 1 íà ñòð. 3). Ïîíÿòèå ââîäà-âûâîäà ïðèñóòñòâóåò ïðè îïèñàíèè ëþáîãî èç ýòèõ óðîâíåé, îäíàêî òåðìèíû, â êîòîðûõ îïèñûâàåòñÿ ñàì ââîä-âûâîä, ìåíÿþòñÿ. Êîìïîíåíòûêàæäîãî óðîâíÿ, ïîëó÷èâ îò óðîâíÿ áîëåå âûñîêîãî ñîîòâåòñòâóþùåå îáðàùåíèå, ïåðåâîäÿò åãî â òåðìèíû óðîâíÿ áîëåå íèçêîãî è ïåðåäàþò íèæå, à59пользовательprog > fileприкладные программыprintf("Hello, world");система программированияwrite(1, "Hello, world", 12);управление логическими устройствамиdisk#1, part#2, sector#127563управление физическими устройствамиаппаратураide#0, slave,cyl.125, head 8, sec.20Ðèñ.
15: Ââîä-âûâîä íà ðàçíûõ óðîâíÿõ âû÷èñëèòåëüíîé ñèñòåìûïîëó÷åííûé îòâåò ïåðåâîäÿò, íàîáîðîò, â òåðìèíû óðîâíÿ áîëåå âûñîêîãî èîòïðàâëÿþò íàâåðõ. Òàêèì îáðàçîì, ïî ìåðå äâèæåíèÿ îò àïïàðàòóðû ê ïîëüçîâàòåëþ íàðàñòàåò óðîâåíü àáñòðàãèðîâàíèÿ, à ñëîæíîñòü îïèñàíèÿ ïàäàåò.Ðàññìîòðèì äëÿ ïðèìåðà çàïóñê ïðîãðàììû ñ âûâîäîì èíôîðìàöèè âôàéë (ðèñ. 15). Ïîëüçîâàòåëü ïîäàåò ïîëüçîâàòåëüñêîé ïðîãðàììå (â äàííîì ñëó÷àå − êîìàíäíîìó èíòåðïðåòàòîðó) êîìàíäó íà ïîíÿòíîì ïîëüçîâàòåëþ ÿçûêå. Ïðèêëàäíàÿ ïðîãðàììà äëÿ âûâîäà èñïîëüçóåò áèáëèîòå÷íóþôóíêöèþ ââîäà-âûâîäà âûñîêîãî óðîâíÿ. Áèáëèîòåêà ôóíêöèé, îòíîñÿùàÿñÿê ñëîþ ñèñòåì ïðîãðàììèðîâàíèÿ, ïåðåâîäèò ïîëó÷åííûé çàïðîñ íà ÿçûê, ïîíÿòíûé áîëåå íèçêîìó óðîâíþ (ÿäðó îïåðàöèîííîé ñèñòåìû); òàêèì ÿçûêîìÿâëÿåòñÿ èíòåðôåéñ ñèñòåìíûõ âûçîâîâ, à ïåðåâåäåííûé çàïðîñ ñòàíîâèòñÿâûçîâîì (íàïðèìåð, write()) ñ ñîîòâåòñòâóþùèìè ïàðàìåòðàìè.Îïåðàöèîííàÿ ñèñòåìà íà óðîâíå ïðîöåäóð óïðàâëåíèÿ ëîãè÷åñêèìèóñòðîéñòâàìè ïðåîáðàçóåò ïàðàìåòðû ñèñòåìíîãî âûçîâà write() â ïîñëåäîâàòåëüíîñòü äåéñòâèé, íåîáõîäèìûõ äëÿ çàïèñè ïîëó÷åííîé èíôîðìàöèè âôàéë, íà îòêðûòûé äåñêðèïòîð êîòîðîãî ñîñëàëñÿ âûçâàâøèé ïðîöåññ.
Ãîâîðÿ êîíêðåòíåå, äðàéâåð ôàéëîâîé ñèñòåìû ïåðåâîäèò çàïðîñ â ïîñëåäîâàòåëüíîñòü îïåðàöèé ïî ìîäèôèêàöèè ñåêòîðîâ ëîãè÷åñêîãî äèñêîâîãî óñòðîéñòâà,à äðàéâåð ñîîòâåòñòâóþùåãî ëîãè÷åñêîãî äèñêà, â ñâîþ î÷åðåäü,− â ïîñëåäîâàòåëüíîñòü îïåðàöèé íàä ñåêòîðàìè äèñêà ôèçè÷åñêîãî. Ñîîòâåòñòâóþùàÿ ïîñëåäîâàòåëüíîñòü çàïðîñîâ ïåðåäàåòñÿ áîëåå íèçêîóðîâíåâûì ïîäïðîãðàììàì ÿäðà, âêëþ÷àþùèì äðàéâåð ôèçè÷åñêîãî äèñêà. Ýòîò äðàéâåð óæåîñóùåñòâëÿåò äåéñòâèÿ, íåîáõîäèìûå äëÿ âûïîëíåíèÿ ïîñòóïèâøåãî çàïðîñà ñ ó÷åòîì îñîáåííîñòåé êîíêðåòíîãî èìåþùåãîñÿ ôèçè÷åñêîãî äèñêîâîãîóñòðîéñòâà.Îòìåòèì, ÷òî ïî îêîí÷àíèè îïåðàöèè ââîäà-âûâîäà ñîîáùåíèå îá ýòîìïîëó÷àåò ñíà÷àëà îáðàáîò÷èê ñîîòâåòñòâóþùåãî ïðåðûâàíèÿ, êîòîðûé óæåïåðåäàåò ïîëó÷åííóþ èíôîðìàöèþ íóæíîìó äðàéâåðó.
Îáðàáîò÷èêè ïðåðûâàíèé òàêæå îòíîñÿòñÿ ê ñëîþ óïðàâëåíèÿ ôèçè÷åñêèìè óñòðîéñòâàìè.60пользовательское ПОаппаратно-независимые компоненты ОСдрайверы физических устройствоперационнаясистемаобработчики прерыванийа п п а р а т у р аÐèñ. 16: Óðîâíè îðãàíèçàöèè ââîäà-âûâîäà11.5Óðîâíè ïðîãðàììíîé îðãàíèçàöèè ââîäà-âûâîäà ïðåäûäóùåì ïàðàãðàôå óïîìèíàëèñü, êðîìå àïïàðàòóðû, ðàçëè÷íûåêîìïîíåíòû ïðîãðàììíîãî îáåñïå÷åíèÿ, íàõîäÿùèåñÿ íà ðàçíûõ óðîâíÿõ âû÷èñëèòåëüíîé ñèñòåìû, ïðè÷åì ìîæíî áûëî çàìåòèòü, ÷òî îïðåäåëåííûé îáìåí äàííûìè ïðîèçâîäèòñÿ èíîãäà è â ðàìêàõ îäíîãî ñëîÿ: òàê, äðàéâåð ôàéëîâîé ñèñòåìû è äðàéâåð ëîãè÷åñêîãî äèñêà îáà îòíîñÿòñÿ ê óðîâíþ óïðàâëåíèÿ ëîãè÷åñêèìè óñòðîéñòâàìè, à, ñêàæåì, äðàéâåð ôèçè÷åñêîãî äèñêàè îáðàáîò÷èê ïðåðûâàíèÿ îò ôèçè÷åñêîãî äèñêà − ê óðîâíþ óïðàâëåíèÿôèçè÷åñêèìè óñòðîéñòâàìè. öåëÿõ áîëüøåé íàãëÿäíîñòè ìîæíî äëÿ ïðîãðàìì, ó÷àñòâóþùèõ â îáåñïå÷åíèè ââîäà-âûâîäà íà ðàçíûõ óðîâíÿõ âû÷èñëèòåëüíîé ñèñòåìû, ââåñòèñâîå ñîáñòâåííîå äåëåíèå íà ñëîè.
Îäèí èç âàðèàíòîâ òàêîãî äåëåíèÿ ïîêàçàííà ðèñ. 16.Ðàçóìååòñÿ, òàêîå äåëåíèå îñòàåòñÿ âî ìíîãîì óñëîâíûì. Òàê, ôàéëîâàÿñèñòåìà è äðàéâåð ëîãè÷åñêîãî äèñêà ïî-ïðåæíåìó îêàçûâàþòñÿ îòíîñÿùèìèñÿ ê îäíîìó ñëîþ, íà ýòîò ðàç àïïàðàòíî-íåçàâèñèìûõ êîìïîíåíòîâ ÎÑ.Êðîìå òîãî, ñëîé îáðàáîò÷èêîâ ïðåðûâàíèé íå ÿâëÿåòñÿ ñëîåì â ïîëíîìñìûñëå ñëîâà. Äðàéâåðû ôèçè÷åñêèõ óñòðîéñòâ îòäàþò ðàñïîðÿæåíèÿ óñòðîéñòâàì î ïðîâåäåíèè òåõ èëè èíûõ îïåðàöèé íàïðÿìóþ, è òàê æå íàïðÿìóþìîæåò îñóùåñòâëÿòüñÿ ÷òåíèå ðåçóëüòàòîâ.
Îäíàêî ìîìåíò, êîãäà ñëåäóåò íà÷àòü ÷òåíèå, âûáèðàåòñÿ ñ ïîìîùüþ îáðàáîò÷èêîâ ïðåðûâàíèé, ò.ê. èìåííîîïðåäåëåííîå ïðåðûâàíèå ñèãíàëèçèðóåò î òîì, ÷òî äàííûå äëÿ ÷òåíèÿ ãîòîâû. Îáðàáîòêà ïðåðûâàíèé ìîæåò ñûãðàòü ñâîþ ðîëü è ïðè âûáîðå ìîìåíòàäëÿ èíèöèèðîâàíèÿ îïåðàöèè ââîäà-âûâîäà. Äåéñòâèòåëüíî, â ìîìåíò, êîãäàäðàéâåð ïîëó÷èë íà âõîä çàïðîñ íà ïðîâåäåíèå îïåðàöèè, óñòðîéñòâî, êîòîðûì óïðàâëÿåò ýòîò äðàéâåð, ìîæåò áûòü åùå çàíÿòî îáðàáîòêîé ïðåäûäóùåéîïåðàöèè.
 ýòîì ñëó÷àå è ìîìåíò íà÷àëà îïåðàöèè îïðåäåëåòñÿ ïðè ïîñðåäñòâå îáðàáîò÷èêîâ ïðåðûâàíèé.6111.611.6.1Âçàèìîäåéñòâèå ÎÑ ñ àïïàðàòóðîéÏîíÿòèå êîíòðîëëåðàÄëÿ óïðàâëåíèÿ âíåøíèìè óñòðîéñòâàìè öåíòðàëüíûé ïðîöåññîð ñïîñîáåí ãåíåðèðîâàòü îïðåäåëåííûå êîìáèíàöèè ëîãè÷åñêèõ çíà÷åíèé; â ÷àñòíîñòè, íà ñîâðåìåííûõ àðõèòåêòóðàõ ïðîöåññîð ìîæåò ïåðåäàâàòü ïî îáùåéøèíå îïðåäåëåííûå çíà÷åíèÿ ïî îïðåäåëåííûì àäðåñàì.ßñíî ïðè ýòîì, ÷òî íèêàêîé èç âûâîäîâ (íîæåê) ïðîöåññîðà íå ìîæåò ñîîòâåòñòâîâàòü êîíêðåòíûì äåéñòâèÿì ñ âíåøíèìè óñòðîéñòâàìè, òàêèì êàê ïåðåìåùåíèå ÷èòàþùèõ ãîëîâîê, çàïóñê èëè îñòàíîâ ìîòîðîâ è ò.ï.:âî-ïåðâûõ, ðàçëè÷íûõ äåéñòâèé òàêîãî ðîäà ñëèøêîì ìíîãî, à âûâîäîâ ó ïðîöåññîðà − îãðàíè÷åííîå êîëè÷åñòâî, è, âî-âòîðûõ, òàêîå ïîñòðîåíèå àðõèòåêòóðû îãðàíè÷èëî áû àññîðòèìåíò óñòðîéñòâ, êîòîðûìè ìîæåò óïðàâëÿòüäàííûé êîíêðåòíûé ïðîöåññîð. ñâÿçè ñ ýòèì ìåæäó âíåøíèì ôèçè÷åñêèì óñòðîéñòâîì è ïðîöåññîðîìâñåãäà èìååòñÿ îïðåäåëåííûé ïîñðåäíèê, íàçûâàåìûé êîíòðîëëåðîì äàííîãîóñòðîéñòâà.Êîíòðîëëåð ïðåäñòàâëÿåò ñîáîé ýëåêòðîííóþ ëîãè÷åñêóþ ñõåìó, ïîäêëþ÷åííóþ, ñ îäíîé ñòîðîíû, ê îáùåé øèíå êîìïüþòåðà, ÷òî ïîçâîëÿåò îáìåíèâàòüñÿ äàííûìè ñ ïðîöåññîðîì, è, ñ äðóãîé ñòîðîíû, − ê ñîîòâåòñòâóþùåìóôèçè÷åñêîìó óñòðîéñòâó.Ïîñêîëüêó êîíòðîëëåð ñîçäàåòñÿ âñåãäà äëÿ óïðàâëåíèÿ êîíêðåòíûìóñòðîéñòâîì, äëÿ íåãî íå ñîñòàâëÿåò ïðîáëåìû ãåíåðèðîâàòü èìåííî òàêèåýëåêòðè÷åñêèå ñèãíàëû, êîòîðûå íåîáõîäèìû äëÿ ðàáîòû äàííîãî óñòðîéñòâà.Ñ äðóãîé ñòîðîíû, ïîñêîëüêó ëþáîé êîíòðîëëåð âçàèìîäåéñòâóåò ñ ïðîöåññîðîì ïóòåì ïðèåìà è ïåðåäà÷è îïðåäåëåííûõ ÷èñëîâûõ çíà÷åíèé ïî øèíå,ïðîöåññîð ìîæåò áûòü çàïðîãðàììèðîâàí íà ðàáîòó ñ ëþáûì êîíòðîëëåðîì,êîòîðûé òîëüêî ìîæíî ôèçè÷åñêè ïîäêëþ÷èòü ê îáùåé øèíå äàííîãî êîìïüþòåðà.
Áëàãîäàðÿ ýòîìó ïðîöåññîð ìîæåò ðàáîòàòü è ñ óñòðîéñòâàìè, êîòîðûõ íà ìîìåíò âûïóñêà äàííîãî ïðîöåññîðà åùå íå ñóùåñòâîâàëî.11.6.2Ïîðòû è áóôåðà ââîäà-âûâîäàÏîñêîëüêó ê îáùåé øèíå ìîæåò áûòü ïîäêëþ÷åíî îäíîâðåìåííî áîëüøîåêîëè÷åñòâî ðàçëè÷íûõ êîíòðîëëåðîâ, íåîáõîäèìî êàêèì-òî îáðàçîì ðàçëè÷àòü, êîìó ïðåäíàçíà÷åíû ïåðåäàâàåìûå äàííûå èëè, íàîáîðîò, êòî äîëæåíîòâåòèòü íà çàïðîñ äàííûõ. Äëÿ ýòîãî ââîäèòñÿ ïîíÿòèå ïîðòà ââîäà-âûâîäà.Ïîðò ââîäà-âûâîäà ïðåäñòàâëÿåò ñîáîé àáñòðàêöèþ, èìåþùóþ àäðåñ,ïðåäñòàâèìûé íà äàííîé øèíå. Äëÿ êàæäîãî ïîðòà âîçìîæíû (ñ òî÷êè çðåíèÿ ïðîöåññîðà) îïåðàöèè çàïèñè è ÷òåíèÿ, òî åñòü, ñîîòâåòñòâåííî, ïåðå62äà÷è çíà÷åíèÿ ïî çàäàííîìó àäðåñó è çàïðîñà çíà÷åíèÿ ñ çàäàííîãî àäðåñà.Äèàïàçîí âîçìîæíûõ çíà÷åíèé, êàê è äèàïàçîí àäðåñîâ ïîðòîâ, çàâèñèò îòàðõèòåêòóðû øèíû. Çà êàæäûì êîíòðîëëåðîì ÷èñëèòñÿ îäèí èëè íåñêîëüêî (à èíîãäà öåëàÿ îáëàñòü) òàêèõ ïîðòîâ ââîäà-âûâîäà, ïðè÷åì, âîçìîæíî,÷òî íåêîòîðûå èç íèõ ìîãóò áûòü òîëüêî ïðî÷èòàíû, à íåêîòîðûå − òîëüêîçàïèñàíû.Îòìåòèì, ÷òî ïîðò ââîäà-âûâîäà íåñêîëüêî ïîõîæ íà îáûêíîâåííóþ ÿ÷åéêó ïàìÿòè.