Сегментная организация памяти. Это второй способ организации виртуальной памяти

Это второй способ организации виртуальной памяти. Память делится на сегменты – участки, необходимые для прогр. длины.

Работа в КС организуется так, чтобы каждой программе доступен каждый сегмент. Выделяется несколько сегментов (минимум 3): сегмент кода, сегмент данных, сегмент стека.

1. Если ОП заполнена, то для новой программы необходимо убрать из памяти участок, равной или большей длины. Если программа разбита на сегменты, то средний размер сегмента меньше. При загрузке программы можно использовать несколько участков в памяти в разных местах и каждому сегменту можно подобрать участок.

2. При программировании естественно разбиение указанные сегменты. Если программа сложная то она разбивается на части, на стадии программирования.

Сегментная адресация реализуется следующим образом:

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

Дескриптор → Признаки База сегментов Лимит

Информация о расположении таблицы хранится в регистре таблицы дескрипторов.

Схема преобразования физического адреса сегмента:

Полные адреса в ОП задаются двумя компонентами: эффективным адресом и индексом сегмента, содержащегося в регистре. Индекс сегмента указывает на положение строки. Эффективный адрес – это смещение относительно начала сегмента. Перед вычислением физического адреса ЦП проверяет не больше ли адрес??? адрес, чем размер сегмента. Если больше, то обращение к ОП не происходит, фиксируется ошибка.

Выводы по использованию виртуальной памяти:

1. Виртуальная память позволяет работать с памятью большего объема, чем ОП, и с быстродействием немного меньшим, чем ОП.

2. Пространство виртуальных адресов программы при смещенной организации и ее частей, ограничена шириной шины адреса.

3. У каждой программы свое адресное пространство, а при смещении??? и у частей программы.

4. Программы, одновременно размещенные в памяти защищены друг от друга. Это обеспечивается формированием таблиц страниц и таблиц дескрипторов. Форм-е физических адресов и доступ к ним контролирует ОС.

Различие между сегментной и страничной организацией: сегменты- логические единицы программы определяются при программировании.

Страницы – формальные единицы и механизм адресации скрыт от программиста.

Сегментная и страничная организация могут применятся вместе. Эффективный адрес преобразуется дважды. По содержимому сегмента регистра и эффективному адресу через таблицу дескрипторов определяется логический адрес, затем, через таблицу страниц – физический адрес.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: