Розподіл памяті змінної величини;
У цьому випадку пам'ять машини не поділяється заздалегідь на розділи. Спочатку вся пам'ять вільна. Кожній знову надійшовшій задачі виділяється необхідна їй пам'ять. Якщо достатній обсяг памяті відсутній, то задача не приймається на виконання і стоїть в черзі. Після завершення задачі пам'ять звільняється, і на це місце може бути завантажена інша задача. Таким чином, у довільний момент часу оперативна пам'ять являє собою випадкову послідовність зайнятих і вільних ділянок (розділів) довільного розміру. На малюнку показаний стан памяті в різні моменти часу при використанні динамічного розподілу. Так у момент t0 у памяті знаходяться тільки ОС, а до моменту t1 пам'ять розділена між 5 задачами, причому задача П4 місце завантажується задача П6 , що надійшла в момент t3 .
Задачами операційної системи при реалізації даного методу керування пам’яттю є:
- Ведення таблиць вільних і зайнятих областей, у яких указуються початкові адреси і розміри ділянок памяті,
- При надходженні нової задачі – аналіз запиту,перегляд таблиці вільних областей і вибір розділу, розмір якого достатній для розміщення задачі, що надійшла,
- Завантаження задачі у виділений їй розділ і коректування таблиць вільних і зайнятих областей,
- Після завершення задачі коректування таблиць вільних і зайнятих областей.
Програмний код не переміщається під час виконання, тобто може бути проведене одноразове настроювання адрес за допомогою використання завантажника, що переміщає. Вибір розділу для знову надійшовшої задачі може здійснюватися за різними правилами, таким, наприклад, як «перший розділ достатнього розміру, що потрапився,», чи «розділ, що має найменший достатній розмір», чи «розділ, що має найбільший достатній розмір». Усі ці правила мають свої переваги і недоліки. У порівнянні з методом розподілу пам’яті фіксованими розділами даний метод має набагато більшу гнучкість, але йому притаманний серйозний недолік – фрагментація пам’яті.
Фрагментація – це наявність великого числа несуміжних ділянок вільної пам’яті дуже маленького розміру (фрагментів). Настільки маленького, що жодна зі знову надійшовши програм не може поміститися в жодну з ділянок, хоча сумарний обсяг фрагментів може скласти значну величину, що набагато перевищує необхідний обсяг пам’яті.