Мегаобучалка Главная | О нас | Обратная связь


Страничное распределение памяти



2015-12-07 1423 Обсуждений (0)
Страничное распределение памяти 0.00 из 5.00 0 оценок




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

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

При создании процесса операционная система загружает в оперативную память несколько его виртуальных страниц (начальные страницы кодового сегмента и сегмента данных).

Копия всего виртуального адресного пространства каждого процесса постоянно находится на диске.

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

Рис. 2.3. Пример страничного распределения памяти
для двух процессов

 

Каждая запись страницы (дескриптор страницы) включает следующую информацию о соответствующей виртуальной странице процесса:

· признак присутствия (1/0) виртуальной страницы в оперативной памяти;

· номер физической страницы, в которую загружена данная виртуальная страница;

· признак модификациистраницы (1/0) – изменялась страница, находящаяся в памяти, или нет;

· признак обращенияк странице (1/0) который устанавливается 1 при каждом обращении по адресу, относящемуся к данной странице.

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

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

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

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

По номеру физической страницы выполняется преобразование виртуального адреса в физический – простота такого преобразования определяется размером страниц, кратным степени двойки (в операционных системах для процессоров Pentium компании Intel размер страниц обычно 4096 байт = 4 Кбайт).

Любой виртуальный адрес процесса состоит из двух частей: старшие разряды соответствуют номеру виртуальной страницы, а младшие – номеру ячейки в странице. Замена виртуального адреса на физический состоит в замещении старших разрядов – номер виртуальной страницы меняется на номер соответствующей физической страницы памяти.

Размер страницы влияет на производительность системы и эффективность использования памяти. Чем меньше размер страницы, тем меньше фиктивная ее часть и неиспользуемая часть кода процесса, но учащается процесс смены страниц в оперативной памяти.

Размер страниц влияет и на количество записей в таблице страниц. Учитывая, что в современных процессорах максимальный объем адресного пространства процесса, как правило, не меньше 4 Гбайт, то при размере страницы 4 Кбайт и длине записи 4 байта для хранения таблицы страниц может потребоваться до 4 Мбайт памяти.

Так как у объемных процессов таблица страниц занимает несколько страниц физической памяти, то часть из них (менее интенсивно используемых) может быть вытеснена на диск. Для этого общее виртуальное пространство страниц процесса разбивается на разделы и для каждого раздела создается собственная таблица страниц, которая занимает в памяти одну страницу (для процессоров Pentium – на 1024 записи). Информация о страницах с таблицами находится в таблице разделов, которая постоянно расположена в оперативной памяти.

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



2015-12-07 1423 Обсуждений (0)
Страничное распределение памяти 0.00 из 5.00 0 оценок









Обсуждение в статье: Страничное распределение памяти

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Почему человек чувствует себя несчастным?: Для начала определим, что такое несчастье. Несчастьем мы будем считать психологическое состояние...
Как выбрать специалиста по управлению гостиницей: Понятно, что управление гостиницей невозможно без специальных знаний. Соответственно, важна квалификация...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (1423)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.006 сек.)