13

У меня проблемы с пониманием разницы между проводной памятью и активной памятью в OS X.

Не говорите о четырех типах памяти (не говорите о свободной или неактивной памяти, потому что я уже знаю, что это такое). Просто сравните и сопоставьте проводную память с активной памятью, чтобы я мог лучше понять эти два.

1 ответ1

26

Нежное напоминание: чтобы дать лучший ответ остальной части сообщества, пожалуйста, не говорите что-то вроде «Не говорите о четырех типах памяти».  Даже если вы хорошо это знаете, может быть, тысяча и один гражданин Интернета прибывает сюда в надежде на побочный ответ. :)

«Пейджинг» - точный термин для следующего действия. «Обмен» используется в разговорной речи для «подкачки», хотя в наши дни вполне взаимозаменяемо. «Подкачка» первоначально означала перемещение пространства памяти программы полностью на «вторичное хранилище» (в отличие от «основного хранилища», которое является архаичным термином для ... RAM, в некотором смысле). Граница между подкачкой и подкачкой значительно размыта в системах Windows и Unix, называющих перестановки пространства подкачки.

И затем, нужно знать о пейджинге, чтобы понять концепцию активной, проводной и неактивной памяти. Пейджинг означает, что страница памяти перемещается из оперативной памяти (т. Е. ОЗУ) на жесткий диск или другое вторичное запоминающее устройство. Это позволяет запущенному приложению запрашивать больше памяти, чем общий объем доступной оперативной памяти системы.

Обратите внимание, что хотя подкачка означает огромное снижение производительности для повторного доступа к этой конкретной информации, подкачка может происходить в двух разных случаях: (Цитируя себя: Недостатки раздела подкачки)

  1. Если не достаточно памяти для всех приложений - в случае, когда это происходит с системой без пространства подкачки, это приведет к ошибке выделения памяти для новых приложений, запрашивающих новые страницы памяти - и это обычно приводит к завершению программы.
  2. Когда некоторые страницы памяти (память делится на «страницы») используются некоторое время назад, но больше не используются, они будут перенесены в файл подкачки, а оставшаяся память может быть использована для чего-то другого, что может быть более полезным. (например, даже кэширование!) - когда это происходит в системе без пространства подкачки, это приводит к тому, что пустые страницы остаются в памяти. Хотя в этом нет ничего серьезного, так как в наши дни у нас довольно много памяти.

Четыре типа памяти классифицируются следующим образом:

  • Проводной: Используется приложением, которое утверждает, что часть выделенной памяти должна физически оставаться в ОЗУ и не должна быть перенесена на диск, независимо от того, используется она недавно или нет, т. Е. Другое приложение НЕ может запрашивать этот конкретный фрагмент памяти. Примеры являются частью памяти, используемой системой, и используемой виртуальными машинами.

  • Активный и неактивный: это память, используемая обычно приложениями пользовательского режима, в которых они могут быть перенесены на диски. «Активный» означает, что он недавно использовался, а «Неактивный» означает, что он не использовался недавно. Таким образом, операционная система будет вначале заменять неактивные страницы, а затем, если необходимо, активные страницы.

  • Свободная память: память, которая не используется. Это используется для других целей, таких как кэширование жесткого диска.

Если ваш вопрос звучит так: «В ужасной ситуации, когда памяти недостаточно, в каком порядке система будет пытаться выделить память для нового приложения?», То последовательность будет распределяться

free memory → inactive memory → active memory

В некотором смысле, даже недавно использованная память может быть выгружена.  «Проводная» часть - это то, что не будет выкладываться любой ценой.

Однако в современных системах маловероятно, что активная память будет выгружена, поскольку у нас достаточно оперативной памяти.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .