Схема с переменными разделами
В принципе, система свопинга может базироваться на фиксированных разделах. На практике, однако, использование фиксированных разделов приводит к большим потерям используемой памяти, когда задача существенно меньше раздела.
Более эффективной представляется схема с переменными (динамическими) разделами. В этом случае вначале вся память свободна и не разделена заранее на разделы. Вновь поступающей задаче выделяется необходимая память. После выгрузки процесса память временно освобождается. По истечении некоторого времени память представляет собой набор занятых и свободных участков (рис.9.4). Смежные свободные участки могут быть объединены в один.
Рисунок 9.4 — Динамика распределения памяти между процессами. Серым цветом показана неиспользуемая память.
Типовой цикл работы менеджера памяти состоит в анализе запроса на выделение свободного участка (раздела), выборке его среди имеющихся в соответствие с одной из стратегий (first fit, best fit, worst fit), загрузке процесса в выбранный раздел и последующем внесении изменений в таблицы свободных и занятых областей. Аналогичная корректировка необходима и после завершения процесса. Связывание адресов может быть осуществлено на этапах загрузки и выполнения.
Этот метод более гибок по сравнению с методом фиксированных разделов
Этому методу также присуща внешняя фрагментация вследствие наличия большого числа участков свободной памяти. Проблемы фрагментации могут быть различными. В худшем случае можно иметь участок свободной (потерянной) памяти между двумя процессами. Если все эти куски объединить в один блок, можно разместить больше процессов. Выбор между first-fit и best-fit слабо влияет на величину фрагментации.
В зависимости от суммарного размера памяти и среднего размера процесса эта проблема может быть большей или меньшей. Статистический анализ показывает, что при наличии n блоков пропадает n/2 блоков, то есть 1/3 памяти! Это известное 50% правило (два соседних свободных участка в отличие от двух соседних процессов могут быть объединены в один).
Одно из решений проблемы внешней фрагментации — разрешить адресному пространству процесса не быть непрерывным, что разрешает выделять процессу память в любых доступных местах. Один из способов реализации такого решения — это paging , используемый во многих современных ОС.
Другим способом борьбы с внешней фрагментацией является сжатие, то есть перемещение всех занятых (свободных) участков в сторону возрастания (убывания) адресов, так, чтобы вся свободная память образовала непрерывную область. Этот метод иногда называют схемой с перемещаемыми разделами. В идеале фрагментация после сжатия должна отсутствовать.
Сжатие, однако, является дорогостоящей процедурой, алгоритм выбора оптимальной стратегии сжатия очень труден, и, как правило, сжатие осуществляется в комбинации с выгрузкой и загрузкой по другим адресам.
Контрольные вопросы:
1) Назовите и охарактеризуйте виды адресов памяти.
2) Назовите шаги, которые проходит программа при компиляции.
3) Приведите схему этапов связывания адресов.
4) Приведите шаги привязки инструкций и данных к памяти.
5) Опишите схему управления памятью с фиксированными разделами.
6) Опишите общую схему управления памятью с фиксированными разделами.
7) Опишите частные случаи схем управления памятью с фиксированными разделами (один процесс в памяти и оверлейная структура).
8) Опишите схему управления памятью со свопинга.
Статьи к прочтению:
- Схематичное изображение цикла обработки событий. показан жизненный путь программы, пользовательские события и вызов обработчиков.
- Шестнадцатеричное представление целых чисел и перевод из одной системы счисления в другую
competitively matellothionen carboxy peptidase carbonic anhydrase Alkanine retinol stabilizes
Похожие статьи:
-
Схема с фиксированными разделами
Самым простым способом управления оперативной памятью является ее предварительное (обычно на этапе генерации или в момент загрузки системы) разбиение на…
-
Распределение памяти подвижными разделами
Одним из методов борьбы с фрагментацией является перемещение всех занятых участков в сторону старших или младших адресов, так, чтобы вся свободная память…