- •Раздел 5. Управление памятью в операционных средах
- •5.1. Классификация способов организации памяти
- •5.2. Управление физической памятью
- •5.2.1. Однозадачные системы
- •5.2.1.1. Простые и оверлейные системы
- •5.2.1.2. Сегментация памяти
- •5.2.1.3. Блочная организация памяти
- •5.2.1.4. Стратегии управления памятью (введение)
- •5.2.2. Многозадачные системы
- •5.2.2.1. Фиксированные разделы (неперемещаемые программы)
- •5.2.2.2. Фиксированные разделы (перемещаемые программы)
- •5.2.2.3. Переменные разделы
- •5.2.2.4. Свопинг
- •5.3. Управление виртуальной памятью
- •5.3.1. Общая характеристика виртуальной памяти
- •5.3.1.1. Определения виртуальной памяти и иерархия видов памяти
- •5.3.1.2. Особенности виртуальной памяти
- •5.3.1.3. Механизм отображения виртуальных адресов в физические
- •5.3.2. Страничная организация виртуальной памяти
- •5.3.2.1. Одноуровневая страничная организация
- •5.3.2.2. Двухуровневая страничная организация
- •5.3.2.3. Совместное использование страниц процессами
- •5.3.3. Сегментная организация виртуальной памяти
- •5.3.3.1. Одноуровневая сегментная организация
- •5.3.3.2. Комбинированная сегментно-страничная организация (вместе с таблицей процессов)
- •5.3.4. Стратегии управления виртуальной памятью
- •5.3.4.1. Главные задачи управления виртуальной памятью
- •5.3.4.2. Стратегии решения второй главной задачи
- •5.3.4.3. Стратегии выталкивания с постоянным распределением
- •1. Выталкивание случайной страницы.
- •2. Выталкивание первой пришедшей страницы.
- •3. Выталкивание реже всего используемой страницы.
- •4. Выталкивание дольше всех не использовавшейся страницы.
- •5.3.4.4. Стратегии выталкивания с переменным распределением
- •5.4. Управление памятью в современных ос
- •5.4.1. Архитектура управления памятью
- •5.4.2. Защита памяти
- •5.4.3. Распределение памяти
- •5.4.3.1. Типы программных интерфейсов для распределения памяти
- •5.4.3.2. Переносимые интерфейсы
- •5.4.3.3. Специфические интерфейсы
- •5.4.4. Совместное использование памяти
- •5.4.4.1. Способы совместного использования памяти
- •5.4.4.2. Пример реализации разделяемой памяти в Win32.
Раздел 5. Управление памятью в операционных средах
5.1. Классификация способов организации памяти
В данном разделе будет рассмотрен седьмой уровень иерархической модели ОС - уровень управления виртуальной памятью.
Управление памятью, также как и управление дисковыми устройствами, можно отнести к области специалистов по вычислительной технике, поскольку специалистам по АСОИУ вряд ли придется разрабатывать собственные алгоритмы управления памятью.
Поэтому в данном разделе мы также как и в предыдущем разделе, дадим лишь краткий обзор систем управления памятью, целью которого будет сохранение системности изложения материала.
Чтобы представить себе место виртуальной памяти в общей организации памяти ОС, дадим классификацию способов организации памяти в ОС.
5.2. Управление физической памятью
Все, что связано с управлением физической памятью, относится к историческим аспектам ОС, поскольку современные ОС используют виртуальную память.
Из существующих систем MS DOS попадает в классификации в разряд однозадачных систем управления физической памятью.
5.2.1. Однозадачные системы
5.2.1.1. Простые и оверлейные системы
Общая схема организации физической памяти в однозадачной системе выглядит следующим образом:
-
Операционная система
Программа
Свободная область
Как правило, вся свободная память передается прикладной программе, но может быть и возвращена операционной системе.
Если места в памяти для загрузки программы не хватает, то организуется оверлейная программа.
Оверлеи грузятся поочередно в одно и то же место памяти.
MS DOS - типичный пример такой системы управления памятью.
Недостаток такой системы - нет защиты ОС от пользователя.
Возможные средства защиты:
доступ к ОС должен выполняться только через примитивы ОС;
введение граничного регистра.
------------------- --------------
| ЦП | |Операционная|
|-----------------| | система |
||регистр границы||----> А --------------
|-----------------| | |
------------------- | |
\/\/\/\/\/\/
Доступ к памяти всегда происходит с проверкой на значение А:
IF M <= A THEN
ИСКЛЮЧЕНИЕ_ПО_ОШИБКЕ
ELSE
ДОСТУП К М;
где М - адрес памяти для доступа.
5.2.1.2. Сегментация памяти
Стремление расширить доступное пространство памяти при ограничениях на аппаратуру, а именно, разрядность регистров, привело к понятию сегментации памяти.
Хотя это понятие используется теперь более широко.
Так, для обеспечения размера памяти в 1 МВ требуется 20 разрядов регистра. Как осуществить доступ, если регистры имеют по 16 разрядов?
Введено следующее понятие СЕГМЕНТ:СМЕЩЕНИЕ. Любой адрес представлен таким вектором. Если адрес начала сегмента выровнять на начало параграфа и ограничить сегмент размером 64 К, то для адресации можно использовать два 16-ти разрядных регистра.
Для реализации данного способа адресации используются сегментные регистры CS, DS, SS, ES, а также базовые и индексные регистры BX, BP, SI, DI.