![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
· Общая схема
Виртуальное адресное пространство процесса делится на сегменты - логические, осмысленные с точки зрения обработки фрагменты (программный код, данные, стек процесса - с точки зрения ОС, подпрограмма, массив данных - с точки зрения программиста).
Разбиение виртуального адресного пространства на сегменты дает следующие преимущества по сравнению со страничной организацией:
· возможность задания дифференцированных прав доступа процесса к его сегментам (для одних - только чтение, для других - чтение и запись и т.д.);
· возможность организации совместного использования фрагментов программ разными процессами (например, использование одной и той же подпрограммы).
В общем случае деление виртуального адресного пространства на сегменты осуществляется по умолчанию в соответствии с принятыми в системе соглашениями или компилятором на основе указаний программиста. Так, основными типами сегментов на уровне ОС являются сегмент данных, сегмент кода, системные сегменты.
Виртуальное адресное пространство процесса представляет собой набор виртуальных сегментов. Максимальный размер сегмента определяется разрядностью виртуального адреса (4 Гб при 32-разрядной организации). Каждый сегмент располагает своим независимым виртуальным адресным пространством с адресами от нулевого до максимально возможного. Общего для сегментов линейного виртуального адреса не существует. В каждом сегменте виртуальные адреса задаются парой «номер сегмента - смещение внутри сегмента». Схема сегментного распределения памяти приведена на рис. 3.5.
Рисунок 3.5 - Схема сегментного распределения памяти
Сегментное распределение памяти имеет много общего со страничным. На этапе создания процесса во время загрузки его образа в оперативную память система создает таблицу сегментов процесса (аналогичную таблице страниц), в которой для каждого сегмента указывается:
· начальный физический адрес сегмента в оперативной памяти;
· размер сегмента;
· права доступа к сегменту;
· признаки модификации, присутствия и обращения к данному сегменту
· за последний интервал времени, а также некоторая другая информация.
Если виртуальные адресные пространства нескольких процессов включают один и тот же сегмент, то в таблицах сегментов этих процессов делаются ссылки на один и тот же участок оперативной памяти, в который данный сегмент загружается в единственном экземпляре.
Для каждого загружаемого сегмента ОС подыскивает непрерывный участок свободной памяти достаточного размера. В оперативную память помещается только часть сегментов; остальные размещаются на диске.
Действия при обращении к памяти при сегментной организации, аналогичны действиям при страничной организации (при необходимости - прерывание, вытеснение сегмента и т.д.). Используются те же критерии вытеснения. Кроме того, при обращении к памяти проверяется, разрешен ли доступ требуемого типа к данному сегменту.
Преобразование виртуального адреса в физический
Виртуальный адрес при сегментной организации памяти может быть представлен парой (g, s), где
g - номер сегмента, а
s - смещение в сегменте.
В отличие от страницы, сегмент:
· имеет произвольный размер;
· располагается в физической памяти начиная с любого адреса.
Поэтому преобразование виртуального адреса в физический менее эффективно, чем при страничной организации:
· нельзя получить адрес начала сегмента по его номеру, и в таблице сегментов необходимо задавать полный адрес его начала (при страничной организации достаточно номера);
· физический адрес формируется путем сложения (вместо конкатенации) сегмента и смещения.
Схема преобразования виртуального адреса в физический приведена на рис. 3.6.
Рисунок 3.6 - Преобразования виртуального адреса в физический при сегментном распределении
Недостатки метода
Избыточность. Единица перемещения между памятью и диском - сегмент целиком, чего во многих случаях не требуется.
Фрагментация памяти. При многократной загрузке - выгрузке образуются небольшие участки свободной памяти, не вмещающие ни одного сегмента, но в сумме имеющие значительный объем.
Дата публикования: 2015-10-09; Прочитано: 1010 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!