Организация виртуальной памяти.
Механизм страничной организации памяти может быть легко использован для организации виртуальной памяти.
Страничную виртуальную организацию памяти поддерживает бит Р – бит присутствия. В системах с виртуальной памятью бит Р должен точно отображать место нахождения виртуальной страницы, которая может находиться в ОЗУ, либо на внешнем диске. Если страница находится в ОЗУ, то бит Р устанавливается в единичное состояние, а если на внешнем диске, то бит Р=0.
Операционная система и микропроцессор следят за состоянием бита Р. Микропроцессор автоматически проверяет состояние бита Р в каталоге разделов и таблице страниц при каждом обращении к памяти. Если Р=1, то страница находится в оперативной памяти и производится стандартная трансляция адресов с помощью либо универсального алгоритма формирования физического адреса, либо с помощью ТЛБ. Если Р=0, то обращение к памяти не выполняется , так как нужной страницы в ОЗУ нет. Такая ситуация квалифицируется как ошибка страниц и микропроцессор генерирует исключительную ситуацию. Происходит прерывание программы, вызвавшей исключительную ситуацию, и управление передается операционной системе. Операционная система находит нужную страницу на внешнем диске, загружает ее в ОЗУ, устанавливает бит Р в единичное состояние и возвращает управление прерванной программы. Прерванная программа возобновляет свою работу с той точки, где произошло прерывание.
При необходимости, когда оперативная память заполнена полностью, операционная система удаляет на внешний диск те разделы и страницы, к которым долгое время не было обращений, освобождая тем самым место для вновь вводимых страниц в оперативную память. Таким образом, происходит непрерывное обновление содержимого ОЗУ. ОЗУ содержит только те программы и данные, которые нужны в данный момент времени. Те же программные средства, к которым долгое время не было обращения, постепенно выводятся на внешний диск. Вот так работает виртуальная память.
Объем виртуальной памяти равен максимальному объему одного сегмента (4Гбайта) умноженного на количество сегментов. Количество сегментов определяется объемом глобальной и локальной таблиц дескрипторов. В каждой из этих таблиц до 213 дескрипторов, что позволяет адресовать 213 сегментов. Число 13 – разрядность поля “INDEX”. Таким образом максимальное количество сегментов, которое может адресовать микропроцессор равняется:
2*213=214
1 сегмент равен 232 =4 Гбайта
232*2*213=246=26*240=64 Тбайта
Дата добавления: 2015-08-14; просмотров: 682;