Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по ОС / lecture_5.doc
Скачиваний:
130
Добавлен:
01.05.2014
Размер:
154.11 Кб
Скачать

Распределение подвижными разделами

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

kernel

kernel

Kernel

Task1

Task1

Task1

Task5

Task5

Task5

Task4

Task4

Task4

Task6

1 2 3

В момент 1 в памяти имеется две свободные области, но ни одна из них недостаточна по размеру, чтобы загрузить следующую задачу. Планировщик делает смещение кода задачи task4, образуя одну, большую по размеру, непрерывную свободную область памяти (момент 2). Поэтому появляется возможность загрузить следующую задачу task6 (момент3).

Смещение в памяти кода задачи, которое выполняет планировщик , должно быть согласовано по времени с окончанием операции ввода/вывода для этой задачи (в данном случае –task4). Если такое согласование отсутствует, то результаты ввода/вывода могут записаться на“старое” место в памяти, и задача будет разрушена. С другой стороны, такое согласование противоречит принципам мультипрограммирования, в соответствии с которыми внешние устройства должны работать независимо и асинхронно относительно центрального процессора. Поэтому данная дисциплина распределения разделами не нашла практического применения.

Соседние файлы в папке Лекции по ОС