Як працює управління пам'яттю в Mac OS X?


12

Я студент університету, який намагався написати документ порівняння та контрасту між тим, як Windows, Linux та Mac OS X управляють пам'яттю. Наприклад, для Windows це фізична пам'ять (RAM) і віртуальна пам'ять (файл підкачки). Як це робить Mac?

Поки єдиною інформацією, яку я знайшов у цій темі, були люди, які кричали про один із випусків для Mac OS X та про те, як у нього витоку пам'яті. Майте на увазі, що я не користувач Mac, тому я не шукаю вказівок, як перевірити використання пам'яті тощо. Посилання на статтю чи документ, що пояснює, як це працює, було б дуже вдячним.

Я виявив це: http://www.macosxautomation.com/applescript/apps/memory.html , але він стосується більше збору сміття в Objective-C, ніж управління внутрішньою пам'яттю ОС.


Не дозволяйте цій темі бути зосередженою на управлінні пам'яттю OS X від версій 10.0 до 10.8 Mountain Lion. Випуск 10.9 "Mavericks" суттєво змінив управління пам'яттю, додавши стиснуту пам'ять та додаткові класи сторінок пам'яті і, мабуть, заслуговує на це власне питання.
bmike

Відповіді:


17

Apple досить добре документує найнижчі рівні ядра Mach і підсистеми віртуальної пам’яті в Інтернеті, як частину документації для розробників.

Оскільки це ядро ​​було розроблено університетом Карнегі Меллона , ви можете знайти десятки робіт, що описують його досить легко.

Якщо це занадто низький рівень для вашої роботи, у нас легко є 10 і більше хороших питань, які охоплюють більшу частину поглядів непрограміста на управління пам'яттю OS X. Ймовірно, вам доведеться зробити синтез того, як OS X порівнюється з двома іншими ОС, наскільки я до цього часу не бачив відповіді.

Зосередьтеся на тегах та для найкращих результатів пошуку:

За великою кількістю запитань про "неактивну пам'ять" ви можете зосередитись на частині управління пам'яттю OS X, яка є найбільш спантеличною для людей, а тому збирає тут найбільше запитань, шукаючи пояснення.


3

Mac OS X забезпечує систему віртуальної пам’яті, що користується вимогою, дуже подібну до тієї, яку надає BSD Unix.


1
OSX заснований на Mach Kernel, а його VM не є BSD Unix, Програми та виклики над ядром базуються на BSD, але не на VM
користувач151019

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.