Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОС шпоры (незаконченые).docx
Скачиваний:
11
Добавлен:
24.09.2019
Размер:
104.5 Кб
Скачать

21.Статическое распределение памяти.

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

Недостаток: невозможна многозадачность.

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

22.Динамическое распределение памяти.

Изначально память не разбивается на разделы. Процессы занимают физическую память вплотную друг к другу. В течение работы процессы выгружаются и образовывают свободные разделы различного размера. Благодаря отсутствию фиксированного разбиения свободного пространства теряется намного меньше., но всё равно фрагментация остаётся, поскольку размеры свободных разделов не равны логическим пространствам процессов, которые будут туда загружены. Если программы написаны в перемещаемом коде, то может быть произведена дефрагментация.

При этом существует 2 подхода к управлению памятью. 1) Подкачка (своппинг) – каждый процесс полностью перемещается в память, работает в ней некоторое время и затем полностью возвращается на диск. 2) Виртуальная память – данный подход позволяет программам работать даже тогда, когда они частично располагаются в оперативной памяти. Разница между фиксированными и изменяющимися разделами в том, что во втором случае кол-во , размер и размещение разделов изменяется динамически по мере поступления процессов.

Уплотнение памяти.

Т.к. задачи появляются в разное время и различны их объемы, возможна сильная фрагментация( объем свободной памяти велик, но нельзя её выделить). Организуется уплотнение памяти – все вычисления приостанавливаются и диспетчер памяти корректирует списки, перемещая все разделы например в начало памяти.

Недостаток: время на уплотнение.

Преимущество: можно выделить необходимый размер.

23.Сегментная организация памяти. Трансляция адресов, основанная на сегментации.

Сегменты- участки адресного пространства процесса на который оно разбивается по смыслу (стек, ….).

В отличие от страничной памяти, сегменты имеют различный размер.

Адресное пространство процесса может быть представлено в виде нескольких логических элементов (сегментов), каждый сегмент размещается в памяти как самостоятельная единица. Логическое обращение к элементам программы будет представляться как указание имени сегмента и смещения относительно его начала. Физическое имя сегмента будет соответствовать некому адресу (базовому адресу) с которого он начинается в памяти. Для данного метода виртуальный адрес будет состоять из двух частей: селектора сегмента и смещение относительно начала сегмента. Селектор сегмента содержит номер сегмента в таблице дескриптора, которую ОС формирует в памяти для каждого процесса.

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

Осмысленное разбиение памяти.

Недостаток:

– длительность доступа к искомой ячейке: сначала нужно найти и прочитать дескриптор сегмента (эти данные используются для нахождения сегмента в физическом адресном пространстве, а затем ячейки в пределах сегмента). Для уменьшения этого времени применяется копирование дескрипторов в сверхоперативной памяти;

– фрагментация оперативной памяти.