- •Глава 7 Управление памятью
- •7.1. Требования к управлению памятью
- •Перемещение
- •Совместное использование
- •Логическая организация
- •Физическая организация
- •7.2. Распределение памяти
- •Фиксированное распределение
- •7.3. Страничная организация
- •7.4. Сегментация
- •7.5. Резюме, ключевые термины и контрольные вопросы
- •17.6. Рекомендуемая литература
- •7.7. Задачи
- •Приложение. Загрузка и связывание
7.2. Распределение памяти
Главной операцией управления памятью является размещение программы в основной памяти для ее выполнения процессором. Практически во всех современных многозадачных системах эта задача предполагает использование сложной схемы, известной как виртуальная память. Виртуальная память, в свою очередь, основана на использовании одной или обеих базовых технологий — сегментов и страниц. Перед тем как перейти к рассмотрению этих методов организации виртуальной памяти, мы должны сперва познакомиться с более простыми методами (табл. 7.1). Одна из приведенных в таблице технологий — распределение памяти — использовалась в различных вариациях в некоторых уже подзабытых к настоящему времени операционных системах. Две другие технологии — простая страничная организация и сегментация — сами по себе не используются, однако их рассмотрение в отрыве от виртуальной памяти упростит дальнейшее понимание предлагаемого материала.
Таблица 7.1. Технологии управления памятью
Технология |
Описание |
Сильные стороны |
Слабые стороны |
Фиксированное распределение |
Основная память разделяется на ряд статических разделов во время генерации системы. Процесс может быть загружен в раздел равного или большего размера |
Простота реализации, малые системные накладные расходы |
Неэффективное использование памяти из-завнутренней фрагментации, фиксированное максимальное количество активных процессов |
Динамическое распределение |
Разделы создаются динамически; каждыйпроцесс загружается в раздел строго необходимого размера |
Отсутствует внутренняя фрагментация, более эффективное использование основной памяти |
Неэффективное использование процессора из-за необходимости уплотнения для противодействия внешней фрагментации |
Простая страничная организация |
Основная память распределена на ряд кадров равного размера. |
Отсутствует внешняя фрагментация |
Наличие небольшой внутренней фрагментации
|
Простая сегментация |
Каждый процесс распределен на некоторое количество страниц равного размера и той же длины, что и кадры. Процесс загружается путем загрузки всех его страниц в доступные, но не обязательно последовательные, кадры. Каждый процесс распределен на ряд сегментов. Процесс загружается путем загрузки всех своих сегментов в динамические (не обязательно смежные) разделы |
Отсутствует внутренняя фрагментация |
Улучшенное использование памяти и сниженные накладные расходы по сравнению с динамическим распределением |
Страничная организация виртуальной памяти |
Все, как при простой страничной организации, с тем исключением, что не требуется одновременно загружать все страницы процесса. Необходимые нерезидентные страницы автоматически загружаются в память |
Нет внешней фрагментации; более высокая степень многозадачности; большое виртуальное адресное пространство- |
Накладные расходы из-за сложности системы управления памятью |
Сегментация виртуальной памяти |
Все, как при простой сегментации, с тем исключением, что не требуется, одновременно загружать все сегменты процесса. Необходимые нерезидентные сегменты автоматически загружаются в память |
Нет внутренней фрагментации; более высокая степень многозадачности; большое виртуальное адресное пространство; поддержка защиты и совместного использования |
Накладные расходы из-за сложности системы управления памятью |