Я дважды проверил свои записи на предмет «Виртуальной памяти», и определение в моем учебнике таково:
Процесс выделения раздела вторичного хранилища для работы как часть основной памяти
Где, как говорит Википедия :
Виртуальная память - это метод компьютерной системы, который создает у прикладной программы впечатление, что она имеет непрерывную рабочую память (адресное пространство).
и (Википедия также говорит)
Обратите внимание, что «виртуальная память» - это больше, чем просто «использование дискового пространства для увеличения объема физической памяти».
Кто-нибудь может предложить какие-либо разъяснения относительно того, что является правильным?
virtual-memory
Yacoby
источник
источник
Ответы:
Виртуальная память - это уровень абстракции, предоставляемый каждому процессу. Компьютер имеет, скажем, 2 ГБ физической памяти, адресованной от 0 до 2 ГБ. Процесс может увидеть адресное пространство 4 ГБ, которое он имеет полностью для себя. Отображение из виртуальных адресов в физические адреса обрабатывается блоком управления памятью, который управляется операционной системой. Обычно это делается в 4КБ «страницах».
Это дает несколько возможностей:
Ваш учебник определяет виртуальную память (неправильно) просто как № 3.
Даже без какой-либо подкачки вам особенно нужно знать о виртуальной памяти, если вы пишете драйвер устройства для устройства, которое выполняет DMA (прямой доступ к памяти). Код вашего драйвера запускается на CPU, что означает, что доступ к памяти осуществляется через MMU (виртуальный). Устройство, вероятно, не проходит через MMU, поэтому оно видит необработанные физические адреса. Поэтому, как писатель, вы должны обеспечить:
источник
Я постараюсь начать медленно, а затем соберу все это для вас. Это вот так:
Виртуальная память, как обычно используется, относится к «пейджингу». Как следует из названия, пейджинг похож на блокнот для человека.
Когда вы работаете с простыми суммами или изучаете простую информацию, вы делаете все это в своей голове: вы просто загружаете всю информацию, обрабатываете ее и получаете ответ. Это как компьютер, загружающий файлы с жесткого диска - он загружает программы или изображения или другую информацию, необходимую ему для работы, в свою «реальную память» (или «физическую память») и работает с ними «мозгом» ( его процессор).
Однако, когда вы изучаете сложную информацию или работаете со сложными суммами, вы, возможно, не сможете вместить все это сразу. Вы запутываетесь, начинаете замедляться, не можете сразу все это держать, и вам нужно что-то забыть, чтобы вспомнить что-то еще.
Человеческое решение состоит в том, чтобы использовать блокнот. Мы записываем на страницах все вещи, которые мы не можем вспомнить сразу, но обращаемся к ним, делая суммы. Возможно, нам не удастся запомнить огромный список данных о продажах за месяц, но мы можем просматривать страницы, получать информацию постепенно и обрабатывать каждый бит. Это похоже на то, как компьютер «пейджирует» свою память - пишет страницы, полные информации, и помещает ее в «виртуальную память» для последующего использования, понимая, что ему нужна страница, и загружая эту страницу обратно из виртуальной памяти в реальную память. В Linux и Unix место, где хранятся эти страницы, буквально называется «файл подкачки», а страницы данных в памяти буквально называются «страницы». Различные системы имеют разные названия для этих вещей, но общая концепция во многом одинакова.
На самом деле, пейджинг очень прост. Все страницы информации не помещаются в памяти, поэтому некоторые страницы помещаются на диск и загружаются позже.
Теперь все усложняется тем, что современные системы поддерживают отображение памяти и защиту памяти, которые обычно обрабатываются одной и той же аппаратной системой компьютера: блоком управления памятью или MMU.
На (современном) многозадачном компьютере, который может запускать много программ одновременно и имеет защиту памяти, каждая программа обычно отделена от других программ, работающих в той же системе. Таким образом, одна программа не может изменить другую программу, просто обращаясь к ее памяти - MMU физически отделяет адресное пространство одной программы от адресного пространства других. Другими словами, программы пользователя не видят программы других пользователей или даже другие программы. Они не видят «реальную память» - они видят свою собственную «виртуальную память».
Теперь эта концепция изоляции памяти и концепция файла подкачки - это две концептуально разные вещи, поэтому, вероятно, вы запутались. Тем не менее, ключ в том, что они оба работают, используя MMU - модуль управления памятью, который разделяет память на страницы и отображает страницы в виртуальное адресное пространство.
Таким образом, когда программа запрашивает память по определенному «адресу памяти», на самом деле происходит то, что страницы памяти для этой программы и их соответствующие адреса («адресное пространство» программы) ищутся, и страница, которая соответствует этот блок памяти найден. Эта страница может быть либо загружена где-то в реальной памяти, в этом случае программе предоставляется доступ, либо она может быть выгружена на диск. Если он выгружен, то он вызывает «сбой страницы» - доступ к диску и страница загружаются в память. Таким образом, программа работает даже тогда, когда не хватает памяти, но работает МЕДЛЕННО, если ей приходится использовать диск для того, что обычно обеспечивает очень быстрый доступ к памяти.
Теперь, если недостаточно места для загрузки этой страницы в память, у вас есть проблема. В этом случае некоторую ДРУГУЮ страницу, которая уже находится в памяти, необходимо «переставить» на диск, чтобы можно было загрузить страницу первой программы. Или это могут быть страницы из одной и той же программы. Это иногда можно увидеть в графических программах, например, в сильно загруженных системах, когда часть изображения загружается медленно и рисуется быстро, затем следующая часть загружается одинаково медленно и рисуется быстро, и когда вы возвращаетесь к работе с первым часть, она медленная СНОВА. Это потому, что они загружаются для дальнейшей работы, а затем снова заменяются, так что можно заняться чем-то другим. Очевидно, это очень медленный способ работы, и вам действительно нужно больше РЕАЛЬНОЙ памяти.
источник
Я знаю, что уже слишком поздно ... но все же подумал, что это полезно.
источник
Хорошо, если мы понимаем слово виртуальное, я думаю, мы можем понять, как оно относится к памяти.
«Виртуальный», как определено на Dictionary.com: «временно смоделирован или расширен компьютерным программным обеспечением: виртуальный диск в ОЗУ; виртуальная память на жестком диске».
В случае виртуальной памяти система имитирует системную память, используя более медленные ресурсы памяти (например, жесткий диск, флэш-накопитель и т. Д.). Когда требуется дополнительная память, система выгрузит данные в системную память, которые не нужны жесткому диску. диск или ресурс у вас есть настройки. Это освобождает системную память, чтобы ваше приложение могло продолжить выполнение задачи, которую оно выполняло.
Подкачка - это непрерывный процесс, и, таким образом, если вы обновите свою память, вы увидите улучшение производительности, поскольку система не должна требовать подкачки, чтобы замедлить работу памяти.
источник
Виртуальная память - это функция операционной системы (ОС), которая позволяет компьютеру компенсировать нехватку физической памяти путем временной передачи страниц данных из оперативной памяти (ОЗУ) в дисковое хранилище.
Это означает, что это похоже на зеркало или образец памяти, которые используются в виртуальной машине или виртуальной коробке, чтобы попробовать операционные системы без форматирования компьютера.
источник
Виртуальная память - это блок вашего жесткого диска, который система использует в качестве файла подкачки в дополнение к физической памяти.
Это сложно, а иногда и медленно, потому что Windows НЕ дефрагментирует эту часть вашего жесткого диска.
Лучшие 2 совета, которые я могу предложить: 1) Виртуальная память должна быть установлена как минимальная, так и максимальная приблизительно в 1,5 раза вашей физической памяти. ех. 2 ГБ ОЗУ = 3070 МБ Вирт. 2) При дефрагментации отключите файл подкачки. Дефрагментируйте 2 раза и вернитесь к исходному номеру. Это дает чистый кусок диска и увеличит скорость файла подкачки.
источник