Схемы распределения памяти

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

Известно несколько способов распределения памяти:

1) Фиксированное распределение.

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

Положительная сторона - простота реализации и малые системные затраты. Отрицательная сторона – неэффективное использование памяти из-за внутренней фрагментации и фиксированного максимального количества процессов.

2) Динамическое распределение.

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

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

3) Простая страничная организация.

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

Достоинство - отсутствие внешней фрагментации. Недостаток – небольшая внутренняя фрагментация, усложняют системное управление распределения памяти.

4) Простая сегментация.

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

Достоинство - отсутствие внутренней фрагментации, улучшается использование памяти по сравнению с динамическим распределением. Недостаток – проблемы с внешней фрагментацией (не столько критично).

5) Страничная организация виртуальной памяти.

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

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

6) Сегментация виртуальной памяти.

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

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

7) Система двойников

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

На каждом уровне введен список свободных и занятых областей памяти.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: