Виртуальную память компьютера что в ней содержится. Что такое виртуальная память

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

Понятие виртуальной памяти

Разработчикам программного обеспечения часто приходится решать проблему размещения в памяти больших программ, размер которых превышает объем доступной оперативной памяти. Один из вариантов решения данной проблемы – организация структур с перекрытием – рассмотрен в предыдущей лекции. При этом предполагалось активное участие программиста в процессе формирования перекрывающихся частей программы. Развитие архитектуры компьютеров и расширение возможностей операционной системы по управлению памятью позволило переложить решение этой задачи на компьютер . Одним из главных достижений стало появление виртуальной памяти ( virtual memory ). Впервые она была реализована в 1959 г. на компьютере "Атлас", разработанном в Манчестерском университете.

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

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

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

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

Таким образом, возможность обеспечения (при поддержке операционной системы) для программы "видимости" практически неограниченной (характерный размер для 32-разрядных архитектур 2 32 = 4 Гбайт) адресуемой пользовательской памяти (логическое адресное пространство ) при наличии основной памяти существенно меньших размеров (физическое адресное пространство ) – очень важный аспект.

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

Например, 16-разрядный компьютер PDP-11/70 с 64 Кбайт логической памяти мог иметь до 2 Мбайт оперативной памяти. Операционная система этого компьютера тем не менее поддерживала виртуальную память , которая обеспечивала защиту и перераспределение основной памяти между пользовательскими процессами.

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

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

Увеличение физической памяти

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

В спецификации будет примерно такая картина:

Из указанной информации мы можем вынести, что материнская плата поддерживает стандарт памяти DDR3, двухканальный режим. Доступный максимальный объем –16 Гб, частота – от 800 до 1800 МГц. Следующий шаг – вскрыть системный блок и посмотреть, сколько есть свободных слотов.

Помните, что DDR, DDR2 и DDR3 – это три разных, несовместимых друг с другом формата. Поэтому если ваша материнская плата поддерживает стандарт DDR2, не нужно покупать DDR3 – модуль не встанет в слот.

На конец 2015 года анонсируется выход стандарта DDR4 – с его приобретением тоже лучше не торопиться, так как технология еще не обкатана. Что касается DDR5, сообщения о котором можно встретить на форумах, то такого стандарта вовсе не существует. Есть видеопамять GDDR5, но к ОЗУ она имеет мало отношения.

Если материнская плата имеет двухканальный режим, ставьте две планки меньшего размера, а не одну большего. Две планки по 4 Гб будут примерно на 15% производительнее, чем один модуль на 8 Гб. Приобретая модули, старайтесь выбирать максимально близкие по характеристикам планки. Если планируете купить сразу пару, лучше выбрать KIT-набор, состоящий из двух полностью идентичных модулей.

Если вы доведете объем ОЗУ до 8 Гб, то не забудьте установить 64-битную систему, потому как Windows x32 не умеет работать с памятью, размер которой превышает 4 Гб.

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

  • Частоту подбираем максимальную, которую поддерживает материнская плата и процессор (его частоту тоже можно узнать с помощью утилиты HWMonitor).
  • Тайминг (задержка перед выполнением запроса) смотрим минимальный.

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

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

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

Для настройки виртуальной памяти:


Этот путь актуален для «семерки», Windows 8 и Windows 10. На XP порядок тот же, только в свойствах системы нужно сразу открывать вкладку «Дополнительно». В появившемся окне настройки виртуальной памяти вы можете установить автоматический выбор размера файла подкачки, указать объем вручную или отключить функцию. Посмотрим подробно самостоятельную установку объема виртуальной памяти:

  • Исходный размер – 1-1,5 объема физической оперативной памяти (если у вас 2 Гб ОЗУ, то ставьте 2-3 Гб виртуальной памяти).
  • Максимальный размер – 2 объема оперативной памяти.

Это рекомендуемые параметры, но есть одна тонкость: если у вас стоит не SSD-накопитель, а обычный HDD, то выделенный объем будет фрагментироваться. На производительности это сказывается плохо, поэтому в таком случае лучше оставить исходный и максимальный размер одинаковыми – равными объему физических модулей ОЗУ.

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

  1. Установить значение «Без файла подкачки».
  2. Перезагрузить систему.
  3. Снова открыть параметры виртуальной памяти и указать размер файла подкачки.

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

Использование флеш-накопителя

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

  • Установлена Windows 7 или более поздняя версия.
  • Используется внешний диск (SSD накопитель, USB-флешка, SD-карта), объем которого превышает 1 Гб.
  • Скорость работы флеш-носителя составляет минимум 3 Мб/с (все современные флешки легко достигают этого показателя).

Если вы используете флеш-накопитель, объем которого превышает 4 Гб, то обязательно форматируйте его в NTFS. Оптимальный объем используемого съемного диска должен в 2-3 раза превышать физический размер оперативной памяти. Допустим, при 4 Гб ОЗУ желательно использовать флешку на 8-16 Гб.

  1. Подключите съемный диск к компьютеру.
  2. Если появится окно автозапуска, выберите пункт «Ускорить работу системы».
  3. Если автозапуск отключен, зайдите в «Компьютер» и откройте свойства подключенного флеш-накопителя.
  4. Перейдите на вкладку «Ready Boost».
  5. Отметьте пункт «Предоставлять это устройство» и укажите объем, который вы хотите выделить под создание кэш-файла, расширяющего виртуальную память.

Если вы хотите выделить весь доступный объем флешки, то отметьте пункт «Использовать это устройство».

Важно: не отключайте флешку после активации технологии Ready Boost. Зайдите в свойства и поставьте отметку «Не использовать это устройство», после чего можно извлекать накопитель.

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

Приветствую вас, дорогие читатели.

Скорость работы компьютера зависит от многих параметров. На это влияет, как аппаратная часть, так и программная. И в статье далее я расскажу, что такое виртуальная память Windows 7, как она настраивается, и все основные моменты. Указанная ниже информация поможет улучшить взаимодействие с компьютером и увеличит скорость выполнения задач. Кроме того, должны пропасть многие ошибки, возникающие из-за недостачи свободных мегабайт.

Итак, что это такое? Виртуальная память представляет собой совокупность ОЗУ и файла подкачки. И если о первом элементе все понятно, о втором расскажу чуть подробнее.

В операционных системах от Microsoft предусмотрен специальный механизм, позволяющий программным путем увеличить число мегабайт, необходимых для обработки текущих данных. Так, пользователем или системой выделяется определенная область на жестком диске, в нужный момент добавляющаяся к оперативной памяти. С одной стороны – это помогает RAM, но с другой стороны появляется дополнительная нагрузка на винчестер. За данный сегмент отвечает файл pagefile.sys .

Настройка ( )


Правильные параметры ( )

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

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

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

Сколько ставить, если на компьютере установлено более 8 ГБ оперативки? Все просто – pagefile.sys лучше вообще отключить. В противном случае этого не стоит делать, так как могут появиться проблемы с работой отдельного ПО. И в будущем не многие вспомнят, что ранее именно пользователи отключили важный инструмент.

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

Перенос на другой диск ( )

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

Личный опыт ( )

Если ваш компьютер предназначен для специальных задач и на нем установлено 4Gb или 6 ОЗУ, размер файла подкачки стоит указывать точный. А нередко лучше его и вовсе выключить. Когда вы решили все же задействовать pagefile, «Исходный » и «Максимальный » объемы должны быть одинаковы. Лучше в таком случае указывать порядка 3 Гб.

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

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

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

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


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

Как всегда, видео на описываемую тему:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Если вы хотите увеличить объем виртуальной памяти на своей системе, то ознакомьтесь с пошаговой инструкцией. (Для Windows XP):

    Откройте меню «Пуск», выберите команду «Панель управления» Выберите пункт «Производительность и обслуживание» Далее выберите «Система» Выбираем вкладку «Дополнительно» Выбираем секцию «Быстродействие» и нажимаем кнопку Параметры Выбираем вкладку «Дополнительно» В секции «Виртуальная память» нажимаем на кнопку «Изменить» В списке Диск [метка тома] выберите диск, содержащий файл подкачки, если вы хотите изменить размер его виртуальной памяти. Вы можете выбрать объем памяти, который хотите зарезервировать для виртуальной памяти, введя начальный и максимальный размер. Нажмите кнопку «Задать» Перезагрузите компьютер

Если вам кажется, что ваш компьютер работает слишком медленно, то увеличение виртуальной памяти не поможет, это может быть только результатом «пробуксовки». Слишком частая перетасовка блоков виртуальной памяти между реальной памяти и дисков потребляет большую часть времени работы компьютера, тем самым вызывая пробуксовку. Хотя и существует некоторые меры, оптимизирующие работу виртуальной памяти, все же лучшим решением будет увеличение объема оперативной памяти.

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

В настоящее время технология виртуальной памяти имеет аппаратную поддержку на всех современных процессорах.

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

Также существует термин swap, означающий виртуальную память (точнее способ её представления) или файл подкачки.

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

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

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

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

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

    Для наиболее эффективной организации свопинга и повышения производительности используют следующие методики:
  • 1. Под swap-файл выделяется место, объем которого равно объёму оперативной памяти, умноженному на 1, на 2 или на 3.
  • 2. Если в компьютере или ноутбуке несколько жестких дисков, то располагать файл подкачки нужно на менее нагруженном из них.
  • 3. Располагать файл подкачки следует на диске с наибольшими скоростями чтения/записи и как можно ближе к началу диска.
  • 4. При работе в Windows swap-файл лучше размещать на разделе с файловой системой FAT32, при этом не забывать, что она менее надежна, чем NTFS.
  • 5. При наличии достаточно большого объема оперативной памяти (более 2Гб) на малонагруженной системе можно вообще отказаться от файла подкачки.

Страничная организация виртуальной памяти

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

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

В семействе операционных систем Microsoft Windows используется файл pagefile.sys для хранения вытесненных из оперативной памяти страниц. Место под файл должно быть выделено заранее, размер можно указать самостоятельно или же доверить выбор операционной системе.

Сегментная организация виртуальной памяти

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

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

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

Виртуальный адрес при сегментной организации памяти может быть представлен парой (g, s), где g - номер сегмента, а s - смещение в сегменте. Физический адрес получается путем сложения начального физического адреса сегмента, найденного в таблице сегментов по номеру g, и смещения s.

Недостатком данного метода распределения памяти является фрагментация на уровне сегментов и более медленное по сравнению со страничной организацией преобразование адреса.




Top