Провідна пам'ять проти активної пам'яті в OS X


13

У мене виникають проблеми з розумінням різниці між дротовою пам'яттю та активною пам'яттю в ОС X.

Не говоріть про чотири типи пам'яті (не говоріть про вільну чи неактивну пам'ять, бо я вже знаю, що це таке). Просто порівняйте та порівняйте провідну пам'ять із активною пам'яттю, щоб я міг краще зрозуміти ці два.

Відповіді:


29

Ніжне нагадування: Щоб дати кращу відповідь для решти спільноти, будь ласка, не кажіть чогось типу "Не говори про чотири типи пам'яті". Навіть якщо ви це добре знаєте, може приїхати сюди тисяча і один громадянин Інтернету, сподіваючись на побічну відповідь. :)

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

І тоді треба знати про пейджінг, щоб зрозуміти поняття активної, дротової та неактивної пам’яті. Пейджинг означає, що сторінка пам'яті переміщується з пам'яті з випадковим доступом (тобто оперативної пам'яті) та на жорсткий диск або інший вторинний запам'ятовуючий пристрій. Це дозволяє запущеному додатку вимагати більше пам’яті, ніж загальний об’єм доступної оперативної пам’яті.

Зауважте, що хоч пейджинг - означає величезну штрафну ефективність, щоб отримати доступ до цього певного біту інформації знову, пейджинг може виникати у двох різних випадках: (Цитую себе: Недоліки не мати розділ swap )

  1. Якщо для всіх програм немає ENOUGH пам’яті - у випадку, коли це трапляється в системі без місця обміну, це призведе до неможливості виділення пам’яті для нових програм із запитом нових сторінок пам’яті - а це зазвичай призводить до припинення роботи програми.
  2. Коли деякі сторінки пам'яті (пам'ять поділяється на "сторінки") використовувались деякий час тому, але зараз вона більше не використовується, вона буде перенесена у файл swap, а решта пам'яті може бути використана для того, щоб зробити щось інше, що може бути кориснішим. (наприклад, навіть кешування!) - коли це відбувається в системі без місця обміну, це призведе до того, що сторінки в режимі очікування залишаться в пам'яті. Це нічого надто серйозного, оскільки ми маємо досить великий об'єм пам'яті в наші дні.

Чотири типи пам'яті класифікуються наступним чином:

  • Провідний: Використовується програмою, яка стверджує, що шматок виділеної пам'яті повинен залишатися фізично в оперативній пам'яті і не мінятися на диск, незалежно від того, використовувався він нещодавно чи ні, тобто інша програма НЕ може вимагати конкретного шмату пам'яті. Приклади - це частина пам’яті, що використовується системою, і тієї, яка використовується віртуальними машинами.

  • Активні та неактивні: це пам'ять, яка використовується, як правило, програмами в режимі користувача, в яких вони можуть бути замінені на диски. "Активний" означає, що він був нещодавно використаний, а "Неактивний" означає, що його ще недавно не використовували. Операційна система, таким чином, спочатку замінить неактивні сторінки, а потім активні сторінки пізніше.

  • Вільна пам'ять: пам'ять, яка не використовується. Це використовується для інших цілей, таких як кешування жорсткого диска.

Якщо ваше запитання: "У важкій ситуації, коли пам'ять недостатня, в якому порядку система намагатиметься виділити пам'ять новій програмі?", То послідовність буде виділяти

вільна пам'ять → неактивна пам'ять → активна пам'ять

У певному сенсі навіть нещодавно використана пам'ять може бути підписана на сторінку. «Провідна» частина - це те, що не було б вимкненим за будь-яку ціну.

У сучасних системах, однак, малоймовірно, що активна пам’ять буде закрита, оскільки у нас є багато оперативної пам'яті.


Тепер ви зробили це питання складнішим, ніж це було, розповідаючи про інші типи пам’яті. Тож тепер я повинен запитати про активну та неактивну пам'ять. Я чув, що неактивна пам'ять - це фактично вільна пам'ять. Про що це. Чи активна пам'ять також вільна пам'ять? Порівняйте та порівняйте активну пам'ять з неактивною пам'яттю.
tony_sid

1
Я чув, що неактивна пам'ять - це просто кеш-пам'ять у випадку, якщо програма, яка була закрита, запускається знову. Якщо це правда, то чому її потрібно ставити на диск?
tony_sid

1
Ви почули щось не так. Закрите додаток звільнить пам'ять, якщо щось серйозно не в порядку з архітектурою пам'яті.
bubu

2
фантастична відповідь! +1
posdef

1
@tony_sid стара дискусія, але те, що ви чули, є правильним. Як зазначалося в підтримці Apple, "Однак, якщо ви відкриєте Mail перед тим, як її неактивну пам'ять буде використана іншим додатком, Mail відкриється швидше, оскільки її неактивна пам'ять перетворюється на активну пам'ять, а не завантажуючи її з повільніше диска".
Гаурав
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.