Сегментная организация виртуальной памяти
Автор: dsds • Декабрь 4, 2020 • Реферат • 1,298 Слов (6 Страниц) • 508 Просмотры
СЕГМЕНТНАЯ ОРГАНИЗАЦИЯ ВИРТУАЛЬНОЙ ПАМЯТИ
При страничной организации ВАПП делится на равные части механически, без учета смыслового значения данных. Данный подход не позволяет обеспечить дифференцированный доступ к разным частям программы, а это свойство могло бы быть очень полезным. Например, можно было бы запретить обращаться с операциями записи в сегмент программы, содержащий коды команд, разрешив эту операцию для сегментов данных.
Кроме того, разбиение ВАП на «осмысленные» части делает принципиально возможным совместное использование фрагментов программ разными процессами.
Разбиение ВАПП на сегменты
ВАПП делится на сегменты, размер которых не одинаков; размер сегмента определяется с учетом смыслового значения информации, помещенной в них (подпрограмма занимает отдельный сегмент, массив данных – другой сегмент). Деление на сегменты осуществляется с учетом указаний программиста или если таких указателей нет, то в соответствии с примечаниями в системе соглашениями.
Максимальный размер сегмента зависит от разрядности адреса.
32 – разрядная ОС поддерживает максимальный размер сегмента 4 Гбайта; максимальный размер ВАПП представляет собой набор из N виртуальных сегментов, каждый размером по 4 Гбайта. Сегменты не упорядочены, поэтому общего линейного виртуального адреса не существует.
Разбиение ОП
Изначально ОП не разбивается на сегменты. На сегменты она разбивается в процессе работы, образуя участки занятые и свободные. Все участки имеют различные размеры.
Основной недостаток сегментарного распределения памяти – фрагментация ОП (появление большого количества различных участков свободной ОП, которой не хватает для загрузки необходимого сегмента).
Фрагментация устраняется при помощи процедуры сжатия ОП (перемещение занятых участков ОП в сторону младших или старших адресов).
Таблица сегментов
Таблица сегментов создается на этапе создания процесса, базовый адрес таблицы содержится в специальном регистре процессора.
Регистр – устройство, которое преобразовывает (транслирует) виртуальный адрес в физический.
Для каждого сегмента отводится отдельная запись – дескриптор сегмента, который содержит следующую информацию:
- базовый адрес сегмента в ОП;
- размер сегмента;
- правило доступа к сегменту;
- признаки присутствия, обращения и модификации к данному сегменту, а также некоторая др. информация.
Преобразование адресов
Виртуальный адрес сегмента состоит из пары чисел:
q – номер виртуального сегмента;
S – смещение внутри сегмента.
Физический адрес получается путем сложения базового адреса сегмента, который определяется по номеру сегмента q из таблицы сегментов и смещения S.
[pic 1]
таб. сегментов
Сегмент может располагаться в физической памяти начиная с любого адреса, следовательно для определения местоположения в памяти необходимо задать его полный начальный физический адрес.
Вывод:
«+» - при создании сегмента учитывается смысловое значение данных сегмента;
«+» - возможность организации защиты ОП;
« - » - перемещение сегмента между ОП и жестким диском замедленно.
СЕГМЕНТНО - СТРАНИЧНАЯ ОРГАНИЗАЦИЯ ВИРТУАЛЬНОЙ ПАМЯТИ
Данный метод представляет собой комбинацию страничного и сегментного механизмов управления памятью и направлен на реализацию достоинств обоих подходов.
Так же как и при сегментной организации памяти, ВАП процесса разделено на сегменты. Это позволяет определять разные права доступа к разным частям кодов и данных программы.
Перемещение данных между памятью и диском осуществляется не сегментами, а страницами. Для этого каждый виртуальный сегмент и физическая память делятся на страницы равного размера, что позволяет более эффективно использовать память, сократив до минимума фрагментацию.
В большинстве современных реализаций сегментно-страничной организации памяти в отличие от набора виртуальных диапазонов адресов при сегментной организации памяти все виртуальные сегменты образуют одно непрерывное линейное виртуальное адресное пространство.
...