Як працює управління пам'яттю в 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.