Распределение статическими и динамическими разделами.

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

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

В каждом разделе в 1 момент времени располагается 1 прога, следовательно,  для каждого раздела используются те же методы работы с памятью, что и для однопрограммных систем. Причем эта схема допускает возможность мультипрограммного режима работы ОС. Первые мультипрограммные системы строились именно таким образом.
При небольшом объеме памяти увеличить количество одновременно исполняемых программ можно за счет выгрузки на диск разделов целиком и загрузки при необходимости обратно. Этот процесс называется свопингом.
Примеры: с натяжкой поздние версии MS DOS, первые ОС для "наладонников" Palm OS<3.0.
Достоинства:
-         возможность мультипрограммного режима работы.
Недостатки (очень большие):
-         отсутствие защиты одной программы от другой и защиты самой ОС от программы;
-         наличие большого объема неиспользуемой памяти, т.к. она есть в каждом разделе. Такие потери памяти называются фрагментацией памяти.
Возможны 2 способа решения этих недостатков:
1.    выделять раздел ровно такого объема, какой необходим для задачи (разделы с подвижными границами);
2.    размещать задачи не в 1 непрерывной области, а в нескольких областях памяти (сегментная организация).
Разделы с подвижными границами
Память выделяется либо побайтно, либо некоторыми дискретными единицами (напр. по 4 Кб). При выделении ищется такая область свободного адресного пространства, к-рая бы наиболее подходила под запрос к памяти.

Возможны 3 способа поиска:
1.    Первый подходящий участок, самый подходящий участок, самый неподходящий участок. Поиск идет быстро, но фрагментация остается
2.    Он дольше, но и при его использовании фрагментация остается, причем размер оставшихся кусочков настолько мал, что туда уже ничего нельзя поместить.
3.    Самый эффективный способ. Если у самого большого участка выделить память, то существует большая вероятность, что из него м.б. выделена память еще раз. Однако фрагментация в любом случае накапливается, и в некоторых ОС используется процесс уплотнения памяти. При этом все проги останавливаются, и ОС начинает сдвигать временные разделы памяти.
Достоинства:
-         меньшая фрагментация по сравнению с разделами с фикс. границами.
Недостатки:
-         фрагментация остается.
Пример: ОС MVT для IBM 360.
Несмотря на недостатки метод с подвижными границами используется и по сей день в современных ОС для организации "кучи" процессов.

Комментариев нет:

Отправить комментарий