Відкрити головне меню

Існує набір способів управління пам'яттю пам'яттю комп'ютера, що здійснюється менеджером пам'яті. Головною задачею управління пам'яттю є надання можливості для динамічного виділення ділянок пам'яті для програм на їх прохання, та її звільнення для повторного використання, коли вона вже не потрібна. Це є важливим для будь-якої складної комп’ютерної системи, де може бути більше одного активного процесу, працюючих одночасно.[1]

Створено кілька методів, які підвищують ефективність управління пам'яттю комп'ютера. Системи з віртуальною пам'яттю розділяють адреси в пам'яті, що використовуються процесом, від реальних фізичних адрес, що дозволяє відокремлювати процеси і підвищити ефективність доступу до вільної RAM за допомогою сторінкової організації або переносу (свопінгу) даних до вторинних носіїв пам'яті. Ефективність менеджера віртуальної пам'яті може мати значний вплив на загальну продуктивність системи.

Динамічне виділення пам'ятіРедагувати

Задача при виконанні запиту на виділення пам'яті полягає в знаходженні і виділенні блоку вільної пам'яті достатнього розміру. Пам'ять виділяється з частин великого пулу пам'яті, що називається купа. В будь-який момент часу, деяка частина купи знаходиться у використанні, і той час як інші є "вільними" (не використаними) і таким чином доступні для майбутньої аллокації (виділення).

Декілька моментів ускладнюють реалізацію задачі, такі як Зовнішня фрагментація, яка з’являється коли утворюється багато невеликих розривів між аллокованими блоками, що робить неможливим їх використання при запитах аллокації. Метадані аллокатору також може збільшувати розмір (окремо) невеликих аллокованих ділянок. Це часто вирішується за допомогою розбивки (чанкінгу). Система управління пам'яттю повинна відслідковувати спірні моменти при алокації для того, щоб гарантувати, що вони не перекриваються і що ніяка пам'ять не була "втрачена" із-за витоку пам'яті.

ПриміткиРедагувати