Что такое виртуальная память

Обновлено: 30.06.2024

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

Большинство современных компьютеров имеют от 64 до 128 мегабайт ОЗУ (оперативной памяти), доступной для использования ЦП (центральным процессором). Часто этого объема оперативной памяти недостаточно для одновременного запуска всех программ, которые большинство пользователей ожидают запустить. Например, если вы одновременно загружаете в оперативную память операционную систему Windows, программу электронной почты, веб-браузер и текстовый процессор, 64 мегабайта недостаточно, чтобы вместить все это. Если бы не было такой вещи, как виртуальная память, ваш компьютер должен был бы сказать: «Извините, вы не можете больше загружать приложения. Пожалуйста, закройте приложение, чтобы загрузить новое». С помощью виртуальной памяти компьютер может искать области оперативной памяти, которые в последнее время не использовались, и копировать их на жесткий диск. Это освобождает место в оперативной памяти для загрузки нового приложения. Поскольку он делает это автоматически, вы даже не знаете, что это происходит, и это заставляет ваш компьютер чувствовать, что у него неограниченное пространство ОЗУ, даже если на нем установлено всего 32 мегабайта. Поскольку место на жестком диске намного дешевле, чем микросхемы ОЗУ, виртуальная память также обеспечивает хорошую экономическую выгоду.

Область жесткого диска, в которой хранится образ ОЗУ, называется файлом подкачки. Он хранит страницы оперативной памяти на жестком диске, а операционная система перемещает данные туда и обратно между файлом подкачки и оперативной памятью. (На компьютере с Windows файлы подкачки имеют расширение .SWP.)

Конечно, скорость чтения/записи на жестком диске намного ниже, чем на оперативной памяти, а технология жесткого диска не предназначена для одновременного доступа к небольшим фрагментам данных. Если вашей системе приходится слишком сильно полагаться на виртуальную память, вы заметите значительное падение производительности. Ключ в том, чтобы иметь достаточно оперативной памяти, чтобы обрабатывать все, над чем вы обычно работаете одновременно. Тогда единственный раз, когда вы «чувствуете» медлительность виртуальной памяти, — это небольшая пауза, возникающая при смене задач. Когда у вас достаточно оперативной памяти для ваших нужд, виртуальная память прекрасно работает. Если вы этого не сделаете, операционной системе придется постоянно обмениваться информацией между оперативной памятью и жестким диском. Это называется пробуксовкой, и из-за этого ваш компьютер может работать невероятно медленно.

Виртуальная память — это схема распределения памяти, в которой вторичная память может быть адресована так, как если бы она была частью основной памяти. Адреса, которые программа может использовать для ссылки на память, отличаются от адресов, которые система памяти использует для идентификации физических мест хранения, а сгенерированные программой адреса автоматически преобразуются в соответствующие машинные адреса.

Размер виртуального хранилища ограничен схемой адресации компьютерной системы, а объем доступной вторичной памяти не зависит от фактического количества мест основного хранилища.

  1. Все ссылки на память внутри процесса представляют собой логические адреса, которые динамически преобразуются в физические адреса во время выполнения. Это означает, что процесс может перемещаться в основную память и из нее таким образом, что он занимает разные места в основной памяти в разное время в ходе выполнения.
  2. Процесс может быть разбит на несколько частей, и эти части не должны постоянно находиться в основной памяти во время выполнения. Это позволяет сочетание динамического преобразования адресов во время выполнения и использования таблицы страниц или сегментов.

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

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

  1. Если ЦП пытается обратиться к странице, которая в данный момент недоступна в основной памяти, он генерирует прерывание, указывающее на ошибку доступа к памяти.
  2. ОС переводит прерванный процесс в состояние блокировки. Чтобы выполнение продолжилось, ОС должна загрузить требуемую страницу в память.
  3. ОС будет искать нужную страницу в логическом адресном пространстве.
  4. Требуемая страница будет перенесена из логического адресного пространства в физическое адресное пространство. Алгоритмы замены страницы используются для принятия решения о замене страницы в физическом адресном пространстве.
  5. Таблица страниц будет соответствующим образом обновлена.
  6. ЦП будет отправлен сигнал для продолжения выполнения программы, и он вернет процесс в состояние готовности.

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

  • В основной памяти может храниться больше процессов: поскольку мы собираемся загружать только некоторые страницы любого конкретного процесса, остается место для большего количества процессов. Это приводит к более эффективному использованию процессора, поскольку более вероятно, что по крайней мере один из более многочисленных процессов будет находиться в состоянии готовности в любой конкретный момент времени.
  • Процесс может быть больше, чем вся основная память: снимается одно из самых фундаментальных ограничений в программировании. Процесс, объем которого превышает основную память, может быть выполнен из-за подкачки по запросу. ОС сама загружает страницы процесса в основную память по мере необходимости.
  • Это обеспечивает более высокий уровень многозадачности за счет использования меньшего объема доступной (основной) памяти для каждого процесса.

Время обслуживания ошибки страницы:
Время, необходимое для обслуживания ошибки страницы, называется временем обслуживания ошибки страницы. Время обслуживания ошибки страницы включает время, затраченное на выполнение всех шести вышеуказанных шагов.

Обмен:

Выключение процесса означает удаление всех его страниц из памяти или их пометку, чтобы они были удалены в ходе обычного процесса замены страниц. Приостановка процесса гарантирует, что он не сможет работать, пока он выгружен. Через некоторое время система переключает процесс обратно из вторичного хранилища в основную память. Когда процесс занят обменом страницами, такая ситуация называется перегрузкой.


Пробивка:


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

На приведенной диаграмме начальная степень мультипрограммирования до некоторой степени (лямбда), загрузка ЦП очень высока, а системные ресурсы используются на 100%. Но если мы еще больше увеличим степень мультипрограммирования, загрузка процессора резко упадет, и система будет тратить больше времени только на замену страниц, а время, затрачиваемое на выполнение процесса, увеличится. Такая ситуация в системе называется пробуксовкой.

    Высокая степень мультипрограммирования: если количество процессов в памяти продолжает увеличиваться, количество кадров, выделенных каждому процессу, будет уменьшаться. Таким образом, для каждого процесса будет доступно меньше кадров. Из-за этого сбой страницы будет происходить чаще, и больше процессорного времени будет потрачено впустую только на загрузку и удаление страниц, а загрузка будет продолжать снижаться.

Например:
Пусть свободных кадров = 400
Случай 1: количество процессов = 100
Тогда каждый процесс получит 4 кадра.

Компьютер может адресовать больше памяти, чем физически установлено в системе. Эта дополнительная память на самом деле называется виртуальной памятью и представляет собой раздел жесткого диска, настроенный для эмуляции оперативной памяти компьютера.

Основное видимое преимущество этой схемы заключается в том, что программы могут занимать больше места, чем физическая память. Виртуальная память служит двум целям. Во-первых, это позволяет нам расширить использование физической памяти за счет использования диска. Во-вторых, это позволяет нам защитить память, поскольку каждый виртуальный адрес транслируется в физический адрес.

Ниже приведены ситуации, когда всю программу не требуется полностью загружать в оперативную память.

Процедуры обработки ошибок, написанные пользователем, используются только в случае возникновения ошибки в данных или вычислениях.

Некоторые параметры и функции программы могут использоваться редко.

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

Возможность выполнения программы, которая лишь частично находится в памяти, может свести на нет многие преимущества.

Меньше операций ввода-вывода потребуется для загрузки или выгрузки каждой пользовательской программы в память.

Программа больше не будет ограничиваться объемом доступной физической памяти.

Каждая пользовательская программа может занимать меньше физической памяти, больше программ может выполняться одновременно с соответствующим увеличением загрузки ЦП и пропускной способности.

В современные микропроцессоры, предназначенные для универсального использования, блок управления памятью или MMU встроен в аппаратное обеспечение. Работа MMU заключается в преобразовании виртуальных адресов в физические адреса. Базовый пример приведен ниже —

Виртуальная память

Виртуальная память обычно реализуется путем подкачки по требованию. Он также может быть реализован в системе сегментации. Сегментация спроса также может использоваться для предоставления виртуальной памяти.

Пейджинг по требованию

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

Пейджинг по требованию

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

Преимущества

Ниже приведены преимущества пейджинга по запросу.

  • Большая виртуальная память.
  • Более эффективное использование памяти.
  • Степень мультипрограммирования не ограничена.

Недостатки

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

Алгоритм замены страницы

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

При повторном обращении к странице, которая была выбрана для замены и была выгружена, она должна быть считана с диска, а это требует завершения ввода-вывода. Этот процесс определяет качество алгоритма замены страниц: чем меньше время ожидания загрузки страниц, тем лучше алгоритм.

Алгоритм замены страниц анализирует ограниченную информацию о доступе к страницам, предоставленную аппаратным обеспечением, и пытается выбрать, какие страницы следует заменить, чтобы свести к минимуму общее количество пропущенных страниц, при этом уравновешивая затраты на основное хранилище и процессорное время. самого алгоритма. Существует множество различных алгоритмов замены страниц. Мы оцениваем алгоритм, запуская его на определенной строке ссылки на память и вычисляя количество ошибок страниц,

Ссылочная строка

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

Для заданного размера страницы нам нужно учитывать только номер страницы, а не весь адрес.

Если у нас есть ссылка на страницу p, то любые последующие ссылки на страницу p никогда не вызовут ошибку страницы. Страница p будет находиться в памяти после первого обращения; следующие ссылки не будут ошибкой.

Например, рассмотрим следующую последовательность адресов — 123 215 600 1234, 76, 96

Если размер страницы равен 100, то ссылочная строка будет 1,2,6,12,0,0

Алгоритм «первым пришел – первым обслужен» (FIFO)

Самая старая страница в оперативной памяти будет выбрана для замены.

Простота реализации, ведение списка, замена страниц в конце и добавление новых страниц в начале.

Оптимальный алгоритм страницы

Оптимальный алгоритм замены страниц имеет самый низкий уровень отказов страниц среди всех алгоритмов. Существует оптимальный алгоритм замены страниц, который называется OPT или MIN.

Замените страницу, которая не будет использоваться в течение длительного периода времени. Используйте время, когда страница будет использоваться.

Алгоритм наименее использовавшегося (LRU)

Страница, которая дольше всего не использовалась в оперативной памяти, будет выбрана для замены.

Простота реализации, ведите список, заменяйте страницы, оглядываясь назад во времени.

Алгоритм буферизации страницы

  • Чтобы ускорить процесс, создайте пул свободных кадров.
  • При ошибке страницы выберите страницу для замены.
  • Запишите новую страницу в рамках свободного пула, отметьте таблицу страниц и перезапустите процесс.
  • Теперь запишите грязную страницу с диска и поместите фрейм, содержащий замененную страницу, в свободный пул.

Наименее часто используемый (LFU) алгоритм

Страница с наименьшим количеством будет выбрана для замены.

Этот алгоритм страдает от ситуации, когда страница интенсивно используется на начальном этапе процесса, но затем больше никогда не используется.

Наиболее часто используемый (MFU) алгоритм

Этот алгоритм основан на том аргументе, что страница с наименьшим количеством, вероятно, была только что добавлена ​​и еще не использовалась.

Эта статья содержит основную информацию о реализации виртуальной памяти в 32-разрядных версиях Windows.

В современных операционных системах, таких как Windows, приложения и многие системные процессы всегда ссылаются на память, используя адреса виртуальной памяти. Адреса виртуальной памяти автоматически преобразуются в реальные (ОЗУ) адреса аппаратным обеспечением. Только основные части ядра операционной системы обходят эту трансляцию адресов и напрямую используют реальные адреса памяти.

Виртуальная память используется всегда, даже если объем памяти, необходимой для всех запущенных процессов, не превышает объема оперативной памяти, установленной в системе.

Процессы и адресные пространства

Всем процессам (например, исполняемым файлам приложений), работающим в 32-разрядных версиях Windows, назначаются адреса виртуальной памяти (виртуальное адресное пространство) в диапазоне от 0 до 4 294 967 295 (2*32). -1 = 4 ГБ), независимо от того, сколько оперативной памяти установлено на компьютере.

В конфигурации Windows по умолчанию 2 гигабайта (ГБ) этого виртуального адресного пространства предназначены для частного использования каждым процессом, а остальные 2 ГБ совместно используются всеми процессами и операционной системой. Как правило, приложения (например, Блокнот, Word, Excel и Acrobat Reader) используют лишь часть из 2 ГБ частного адресного пространства. Операционная система назначает кадры страниц ОЗУ только тем страницам виртуальной памяти, которые используются.

Расширение физических адресов (PAE) — это функция 32-разрядной архитектуры Intel, которая расширяет адрес физической памяти (ОЗУ) до 36 бит. PAE не изменяет размер виртуального адресного пространства (которое остается равным 4 ГБ), а только объем фактической оперативной памяти, к которой может обращаться процессор.

Преобразование между 32-битным адресом виртуальной памяти, используемым кодом, работающим в процессе, и 36-битным адресом ОЗУ выполняется аппаратным обеспечением компьютера автоматически и прозрачно в соответствии с таблицами преобразования, которые поддерживаются операционной системой. Любая страница виртуальной памяти (32-битный адрес) может быть связана с любой физической страницей ОЗУ (36-битный адрес).

В следующем списке указано, какой объем оперативной памяти поддерживают различные версии и выпуски Windows (по состоянию на май 2010 г.):

< td>Windows Server 2003 Web Edition

Файл подкачки

ОЗУ — это ограниченный ресурс, в то время как для большинства практических целей виртуальная память не ограничена. Процессов может быть много, и у каждого процесса есть свои 2 ГБ частного виртуального адресного пространства. Когда память, используемая всеми существующими процессами, превышает доступную оперативную память, операционная система перемещает страницы (части по 4 КБ) одного или нескольких виртуальных адресных пространств на жесткий диск компьютера. Это освобождает этот кадр ОЗУ для других целей. В системах Windows эти выгруженные страницы хранятся в одном или нескольких файлах (файлах Pagefile.sys) в корне раздела. В каждом разделе диска может быть один такой файл. Расположение и размер файла подкачки настраиваются в свойствах системы (нажмите «Дополнительно», нажмите «Производительность», а затем нажмите кнопку «Настройки»).

Пользователи часто спрашивают, насколько большим должен быть файл подкачки? На этот вопрос нет однозначного ответа, поскольку он зависит от объема установленной оперативной памяти и объема виртуальной памяти, который требуется для этой рабочей нагрузки.Если нет другой доступной информации, хорошей отправной точкой является типичная рекомендация в 1,5 раза больше установленной оперативной памяти. В серверных системах вы обычно хотите иметь достаточно оперативной памяти, чтобы никогда не было нехватки и чтобы файл подкачки не использовался. В этих системах поддержание большого файла подкачки может оказаться бесполезным. С другой стороны, если на диске много места, поддержка большого файла подкачки (например, в 1,5 раза больше установленной оперативной памяти) не вызывает проблем, и это также избавляет от необходимости беспокоиться о том, насколько большим его сделать.

Производительность, архитектурные ограничения и оперативная память

В любой компьютерной системе по мере увеличения нагрузки (количества пользователей, объема работы) производительность снижается, но нелинейно. Любое увеличение нагрузки или спроса сверх определенной точки приводит к значительному снижению производительности. Это означает, что какого-то ресурса критически не хватает, и он стал узким местом.

В какой-то момент дефицитный ресурс нельзя будет увеличить. Это означает, что достигнут архитектурный предел. Некоторые часто упоминаемые архитектурные ограничения в Windows включают следующее:

  • 2 ГБ общего виртуального адресного пространства для системы (ядра)
  • 2 ГБ частного виртуального адресного пространства на процесс (режим пользователя)
  • 660 МБ системного хранилища PTE (Windows Server 2003 и более ранние версии)
  • 470 МБ в хранилище выгружаемого пула (Windows Server 2003 и более ранние версии)
  • 256 МБ в хранилище невыгружаемого пула (Windows Server 2003 и более ранние версии)

Это относится конкретно к Windows Server 2003, но может также относиться к Windows XP и Windows 2000. Однако не все Windows Vista, Windows Server 2008 и Windows 7 разделяют эти архитектурные ограничения. Ограничения на память пользователя и ядра (здесь цифры 1 и 2) одинаковы, но ресурсы ядра, такие как PTE и различные пулы памяти, являются динамическими. Эта новая функциональность позволяет использовать как страничную, так и невыгружаемую память. Это также позволяет PTE и пулу сеансов выходить за пределы, которые обсуждались ранее, вплоть до того момента, когда все ядро ​​будет исчерпано.

Часто встречающиеся и цитируемые утверждения, такие как следующие:

При использовании терминального сервера 2 ГБ общего адресного пространства будут полностью использованы до того, как будут использованы 4 ГБ ОЗУ.

В некоторых случаях это может быть правдой. Однако вы должны следить за своей системой, чтобы знать, применимы ли они к вашей конкретной системе или нет. В некоторых случаях эти заявления являются выводами из конкретных сред Windows NT 4.0 или Windows 2000 и не обязательно применимы к Windows Server 2003. В Windows Server 2003 были внесены значительные изменения, чтобы уменьшить вероятность того, что эти архитектурные ограничения действительно будут достигнуты на практике. . Например, некоторые процессы, которые находились в ядре, были перемещены в процессы, не относящиеся к ядру, чтобы уменьшить объем памяти, используемой в общем виртуальном адресном пространстве.

Мониторинг использования ОЗУ и виртуальной памяти

Монитор производительности — это основной инструмент для мониторинга производительности системы и определения узких мест. Чтобы запустить системный монитор, нажмите «Пуск», выберите «Панель управления», «Администрирование», а затем дважды щелкните «Системный монитор». Вот краткое изложение некоторых важных счетчиков и того, что они вам сообщают:

Память, выделенные байты: этот счетчик показывает потребность в виртуальной памяти.

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

Процесс, рабочий набор, _Total: этот счетчик является мерой активного использования виртуальной памяти.

Этот счетчик показывает, сколько оперативной памяти требуется, чтобы виртуальная память, используемая всеми процессами, находилась в оперативной памяти. Это значение всегда кратно 4096 — размеру страницы, который используется в Windows. Поскольку спрос на виртуальную память выходит за рамки доступной ОЗУ, операционная система регулирует объем виртуальной памяти процесса в своем рабочем наборе, чтобы оптимизировать использование доступной ОЗУ и свести к минимуму подкачку.

Файл подкачки, %pagefile используется: этот счетчик показывает, какая часть файла подкачки фактически используется.

Используйте этот счетчик, чтобы определить, подходит ли размер файла подкачки. Если этот счетчик достигает 100, файл подкачки заполнен, и все перестанет работать. В зависимости от изменчивости вашей рабочей нагрузки вы, вероятно, захотите, чтобы файл подкачки был достаточно большим, чтобы он использовался не более чем на 50-075 процентов. Если используется большая часть файла подкачки, размещение нескольких файлов на разных физических дисках может повысить производительность.

Память, страниц/сек. Этот счетчик часто неправильно понимают.

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

Память, вывод страниц/сек: этот счетчик показывает, сколько страниц виртуальной памяти было записано в файл подкачки, чтобы освободить кадры страниц RAM для других целей каждую секунду.

Это лучший счетчик для отслеживания, если вы подозреваете, что пейджинг является узким местом вашей производительности. Даже если количество выделенных байтов превышает объем установленной оперативной памяти, а количество страниц, выводимых в секунду, в большинстве случаев низкое или равно нулю, серьезных проблем с производительностью из-за нехватки оперативной памяти не возникает.

Память, Кэш-байты, Память, Невыгружаемые байты пула, Память, Выгружаемые пулом байты, Память, Всего байт системного кода, Память, Всего байт системного драйвера:

Сумма этих счетчиков показывает, сколько из 2 ГБ общей части 4 ГБ виртуального адресного пространства фактически используется. Используйте их, чтобы определить, достигает ли ваша система одного из рассмотренных ранее архитектурных ограничений.

Память, доступные МБ. Этот счетчик измеряет, сколько ОЗУ доступно для удовлетворения потребностей в виртуальной памяти (либо для нового выделения, либо для восстановления страницы из файла подкачки).

Когда ОЗУ не хватает (например, количество выделенных байтов больше, чем установленная ОЗУ), операционная система попытается сохранить определенную часть установленной ОЗУ доступной для немедленного использования путем копирования страниц виртуальной памяти, которые не используются активно. в файл подкачки. Таким образом, этот счетчик не достигнет нуля и не обязательно является хорошим индикатором того, не хватает ли вашей системе оперативной памяти.

Открытый ноутбук с кодом, видимым на экране.

В наш век высоких технологий виртуальная память может стать важным ресурсом как для владельцев бизнеса, так и для сотрудников для хранения данных и запуска приложений. Виртуальная память может помочь вам оптимизировать систему вашего компьютера и достичь высокого уровня эффективности и безопасности, чтобы вы могли поддерживать оптимальную работу компьютера и защищать свою работу.

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

Что такое виртуальная память?

Виртуальная память – это метод, используемый в вычислениях для оптимизации управления памятью путем передачи данных между различными системами хранения, такими как оперативная память (ОЗУ) и дисковое хранилище. Система виртуальной памяти имеет много преимуществ, в том числе:

Избавление приложений от необходимости конкурировать за пространство в общей памяти и возможность одновременного запуска нескольких приложений

Разрешение процессам совместно использовать память между библиотеками (набор кода, который обеспечивает основу для работы программы)

Повышение безопасности за счет изоляции и сегментации мест, где компьютер хранит информацию

Увеличение объема доступной памяти за счет работы за пределами физической памяти компьютера

Оптимизация использования центрального процессора (ЦП)

Виртуальная память является встроенным компонентом большинства современных настольных компьютеров. Он встроен в ЦП компьютера и является более экономичным методом управления памятью, чем расширение физической системы хранения памяти компьютера.

Однако некоторые специализированные компьютеры могут не полагаться на виртуальную память, так как это может вызвать несогласованность в обработке данных компьютером. Специалисты в определенных отраслях, таких как научное или статистическое моделирование, могут избегать использования виртуальной памяти для конкретных задач, требующих стабильности и предсказуемости. Большинству повседневных персональных или бизнес-компьютеров такой уровень согласованности не нужен, и преимущества виртуальной памяти гораздо выше, чем предсказуемость других типов систем памяти.

Как работает виртуальная память?

Виртуальная память использует для работы как программное, так и аппаратное обеспечение компьютера. Он переносит процессы между оперативной памятью компьютера и жестким диском, копируя любые файлы из оперативной памяти компьютера, которые в данный момент не используются, и перемещая их на жесткий диск. Перемещая неиспользуемые файлы на жесткий диск, компьютер освобождает место в оперативной памяти для выполнения текущих задач, таких как открытие нового приложения. Если позже компьютеру потребуется использовать оперативную память для более срочной задачи, он может снова поменять местами файлы, чтобы максимально использовать доступную оперативную память.

ОЗУ — это ограниченный ресурс, хранящийся на микросхемах, встроенных в ЦП компьютера. Установка большего количества микросхем оперативной памяти может быть дорогостоящей, поэтому виртуальная память позволяет компьютеру перемещать файлы между системами по мере необходимости, чтобы оптимизировать использование доступной оперативной памяти.

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

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

Типы виртуальной памяти

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

Пейджинг

Виртуальная память этого типа работает путем разделения памяти на разделы, называемые файлами подкачки. Когда компьютер достигает своего предела оперативной памяти, он переносит все неиспользуемые в данный момент страницы в ту часть своего жесткого диска, которая используется для виртуальной памяти. Компьютер выполняет этот процесс, используя файл подкачки, который представляет собой выделенное пространство на жестком диске для расширения виртуальной памяти оперативной памяти компьютера. Перемещая неиспользуемые файлы на жесткий диск, компьютер освобождает место в ОЗУ для других задач с памятью и гарантирует, что у него никогда не закончится реальная память.

В рамках этого процесса компьютер использует таблицы страниц, которые преобразуют виртуальные адреса в физические адреса, которые MMU компьютера использует для обработки инструкций. MMU взаимодействует между операционной системой компьютера и его таблицами страниц. Когда пользователь выполняет задачу, ОС ищет в своей оперативной памяти процессы для выполнения задачи. Если не удается найти процессы для выполнения задачи в ОЗУ, MMU предлагает ОС переместить необходимые страницы в ОЗУ и использует таблицу страниц, чтобы отметить новое место хранения страниц.

Сегментация

Сегментация — это еще один метод управления виртуальной памятью. Система сегментации делит виртуальную память на сегменты различной длины и перемещает все неиспользуемые сегменты из пространства виртуальной памяти компьютера на его жесткий диск. Подобно таблицам страниц, таблицы сегментов отслеживают, хранит ли компьютер сегмент в памяти или по физическому адресу.

Сегментация отличается от подкачки тем, что она делит память на разделы разной длины, а подкачка делит память на разделы одинакового размера. При пейджинге аппаратное обеспечение определяет размер раздела, но пользователь может определить длину сегмента в системе сегментации. Хотя сегментация часто выполняется медленнее, чем разбиение на страницы, она дает пользователю больший контроль над разделением памяти и может упростить обмен данными между процессами. Однако многие случайные пользователи компьютеров могут предпочесть систему подкачки, поскольку она автоматически обрабатывает разделение памяти.

Ограничения виртуальной памяти

Хотя виртуальная память имеет много преимуществ, вот некоторые из ее ограничений:

Виртуальная память часто работает медленнее, чем физическая память, поэтому большинство компьютеров по возможности отдают предпочтение физической памяти.

Требуется дополнительная аппаратная поддержка для перемещения данных между виртуальной и физической памятью компьютера.

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

Если у компьютера небольшой объем ОЗУ, виртуальная память может вызвать "перегрузку", когда компьютеру приходится постоянно обмениваться данными между виртуальной и физической памятью, что приводит к значительным задержкам производительности.

Загрузка приложений или переключение между приложениями при использовании виртуальной памяти может занять больше времени.

Виртуальная память и физическая память

Двумя наиболее существенными различиями между виртуальной и физической памятью являются скорость и стоимость. Компьютеры, использующие физическую память, как правило, работают быстрее, чем компьютеры, использующие виртуальную память. Однако увеличение объема физической памяти компьютера обходится дороже, чем внедрение системы виртуальной памяти. По этим причинам большинство компьютеров используют свою систему физической памяти — оперативную память — для поддержания скорости обработки перед использованием системы виртуальной памяти. Компьютер использует свою виртуальную память только тогда, когда у него заканчивается ОЗУ для хранения.

Однако у пользователей также есть возможность увеличить объем оперативной памяти. Установка большего объема ОЗУ может устранить задержки компьютера, вызванные частыми переключениями памяти.Объем оперативной памяти компьютера зависит от того, какой объем установлен пользователем или производителем. Для сравнения, размер жесткого диска компьютера определяет объем виртуальной памяти. Выбирая компьютер, вы можете предпочесть тот, у которого больше оперативной памяти, если вы запускаете много приложений одновременно. Если большую часть времени вы работаете только с одним или двумя компьютерными приложениями, вам может не понадобиться столько оперативной памяти.

Читайте также:

Версия Windows RAM
Windows NT 4.0 4 ГБ
Windows 2000 Professional 4 ГБ
Windows 2000 Standard Server< /td> 4 ГБ
Windows 2000 Advanced Server 8 ГБ
Windows 2000 Datacenter Server 32 ГБ
Windows XP Professional 4 ГБ
2 ГБ
Windows Server 2003 Standard Edition 4 ГБ
Windows Server 2003 Enterprise Edition 32 ГБ
Windows Server 2003 Datacenter Edition 64 ГБ
Windows Vista 4 ГБ
Windows Server 2008 Standard 4 ГБ
Windows Server 2008 Enterprise 64 ГБ
Windows Server 2008 Datacenter 64 ГБ
Windows 7 4 ГБ