Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
19-27.docx
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
14.71 Mб
Скачать

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

При таком распределении образуется переменное кол-во разделов переменной

длины. Для процесса в памяти выделяется строго необходимое кол-во памяти.

Пример применения динамического распределения

В память загружаются 3 процесса. В конце остается блок, недостаточный для

размещения еще одного процесса. Через некоторое время все процессы становятся

блокированными, и ОС выгружает 2-й процесс. На его место помещается 4 процесс

меньшего размера, поэтому появляется еще один блок неиспользуемой памяти и т.д. Таким

образом, в итоге образуется множество маленьких неиспользуемых областей памяти, что

снижает эффективность использования памяти. Такой процесс называется внешней

фрагментацией (свободные области расположены вне разделов).

При таком распределении ОС периодически перемещается процессы в памяти так,

чтобы свободная память собиралась в один блок (дефрагментация). Но при этом

расходуется дополнительное время.

20. Система двойников.

Память распределяется блоками размером 2K, L <= K <= U, где 2L – минимальный

размер выделяемого блока, 2U –максимально возможный размер.

Вначале все доступное пространство рассматривается как единый блок размера 2U.

Пусть запрошен раздел размера s. Если s > 2U-1, выделяется весь блок. Если же s меньше,

чем половина всего раздела, раздел делится на 2 равные части. Если s оказывается меньше

половины полученных разделов, то один из разделов снова делится уже на разделы

размером 2U-2 и т.д. Хранится список свободных разделов для каждого размера. Если оба

двойника одного размера оказываются свободными, они объединяются в один блок

большего размера.

Пример применения системы двойников

Система двойников лишена некоторых недостатков фиксированного и

динамического распределения.

21. Страничная организация памяти.

Основная память разделяется на одинаковые блоки небольшого фиксированного

размера – кадры (фреймы). Процесс делится на блоки, называемые страницами, такого

же размера, как кадры. Каждый кадр может содержать одну страницу данных.

Распределение страниц

ОС поддерживает список свободных кадров. Пусть в память загружается 3 процесса,

для каждого выделяется необходимое кол-во кадров. Затем 2 процесс выгружается из

памяти, после чего необходимо загрузить 4-й процесс из 5 страниц. Несмотря на то, что

непрерывной области памяти нужного размера нет, процесс загружается в не смежные

кадры.

В этом случае для использования логических адресов одного базового регистра

недостаточно, поэтому применяется таблица страниц. Она указывает расположение

каждой страницы процесса. Логический адрес состоит из номера страницы и смещения

относительно ее начала. Процессор транслирует логический адрес в физический,

определяя адрес нужной страницы и прибавляя к нему смещение (относительный адрес

внутри страницы).

Для каждой страницы процесса хранится адрес соответствующего кадра, если

страница загружена в основную память. Также хранится список доступных кадров.

Данная схема распределения памяти похожа на фиксированное распределение, но

используются небольшие разделы, которые могут быть не смежными. Внутренняя

фрагментация присутствует только в последних кадрах процессов (когда последняя

страница процесса меньше размера кадра, т.е. размер процесса не кратен размеру кадра).