![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
Виртуальное адресное пространство процесса разделено на сегменты. Это позволяет определять разные права доступа к разным частям кодов и данных программы.
Перемещение данных между памятью и диском осуществляется страницами, что позволяет минимизировать фрагментацию оперативной памяти. Для этого виртуальное адресное пространство и физическая память делятся на страницы равного размера.
Сегментация. В большинстве современных реализаций сегментно-страничного распределения все виртуальные сегменты образуют одно непрерывное виртуальное адресное пространство (в отличие от описанного в п. 4.3 чисто сегментного распределения).
Адрес в виртуальном адресном пространстве при сегментно-страничном распределении задается парой «номер сегмента - смещение относительно начала сегмента». Это позволяет проверить принадлежность адреса некоторому сегменту и соответствующие права доступа.
Для каждого процесса создается таблица сегментов, содержащая дескрипторы сегментов. В отличие от дескриптора сегмента при сегментном распределении, содержащего физический адрес сегмента, в данном случае в дескриптор заносится начальный (базовый) линейный виртуальный адрес сегмента в пространстве виртуальных адресов.
Соответствующая схема сегментации приведена на рис. 3.7.
Рисунок 3.7- Сегментация с непрерывным виртуальным адресным пространством
Пара «базовый виртуальный адрес сегмента» - «смещение относительно начала сегмента» однозначно преобразуется в линейный виртуальный адрес, который далее преобразуется в физический адрес уже страничным механизмом.
Страничный механизм. Деление общего линейного виртуального адресного пространства процесса и физической памяти и на страницы и действия при обращении к памяти осуществляются так же, как при страничной организации памяти.
Базовые адреса таблицы сегментов и таблицы страниц являются частью контекста процесса; при активизации процесса загружаются в специальные регистры и используются при преобразовании адресов.
Преобразование виртуального адреса в физический осуществляется в два этапа механизмом сегментации и страничным механизмом (рис. 3.8).
Рисунок 3.8 - Схема преобразования виртуального адреса в физический при сегментно-страничной организации
На первом этапе вычисляется адрес поля дескриптора сегмента и анализируются права доступа к сегменту. Если доступ разрешен, то виртуальный адрес в виде пары «сегмент - смещение» преобразуется в линейный виртуальный адрес. Поскольку разбиение на страницы и размер страниц выбираются так же, как при страничном распределении, этот адрес одновременно представлен в виде «номер страницы - смещение внутри страницы».
На втором этапе преобразование адреса происходит так же, как при страничной организации.
Возможен и другой вариант комбинирования сегментного и страничного механизмов, который здесь не рассматривается: виртуальное адресное пространство процесса делится на сегменты, а каждый сегмент - на страницы. Виртуальный адрес в таком случае выражается тройкой «сегмент - страница - смещение в странице».
Дата публикования: 2015-10-09; Прочитано: 558 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!