Мультипрограмування із змінними розділами

Коли треба дозволити завданням займати стільки місця (в межах фізичної пам’яті) скільки їм необхідно, тоді межі розділів не фіксуються.

Але яка завгодно схема організації пам’яті дає певні втрати. В цій схемі втрати виникають тоді, коли завдання починають закінчуватись, а в основній пам’яті залишаються вільні ділянки, або „дірки”. Ці „дірки” можна використовувати для розміщення інших завдань, але „дірки” все одно будуть, тільки меншого розміру в які вже неможливо завантажити іншу задачу. В таких випадках використовують об’єднання „дірок” в пам’яті.

Часто буває так, що в усій основній пам’яті залишаються розкиданими окремі „дірки”, які складають значний об’єм пам’яті. Проблема вирішується ущільненням пам’яті.

ОС обирає всі блоки в роботі разом, залишаючи вільну пам’ять у вигляді одної великої ділянки.

При реалізації цього методу керування пам’яттю ОС вирішує такі задачі.

1. Підтримка таблиць вільних і зайнятих областей, в яких вказуються початкові адреси і розміри ділянок пам’яті.

2. При надходженні нової задачі — аналіз запиту, перегляд таблиці вільних областей та вибір розділу пам’яті, розмір якого достатній для розміщення задачі, що надійшла.

3. Завантаження задачі в виділений їй розділ та коректування таблиць вільних та зайнятих областей.

4. Після завершення задачі знову коректування таблиць вільних і зайнятих областей.