Ніжне нагадування: Щоб дати кращу відповідь для решти спільноти, будь ласка, не кажіть чогось типу "Не говори про чотири типи пам'яті". Навіть якщо ви це добре знаєте, може приїхати сюди тисяча і один громадянин Інтернету, сподіваючись на побічну відповідь. :)
"Пейджинг" - точний термін для наступних дій. "Обмін" вживається розмовно для "пейджінгу", хоча ці дні є взаємозамінними. "Поміщення" спочатку називалося переміщенням простору пам'яті програми на "вторинне сховище" (на відміну від "основного сховища", який є архаїчним терміном для ... ОЗУ, певним чином). Межа між підказками та підмінами значно розмита системами Windows та Unix, що викликають місцями пробігу підкачки.
І тоді треба знати про пейджінг, щоб зрозуміти поняття активної, дротової та неактивної пам’яті. Пейджинг означає, що сторінка пам'яті переміщується з пам'яті з випадковим доступом (тобто оперативної пам'яті) та на жорсткий диск або інший вторинний запам'ятовуючий пристрій. Це дозволяє запущеному додатку вимагати більше пам’яті, ніж загальний об’єм доступної оперативної пам’яті.
Зауважте, що хоч пейджинг - означає величезну штрафну ефективність, щоб отримати доступ до цього певного біту інформації знову, пейджинг може виникати у двох різних випадках: (Цитую себе: Недоліки не мати розділ swap )
- Якщо для всіх програм немає ENOUGH пам’яті - у випадку, коли це трапляється в системі без місця обміну, це призведе до неможливості виділення пам’яті для нових програм із запитом нових сторінок пам’яті - а це зазвичай призводить до припинення роботи програми.
- Коли деякі сторінки пам'яті (пам'ять поділяється на "сторінки") використовувались деякий час тому, але зараз вона більше не використовується, вона буде перенесена у файл swap, а решта пам'яті може бути використана для того, щоб зробити щось інше, що може бути кориснішим. (наприклад, навіть кешування!) - коли це відбувається в системі без місця обміну, це призведе до того, що сторінки в режимі очікування залишаться в пам'яті. Це нічого надто серйозного, оскільки ми маємо досить великий об'єм пам'яті в наші дні.
Чотири типи пам'яті класифікуються наступним чином:
Провідний: Використовується програмою, яка стверджує, що шматок виділеної пам'яті повинен залишатися фізично в оперативній пам'яті і не мінятися на диск, незалежно від того, використовувався він нещодавно чи ні, тобто інша програма НЕ може вимагати конкретного шмату пам'яті. Приклади - це частина пам’яті, що використовується системою, і тієї, яка використовується віртуальними машинами.
Активні та неактивні: це пам'ять, яка використовується, як правило, програмами в режимі користувача, в яких вони можуть бути замінені на диски. "Активний" означає, що він був нещодавно використаний, а "Неактивний" означає, що його ще недавно не використовували. Операційна система, таким чином, спочатку замінить неактивні сторінки, а потім активні сторінки пізніше.
Вільна пам'ять: пам'ять, яка не використовується. Це використовується для інших цілей, таких як кешування жорсткого диска.
Якщо ваше запитання: "У важкій ситуації, коли пам'ять недостатня, в якому порядку система намагатиметься виділити пам'ять новій програмі?", То послідовність буде виділяти
вільна пам'ять → неактивна пам'ять → активна пам'ять
У певному сенсі навіть нещодавно використана пам'ять може бути підписана на сторінку. «Провідна» частина - це те, що не було б вимкненим за будь-яку ціну.
У сучасних системах, однак, малоймовірно, що активна пам’ять буде закрита, оскільки у нас є багато оперативної пам'яті.