Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
os5.doc
Скачиваний:
0
Добавлен:
20.06.2023
Размер:
186.37 Кб
Скачать

Раздел 5. Управление памятью в операционных системах

5.1. Классификация способов организации памяти

В данном разделе будет рассмотрен седьмой уровень иерархической модели ОС - уровень управления виртуальной памятью.

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

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

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

5.2. Управление физической памятью

Все, что связано с управлением физической памятью, относится к историческим аспектам работы ОС, поскольку современные ОС используют по большей части виртуальную память.

5.2.1. Однозадачные системы

Простые и оверлейные системы

Общая схема организации физической памяти в однозадачной системе выглядит следующим образом:

Операционная система

Программа

Свободная область

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

Если места в памяти для загрузки программы не хватает, то организуется оверлейная программа.

Оверлеи грузятся поочередно в одно и то же место памяти.

Недостаток такой системы - нет защиты ОС от пользователя.

Возможные средства защиты:

  1. Доступ к ОС должен выполняться только через примитивы ОС;

  1. Введение граничного регистра.

------------------- --------------

| ЦП | |Операционная|

|-----------------| | система |

||регистр границы||----> А --------------

|-----------------| | |

------------------- | |

Доступ к памяти всегда происходит с проверкой на значение А:

if (M <= A) {

ИСКЛЮЧЕНИЕ_ПО_ОШИБКЕ

} else {

ДОСТУП К М;

}

где М - адрес памяти для доступа.

Сегментация памяти

Стремление расширить доступное пространство памяти при ограничениях на аппаратуру, а именно, разрядность регистров, привело к понятию сегментации памяти.

Хотя это понятие используется теперь более широко.

Так, например, для обеспечения размера памяти в 1 МВ требуется 20 разрядов регистра. Как осуществить доступ, если регистры имеют по 16 разрядов?

Введено следующее понятие СЕГМЕНТ:СМЕЩЕНИЕ. Любой адрес представлен таким вектором. Если адрес начала сегмента выровнять на начало параграфа и ограничить сегмент размером 64 К, то для адресации можно использовать два 16-ти разрядных регистра.

Для реализации данного способа адресации используются сегментные регистры CS, DS, SS, ES, а также базовые и индексные регистры BX, BP, SI, DI.

Блочная организация памяти

Вся память организована по блочному принципу. Блоки организуются в цепочку и могут находиться в состояние «занят» или «свободен».

В начале каждого блока находится МСВ - Memory Control Block.

------------ -----------

| ОС | | байт | последний/непоследний

------------ ---------------------

|//////////|занят | | | хозяин блока

------------ ---------------------

| |свободен | | | размер блока

| | -------------------------- этот адрес

------------ | резерв 11 байтов | возвращается

|//////////|занят -------------------------- <---- при

------------ | сам блок | выделении па-

| |свободен | | мяти по запросу

------------

Если блок занят, то поле хозяина блока заполнено, если блок свободен, то поле = 0. Размер блока представлен в параграфах - участках по 16 байтов.

Размер MCB - 16 байтов - параграф.

Адрес начала цепочки MCB хранится в специальной переменной и может быть получен с помощью функции OS.

Свободные блоки являются основой динамического управления памятью. В любой ОС имеются примитивы:

ВЫДЕЛИТЬ_БЛОК();

ОСВОБОДИТЬ_БЛОК();

Соседние файлы в предмете Операционные системы