Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
spo_samoe.docx
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
1.54 Mб
Скачать
  1. Сегментация, страничная и сегментно-страничная организация памяти. Виды фрагментации памяти. Оценка потерь памяти вследствие фрагментации. Методы борьбы с фрагментацией.

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

Сегментная организация памяти - схема распределения памяти в виде сегментов переменной длины, соответствующая логической структуре программ и данных. Сегмент – логическая единица распределения памяти, предназначенная для размещения в памяти одного модуля программного кода или данных. Сегменты различают по размеру, разным адресам, определяемому типу (байт, сегмент, страница).

В страничном преобразовании базовым объектом памяти является блок фиксированного размера, называемый страницей (page). Размер страницы - 4 Кбайт.

Сегментно-страничная: при сегментно-страничной организации памяти происходит двухуровневая трансляция виртуального адреса в физический; в этом случае логический адрес состоит из 3 полей: номер сегмента, номер страницы внутри сегмента и смещение внутри страницы. Используются 2 таблицы отображения:

1) таблица сегмента, связывающая номер сегмента с таблицей страниц.

2) отдельная таблица страниц для каждого сегмента.

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

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

Есть два типа фрагментаций. Они - Внешняя Фрагментация и Внутренняя Фрагментация.

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

Дефрагментация - процесс устранения фрагментации.

(+ лк. управление памятью. картинки)

  1. Защищенный режим процессора Intel. 4 новых возможности защищенного режима по сравнению с реальным режимом. Дескрипторные таблицы. Формат дескриптора. Схема вычисления физического адреса в режиме 286. Поддержка виртуальной памяти.

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

Более совершенный режим, впервые появившийся в процессоре 80286 и в дальнейшем многократно улучшавшийся. Имеет большое количество подрежимов, по которым можно проследить эволюцию семейства ЦП. В этом режиме поддерживается защита памяти, контексты задач и средства для организации виртуальной памяти. Аналогично реальному режиму, тут также используется сегментированная модель памяти, однако уже организованная по другому принципу: деление на параграфы отсутствует, а расположение сегментов описывается специальными структурами (таблицами дескрипторов), расположенными в оперативной памяти. Помимо базового адреса сегмента дескрипторы содержат размер сегмента (точнее, максимально доступное смещение) и различные атрибуты сегментов, использующиеся для защиты памяти и определения прав доступа к сегменту для различных программных модулей. Существует два типа дескрипторных таблиц: глобальная и локальная. Глобальная таблица описывает сегменты операционной системы и разделяемых структур данных. Локальная таблица может быть определена для каждой конкретной задачи (процесса). Сегменты памяти также выбираются все теми же сегментными регистрами; однако вместо номера параграфа сегментный регистр содержит специальную структуру (селектор), содержащую индекс дескриптора в таблице. Сам же дескриптор загружается из памяти во внутренний программно недоступный регистр (кеш), привязанный к каждому сегментному регистру и автоматически загружаемый в момент его модификации.

Каждый программный модуль, выполняемый в защищённом режиме определяется его сегментом кода, описываемым регистром CS, который и определяет его привилегии по доступу к данным и другим модулям. Существует 4 уровня привилегий (0, 1, 2 и 3), называемых кольцами защиты. Кольцо 0 наиболее привилегированное. Оно предназначено для модулей ядра операционной системы. Кольцо 3 — наименее привилегированное, и предназначено для пользовательских программ. Кольца 1 и 2 используются лишь некоторыми операционными системами. Сегменты данных также имеют атрибуты прав доступа, дающие доступ только коду, имеющему такие же или более высокие привилегии. Система колец позволяет гибко распределять доступ к коду и данным.

Процессор 80386, появившийся в 1985 году, в отличие от своих предшественников стал 32-битным. В нём появилась возможность адресовать до 4 гигабайт памяти, что позволило создавать сегменты памяти размером во все адресное пространство. Поэтому новые операционные системы использовали вырожденную модель организации памяти, когда все сегменты начинаются с нулевого адреса. Такая модель получила название плоской (flat memory model), и адрес задается одним целым 32-разрядным числом (хотя по сути он является смещением внутри вырожденного сегмента), а сами сегменты используются исключительно для организации защиты по кольцам привилегий. (+лк.)

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

Область памяти, предназначенная для хранения 8-байтных дескрипторов, называется дескрипторной таблицей.

Она представляет собой массив 8-байтных элементов - дескрипторов.

64К байт, либо 128 Кбайт.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]