Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шпоры ОС1.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.61 Mб
Скачать

26. Способы управления памятью: простое непрерывное распределение, оверлейное распределение.

Когда мы говорим об оперативной памяти в компе, то подразумеваем 3 уровня представления памяти:

  1. в виде символьных переменных в программе,

  2. в виде адресов виртуальной памяти, которые получаются после компиляции программы,

  3. в виде физических ячеек памяти, которые собственно и содержат данные.

Задача системного программного обеспечения – связать каждое символьное имя с физической ячейкой памяти. Если символьная переменная образует пространство имен, то виртуальная и физическая память адресуются номерами ячеек памяти.

Обозначим Vv – виртуальная память, Vp – физическая память

  1. Vv < Vp - реальный режим работы микропроцессора 8086 и ОС MS-DOS.

  2. Vv = Vp – часто встречается в миниЭВМ.

  3. Vv > Vp – это современная ОС.

Способы распределения памяти:

1. Простое непрерывное распределение

Вся память делится на 3 части:

  • Область ОС

  • Область программы

  • Свободная область памяти

В этом случае ОС не поддерживает мультизадачность => нет проблем с распределением памяти. Область памяти непрерывная, что упрощает работу компилятора. Привязка виртуальных адресов к физическим осуществляется на этапе загрузки программы.

Одна часть ОС всегда находится в памяти и называется резидентным ядром. А вторая часть может загружаться и выгружаться и называется транзитной.

Достоинство:

  • Недорогая и легко программируемая реализация

Недостатки:

  • Однозадачный режим работы.

  • Неэффективное использование памяти.

2. Оверлейное распределение (OverLay)

Если адресное пространство программы больше, чем размер оперативной памяти, то используется распределение с перекрытием. Каждая программа имеет одну главную часть и несколько оверлейв – сегментов, которые могут перекрываться по адресному пространству. В памяти всегда находится главная часть и один или несколько оверлейев, которые не перекрываются между собой. Остальные оверлеи находятся на диске.

Когда необходимо выполнить сегмент, находящийся на диске, он загружается в ОЗУ с возможным перекрытием других сегментов. Такая реализация может быть выполнена либо с помощью компилятора (Borland C++3.1), либо с помощью ОС.

Достоинство:

увеличение полезного размера программы

Недостаток:

н акладные расходы на загрузку и выгрузку оверлеев.

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

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

Возможны 2 варианта:

  1. разделы с фиксированными границами;

  2. разделы с подвижными границами.

Разделы с фиксированными границами

В каждом разделе в 1 момент времени располагается 1 прога, следовательно, для каждого раздела используются те же методы работы с памятью, что и для однопрограммных систем. Причем эта схема допускает возможность мультипрограммного режима работы ОС. Первые мультипрограммные системы строились именно таким образом.

При небольшом объеме памяти увеличить количество одновременно исполняемых программ можно за счет выгрузки на диск разделов целиком и загрузки при необходимости обратно. Этот процесс называется свопингом.

Примеры: с натяжкой поздние версии MS DOS, первые ОС для "наладонников" Palm OS<3.0.

Достоинства:

  • возможность мультипрограммного режима работы.

Недостатки (очень большие):

  • отсутствие защиты одной программы от другой и защиты самой ОС от программы;

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

Возможны 2 способа решения этих недостатков:

  1. выделять раздел ровно такого объема, какой необходим для задачи (разделы с подвижными границами);

  2. размещать задачи не в 1 непрерывной области, а в нескольких областях памяти (сегментная организация).

Разделы с подвижными границами

Память выделяется либо побайтно, либо некоторыми дискретными единицами (напр. по 4 Кб). При выделении ищется такая область свободного адресного пространства, к-рая бы наиболее подходила под запрос к памяти.

Возможны 3 способа поиска:

  1. Первый подходящий участок, самый подходящий участок, самый неподходящий участок. Поиск идет быстро, но фрагментация остается

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

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

Достоинства: меньшая фрагментация по сравнению с разделами с фикс. границами. Недостатки: фрагментация остается.

Пример: ОС MVT для IBM 360.

Несмотря на недостатки метод с подвижными границами используется и по сей день в современных ОС для организации "кучи" процессов.