Logo GenDocs.ru

Поиск по сайту:  


Загрузка...

Лекции - Организация ЭВМ и систем - файл ГЛАВА 5.-12.03.doc


Загрузка...
Лекции - Организация ЭВМ и систем
скачать (989.6 kb.)

Доступные файлы (10):

ВВЕДЕНИЕ-12.03.doc25kb.19.05.2004 10:51скачать
ГЛАВА 1,2-12.03.doc286kb.19.05.2004 10:51скачать
Глава_3_Часть1.doc232kb.19.05.2004 10:51скачать
Глава_3_Часть2-1.doc237kb.19.05.2004 10:51скачать
ГЛАВА 4.-12.03.Отч.doc852kb.19.05.2004 10:51скачать
ГЛАВА 5.-12.03.doc184kb.19.05.2004 10:51скачать
ГЛАВА 6.-241203_Отч.doc2397kb.19.05.2004 10:51скачать
ГЛАВА 7.-12.03.doc313kb.19.05.2004 10:51скачать
ЛИТЕРАТУРА.doc23kb.19.05.2004 10:51скачать
ОГЛАВЛЕНИЕ.doc52kb.19.05.2004 10:51скачать

ГЛАВА 5.-12.03.doc

Реклама MarketGid:
Загрузка...
ГЛАВА 5. АДРЕСНОЕ ПРОСТРАНСТВО ЭВМ

5.1. Адресное пространство ЭВМ

Процессор способен обмениваться информацией с объектами за его границами только в том случае, когда эти объекты имеют адреса. Такие объекты называют адресуемыми или программно-доступными.

Адрес – это код определяющий номер ячейки памяти, регистр, триггер, вход логического элемента и т.п.

В современных ЭВМ класса персональных, взаимодействие устройств основано на использовании магистрали типа «общая шина».

Она включает: адресную шину – для передачи адреса выбираемых устройств; шину данных для передачи данных; шину управления - для передачи специальных сигналов.

Если адресная шина содержит всего три адресные линии, то по ней можно передать 23=8 различных адресов: 000, 001, 010, 011, 100, 101, 110, 111. При четырех линиях число возможных состояний шины составляет 24=16:0000, 0001, …, …, 1111; при 16 линиях число возможных состояний составляет 216=65536 = 64К, где К=210=1024.

Адресное пространство представляет собой упорядоченное множество кодов 0, 1, 2, …, (2n-1); где n – число адресных линий.

Адресное пространство определяет число возможных отличимых друг от друга кодовых комбинаций (адресов), которые может выдать на адресную шину активное устройство. Это, конечно, не означает, что каждой такой комбинации соответствует программно-доступный элемент. Адресное пространство определяет лишь потенциальные возможности системы - максимальное число программно-доступных элементов, которые могут присутствовать в ней.

Старший двоичный разряд адреса делит адресное пространство на две равные части (рис. 5.1, а), два старших разряда делят его на четыре равные части (рис. 5.1, б), три старших разряда – на восемь равных частей (рис. 5.1, в) и т.д. Шестнадцать разрядов адреса делят адресное пространство емкостью 64К на 64К частей по одной ячейке.

Предположим, что, подключив двухлучевой осциллограф к двум старшим разрядам адресной шины, мы в некоторый момент обнаружили на них кодовую комбинацию 102. Это означает, что в данный момент процессор обращается к некоторому программно-доступному элементу, лежащему в третьей четверти адресного пространства. Эта зона на рис. 5.1,б помечена знаком *. Для уточнения позиции адресуемого процессором элемента необходимо было бы анализировать один или несколько более младших разрядов. В предельном случае для абсолютно точного определения «цели» необходимо анализировать все без исключения оставшиеся разряды.





а) б) в)

Рис. 5.1. Деление адресного пространства (для n=16): а – одним старшим разрядом адреса на две части; б – двумя старшими разрядами адреса на 4 части; в – тремя старшими разрядами на 8 частей

Понятие адресного пространства позволяет наглядно представлять размещение в нем различных программно-доступных объектов. Пример распределения адресного пространства для n=16 показан на рис. 5.2.

В адресном пространстве размещены адреса, принадлежащие ОЗУ и ПЗУ(зоны А и Б). Последние 8К ячеек (зона Д) отведены для адресации регистров контроллеров, входящих в ЭВМ, и, возможно, регистров самого процессора. Эта зона в основном свободна. Зона Г отведена для расширения адресного пространства методом окна. Зона В не занята.

Если процессор обратится в любую незанятую ячейку адресного пространства, то он не получит ответного сигнала и «зависнет». Чтобы состояние зависания не длилось слишком долго, в процессоре обычно предусматривается схема формирования искусственного ответа, которая по истечении, например, 10 мкс

принудительно завершает цикл обмена по магистрали и заставляет процессор перейти к специальной программе реакции на зависание. В ходе выполнения этой программы оператору может быть выдано сообщение в виде печатного текста либо выполнены любые другие действия, определяемые программой.

^ 5.2. Методы расширения адресного пространства

На определенном этапе развития вычислительной техники сложилась ситуация когда адресное пространство ЭВМ размером, например, 64К стало слишком «тесным».

Среди многих причин это связано и с появлением микросхем памяти емкостью 256К и более.

Очевидным способом расширения адресного пространства является увеличение числа адресных линий. Вместе с тем, такой подход не является радикальным и лишь временно позволяет отодвинуть на второй план эту проблему.

Наиболее интересными с технической точки зрения способами расширения адресного пространства являются - метод окна, метод базовых регистров и метод банков.

^ 5.2.1. Метод окна


К главной памяти

0
Метод окна позволяет очень просто разрешать указанные проблемы (рис 5.3).



P

a) б)

Рис. 5.3. Сущность метода окна

а -геометрическое представление идеи метода; б -схемная реализация;

G – адресуемые элементы ЭВМ расположенные в зоне LG адресного пространства P ЭВМ; Р – адресное пространство ЭВМ; Н – адресное пространство главной памяти; Lo – свободная зона адресного пространства,

в которой выделено окно W.

Идея метода состоит в отображении на "большом" отрезке лишь части "малого" отрезка. Эта часть соответствует свободным адресам ЭВМ и называется окном. Емкость главной памяти V = 2d+g ячеек. Если, например, d=8, g=12, то V=220=1M ячеек. Главную память можно рассматривать как совокупность 2d страниц, каждая из которых имеет размер 2g ячеек, совпадающий с размером окна. Таким образом, можно считать, что 2d - число проекций окна, которые, примыкая вплотную друг к другу, заполняют собой всю "ось" главной памяти. Существенно, что адресная шина расщепляется на две части: одна поступает в главную память, а другая "поглощается" дешифратором. Система работает следующим образом.

1. Процессор загружает программно-доступный регистр старших разрядов адреса с шины данных, задавая положение проекции окна в адресном пространстве главной памяти или, в другой терминологии, угол наклона проецирующих лучей.

2. Процессор обращается по некоторому адресу, лежащему внутри окна.

3.Дешифратор опознает принадлежность текущего адреса фиксированному окну и разрешает передачу в главную память сигнала сопровождения адреса MSYN . В главную память выдается полный адрес (d+g) бит, определяющий одну из ее ячеек.

4. Выбранная ячейка главной памяти выдает или принимает информацию в зависимости от сигнала на линии управления режимом работы и посылает сигнал по линии передачи ответа (чтобы не загромождать рисунок, эти линии на рис. 5.3 не показаны).

Поскольку окно выбрано в зоне неиспользуемых адресов внутреннего адресного пространства ЭВМ, то конфликты, связанные с одновременным выбором двух адресуемых элементов (внутри и вне ЭВМ), исключаются.
^ 5.2.2. Метод базовых регистров

Базовые регистры - это регистры старших разрядов. Метод базовых регистров является обобщением метода окна. В адресном пространстве выделяются не одно, а несколько окон. При каждом обращении в главную память используется лишь одно окно (рис. 5.4). Проекции окон на "ось" главной памяти могут лежать в произвольных местах этой оси (с дискретом, равным размеру окна) и, в частности, могут совпадать.

Положение окон в адресном пространстве задается жестко - с помощью дешифратора. Углы наклона лучей задаются содержимым базовых регистров. Размеры окон для простоты будем считать одинаковыми. Принцип формирования адресов главной памяти тот же, что и по методу окна.

Метод базовых регистров позволяет переносить в адресное пространство ЭВМ одновременно несколько различных страниц главной памяти, например, одну страницу из области программ и две страницы из области данных. Схемная реализация метода базовых регистров близка к реализации метода окна и показана на рис. 5.5. Процессор загружает в базовые регистры с шины




К главной памяти



MSYN

Адрес

d
Мультиплексор g 1

m m
d d d 16-g

m

16 бит

m базовых регистров
Рис. 5.5. Схемная реализация метода базовых регистров: G - адресуемые элементы ЭВМ, расположенные в зоне LG ее адресного пространства
данных (на рисунке не показана) исходную информацию, определяющую углы наклона лучей из каждого окна. При обращении в главную память через одно из m окон дешифратор формирует сигнал выдачи старших разрядов с соответствующего базового регистра через мультиплексор.

В рассмотренных примерах старшие разряды из внешнего регистра "под-стыковывались" к младшим, выдаваемым непосредственно с части 16-разряд-ной адресной шины. При такой "подстыковке" проекции окон в адресном прос-транстве главной памяти могут перемещаться с шагом, равным размеру окна. Для более плавного перемещения проекций в место "подстыковки" используют аппаратное арифметическое суммирование содержимого базового регистра (его разрядность должна быть увеличена в сторону младших разрядов) с кодом, выдаваемым в адресную шину.

^ 5.2.3. Метод банков

Этот метод, как и оба предыдущие, получил достаточно широкое распространение. Под термином «банк» подразумевается отдельный блок памяти, содержащий возможно как оперативную, так и постоянную части. Помимо обычных магистральных входов-выходов такой блок памяти имеет дополнительный управляющий вход E разрешения работы. Схема подключения нескольких банков к ЭВМ приведена на рис. 5.6.

Магистраль


Рис. 5.6. Схемная реализация метода банков

В процессе работы такой системы процессор ЭВМ через программно-доступный регистр открывает нужный банк и использует содержащуюся в нем информацию. Остальные банки логически отключены от магистрали. В данном методе существенно то, что ЭВМ может вообще не содержать собственной оперативной или постоянной памяти. Она может вставлять в свое адресное пространство емкостью, например 64К, банки емкостью 56К. Последние 8К ячеек остаются для собственных нужд, в частности для адресации показанного на рис. 5.6 регистра. Такая подстановка оказывается удобной для быстрого переключения ЭВМ с решения одной задачи на решение другой. Каждой задаче в этом случае может соответствовать свой банк. При этом, однако, в каждом банке должны храниться одни и те же резидентные программы операционной системы, что снижает эффективность использования памяти в целом.

Другими недостатками являются разрывность памяти, собранной из отдельных банков, невозможность одновременной работы с несколькими банками (с целью, например, быстрой переписи информации из одного банка в другой), а также сложность доступа к этой памяти со стороны каналов прямого доступа в память.

При включении напряжения питания регистр устанавливается в исходное состояние, соответствующее подключению к ЭВМ единственного (вполне определенного) банка. Регистр может содержать дополнительные разряды, которые уточняют правила работы с каждым банком: доступен ли банк по записи или/и по чтению, включить или выключить его схемы контроля и т.д.

^ 5.3. Методы дешифрации адресов

Для решения задачи подключения программно-доступного элемента к внешней магистрали ЭВМ необходимо:

а) определить его «положение» в адресном пространстве;

б) предусмотреть схему адресного дешифратора, который должен срабатывать при обращении к программно-доступному элементу.

Структура дешифратора будет зависеть от используемой элементной базы и выбранного метода дешифрации.

^ 5.3.1. Задание адреса с использованием полной дешифрации

Предположим, что адрес, соответствующий программно-доступному элементу, например, триггеру D4, выбран равным BFFF, т.е. задан с точностью до отдельной ячейки адресного пространства. Схема связи триггера с магистралью для этого случая показана на рис. 5.7.

Загрузка программно-доступного триггера D4 может производиться при выполнении процессором команды пересылки типа «регистр- память»: R2[BFFF]. В данном случае предполагается, что в младший разряд внутреннего регистра R2 процессора предварительно занесен нужный бит (0 или 1), который при выполнении этой команды записывается в триггер D4. При выполнении указанной команды адресный код BFFF, выданный процессором в магистраль М, проходит через магистральные приемники D1. Далее вместе со стробирующим сигналом MSYN он поступает на элемент D2, вызывая формирование единичного сигнала (напряжения высокого уровня) на его выходе. В режиме записи срабатывает элемент D3 и по положительному фронту сигнала на входе C триггер D4 принимает информацию с входа D.


Рис. 5.7. Схема полной дешифрации адреса
Выдача информации из триггера D4 в линию DOOL магистрали M производится при выполнении процессором команды чтения: [BFFF]R2. В результате выполнения этой команды в младший разряд регистра R2 процессора поступает информационный бит из триггера D4. Если триггер D4 находился в единичном состоянии, то при чтении срабатывает элемент D5 и последовательно соединенный с ним магистральный усилитель-инвертор D7. При этом в линии DOOL формируется напряжение низкого уровня ("магистральная" 1). Если триггер D4 находился в нулевом состоянии, то при чтении элемент D5 не срабатывает и в линии DOOL за счет нагрузочных резисторов (на рисунке не показаны) поддерживается напряжение высокого уровня ("магистральный"0).

При обращении к триггеру D4 по записи или по чтению в магистраль M выдается ответный сигнал SSYN. Элемент задержки D6 гарантирует выдачу сигнала SSYN не раньше, чем будет выдана информация из триггера D4 в линию DOOL при чтении. В предельном случае допустима одновременная выдача.

Для обмена информацией между процессором и триггером D4 не обязательно использовать команды пересылки; можно воспользоваться, например, командой сложения или иной, в которой указана "ячейка памяти" с адресом BFFF. В действительности ни в ОЗУ, ни в ПЗУ такой ячейки памяти нет, роль этой ячейки выполняет введенный нами адресуемый элемент-триггер D4.

^ 5.3.2. Задание адреса с использованием частичной дешифрации

Этот способ позволяет экономить аппаратуру дешифрации в результате присвоения адресуемому элементу (в данном случае - триггеру) не отдельной ячейки адресного пространства, а группы ячеек. Обратимся вновь к рис. 5.7 и будем считать, что связи, помеченные знаком *, устранены из схемы. В этом случае магистральные приемники D1 транслируют лишь три старших разряда адреса (вместо 16), а число входов элемента D2 сокращается с 17 до 4. Адреса, на которые реагирует дешифратор в этом случае, образуют массив размером в 8К ячеек: AOOO-BFFF. Действительно, для обращения к триггеру D4 в этом случае необходимо в трех старших разрядах адреса создать комбинацию 1012; при этом остальные 13 разрядов адреса могут быть заданы произвольно, одним из 213 =8K способов. Другими словами, адрес триггера D4 можно представить так:

101 - - - - - - - - - - - - - ,

где знак " - " означает, что данный разряд адреса не поступает на дешифратор и, следовательно, может быть задан произвольно.

Экономия аппаратуры в данном примере достигнута за счет того, для одного адресуемого элемента (триггера) в адресном пространстве ЭВМ пришлось выделить 8K ячеек из свободной зоны 6000-BFFF. Напомним, что адресное пространство - абстрактное понятие и его стоимость, нельзя выразить, например, в денежных единицах. Вместе с тем, аппаратура дешифрации - понятие реальное, характеризуемое стоимостью, потребляемой мощностью, массой и т.д.

^ 5.4. Организация виртуальной памяти

5.4.1. Принципы организации виртуальной памяти

Применяя методы непосредственного расширения памяти ЭВМ, следует помнить, что быстродействующая память не может наращиваться "безгранично" в основном из-за увеличения ее стоимости, потребляемой мощности, а также из-за снижения ее быстродействия.

Использование внешних накопителей на магнитных лентах, дисках и других устройств подобного класса позволяет значительно увеличивать память машины при вполне приемлемой стоимости и потребляемой мощности. Конечно, время обмена информацией с такими накопителями на несколько порядков выше, чем время обмена с ячейкой памяти ОЗУ или ПЗУ.

Метод виртуальной памяти обеспечивает иллюзию "безграничной" оперативной памяти при вполне ограниченной ее физической емкости. Идея метода проста: в случае отсутствия в ОЗУ нужной информации в него "подкачивается" необходимая страница из внешнего накопителя, вытесняя одну из "старых" (давно не использовавшихся) страниц. Размер страницы может быть равен, например, 16К ячейкам. Механизм "подкачки" страниц поддерживается специальными аппаратными и программными средствами, скрытыми от пользователя. Поэтому пользователь считает, что в его распоряжении имеется оперативная память весьма значительной емкости, которая определяется разрядностью адресной шины.

Предположим, что процессор оперирует с адресным пространством 232 ячеек, используя 32-разрядную адресную шину. Адреса, поступающие из процессора, называются логическими адресами. С точки зрения пользователя к процессору подключена обычная быстродействующая оперативная память с емкостью 232 4,29 млрд. ячеек.

Логический 32-разрядный адрес можно представить состоящим из двух частей: N – это старшие 18 разрядов, определяющие номер одной из 218 =256K страниц, с которой процессор собирается работать, М - это 14 младших разрядов, определяющих одну из 214=16K ячеек на выбранной странице. Другими словами, в распоряжении пользователя имеются 256К страниц памяти, каждая из которых содержит 16К ячеек. На рис. 5.8 показана укрупненная функциональная схема аппаратного ядра виртуальной памяти. Устройства, соединенные с магистралью связями, помеченными знаками * являются программно-доступными - регистр логического адреса, ассоциативное запоминающее устройство АЗУ, буферная память ОЗУ1, табличная память ОЗУ2.

Регистр логического адреса предназначен для хранения адреса, поступающего из процессора по магистрали. Ассоциативное запоминающее устройство содержит 16 ячеек, каждая из которых состоит из трех групп разрядов или полей: поля номера логической страницы S (18 бит), поля номера локальной страницы L (4 бита) и поля признаков P. Признаки Р характеризуют некоторые особенности соответствующего массива информации (страницы размеров 16К ячеек), такие, как возможность доступа по записи, факт недавнего использования, факт изменения содержимого и др.

Условием выдачи информации из некоторой ячейки АЗУ является совпадение информации, поступившей из поля N регистра логического адреса, с информацией, хранившейся в поле S этой ячейки. При выявлении такого совпадения в любой из 16 ячеек на выходе Q АЗУ формируется 1, в противном случае - 0.


Рис. 5.8. Схемная реализация "ядра" виртуальной памяти
Память ОЗУ1 организована в виде 16 "локальных" страниц с номерами 00002, 00012 , ..., 11112 . Каждая страница содержит 16К 32-разрядных ячеек. На вход ОЗУ1 поступает 18-разрядный адрес. Четыре старших разряда поступают из поля L выбранной ячейки АЗУ и определяют номер одной из 16 локальных страниц. Четырнадцать младших разрядов поступают из поля M регистра логического адреса и определяют адрес ячейки в пределах выбранной страницы. Память ОЗУ1 подключается к магистрали через связи H только в том случае, когда Q=1, т.е. при условии, что в АЗУ выбрана одна из 16 ячеек. Память ОЗУ2 организована в виде 256К 32-разрядных ячеек и содержит таблицу соответствия логических страниц физическим.

Инвертор формирует на своем выходе сигнал Q=1 в том случае, когда ни в одной из 16 ячеек АЗУ не произошло совпадения 18-разрядного входного слова N с 18-разрядным полем S. Сигнал Q передается по управляющей шине магистрали в процессор ЭВМ, оповещая его об отсутствии в ОЗУ1 нужной страницы.

Предположим, что процессор ЭВМ обратился к памяти по некоторому 32-разрядному адресу, состоящему, как отмечалось из двух частей: N и M. Пусть далее N=x, а M=z, где x и z некоторые конкретные коды; x-18 разрядный код, а z-14 разрядный код. Полученный 32-разрядный адрес запоминается в регистре логического адреса, после чего производится пуск ассоциативной памяти для выяснения вопроса: находится ли страница, логический номер которой равен x, в буферной памяти ОЗУ1?

Предположим сначала, что этот вопрос решен положительно, т.е. в буферной памяти ОЗУ1 уже размещена нужная страница. Она, как показано на рис. 5.8, расположена в предпоследней зоне (L=1110) размером 16К блока памяти ОЗУ1. Если это так, то одна из записей в АЗУ должна отражать этот факт. Действительно, в третьей сверху ячейке АЗУ содержится запись, указывающая, что логической странице с номером x соответствует локальная страница памяти ОЗУ1, номер которой равен 11102 . Поэтому пуск АЗУ приведет, во-первых, к выдаче сигнала Q=1, который подключит ОЗУ1 к магистрали по связям Н, и, во-вторых, к выдаче кода 1110 в старшие адресные линии ОЗУ1. После этого производится пуск ОЗУ1, что приводит к выбору нужной ячейки памяти Z на странице, локальный номер которой равен 1110, что и требовалось. Содержимое этой ячейки либо обновляется (при записи), либо выдается в шину данных (при чтении). Таким образом, аппаратура позволила быстро выяснить, что нужная страница находится в ОЗУ1 и произвести обращение к нужной ячейке памяти на этой странице.

При последующих обращениях процессора к странице Х процесс повторяется: АЗУ указывает, где находится эта страница в ОЗУ1, а ОЗУ1 отыскивает нужную ячейку и производит с ней нужную операцию - чтение или запись. Другими словами, до тех пор пока нужная страница находится в ОЗУ1, доступ к ячейке производится с той же скоростью, что и доступ к ячейке "обычного" ОЗУ. Время срабатывания АЗУ "скрадывается": пока идет выборка из АЗУ, ОЗУ1 может, не дожидаясь результатов работы АЗУ, "на всякий случай" проводить дешифрацию младших 14 разрядов адреса.

Предположим теперь, что в ОЗУ1 нет нужной страницы. Это означает, что ни одна из 16 ячеек не содержит в поле S код x. Поэтому при обращении к АЗУ будет сформирован сигнал Q=0 и ОЗУ1 вследствие разрыва связей H этим сигналом окажется изолированным от магистрали. При этом в процессор и будет послан ответный сигнал для исключения «зависания». Пройдя через инвертор, сигнал отсутствия совпадения поступает в процессор, вызывая прерывание выполнения программы в связи с отсутствием нужной страницы в ОЗУ1. Процессор временно откладывает текущее задание и переходит к выполнению прерывающей программы. Задача этой программы - отыскать, где находится физическая страница, соответствующая коду x, и ввести эту страницу в ОЗУ1, сделав соответствующую пометку в АЗУ. Эта страница вводится на свободное место в ОЗУ1, а если такового нет - на место той страницы, которая дольше всего не использовалась.

Отыскание номера физической страницы, соответствующей данной логической странице, производится следующим образом. Процессор считывает содержимое программно-доступного регистра логического адреса, выделяет из полученного 32-разрядного кода поле N (в котором записан код x) и использует его в качестве младших разрядов адреса при обращении к ОЗУ2, в котором хранится таблица соответствия логических номеров страниц местам их хранения на внешних носителях. Обратившись к ячейке x ОЗУ2, процессор получит в ответ некоторый 32-разрядный код Y, который является указателем физической страницы. В этом коде содержится информация о том, где находится эта страница. В нашем примере она находится в определенной зоне одного из внешних накопителей.

Теперь процессор должен определить, на какое место в ОЗУ1 можно ввести нужную страницу из внешнего накопителя. Для этого он считывает поле признаков P АЗУ по всем 16 ячейкам и, анализируя специально выделенные биты этого поля, определяет с учетом предыстории изменения этих битов, какие ячейки АЗУ дольше всего оказались невостребованными. Определив, что давно не было обращения к странице 11102 ОЗУ1, процессор решает ликвидировать старую запись на этой странице. Поэтому он вместо старой строки записывает в АЗУ новую, которая говорит о том, что логической странице x будет теперь соответствовать локальная страница 1110 0ЗУ1.

После этого, используя обычный программный доступ к ОЗУ1, процессор вводит нужную страницу с накопителя в предпоследнюю зону ОЗУ1 размером 16К ячеек. На этом прерывающая программа заканчивает работу по "подкачке" нужной страницы в ОЗУ1 и управление передается команде, которую ранее не удавалось выполнить из-за отсутствия страницы в ОЗУ1. Случаи замены страниц тем более редки, чем больше размер страницы и чем больше их хранится в буферном ОЗУ (ОЗУ1).

Определение давности использования страниц в простейшем случае может производиться путем периодического программного опроса и сброса признаков R во всех ячейках АЗУ. При обращении к ячейке АЗУ (при совпадении кодов N и x) признак R в данной ячейке автоматически устанавливается в единицу. Поэтому, если периодически опрашивать признаки R и сбрасывать их, то можно вести учет актуальности страниц. Страницы, утратившие свою актуальность, не будут восстанавливать признаки R после сброса. Страницы, к которым производятся обращения, будут восстанавливать признаки R к моменту очередного опроса. Просматривая таблицу учета признаков R, процессор видит, что старые страницы "давно" не восстанавливали признаки R, средние – восстанавливали в недалеком прошлом, но перестали восстанавливать в последнее время. Новые же страницы пока еще актуальны, так как в самой недавней предыстории они восстанавливали признаки R. Таким образом, процессор имеет возможность выбрать наиболее устаревшую страницу для ее уничтожения.

Простое уничтожение страницы в ОЗУ1 возможно лишь в том случае, когда ее содержимое не было изменено в процессе работы с ней. В этом случае точная копия страницы хранится во внешнем накопителе. Однако не исключена возможность того, что в процессе работы со страницей, вызванной ранее из внешнего накопителя в ОЗУ1, было изменено содержимое хотя бы одного бита в этой странице. В этом случае, прежде чем уничтожить страницу, необходимо переслать ее обратно во внешний накопитель для приведения в точное соответствие хранящегося оригинала и откорректированной копии.

Чтобы узнать, производилась ли операция записи на страницу (это принимается за критерий ее изменения), в поле P вводится бит W, который автоматически устанавливается в единичное состояние при выполнении операции записи на эту страницу. При решении вопроса о необходимости возврата уничтожаемой страницы на внешний носитель процессор руководствуется значением бита W: при W=0 копия в точности соответствует оригиналу и переписи не требуется.

В поле P имеется также признак V, единичное состояние которого говорит о том, что страница активна. Уничтожение страницы производится переводом признака V в нулевое состояние.

Еще одна особенность виртуальной памяти - встроенный механизм защиты страниц, содержащихся в буферной памяти, от несанкционированного доступа. Например, используя два бита a и b, которые включаются в поле P, определяется четыре уровня защиты страницы, как показано в таблице 1.

Таблица 1

а

b

Режим операционной системы

Режим пользователя

0

0

Только чтение

Недоступна

0

1

Чтение и запись

Недоступна

1

0

Чтение и запись

Только чтение

1

1

Чтение и запись

Чтение и запись

При a=0 пользовательские программы не имеют права доступа к странице. При попытке такого доступа в процессор посылается сигнал прерывания и он предпринимает соответствующие действия, например, выдает сообщение оператору, перезагружает программу и пускает ее вновь и т.д. Самый "легкий" режим - полное отсутствие защиты - соответствует случаю а=1, b=1.

Виртуальная память первоначально была реализована на больших ЭВМ и мини-ЭВМ. Однако по мере расширения сферы применения ЭВМ и увеличения степени интеграции элементной базы возникла необходимость в реализации виртуальной памяти и для этого класса машин.


Скачать файл (989.6 kb.)

Поиск по сайту:  

© gendocs.ru
При копировании укажите ссылку.
обратиться к администрации
Рейтинг@Mail.ru