Замещение страниц
MOVE REG,1000
Адреса могут формироваться с использованием индексации, базовых регистров, сегментных регистров и другими путями.
Эти программно формируемые адреса, называемые виртуальными, образуют виртуальное адресное пространство. На компьютерах без виртуальной памяти виртуальные адреса подаются непосредственно на шину памяти и при чтении или записи читается или записывается слово в физической памяти с тем же самым адресом. При применении виртуальной памяти виртуальные адреса не передаются напрямую шиной памяти. Вместо этого они направляются в блок управления памятью (Memory Management Unit, MMU), который отображает виртуальные адреса на физические адреса (рис.
4.7). Рис. 4.7. Расположение и функции блока управления памятью (MMU) |
Очень простой пример того, как выполняется такого рода отображение, приведен на рис. 4.8. Мы рассматриваем компьютер, который может формировать 16-разрядные адреса, от 0 до 64 К. Это — виртуальные адреса. У данного компьютера есть только 32 Кбайт физической памяти, поэтому, хотя программы размером 64 Кбайт писать можно, их нельзя целиком загрузить в память и запустить на выполнение.
Полная копия образа памяти программы размером до 64 Кбайт должна присутствовать на диске, но в таком виде, чтобы ее можно было по мере надобности переносить в память по частям.Пространство виртуальных адресов разделено на единичные блоки, называемые страницами. Соответствующие блоки в физической памяти называются страничными блоками (page frame). Размер страниц и их блоков всегда одинаков. В этом примере они равны 4 Кбайт, но в реальных системах использовались размеры от 512 байт до 64 Кбайт. Имея 64 Кбайт виртуального адресного пространства и 32 Кбайт физической памяти, мы получаем 16 виртуальных страниц и 8 страничных блоков. Передача данных между ОЗУ и диском всегда происходит постранично.
Пусть программа пытается получить доступ к адресу 0, например, с помощью следующей команды:
MOVE REG,О
Тогда виртуальный адрес 0 передается в блок управления памятью (MMU). Блок управления памятью видит, что этот виртуальный адрес попадает на страницу О
(от 0 до 4095), а та отображается на страничный блок 2 (адреса от 8192 до 12287). MMU преобразует виртуальный адрес 0 в физический адрес 8192 и выставляет последний на шину. Память ничего не знает о блоке управления памятью, а видит просто запрос на чтение или запись слова по адресу 8192 и выполняет запрос. Таким образом, блок управления памятью эффективно отображает все виртуальные адреса между 0 и 4095 на физические адреса от 8192 до 12287.
Еще пример:
MOVE REG,8192
Поскольку виртуальный адрес 8192 находится на виртуальной странице 2, а эта страница отображается на физический страничный блок 6 (физические адреса от 24576 до 28671), эта инструкция точно так же преобразуется в команду
MOVE REG,24576
В качестве третьего примера рассмотрим виртуальный адрес 20500, который адресует байт 20 от начала виртуальной страницы 5 (виртуальные адреса от 20480 до 24575) и отображается на физический адрес 12288 + 20 = 12308.
Сама по себе возможность отображения 16 виртуальных страниц на любой из восьми страничных блоков с помощью соответствующей карты отображения в блоке управления памятью не решает проблемы, заключающейся в том, что объем виртуального адресного пространства больше физической памяти.
Так как у нас есть только 8 физических страничных блоков, лишь 8 виртуальных страниц на рис. 4.8 воспроизводятся в физической памяти. Другие страницы, обозначенные на рисунке крестиками, не отображаются. В аппаратном обеспечении страницы, физически присутствующие в памяти, отслеживаются с помощью бита присутствия/отсутствия.Что произойдет, если программа попытается воспользоваться неотображаемой страницей? Например:
MOVE REG,32780
Эта инструкции обращается к байту 12 на виртуальной странице 8 (откладываемой с адреса 32768). Блок управления памятью замечает, что страница не отображается (обозначена крестиком на рисунке), и инициирует прерывание центрального процессора, передающее управление операционной системе. Такое прерывание называется ошибкой отсутствия страницы (page fault). Операционная система выбирает редко используемый страничный блок и записывает его содержимое на диск. Затем она считывает с диска страницу, вызвавшую прерывание, в только что освободившийся блок, изменяет карту отображения и запускает прерванную команду заново.
Например, если операционная система решает удалить из оперативной памяти страничный блок 1, она загружает виртуальную страницу 8 по физическому адресу 4 К и производит два изменения в карте блока управления памятью. Во-первых, содержимое виртуальной страницы 1 отмечается как неотображае- мое, чтобы перехватывать в будущем любые попытки обращения к виртуальным адресам между 4 К и 8 К. Затем заменяется крест в записи для виртуальной страницы 8 номером 1, следовательно, когда прерванная команда будет выполняться заново, она отобразит виртуальный адрес 32 780 на физический адрес 4108.
Теперь рассмотрим блок управления памятью изнутри, чтобы увидеть, как он работает, и понять, почему мы выбрали размер страницы, являющийся степенью числа 2. На рис. 4.9 представлен пример отображения виртуального адреса 8196 (0010000000000100 в двоичном виде) согласно карте на рис. 4.8. Входной 16-раз- рядный виртуальный адрес разделяется на 4-разрядный номер страницы и 12-разрядное смещение.
При выделении 4 бит под номер страницы в нашей системе может существовать 16 страниц, а 12 бит смещения позволяют адресовать все 4096 байт внутри страницы. Рис. 4.9. Внутренняя операция блока управления памятью в системе из 16 страниц по 4 Кбайт |
Номер страницы используется в качестве индекса в таблице страниц, позволяющей получить номер страничного блока, соответствующего виртуальной странице. Если бит присутствия/отсутствия равен 0, управление переходит к операционной системе. Если этот бит равен 1, номер страничного блока, найденный в таблице страниц, записывается в 3 старших бита выходного регистра, а 12 бит смещения копируются без изменения из входного виртуального адреса. Все вместе они составляют 15-разрядный физический адрес. Затем содержимое выходного регистра выставляется на шину памяти как адрес физической памяти.
4.3.2.
Еще по теме Замещение страниц:
- Первая страница
- ЗАМЕЩЕНИЕ
- ЗАМЕЩЕНИЕ
- Порядок замещения поста главы государства
- «Суррогатные» («замещающие») иновещательные радиостанции
- СИМВОЛИКА
- ВУАЙЕРИЗМ
- СНОВИДЕНИЕ: ЗАВИСИМОСТЬ ПРИЧИННАЯ
- ЗАБОЛЕВАНИЕ НЕВРОТИЧЕСКОЕ
- СЕКСУАЛЬНОЕ
- Уровень психотехнический (средств деятельности)
- РАБОТА СНОВИДЕНИЯ
- 9.7.5. Шаг пятый: установите фотофокус