logo
Микропроцессорные системы

Размещение памяти с перемещаемыми разделами.

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

Такая процедура называется сжатием и выполняется ОС в дополнение к функциям, которые ОС выполняет при распределении ОП переменными разделами.

Рис. 8.8. Распределение памяти перемещаемыми разделами.

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

Хотя процедура сжатия и приводит к более эффективному использованию памяти, она может потребовать значительного времени, что может свести на нет преимущества данного метода.