Я знаю, что это звучит как простой вопрос, но я искал везде, и они просто говорят «хранить данные, которые будут использоваться быстрее». Я знаю, что ram привыкает загружать программы, но загружена ли в него целая программа или только часть?
3 ответа
ОЗУ используется для хранения всего, что в данный момент используется компьютером. Например, части Windows (или Mac OS, или Linux), которые предоставляют вам рабочий стол, просмотр файлов и так далее. Браузер, который вы используете сейчас, загружен в память. В идеале, когда вы выходите из программы, она полностью удаляется из памяти, но иногда это не происходит и вызывает утечку памяти.
Чтобы ответить на ваш конкретный вопрос, небольшие программы обычно загружаются полностью в память, но в некоторых случаях, особенно с большими программами, всегда загружаются только основные части и некоторые важные части, если вы вызываете малоиспользуемую часть программы, она возможно, придется прочитать это в памяти отдельно.
Кроме того, иногда программы «загружаются» операционной системой (Windows, Mac OS, Linux и т.д.). Это означает, что программа находится в ОЗУ и ждет, поэтому, когда вы ее открываете, она тут же и не должна считываться в память. ОС делает это, если считает, что вы скоро захотите открыть эту программу.
Еще более запутанная ситуация: если вам нужно больше памяти, чем есть на самом деле, операционная система заберет часть вашего жесткого диска и заставит его работать как ОЗУ. Это называется "подкачка" или "подкачка", а часть диска, которая используется для этого, называется "пространство подкачки" или "файл подкачки" или "файл подкачки".
(Благодарность за последние два параграфа дана Дараэлю за предложение)
Кто-то поправит меня, если это не так, и я исправлю этот ответ.
Есть аналогия, которую я использую при описании взаимодействия всей системы ЦП / ОЗУ / Жесткий диск, я проведу всю аналогию, и она охватывает не только оперативную память, но я думаю, что это поможет.
Представьте, что ваш компьютер похож на кухню, а запуск программы - это как приготовление еды.
Если бы у вас было два повара (многоядерный процессор), вы могли бы приготовить несколько блюд быстрее, один человек мог бы порезать морковь, а другой очистил картошку. Однако в некоторых пунктах рецепта есть вещи, которые может сделать только один шеф-повар, например, смешать все в миксере. Не имеет значения, если у вас есть 1 или 4 повара, все равно требуется столько же времени для смешивания ингредиентов. Вот почему вы просто не можете многопоточность, некоторые шаги требуют времени, и его нельзя разделить на процессоры.
Теперь о памяти:
Самый быстрый вид памяти - это регистры процессора, они как ваша разделочная доска. Он очень маленький и может вместить только то, над чем вы сейчас работаете.
Если что-то не так перед вами, куда вы идете? Вы идете в кладовую и получаете его, это кэш процессора. Вы не покинули кухню, но вам пришлось на несколько секунд остановить то, что вы делали, и занять некоторое время, чтобы пройти к кладовой и получить желаемое.
Но что делать, если нужной вещи нет в кладовой? Ну, вы идете в магазин на углу улицы, это ваша оперативная память. Теперь требуется несколько минут, чтобы покинуть кухню (ЦП) и доехать до углового хранилища (ОЗУ) и в 100 раз медленнее, чем ходить в кладовую внутри кухни, но ваша кладовая имеет ограниченный размер, и вы не можете хранить все там. (Двухканальная память похожа на вождение двух автомобилей в магазин, вы можете взять вдвое больше с собой домой, чтобы вам не нужно было совершать так много поездок)
Но угловой магазин - это просто маленький угловой магазин. Что делать, если вам нужно что-то в магазине на углу нет? Ну, ты едешь в город и едешь в большой мегамарт, это твой жесткий диск. Теперь Mega-Mart огромен, вы можете получить почти все, но есть и недостатки. Mega-Mart находится на расстоянии нескольких миль по сравнению с магазином на углу и занимает час, чтобы доехать туда, а сотрудники там не заботятся и очень медленно проверяют вас, это в 100 раз дольше, чем посещение магазина на углу (RAM) и в 100 000 раз дольше, чем просто ходить в кладовую (CPU Cache). И все это время ваш рецепт (программа) сидит там, ожидая, пока вы получите необходимый ингредиент для продолжения.
Но как насчет тех вещей, которые супер особого порядка, что даже у Mega-Mart его нет? Хорошо, вы идете и заказываете почту, и ждете 1-3 дня, пока она не появится, это что-то из интернета. по сравнению с ожиданием нескольких секунд, чтобы пойти в кладовую, это вечность.
Оперативная память вашего компьютера используется для хранения данных, необходимых для работы операционной системы и программ. Процессор напрямую взаимодействует с оперативной памятью, поэтому его можно использовать непосредственно в качестве рабочей памяти или "пустого места" для работающих программ. Память, не выделенная для запущенных программ, обычно используется операционной системой в качестве кэша, хранящего часто используемые или недавно использовавшиеся данные, чтобы обеспечить высокоскоростной доступ к этим данным, поскольку оперативная память намного быстрее, чем даже твердотельные накопители, не говоря уже о жестких дисках. (Обратите внимание, что ваш ЦП имеет собственную внутреннюю кэш-память и регистры, которые чрезвычайно малы, но даже быстрее системной ОЗУ, но это выходит за рамки этого обсуждения.)
Если объем ОЗУ, установленный на вашем компьютере, недостаточен для всего программного обеспечения, работающего в вашей системе, операционная система будет выгружать данные, не используемые в данный момент, из ОЗУ на жесткий диск, сохраняя то, что в данный момент необходимо, в ОЗУ. Когда данные, выгруженные из ОЗУ, необходимы, операционная система перемещает их обратно с жесткого диска в ОЗУ. Этот процесс называется пейджингом и может быть очень медленным, поскольку оперативная память на несколько порядков быстрее при произвольном доступе к данным, чем на жестких дисках, поэтому, если у вас заканчивается физическая память, система будет работать значительно медленнее, чем обычно, с большим количеством дисков деятельность.
Вот почему добавление ОЗУ на ваш компьютер может повысить производительность, особенно если в вашей системе 2 ГБ или меньше памяти. Очень большие объемы ОЗУ (> 8 ГБ), как правило, имеют ограниченное преимущество, если только вы не запускаете одновременно несколько больших программ или виртуальных машин или не загружены диском, где дополнительная память может использоваться для ускорения доступа к большим объемам данных. вовремя.
Чтобы узнать больше, см. Статью в Википедии "Иерархия памяти".