Операционные системы. Управление ресурсами


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


Страничную организацию памяти легко представить как многосегментную модель с фиксированным размером сегмента. Такие сегменты называются страницами. Вся доступная реальная память разбивается на страничные кадры (page frame), причем границы кадров в реальной памяти фиксированы. Иными словами, реальная память представляется как массив страничных кадров. Виртуальный адрес состоит из номера страницы и смещения в странице, система поддерживает таблицу дескрипторов страниц для каждого процесса. Дескриптор страницы в основном подобен дескриптору сегмента, но в нем может быть сокращена разрядность поля base, так как в нем хранится не полный реальный адрес, а только номер страничного кадра, а необходимость в поле size вообще отпадает, так как размер страниц фиксирован. Проблема размещения значительно упрощается, так как любой страничный кадр подходит для размещения любой страницы, необходимо только вести учет свободных кадров. За счет этого страничная организация оказывается удобной даже при отсутствии свопинга, так как позволяет разместить непрерывное виртуальное адресное пространство в несмежных страничных кадрах. (Иногда для обозначения свопинга на уровне страниц применяют специальный термин "paging" - страничный обмен.) Внешние дыры в страничной модели отсутствуют, зато появляются внутренние дыры за счет недоиспользованных страниц. При наличии в системе свопинга нулевое значение бита present вызывает прерывание-ловушку "страничный отказ" (page falure) и подкачку страницы в реальную память. Для учета занятых/свободных страниц подходит техника битовой карты, но большинство ОС используют в качестве элементов карты (таблицы страничных кадров) не биты, а куда более сложные структуры, из которых могут составляться и многосвязные списки (в том числе и списки свободных кадров).

Какой размер страницы выгоднее - большой или малый? Соображения, которые могут повлиять на выбор размера следующие:

  • при малых страницах получаются меньшие внутренние дыры;
  • при малых страницах меньше вероятность страничного отказа (так как больше страниц помещаются в памяти);
  • при больших страницах меньшие аппаратные затраты (так как разбиение памяти на большие блоки обойдется дешевле);
  • при больших страницах меньшие заголовочные дыры и затраты на поиск и управление страницами (таблицы имеют меньший размер);
  • при больших страницах выше эффективность обмена с внешней памятью.




Начало  Назад  Вперед



Книжный магазин