Как работает управление памятью в 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, чем управления внутренней памятью ОС.

AppNoob
источник
Давайте сосредоточимся на управлении памятью OS X с версий 10.0 до 10.8 Mountain Lion. Выпуск 10.9 «Mavericks» существенно изменил управление памятью, добавив сжатую память и дополнительные классы страниц памяти, и, вероятно, заслуживает отдельного вопроса.
bmike

Ответы:

17

Apple хорошо документирует самые низкие уровни ядра Маха и подсистемы виртуальной памяти в Интернете как часть документации для разработчиков.

Поскольку это ядро ​​было разработано Университетом Карнеги-Меллона , вы можете найти десятки статей, описывающих его довольно легко.

Если это слишком низкий уровень для вашей статьи, у нас легко будет 10 или более хороших вопросов, охватывающих более широкий взгляд не программиста на управление памятью в OS X. Вам, вероятно, придется сделать синтез того, как OS X сравнивается с двумя другими ОС, поскольку я не видел, чтобы здесь отвечали на сегодняшний день.

Сосредоточьтесь на и тегах для достижения наилучших результатов в вашем поиске:

По большому количеству вопросов «неактивной памяти» вы можете сосредоточиться на той части управления памятью OS X, которая наиболее озадачивает людей и, следовательно, собирает большинство вопросов здесь в поисках объяснений.

bmike
источник
3

Mac OS X предоставляет систему виртуальной памяти с постраничной загрузкой, очень похожую на ту, которая предоставляется в BSD Unix.

hotpaw2
источник
1
OSX основан на ядре Mach и его виртуальная машина не является BSD Unix. Программы и вызовы над ядром основаны на BSD, но не на виртуальной
машине