Файл: Сегментная и страничная организация памяти таблица.docx

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 12.01.2024

Просмотров: 38

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Сегментная и страничная организация памяти таблица



Страничный способ организации памяти
Сегментная, страничная и сегментно-страничная организация памяти

Сегментный способ организации памяти

Первым среди разрывных методов распределения памяти был сегментный. Естественным способом разбиения программы на части является разбиение её на логические элементы – т.н. сегменты. Каждый программный модуль может быть воспринят как отдельный сегмент.

Логически обращение к элементам программы в этом случае будет выглядеть как указание имени сегмента и смещения относительно начала этого сегмента. Физически имя (или порядковый номер) сегмента будет соответствовать некоторому адресу, с которого этот сегмент начинается при его размещении в памяти, и смещение должно прибавляться к этому базовому адресу.

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

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

Достоинства сегментного метода:

· программу можно загружать не целиком, а по мере необходимости;

· некоторые программные модули могут быть разделяемыми – они являются сегментами, и к ним достаточно легко можно организовать доступ посредством помещения в дескрипторы сегментов указателей на такие разделяемые сегменты.

Недостатки сегментного метода:

· замедление доступа к требуемой ячейке памяти;

· потери памяти и процессорного времени на размещение и обработку дескрипторных таблиц;

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

В качестве примера операционной системы, применяющей сегментное преобразование памяти, можно назвать OS/2.

В основу страничного преобразования положено разбиение всей памяти на страницы. Страницы, в отличие от сегментов, имеют фиксированную длину, обычно являющуюся степенью числа 2, и не могут перекрываться. Страницы в физической памяти называются физическими страницами, а страницы в виртуальной памяти – виртуальными страницами. Адрес при страничной организации представляет собой упорядоченную пару, состоящую из номера страницы и смещения.

Страничное преобразование заключается в замене номера виртуальной страницы на номер физической. Каждой виртуальной странице ставится в соответствие физическая, т.е. страничное преобразование – это отображение физических страниц в виртуальные. Для этого отображения существует таблица дескрипторов страниц. Отличие от таблицы дескрипторов сегментов состоит в том, что здесь не требуется поле длины.

Поскольку размер страницы – величина фиксированная, то существует проблема его правильного выбора. Чем больше размер страницы, тем меньше будет размер структуры данных, обслуживающих преобразование адресов, но и тем больше будут потери, связанные с тем, что память можно выделять только постранично (возникает фрагментация). На некоторых архитектурах размер страниц задан аппаратно, например, на Intel – это 4 Кбайт, на DEC PDP-11 – 8 Кбайт, а на других архитектурах, таких, как Motorola 68030, размер страниц задается программно.

Важными характеристиками архитектуры процессора являются размеры физического и виртуального адресных пространств, определяющих соответственно ограничение на размер физической памяти и пределы, в которых может меняться виртуальный адрес. Размеры адресных пространств обычно определяются разрядностью архитектуры процессора. Самыми распространёнными сейчас являются 32-разрядные процессоры, позволяющие создавать виртуальные адресные пространства размером 2 32 байт (4 Гбайта).

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

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

Основным достоинством страничного способа распределения памяти является минимально возможная фрагментация.

Недостатки страничного преобразования:

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

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