Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Страничная организация виртуальной памяти



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

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

Размер страницы обычно выбирается равным степени двойки: 512, 1024 и т. д., это позволяет упростить механизм преобразования адресов.

При загрузке процесса часть его виртуальных страниц помеща­ется в оперативную память, а остальные — на диск. Смежные вир­туальные страницы не обязательно располагаются в смежных физи­ческих страницах. При загрузке операционная система создаёт для каждого процесса информационную структуру — таблицу страниц, в которой устанавливается соответствие между номерами виртуаль­ных и физических страниц для страниц, загруженных в оператив­ную память, или делается отметка о том, что виртуальная страни­ца выгружена на диск. Кроме того, в таблице страниц содержится управляющая информация, такая как признак модификации страни­цы, признак невыгружаемости (выгрузка некоторых страниц может быть запрещена), признак обращения к странице (используется для подсчёта числа обращений за определённый период времени) и дру­гие данные, формируемые и используемые механизмом виртуальной памяти.

При активизации очередного процесса в специальный регистр процессора загружается адрес таблицы страниц данного процесса.

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

После загрузки требуемой страницы выполняется преобразова­ние виртуального адреса в физический.

Виртуальный адрес при страничном распределении может быть представлен в виде пары (s,d), где s — номер виртуальной страни­цы процесса (нумерация страниц начинается с 0), ad — смещение в пределах виртуальной страницы. Учитывая, что размер страницы равен 2, смещение d может быть получено простым отделением к младших разрядов в двоичной записи виртуального адреса. Остав­шиеся старшие разряды представляют собой двоичную запись номе­ра страницы s.

При каждом обращении к оперативной памяти аппаратными средствами выполняются следующие действия.

1. На основании начального адреса таблицы страниц (содержи­мое регистра адреса таблицы страниц), номера виртуальной стра­ницы s (старшие разряды виртуального адреса) и длины записи в таблице страниц (системная константа) определяется адрес нужной записи в таблице.

2. Из этой записи извлекается номер физической страницы sf.

3. К номеру физической страницы присоединяется (конкатени­руется) смещение d (младшие разряды виртуального адреса).

Использование в пункте (3) того факта, что размер страницы равен степени 2, позволяет применить операцию конкатенации (при­соединения) вместо более длительной операции сложения, что умень­шает время получения физического адреса, а значит повышает про­изводительность компьютера.

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

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

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





Дата публикования: 2015-02-03; Прочитано: 619 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.005 с)...