А.В. Столяров - Введение в операционные системы, страница 8
Описание файла
PDF-файл из архива "А.В. Столяров - Введение в операционные системы", который расположен в категории "". Всё это находится в предмете "операционные системы" из 3 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст 8 страницы из PDF
8). Ïåðåä îáðàùåíèåì ê ïàìÿòèïðîöåññîð ïðîèçâîäèò (îïÿòü æå íà àïïàðàòíîì óðîâíå) ïðîâåðêó, íå ïðåâûøàåò ëè ïîëó÷åííûé àäðåñ çíà÷åíèÿ ïðåäåëà. Åñëè îáíàðóæèâàåòñÿ ïðåâûøåíèå, ïðîöåññîð îòðàáàòûâàåò âíóòðåííåå ïðåðûâàíèå íàðóøåíèå çàùèòûïàìÿòè. Ìîäèôèêàöèÿ áàçû è ïðåäåëà ïðè ðàáîòå ïðîöåññîðà â îãðàíè÷åííîì ðåæèìå çàïðåùåíà.Òàêèì îáðàçîì, ðåãèñòð áàçà çàäàåò àäðåñ, íà÷èíàÿ ñ êîòîðîãî â ïàìÿòèðàñïîëàãàåòñÿ òåêóùàÿ çàäà÷à. Èñïîëíèòåëüíûå àäðåñà, çàäàâàåìûå èíñòðóêöèÿìè â êîäå çàäà÷è, íå ñîâïàäàþò ñ íàñòîÿùèìè àäðåñàìè ÿ÷ååê ïàìÿòè, êêîòîðûì â èòîãå ïðîèçâîäèòñÿ îáðàùåíèå, òàê ÷òî ýòè àäðåñà ìîæíî ñ÷èòàòüâèðòóàëüíûìè.Âèðòóàëüíûå àäðåñà òðàêòóþòñÿ êàê áåççíàêîâûå, òàê ÷òî îáðàòèòüñÿ êôèçè÷åñêèì àäðåñàì, íàõîäÿùèìñÿ íèæå áàçû, çàäà÷à íå ìîæåò â ïðèíöèïå:ôèçè÷åñêèé àäðåñ, âû÷èñëåííûé êàê ñóììà âèðòóàëüíîãî àäðåñà è áàçû, âñåãäà áóäåò áîëüøå áàçû.
Òàêèì îáðàçîì, âñÿ ïàìÿòü íèæå áàçû îêàçûâàåòñÿçàùèùåíà îò ñëó÷àéíîãî èëè ïðåäíàìåðåííîãî îáðàùåíèÿ ñî ñòîðîíû çàäà÷èïðîñòî ñàìèì ôàêòîì òðàíñëÿöèè àäðåñîâ.Ðåãèñòð ïðåäåë çàäàåò âåðõíþþ ãðàíèöó áëîêà ïàìÿòè, äîñòóïíîãî òåêóùåé çàäà÷å. Ýòî ïîçâîëÿåò çàùèòèòü òàêæå ïàìÿòü, íàõîäÿùóþñÿ âûøåïðåäåëà.33Àäðåñà â êîäå çàäà÷è òåïåðü ôîðìèðóþòñÿ â ïðåäïîëîæåíèè, ÷òî çàäà÷àáóäåò ðàáîòàòü â àäðåñíîì ïðîñòðàíñòâå, íà÷èíàþùåìñÿ ñ íóëÿ.
Îïåðàöèîííàÿ ñèñòåìà ìîæåò çàãðóçèòü çàäà÷ó â ëþáîé ñâîáîäíûé ó÷àñòîê ïàìÿòè:ïðîáëåìà àäàïòàöèè ïðîãðàììû ê àäðåñàì ðåøàåòñÿ óñòàíîâêîé ñîîòâåòñòâóþùåãî çíà÷åíèÿ áàçîâîãî è ïðåäåëüíîãî ðåãèñòðîâ. Áîëåå òîãî, ïðè íåîáõîäèìîñòè çàäà÷ó ìîæíî ïåðåìåñòèòü â äðóãîå ìåñòî ïàìÿòè − äëÿ ýòîãî äîñòàòî÷íî ñêîïèðîâàòü ñîäåðæèìîå åå àäðåñíîãî ïðîñòðàíñòâà â ïàìÿòü ïî íîâûì àäðåñàì è èçìåíèòü ñîîòâåòñòâóþùèì îáðàçîì çíà÷åíèÿ áàçû è ïðåäåëà.Îïåðàöèîííàÿ ñèñòåìà äëÿ ïåðåäà÷è óïðàâëåíèÿ çàäà÷å çàïîëíÿåò áàçîâûé èïðåäåëüíûé ðåãèñòðû, ïîñëå ÷åãî ïåðåêëþ÷àåò ðåæèì èñïîëíåíèÿ â îãðàíè÷åííûé è ïåðåäàåò óïðàâëåíèå êîäó çàäà÷è.
Ïðè âîçíèêíîâåíèè ïðåðûâàíèÿîãðàíè÷åííûé ðåæèì ñíèìàåòñÿ è óïðàâëåíèå âíîâü ïîëó÷àåò êîä îïåðàöèîííîé ñèñòåìû, êîòîðûé, â ÷èñëå ïðî÷åãî, ìîæåò ïðèíÿòü ðåøåíèå î ïåðåäà÷åóïðàâëåíèÿ äðóãîé çàäà÷å, äëÿ ÷åãî äîñòàòî÷íî èçìåíèòü ñîäåðæèìîå áàçîâîãî è ïðåäåëüíîãî ðåãèñòðîâ íà ñîîòâåòñòâóþùèå äðóãîé çàäà÷å è ïåðåäàòüåé óïðàâëåíèå.ßñíî, ÷òî ïðîáëåìû çàùèòû è àäàïòàöèè ê àäðåñàì òàêèì îáðàçîì ðåøåíû.
Ñ ïðîáëåìîé îáúåìà ïàìÿòè äåëà îáñòîÿò äàëåêî íå òàê ãëàäêî: íà äèñêìîæíî ñáðîñèòü òîëüêî öåëèêîì âñþ ïàìÿòü òîé èëè èíîé çàäà÷è. Êðîìå òîãî, åñëè îáúåìà ôèçè÷åñêîé ïàìÿòè íå õâàòàåò äàæå äëÿ îäíîé çàäà÷è (òîåñòü íàøëàñü òàêàÿ çàäà÷à, ïîòðåáíîñòè êîòîðîé ïðåâûøàþò îáúåì ôèçè÷åñêîé ïàìÿòè), îïèñàííàÿ ìîäåëü âûéòè èç ïîëîæåíèÿ íå ïîçâîëÿåò. Ïðîáëåìà ôðàãìåíòàöèè ðåøàåòñÿ òîëüêî ïóòåì ïåðåìåùåíèÿ çàäà÷ â ôèçè÷åñêîéïàìÿòè, ÷òî âëå÷åò îòíîñèòåëüíî äîðîãîñòîÿùèå îïåðàöèè êîïèðîâàíèÿ ñóùåñòâåííûõ îáúåìîâ äàííûõ.
Íàêîíåö, ïðîáëåìà äóáëèðîâàíèÿ íå ðåøåíàâîîáùå.8.3.2Ñåãìåíòíàÿ îðãàíèçàöèÿ ïàìÿòèÓñîâåðøåíñòâóåì ìîäåëü áàçà-ïðåäåë. Äëÿ ýòîãî ââåäåì ïîíÿòèå ñåãìåíòà. Ïîä ñåãìåíòîì áóäåì ïîíèìàòü îáëàñòü ôèçè÷åñêîé ïàìÿòè, èìåþùóþ íà÷àëî (ïî àíàëîãèè ñ áàçîé) è äëèíó (ïî àíàëîãèè ñ ïðåäåëîì).  îòëè÷èå îò ïðåäûäóùåé ìîäåëè, ïîçâîëèì êàæäîé çàäà÷å èìåòü íåñêîëüêî ïàðáàçà-ïðåäåë, òî åñòü íåñêîëüêî ñåãìåíòîâ.Êîíå÷íî, òàêàÿ ñìåíà ìîäåëè ñóùåñòâåííî çàòðîíåò êàê óñòðîéñòâî ïðîöåññîðà, òàê è ïðîãðàììíîå îáåñïå÷åíèå, ïðè÷åì, åñëè â ìîäåëè áàçàïðåäåë ïîòðåáîâàëàñü ïîääåðæêà ñî ñòîðîíû îïåðàöèîííîé ñèñòåìû, òî âñåãìåíòíîé ìîäåëè íîâóþ àðõèòåêòóðó ïðèäåòñÿ ó÷èòûâàòü è ïðè íàïèñàíèèêîäà ïîëüçîâàòåëüñêèõ ïðîãðàìì (ïî êðàéíåé ìåðå, åñëè ìû çàõîòèì ïèñàòüíà ÿçûêå àññåìáëåðà; òðàíñëÿòîðû ÿçûêîâ âûñîêîãî óðîâíÿ âñå íóæíûå ìî34селекторсмещениеТаблица сегментоватрибуты начальный адресразмерФизический адресÐèñ.
9: Ñåãìåíòíàÿ îðãàíèçàöèÿ ïàìÿòèìåíòû ó÷òóò àâòîìàòè÷åñêè ïðè ïåðåâîäå íàøåé ïðîãðàììû â èñïîëíÿåìûéêîä).Èòàê, ïåðâîå è íàèáîëåå âèäèìîå íîâøåñòâî ñîñòîèò â òîì, ÷òî â èñïîëíÿåìîì àäðåñå (òî åñòü â àäðåñå, ôîðìèðóåìîì òåì èëè èíûì ñïîñîáîì èíñòðóêöèÿìè ïðîöåññîðà) ïîÿâëÿåòñÿ ñïåöèôè÷åñêàÿ ÷àñòü, èìåíóåìàÿ ñåëåêòîðîìñåãìåíòà. Ïîä ñåëåêòîð ñåãìåíòà ìîæíî îòâåñòè íåñêîëüêî ñòàðøèõ áèòîâàäðåñà, ëèáî èñïîëüçîâàòü îòäåëüíûé ñïåöèàëüíî ïðåäíàçíà÷åííûé ðåãèñòðïðîöåññîðà.Ñåëåêòîð ñåãìåíòà ñîäåðæèò ÷èñëî, ïðåäñòàâëÿþùåå ñîáîé, óïðîùåííîãîâîðÿ, ïîðÿäêîâûé íîìåð ñåãìåíòà â òàáëèöå äåñêðèïòîðîâ ñåãìåíòîâ. Íàêàæäûé ñåãìåíò ýòà òàáëèöà ñîäåðæèò ôèçè÷åñêèé àäðåñ åãî íà÷àëà è åãîäëèíó, ïëþñ ê ýòîìó íåêîòîðûå ñëóæåáíûå ïàðàìåòðû (íàïðèìåð, ôëàãè,ðàçðåøàþùèå èëè çàïðåùàþùèå çàïèñü â ýòîò ñåãìåíò, èñïîëíåíèå åãî ñîäåðæèìîãî â êà÷åñòâå êîäà è ò.ï.).
Ôèçè÷åñêèé àäðåñ ÿ÷åéêè ïàìÿòè âû÷èñëÿåòñÿ ïóòåì ïðèáàâëåíèÿ àäðåñà íà÷àëà ñåãìåíòà, âçÿòîãî èç ñòðîêè òàáëèöû, âûáðàííîé ñåëåêòîðîì, ê ñìåùåíèþ, âçÿòîìó èç èñïîëíèòåëüíîãî àäðåñà(ðèñ. 9).Âîçìîæíîñòü èìåòü íåñêîëüêî ñåãìåíòîâ äëÿ îäíîé çàäà÷è ïîçâîëÿåò, íàïðèìåð, ñäåëàòü íåêîòîðûé ñåãìåíò îáùèì äëÿ äâóõ è áîëåå çàäà÷ (òî åñòüòåïåðü ìû ìîæåì ðåøèòü ïðîáëåìó äóáëèðîâàíèÿ).Íåêîòîðûå ïðåèìóùåñòâà ìû ïîëó÷àåì è â îòíîøåíèè ïðîáëåì îáúåìà èôðàãìåíòàöèè. Îòêà÷èâàòü íà äèñê ïî-ïðåæíåìó òðåáóåòñÿ ñåãìåíò öåëèêîì,íî ïðè íàëè÷èè ó êàæäîé çàäà÷è íåñêîëüêèõ ñåãìåíòîâ ýòî âñå æå ïðîùå,÷åì îòêà÷èâàòü âñþ çàäà÷ó; òî÷íî òàê æå ïðè ïåðåìåùåíèè äàííûõ ñ öåëüþ35äåôðàãìåíòàöèè ìîæíî ïåðåìåùàòü íå çàäà÷ó öåëèêîì, à ëèøü íåêîòîðûå èçåå ñåãìåíòîâ, è, êñòàòè, íàéòè ñâîáîäíóþ îáëàñòü ïîäõîäÿùåãî ðàçìåðà äëÿðàçìåùåíèÿ ñåãìåíòà â ñðåäíåì ïðîùå, ÷åì äëÿ âñåé çàäà÷è3 .Êðîìå òîãî, ñåãìåíòû ñàìè ïî ñåáå ïðåäñòàâëÿþò îïðåäåëåííîå óäîáñòâî.Ïðåäñòàâüòå ñåáå, ÷òî â íàøåé çàäà÷å èìååòñÿ íåñêîëüêî áîëüøèõ òàáëèö,êàæäàÿ èç êîòîðûé ìîæåò óâåëè÷èâàòüñÿ â ðàçìåðàõ.
Åñëè èñïîëüçîâàòüîáû÷íóþ (ïëîñêóþ) ìîäåëü ïàìÿòè, íå èñêëþ÷åíî, ÷òî îäíó èç òàáëèö ïðèäåòñÿ ïåðåìåùàòü â äðóãîå ìåñòî, ÷òîáû äàòü âîçìîæíîñòü ðàñøèðèòü äðóãóþòàáëèöó; ïðè ýòîì ïðèäåòñÿ íå òîëüêî ïðîâîäèòü êîïèðîâàíèå, íî è ïåðåñ÷èòûâàòü âñå óêàçàòåëè, ñîäåðæàâøèå àäðåñà âíóòðè ïåðåìåùåííîé òàáëèöû.Âñåõ ýòèõ òðóäíîñòåé ìîæíî èçáåæàòü, åñëè ïîä êàæäóþ òàáëèöó âûäåëèòüîòäåëüíûé ñåãìåíò.Îòìåòèì, ÷òî òàáëèöà äåñêðèïòîðîâ ñåãìåíòîâ õðàíèòñÿ â îïåðàòèâíîéïàìÿòè, òàê ÷òî, åñëè íå ïðåäïðèíÿòü ñïåöèàëüíûõ ìåð, íà êàæäîå îáðàùåíèåàêòèâíîé ïðîãðàììû ê ïàìÿòè ïîòðåáîâàëîñü áû åùå è îáðàùåíèå â ïàìÿòüçà èíôîðìàöèåé èç ýòîé òàáëèöû, ÷òî ñíèçèëî áû ïðîèçâîäèòåëüíîñòü ñèñòåìû ïðàêòè÷åñêè âäâîå.
Ïîýòîìó ðàçðàáîò÷èêè àðõèòåêòóðû ïðîöåññîðîâ îðãàíèçóþò õðàíåíèå èíôîðìàöèè îá èñïîëüçóåìûõ ñåãìåíòàõ íåïîñðåäñòâåííîâ ïðîöåññîðå. Íàïðèìåð, ïðîöåññîðû ñåðèè Intel çàãðóæàþò èíôîðìàöèþ èçòàáëèöû äåñêðèïòîðîâ êàæäûé ðàç ïðè èçìåíåíèè ñîäåðæèìîãî ñåãìåíòíîãî ðåãèñòðà; èíôîðìàöèÿ èç ñîîòâåòñòâóþùåé ñòðîêè òàáëèöû äåñêðèïòîðîâçàãðóæàåòñÿ â íåâèäèìóþ ÷àñòü ñåãìåíòíîãî ðåãèñòðà è õðàíèòñÿ òàì äîñëåäóþùåãî åãî èçìåíåíèÿ.8.3.3Ñòðàíè÷íàÿ îðãàíèçàöèÿ ïàìÿòèÁîëåå ýôôåêòèâíî ðåøèòü ïðîáëåìû îáúåìà è ôðàãìåíòàöèè ïîçâîëÿåòñòðàíè÷íàÿ îðãàíèçàöèÿ ïàìÿòè.Îòìåòèì ñðàçó, ÷òî â ýòîé ìîäåëè îáû÷íî êàæäàÿ çàäà÷à èìååò ñâîå ñîáñòâåííîå ïðîñòðàíñòâî âèðòóàëüíûõ àäðåñîâ è ñâîè òàáëèöû äëÿ ïåðåâîäà èõâ àäðåñà ôèçè÷åñêèå.Ðàçäåëèì ôèçè÷åñêóþ ïàìÿòü íà êàäðû 4 ôèêñèðîâàííîãî ðàçìåðà, à ïðîñòðàíñòâî âèðòóàëüíûõ àäðåñîâ − íà ñòðàíèöû òîãî æå ðàçìåðà (ðèñ.
10).Åñëè, ê ïðèìåðó, íàø ïðîöåññîð èñïîëüçóåò 32-áèòíûå àäðåñà, à ôèçè÷åñêîé ïàìÿòè âêîìïüþòåðå óñòàíîâëåíî 512Mb (229áàéò), ìû ìîæåì ðàçäåëèòü ôèçè÷åñêóþ ïàìÿòü íà217 =131072 êàäðîâ ïî 212 = 4096 áàéò, èëè 4Kb êàæäûé; âèðòóàëüíîå àäðåñíîå ïðîñòðàíñòâî òîãäà20ðàçäåëèòñÿ íà 2= 1048576 ñòðàíèö òàêîãî æå ðàçìåðà.3 Òåìíå ìåíåå, ýòè ïðåèìóùåñòâà ÷èñòî êîëè÷åñòâåííûå è âñåðüåç íà ñèòóàöèþ íå âëèÿþòîðèãèíàë òåðìèíà êàäð â äàííîì ñëó÷àå − frame; íåêîòîðûå ðóññêîÿçû÷íûå àâòîðûïîëüçóþòñÿ âìåñòî ñëîâà êàäð ñëîâîì ôðåéì, ëèáî èñïîëüçóþò ñëîâî ñòðàíèöà êàê äëÿ îáîçíà÷åíèÿ ñòðàíèö âèðòóàëüíûõ àäðåñîâ, òàê è äëÿ îáîçíà÷åíèÿ êàäðîâ ôèçè÷åñêîé ïàìÿòè4 Àíãëèéñêèé36с т ра ни цык ад рыс т ра ни цыФизическая памятьВиртуальная память задачи 1Виртуальная память задачи 2Ðèñ. 10: Ñòðàíè÷íàÿ îðãàíèçàöèÿ ïàìÿòèÇàìåòèì, ÷òî åñëè ðàçìåð ñòðàíèöû è êàäðà ñîñòàâëÿåò ñòåïåíü äâîéêè,òî ñîîòâåòñòâóþùåå êîëè÷åñòâî ìëàäøèõ áèò àäðåñà (êàê âèðòóàëüíîãî, òàêè ôèçè÷åñêîãî) ïðåäñòàâëÿþò ñîáîé ñìåùåíèå îòíîñèòåëüíî íà÷àëà ñòðàíèöûèëè êàäðà, à îñòàëüíûå áèòû − íîìåð ñòðàíèöû èëè êàäðà.Îñòàåòñÿ êàêèì-òî îáðàçîì äëÿ êàæäîé çàäà÷è ñîïîñòàâèòü íåêîòîðûì(íå âñåì!) ñòðàíèöàì íîìåðà ôèçè÷åñêèõ êàäðîâ.
Âàæíî, ÷òî ñîïîñòàâëåíèåïðîèçâîäèòñÿ â ïðîèçâîëüíîì ïîðÿäêå, òî åñòü äâóì ñîñåäíèì ñòðàíèöàì ìîãóò ñîîòâåòñòâîâàòü êàäðû èç ñîâåðøåííî ðàçíûõ îáëàñòåé ôèçè÷åñêîé ïàìÿòè.Îáû÷íî îòîáðàæåíèå ñòðàíèö íà ôèçè÷åñêèå êàäðû îñóùåñòâëÿåòñÿ ÷åðåçòàáëèöó ñòðàíèö, ïðèíàäëåæàùóþ àêòèâíîé çàäà÷å (ðèñ. 11). Äëÿ êàæäîéñòðàíèöû òàáëèöà ñîäåðæèò çàïèñü, ñîñòîÿùóþ èç íîìåðà êàäðà è ñëóæåáíûõàòðèáóòîâ.  ÷èñëî àòðèáóòîâ îáû÷íî âõîäèò òàê íàçûâàåìûé ïðèçíàê ïðèñóòñòâèÿ,îçíà÷àþùèé, íàõîäèòñÿ ëè äàííàÿ ñòðàíèöà âíàñòîÿùåå âðåìÿ â îïåðàòèâíîé ïàìÿòè èëè íåò. Ïðè ïîïûòêå îáðàùåíèÿ ê ñòðàíèöå, äëÿ êîòîðîé ïðèçíàê ïðèñóòñòâèÿ ñáðîøåí, ïðîöåññîð èíèöèèðóåò ïðåðûâàíèå, íàçûâàåìîå ñòðàíè÷íûì ; ïîëó÷èâýòî ïðåðûâàíèå, îïåðàöèîííàÿ ñèñòåìà ïðîèçâîäèò, åñëè âîçìîæíî,ïîäêà÷êó ñîîòâåòñòâóþùåé ñòðàíèöû ñ äèñêà.Ñóùåñòâóåò ïðîáëåìà âûáîðà ðàçìåðà ñòðàíèöû. ×åì áîëüøå ñòðàíèöà,37Виртуальный адресНомер страницысмещениеТаблица страницНомер физ.
кадраатрибутыномер физ. кадрасмещениеФизический адресÐèñ. 11: Ñòðàíè÷íîå ïðåîáðàçîâàíèå àäðåñàòåì áîëüøå ïàìÿòè ïðîïàäàåò âïóñòóþ â ïîñëåäíèõ ñòðàíèöàõ çàäà÷. Òàê,åñëè âûáðàòü ðàçìåð ñòðàíèöû 1Mb, òî çàäà÷à, çàíèìàþùàÿ ÷óòü áîëüøå1Mb, çàéìåò äâà ôèçè÷åñêèõ êàäðà, ïðè÷åì âòîðîé ïî÷òè âåñü (òî åñòü ïî÷òè1Mb) íå áóäåò èñïîëüçîâàòüñÿ. Ñ äðóãîé ñòîðîíû, ÷åì ìåíüøå ðàçìåð ñòðàíèöû, òåì áîëüøå êîëè÷åñòâî ñàìèõ ñòðàíèö è òåì, ñîîòâåòñòâåííî, áîëüøåðàçìåðû ñòðàíè÷íûõ òàáëèö.Îáû÷íî ðàçìåð ñòðàíèöû âûáèðàþò ðàâíûì ñòåïåíè äâîéêè, îò 29 äî 214áàéò. Ïðîöåññîðû Intel Pentium óìåþò ðàáîòàòü ñî ñòðàíèöàìè ðàçìåðîì 4Kb,2Mb è 4Mb. Âîîáùå, ðàçìåð ñòðàíèöû 4Kb (212 áàéò) ÿâëÿåòñÿ íàèáîëåå ïîïóëÿðíûì ñðåäè ðàçëè÷íûõ àðõèòåêòóð.Îáðàòèì âíèìàíèå, ÷òî ïðè 32-áèòíîé àäðåñàöèè (4Gb àäðåñóåìîãî ïðîñòðàíñòâà) êîëè÷åñòâî ñòðàíèö ñîñòàâèò 220 , òî åñòü áîëüøå ìèëëèîíà.