Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

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



· Общая схема

Виртуальное адресное пространство процесса делится на сегменты - логические, ос­мысленные с точки зрения обработки фрагменты (программный код, данные, стек процесса - с точки зрения ОС, подпрограмма, массив данных - с точки зрения программиста).

Разбиение виртуального адресного пространства на сегменты дает следующие пре­имущества по сравнению со страничной организацией:

· возможность задания дифференцированных прав доступа процесса к его сегмен­там (для одних - только чтение, для других - чтение и запись и т.д.);

· возможность организации совместного использования фрагментов программ раз­ными процессами (например, использование одной и той же подпрограммы).

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

Виртуальное адресное пространство процесса представляет собой набор вир­туальных сегментов. Максимальный размер сегмента определяется разрядностью виртуального адреса (4 Гб при 32-разрядной организации). Каждый сегмент распо­лагает своим независимым виртуальным адресным пространством с адресами от нулевого до максимально возможного. Общего для сегментов линейного виртуаль­ного адреса не существует. В каждом сегменте виртуальные адреса задаются па­рой «номер сегмента - смещение внутри сегмента». Схема сегментного распреде­ления памяти приведена на рис. 3.5.

Рисунок 3.5 - Схема сегментного распределения памяти

Сегментное распределение памяти имеет много общего со страничным. На этапе создания процесса во время загрузки его образа в оперативную память система созда­ет таблицу сегментов процесса (аналогичную таблице страниц), в которой для каждого сегмента указывается:

· начальный физический адрес сегмента в оперативной памяти;

· размер сегмента;

· права доступа к сегменту;

· признаки модификации, присутствия и обращения к данному сегменту

· за после­дний интервал времени, а также некоторая другая информация.

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

Для каждого загружаемого сегмента ОС подыскивает непрерывный участок сво­бодной памяти достаточного размера. В оперативную память помещается только часть сегментов; остальные размещаются на диске.

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

Преобразование виртуального адреса в физический

Виртуальный адрес при сегментной организации памяти может быть представлен парой (g, s), где

g - номер сегмента, а

s - смещение в сегменте.

В отличие от страницы, сегмент:

· имеет произвольный размер;

· располагается в физической памяти начиная с любого адреса.

Поэтому преобразование виртуального адреса в физический менее эффективно, чем при страничной организации:

· нельзя получить адрес начала сегмента по его номеру, и в таблице сегментов необхо­димо задавать полный адрес его начала (при страничной организации достаточно номера);

· физический адрес формируется путем сложения (вместо конкатенации) сегмен­та и смещения.

Схема преобразования виртуального адреса в физический приведена на рис. 3.6.

Рисунок 3.6 - Преобразования виртуального адреса в физический при сегментном распределении

Недостатки метода

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

Фрагментация памяти. При многократной загрузке - выгрузке образуются не­большие участки свободной памяти, не вмещающие ни одного сегмента, но в сумме имеющие значительный объем.





Дата публикования: 2015-10-09; Прочитано: 959 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...