
- •19. Динамическое распределение памяти.
- •20. Система двойников.
- •21. Страничная организация памяти.
- •22. Сегментирование.
- •23. Виртуальная память. Принцип локализации.
- •24. Страничная организация и виртуальная память. Таблица страниц. Буфер поиска трансляции.
- •26. Выбор размера страниц. Комбинация сегментации и страничной организации.
- •27. Стратегии выборки и размещения страниц.
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 страниц. Несмотря на то, что
непрерывной области памяти нужного размера нет, процесс загружается в не смежные
кадры.
В этом случае для использования логических адресов одного базового регистра
недостаточно, поэтому применяется таблица страниц. Она указывает расположение
каждой страницы процесса. Логический адрес состоит из номера страницы и смещения
относительно ее начала. Процессор транслирует логический адрес в физический,
определяя адрес нужной страницы и прибавляя к нему смещение (относительный адрес
внутри страницы).
Для каждой страницы процесса хранится адрес соответствующего кадра, если
страница загружена в основную память. Также хранится список доступных кадров.
Данная схема распределения памяти похожа на фиксированное распределение, но
используются небольшие разделы, которые могут быть не смежными. Внутренняя
фрагментация присутствует только в последних кадрах процессов (когда последняя
страница процесса меньше размера кадра, т.е. размер процесса не кратен размеру кадра).