При недостачі пам'яті процеси можуть бути вивантажені на диск.

Рис. 13 т.к. процесс С дуже великий, процес А був вивантажений тимчасово на диск,
після завершення процесу С він знову був завантажений до пам’яті
Як ми бачимо процес Адругий раз завантажився в інший адресний простір, повинні створюватися такі умови, які не вплинуть на роботу процесу.
Свопер - планувальник, керуючий переміщенням даних між пам'яттю й диском.
Цей метод був основним для UNIX до версії 3BSD.
Керування пам'яттю за допомогою бітових масивів
Вся пам'ять розбивається на блоки (наприклад, по 32біта), масив містить 1 або 0 (зайнятий або незайнятий).
Щоб процесу в 32Кбіта зайняти пам'ять, потрібно набрати послідовність із 1000 вільних блоків.
Такий алгоритм займе багато часу.

Рис. 14 Бітові масиви й списки
Керування пам'яттю за допомогою зв'язних списків
Цей спосіб відслідковує списки зайнятих (між процесами) і вільних (процеси) фрагментів пам'яті.
Запис у списку вказує на:
· зайнятий (P) або незайнятий (H) фрагмент
· адреса початку фрагмента
· довжину фрагмента

Рис. 14 Чотири комбінації сусідів для завершення процесу X
Алгоритми виділення блоку пам'яті:
· перша підходяща ділянка
· сама підходяща ділянка (повільніше, але краще використовує пам'ять)
Віртуальна пам'ять
Основна ідея полягає в розбивці програми на частині, і на згадку ці частини завантажуються по черзі.
Програма при цьому спілкується з віртуальною пам'яттю, а не з фізичної.

Рис. 15 Диспетчер пам'яті перетворить віртуальні адреси у фізичні.
Команди POSIX для роботи з пам'яттю(повинні бути у всіх операційних системах)
ps - виводить інформацію про процеси й пам'ять