Билет 41. Сегментное, страничное и сегментно-страничное распределение памяти. Виды фрагментации памяти. Борьба с фрагментацией. Достоинства и недостатки методов распределения памяти.
1. Сегмент кода 11. Св-ва: возможность чтения (R). Запись запрещена всегда. Размер. Привилегии. Базовый адрес.
2. Сегмент данных 10. Св-ва: возможность записи(W). Чтение разрешено всегда. Размер. Привилегии. Базовый адрес.
3. Сегмент LDT 00. Св-ва: чтение и запись НЕВОЗМ. Размер. Привилегии. Базовый адрес.
ВСЕ свойства сегмента хранятся в ДЕСКРИПТОРЕ сегмента. ВСЕ дескрипторы хранятся в GDT или LDT
Страничное распределение
При страничном распределении виртуальная память делится на части одинакового и фиксированного для данной системы размера, называемыми виртуальными страницами. Вся оперативная память также делится на части такого же размера, называемые физическими страницами. Размер страницы выбирается равным степени двойки: 512, 1024, 4096 и т.д.
Рис12. Страничное распределение.
где, таблица страниц – это внутренняя структура ОС. Адрес страницы входит в контекст процесса. Таблица страниц состоит из дескрипторов. Каждый дескриптор включает:
- Номер физической таблицы
- Признак присутствия в ОЗУ (формируется аппаратно)
- Признак модификации (формируется аппаратно)
- Признак обращения (формируется аппаратно)
Виртуальный адрес, который представлен парой (p, sv) преобразуется в (n, sf).Объем страницы равен степени 2k, тогда смещение (s) можно получить отделением к разрядов.Например. Если размер страницы = 1кб (210), то 50718 = 101 000 111 0012, 108=28 – номер страницы.
Достоинства:
§ нет проблемы внешней фрагментации
§ никак не ограничены размерами физической памяти, т.е. мы часть страниц можем всегда держать во вне и через прерывания их закачивать, когда они нам нужны
Недостатки:
§ проблема принятия решений об организации таблицы страниц
§ при страничной организации памяти адресное пространство представляет одну модель от 0 до Ν. Т.е. мы работаем с одним пространством адресации в этом процессе. В некоторых ситуациях это бывает не очень удобно.
Сегментное распределение
При страничном распределении виртуальное адресное пространство делится на равные части механически, без учета смыслового значения данных. В одной странице могут одновременно оказаться код программы и исходные данные. Такой подход не позволяет обеспечить раздельную обработку, например защиту, совместный доступ и т.д.Разбиение адресного пространства на "осмысленные" части устраняет эти недостатки и называется сегментным распределением. Примеры сегментов: код программы, массив исходных данных и пр.На этапе создания процесса, ОС создает таблицу сегментов процесса, аналогичную таблице страниц. (рис.13)
Рис.14 Распределение памяти сегментами
Рис.15. Схема преобразования виртуального адреса в физический при сегментном распределении.
где, физический адрес получается путем сложения по модулю 2. К недостаткам сегментного распределения можно отнести следующие:
- Использование операции сложения при формировании физического адреса приводит к понижению производительности
- Избыточность. Т.к. сегмент в общем случае может быть больше страницы, то следовательно единица обмена между ОЗУ и диском более крупная, что приводит к замедлению работы.
Достоинства:
· простота реализации
· размер таблицы сегментов может быть много меньше размера таблицы страниц
Недостатки:
· наличие внешней фрагментации
· сегмент рассматривается как единое целое