Виртуальная память компьютера что это такое


Виртуальная память — Википедия

Виртуа́льная па́мять (англ. virtual memory) — метод управления памятью компьютера, позволяющий выполнять программы, требующие больше оперативной памяти, чем имеется в компьютере, путём автоматического перемещения частей программы между основной памятью и вторичным хранилищем (например, жёстким диском)[1][2][3]. Для выполняющейся программы данный метод полностью прозрачен и не требует дополнительных усилий со стороны программиста, однако реализация этого метода требует как аппаратной поддержки, так и поддержки со стороны операционной системы.

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

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

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

В настоящее время виртуальная память аппаратно поддерживается в большинстве современных процессоров[1]. В то же время в микроконтроллерах и в системах специального назначения, где требуется либо очень быстрая работа, либо есть ограничения на длительность отклика (системы реального времени), виртуальная память используется относительно редко. Также в таких системах реже встречается многозадачность и сложные иерархии памяти.

В 1940-е и 1950-е годы все программы, размер которых превышал объём оперативной памяти, должны были содержать логику управления оперативной и внешней памятью, такую как оверлей. В связи с этим виртуальная память была введена не только для увеличения объёма оперативной памяти, но и для того, чтобы сделать такое увеличение наиболее простым в использовании для программистов. [4] Для поддержки мультипрограммирования и многозадачности во многих ранних компьютерных системах разделение памяти между несколькими программами осуществлялось без виртуальной памяти, с помощью сегментации (например, в компьютерах PDP-10).

Понятие виртуальной памяти было впервые введено в 1956 году немецким физиком Фрицем-Рудольфом Гюнтшем (нем. Fritz-Rudolf Güntsch) из Берлинского технического университета в его докторской диссертации «Логическое проектирование цифровой вычислительной машины с несколькими асинхронными вращающимися барабанами и автоматическим высокоскоростным управлением памятью». В ней описывается машина с 6 блоками памяти на магнитных сердечниках ёмкостью 100 слов каждый и адресным пространством в 1000 блоков по 100 слов. Аппаратное обеспечение машины автоматически перемещает блоки между основной и внешней памятью на магнитных барабанах. [5][6]Подкачка страниц впервые была реализована в Манчестерском университете как способ расширения памяти компьютера Atlas путём объединения его основной памяти на магнитных сердечниках объёмом 16000 слов с памятью на магнитных барабанах ёмкостью 96000 слов. Первая поставка машины Atlas состоялась в 1962 году, но работающие прототипы подкачки страниц были разработаны уже в 1959 году.[4][7][8] В 1961 году Burroughs Corporation независимо выпустила первый промышленно производившийся компьютер с виртуальной памятью B5000, использующий сегментацию вместо подкачки страниц.[9][10] В 1965 году виртуальная память была реализована в отечественной машине БЭСМ-6, хотя реализованный механизм не позволял расширить 15-разрядное адресное пространство процесса и ограничивал удобство программирования.[11]

Прежде чем виртуальная память смогла быть использована в распространённых операционных системах, должен был быть решен ряд проблем. Динамическая трансляция адресов требовала дорогого и сложного в изготовлении специального оборудования. Первые реализации замедляли доступ к памяти. [4] Существовали опасения, что новые общесистемные алгоритмы, использующие внешнюю память, будут менее эффективны, чем ранее использовавшиеся алгоритмы конкретных приложений. К 1969 году дебаты вокруг виртуальной памяти для промышленно выпускаемых компьютеров были завершены: команда исследователей из IBM под руководством Дэвида Сейра (англ. David Sayre) показала, что созданная ими система виртуальной памяти во всех отношениях превосходит самые лучшие системы, управляемые вручную.[4][12] Первым мини-компьютером, в котором была использована виртуальная память, был норвежский NORD-1. В 1970-е годы реализации виртуальной памяти появились в других мини-компьютерах, наиболее известным является VAX, работающий под управлением операционной системы VMS.

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

Страничная организация виртуальной памяти[править | править код]

В большинстве современных операционных систем виртуальная память организуется с помощью страничной адресации. Оперативная память делится на страницы: области памяти фиксированной длины (например, 4096 байт[13]), которые являются минимальной единицей выделяемой памяти (то есть даже запрос на 1 байт от приложения приведёт к выделению ему страницы памяти). Исполняемый процессором пользовательский поток обращается к памяти с помощью адреса виртуальной памяти, который делится на номер страницы и смещение внутри страницы. Процессор преобразует номер виртуальной страницы в адрес соответствующей ей физической страницы при помощи буфера ассоциативной трансляции (TLB). Если ему не удалось это сделать, то требуется дозаполнение буфера путём обращения к таблице страниц (так называемый Page Walk), что может сделать либо сам процессор, либо операционная система (в зависимости от архитектуры)[14]. Если страница была выгружена из оперативной памяти, то операционная система подкачивает страницу с жёсткого диска в ходе обработки события Page fault (см. свопинг, подкачка страниц). При запросе на выделение памяти операционная система может «сбросить» на жёсткий диск страницы, к которым давно не было обращений. Критические данные (например, код запущенных и работающих программ, код и память ядра системы) обычно находятся в оперативной памяти (исключения существуют, однако они не касаются тех частей, которые отвечают за обработку аппаратных прерываний, работу с таблицей страниц и использование файла подкачки).

Сегментная организация виртуальной памяти[править | править код]

Механизм организации виртуальной памяти, при котором виртуальное пространство делится на части произвольного размера — сегменты. Этот механизм позволяет, к примеру, разбить данные процесса на логические блоки.[15] Для каждого сегмента, как и для страницы, могут быть назначены права доступа к нему пользователя и его процессов. При загрузке процесса часть сегментов помещается в оперативную память (при этом для каждого из этих сегментов операционная система подыскивает подходящий участок свободной памяти), а часть сегментов размещается в дисковой памяти. Сегменты одной программы могут занимать в оперативной памяти несмежные участки. Во время загрузки система создает таблицу сегментов процесса (аналогичную таблице страниц), в которой для каждого сегмента указывается начальный физический адрес сегмента в оперативной памяти, размер сегмента, правила доступа, признак модификации, признак обращения к данному сегменту за последний интервал времени и некоторая другая информация. Если виртуальные адресные пространства нескольких процессов включают один и тот же сегмент, то в таблицах сегментов этих процессов делаются ссылки на один и тот же участок оперативной памяти, в который данный сегмент загружается в единственном экземпляре. Система с сегментной организацией функционирует аналогично системе со страничной организацией: время от времени происходят прерывания, связанные с отсутствием нужных сегментов в памяти, при необходимости освобождения памяти некоторые сегменты выгружаются, при каждом обращении к оперативной памяти выполняется преобразование виртуального адреса в физический. Кроме того, при обращении к памяти проверяется, разрешен ли доступ требуемого типа к данному сегменту.

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

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

Существует также гибридная странично-сегментная организация виртуальной памяти[16].

  1. 1 2 Э. Танненбаум. Архитектура компьютера = Structured Computer Organization. — 5-е изд. — СПб.: Питер, 2013. — С. 476. — 884 с. — ISBN 978-5-469-01274-0.
  2. Ч. Кэпс. Р. Стаффорд. VAX: Программирование на языке ассемблера и архитектура = VAX assembly language and architecture. — М.: Радио и связь, 1991. — С. 310. — 416 с. — ISBN 5-256-00706-8.
  3. Морс С.П., Алберт Д.Д. Архитектура микропроцессора 80286 = The 80286 architecture. — М.: Радио и связь, 1990. — С. 167. — 304 с. — ISBN 5-256-00466-2.
  4. 1 2 3 4 Peter J. Denning. Before Memory Was Virtual // In the Beginning: Recollections of Software Pioneers. — 1997.
  5. Elke Jessen. Origin of the Virtual Memory Concept // IEEE Annals of the History of Computing. — 2004. — Т. 26, вып. 4. — С. 71-72.
  6. Elke Jessen. Die Entwicklung des virtuellen Speichers // Informatik-Spektrum. — Springer-Verlag, 1996. — Т. 19, вып. 4. — С. 216–219. — ISSN 0170-6012. — doi:10.1007/s002870050034.
  7. R. J. Creasy. The origin of the VM/370 time-sharing system // IBM Journal of Research & Development. — 1981. — Т. 25, № 5. — С. 486.
  8. ↑ Atlas design includes virtual memory - Computer50, University of Manchester 1996
  9. ↑ Ian Joyner on Burroughs B5000  (англ.)
  10. Harvey G. Cragon. Memory Systems and Pipelined Processors. — Jones and Bartlett Publishers, 1996. — С. 113. — ISBN 0-86720-474-5.
  11. Королёв Л. Н. Архитектура ЭВМ БЭСМ-6 (неопр.). Из книги Л. Н. Королёва «Структуры ЭВМ и их математическое обеспечение» (1978). PARALLEL.RU - Информационно-аналитический центр по параллельным вычислениям:. Дата обращения 21 ноября 2016. Архивировано 13 апреля 2001 года. ()
  12. D. Sayre. Is automatic "folding" of programs efficient enough to displace manual? // Communications of the ACM. — ACM, 1969. — Т. 12, вып. 12. — С. 656-660. — ISSN 0001-0782. — doi:10.1145/363626.363629.
  13. Harvey G. Cragon. Memory Systems and Pipelined Processors. — Jones and Bartlett Publishers, 1996. — С. 121. — ISBN 0-86720-474-5.
  14. ↑ Patterson, Hennessy «Computer organisation and Design. Hardware Software Interface.» 4th edition. ISBN 9780080886138 Chapter 5.4, page 503  (англ.)
  15. ↑ В семействе операционных систем Microsoft Windows сегментная адресация не используется и заменена делением памяти на секции, что в сущности почти одно и то же.
  16. Harvey G. Cragon. Memory Systems and Pipelined Processors. — Jones and Bartlett Publishers, 1996. — С. 121. — ISBN 0-86720-474-5.

Виртуальная память компьютера. Как изменить объем памяти / webentrance.ru

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

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

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

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

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

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

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

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

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

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

Если собрана сеть, то доступ можно получить в Центре управления сетями и общим доступом. Тут опять же избираем СервисПараметры папок.

Откроется одноименное окно, выбираем в нем Вид и в Дополнительных параметрах снимаем пометку Скрывать защищенные системные файлы, а также нажимаем Показывать скрытые файлы, папки и диски. Жмем Применить.

Теперь на диске С появляются несколько папок и файлов, которые имеют атрибуты скрытый или системный. Здесь же можно увидеть файл pagefile.sys, который отмечен, как системный и его объем на данный момент составляет более 3 Гб.

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

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

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

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

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

Если появилось сообщение о недостаточности виртуальной памяти, надо сначала проверить свободное место на системном диске, как правило, это диск С.

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

Поэтому надо следить, чтобы на диске С постоянно было свободное место. Так при работе ОС Windows 7 его должно быть не менее 5 -7 Гб.

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

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

Для изменения объема виртуальной памяти необходимо перейти из панели управления в окно Система или нажимаем клавиши Windows + Pause.

В окне Система переходим во вкладку Дополнительные параметры системы. Открывается окно Свойства системы и в нем есть блок Быстродействие.

Нажимаем на кнопку Параметры, откроется окошко Параметры быстродействия. Открываем вкладку Дополнительно, где есть раздел Виртуальная память.

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

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

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

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

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

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

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

Чаще всего файл подкачки отключить невозможно, поэтому указываем его величину вручную, либо оставляем галочку Автоматически изменять объем файла подкачки. Нажимаем OK и выбранные параметры вступают в силу после того, как компьютер будет перезагружен.

Другие записи по теме:

Компьютеры и Интернет

Виртуальную память можно обнаружить во всех компьютерных операционных системах, и она предоставляет некоторые практические преимущества пользователю компьютера. Все ПК имеют собственную RAM (Physical Random Access Memory), которая обычно бывает от  2 до 4 гигабайт. Когда используется виртуальная память, система позволяет пользователям ПК продолжать работать, не беспокоясь о доступности хранения данных или насыщенности памяти. Она часто рассматривается как логическая память и позволяет пользователям получать доступ к большему объему памяти, что позволяет им использовать одновременно больше приложений.
С виртуальной памятью ОС может искать приложения в ОЗУ, которые не используются, и копировать их на HDD. В результате в ОЗУ освобождается больше места, и в неё могут быть загружены новые приложения, которые необходимо немедленно использовать. Весь процесс выполняется автоматически, и пользователю не нужно ни на что нажимать. Она функционирует путем деления адресного пространства прикладных программ на многие более мелкие страницы. Эти меньшие страницы представляют собой 4 тыс. байт страниц, каждая из которых имеет различные адреса виртуальной памяти.

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

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

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

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

 

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

Здравствуйте уважаемые читатели! Сегодня мы открываем цикл статей про оптимизацию компьютера на ОС Windows. Начнем мы с такой штуки как файл подкачки. В этой статье вы найдёте ответы на такие вопросы: Где находится файл подкачки?; Как правильно настроить файл подкачки?; Как задать оптимальный размер файла подкачки для разных объемов оперативной памяти?. Поехали!

Файл подкачки. Терминология.

Файл подкачки (pagefile.sys) — это системный файл на жестком диске (как правило на системном диске) компьютера, который служит как бы дополнением (расширением) к оперативной памяти. Также эту дополнительную память называют виртуальной памятью компьютера.
Виртуальная память — метод управления памятью компьютера для выполнения программ требующих большие объемы оперативной памяти, чем есть реально на компьютере. Недостающую оперативную память такие программы получают из файла подкачки. Другими словами, файл подкачки разгружает оперативную память в периоды её сильной загрузки.
Оперативная память в разы быстрее чем память файла подкачки. Если одновременно запустить несколько приложений в системе, которые потребляют много оперативной памяти, то данные неиспользуемых из них будут выгружены из оперативной памяти в менее быструю виртуальную память. Активные же приложения будут обслуживаться непосредственно оперативной памятью (RAM). Также, если например свернутое приложение развернуть, то данные из виртуальной памяти вновь перейдут в RAM.

Как настроить файл подкачки и изменить его размер?

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

  1. Для Windows XP:
    Пуск > Настройка > Панель управления > Система > Дополнительно > Быстродействие > Параметры > Дополнительно > Изменить
  2. Для Windows 7/8/Vista:
    Пуск > Настройка > Панель управления > Система > Дополнительные параметры системы > Быстродействие > Параметры > Дополнительно > Виртуальная память > Изменить

До пункта Быстродействие можно дойти также введя команду sysdm.cpl в командной строке Выполнить (командную строку можно открыть нажав WIN+R).

Если вы все сделали правильно, то должны оказаться в окне Виртуальная память. По умолчанию в Windows 7/8/8.1/10 объём файла подкачки определяется автоматически самой системой.
Как видно на картинке, файл подкачки можно настроить для каждого раздела (и каждого диска) отдельно. Чтобы задать свой размер файла подкачки, нужно:

  1. В самом верху окна снять галочку с пункта Автоматически выбирать объём файла подкачки.
  2. Выберите раздел (либо физический диск) для которого настраивается файл подкачки.
  3. Поставьте переключатель в пункт Указать размер, укажите Исходный размер и Максимальный размер (указывается в мегабайтах)
  4. Обязательно нажмите на кнопку Задать.

Для отключения файла подкачки поставьте переключатель в пункт Без файла подкачки.

Размер файла подкачки Windows. Какой правильный?

На счет оптимального размера файла подкачки есть разные версии. Я выражу свою точку зрения на этот счет, которая основана на моих наблюдениях и опытах с файлом подкачки на различном оборудовании. Она может совпадать с мнениями некоторых IT-специалистов. Я приверженец версии, что если на компьютере установлено 6-8 Гб и более оперативной памяти, то файл подкачки можно вообще отключить. Считаю, что большие объёмы файла подкачки, только тормозит компьютер. Конечно если объём оперативной памяти менее 6 Гб, то лучше конечно задать определенный объём дополнительной виртуальной памяти.
Как правильно задать объём файла подкачки? Минимальный размер файла подкачки должен совпадать с максимальным. Например: 512-512, 1024-1024, 2048-2048 — это правильное заполнение, а 512-1024, 1024-2048 — неправильное заполнение.
Одинаковые показатели минимального и максимального размера файла подкачки, снижают дефрагментацию этого файла, а это следовательно ускоряет процесс считывания информации из него.
Теперь, в зависимости от объёма оперативной памяти посмотрим какой размер файла подкачки нужно задать. Есть следующие примерные показатели:

  • оптимальный размер файла подкачки для 512 Mb оперативной памяти, - 5012 Mb;
  • оптимальный размер файла подкачки для 1024 Mb оперативной памяти, - 4012 Mb;
  • оптимальный размер файла подкачки для 2048 Mb оперативной памяти, - 3548 Mb;
  • оптимальный размер файла подкачки для 4096 Mb оперативной памяти, - 3024 Mb;
  • оптимальный размер файла подкачки для 8 Гб оперативной памяти, - 2016 Mb;
  • оптимальный размер файла подкачки для 16 Гб оперативной памяти (и больше), - без файла подкачки.

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

Например:

  1. Некоторые приложения требуют наличия файла подкачки. Отключение его может привести к ошибкам в работе таких приложений. При отключении виртуальной памяти на системном диске, также станет невозможной запись дампа памяти при BSOD'ах (Синий экран смерти).
  2. Если вы, как правило, сворачиваете несколько приложений оставляя их запущенными, а сами переключаетесь на другие, то тут вам тоже может понадобиться большой объём файла подкачки, так как данные свернутых приложений записываются именно в него. Хотя, и здесь все зависит от объема RAM.

Правильное расположение файла подкачки. На каком диске включить?

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

  1. Первая часть на системном диске (разделе) (как раз для записи информации отладочной записи при синих экранах смерти)
  2. Вторая часть на самом быстром диске

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

Итоги:

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

Виртуальная память (Операционные Системы) — Национальная библиотека им. Н. Э. Баумана

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 16:49, 24 августа 2017.

Виртуальная память — метод управления памятью, которая реализуется с использованием аппаратного и программного обеспечения компьютера. Она отображает используемые программами виртуальные адреса в физические адреса в памяти компьютера. Основная память представляется в виде непрерывного адресного пространства или набора смежных непрерывных сегментов. Операционная система осуществляет управление виртуальными адресными пространствами и соотнесением оперативной памяти с виртуальной. Программное обеспечение в операционной системе может расширить эти возможности, чтобы обеспечить виртуальное адресное пространство, которое может превысить объем оперативной памяти и таким образом иметь больше памяти, чем есть в компьютере. Виртуальная память позволяет модифицировать ресурсы памяти, сделать объём оперативной памяти намного больше, для того чтобы пользователь, поместив туда как можно больше программ, реально сэкономил время и повысил эффективность своего труда. “Открытие” виртуальной памяти внесло огромную контрибуцию в развитие современных технологий, облегчило работу как профессионального программиста, так и обычного пользователя, обеспечивая процесс более эффективного решения задач на ЭВМ[1].

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

К основным преимуществам виртуальной памяти относят:

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

Свойства виртуальной памяти

Виртуальная память делает программирование приложений проще:

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

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

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

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

Страничная организация памяти

При страничной организации все ресурсы памяти, как оперативной, так и внешней представляются для пользователя единым целым. Пользователь работает с общим адресным пространством и не задумывается какая память при этом используется: оперативная или внешняя, а эта общая память носит название виртуальной (моделируемой). Виртуальная память разбивается на страницы, которые содержат определённое фиксированное количество ячеек памяти. При этом одна страница математической памяти не может быть больше или меньше других, все страницы должны быть одинаковы по количеству ячеек. Типичные размеры страниц 256, 512, 1024, 2048 Байт и более (числа кратные 256).

Преимущества виртуальной памяти со страничной организацией

  • Достаточно большой объём прямо адресуемой памяти. Объем памяти может исчисляться сотнями мегабайт (и даже гигабайтами). Размер виртуальной памяти целиком зависит от объёма накопителя на [жестком] магнитном диске. Созданный SWAP файл размещается на диске и эмулирует оперативную память. При этом пользователь не задумывается о том куда будет помещен “кусок” его программы с которой он только что отработал.
  • Программы пользователя могут размещаться в любых свободных страницах[2].
  • Повышает уровень мультипрограммной работы. С организацией виртуальной памяти со страничной организацией пользователь получил реальную возможность загружать в память большее количество программ для того чтобы машина обрабатывала программы сразу (в действительности процессор устанавливает приоритет для каждой программы, находящейся в памяти, и далее в соответствии с приоритетом выделяет определённое количество времени на реализацию каждой программы или команды.

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

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

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

Сегментно-страничная организация памяти

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

Таблицы страниц

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

Менеджер виртуальной памяти

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

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

Закрепленные страницы

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

Источники

  1. ↑ Википедия [Электронный ресурс]: Virtual memory — материал из Википедии — свободной энциклопедии: Версия 79094304, сохранённая в 14:23 UTC 21 ноября 2016 / Авторы Википедии // Википедия, свободная энциклопедия. — Электрон. дан. — Сан-Франциско: Фонд Викимедиа, 2016. — Режим доступа: https://en.wikipedia.org/wiki/Virtual_memory
  2. ↑ Организация виртуальной памяти [Электронный ресурс]: Сведения о продукте / Дата обращения: 31.10.2016. — Режим доступа: https://habrahabr.ru/company/embox/blog/256191/
  3. ↑ Виртуальная память [Электронный ресурс]: Сведения о продукте / Дата обращения: 31.10.2016. — Режим доступа: http://ref.repetiruem.ru/referat/virtualnaja-pamjat

Виртуальная память: Что это и как ее увеличить? - Гаджеты. Технологии. Интернет

Виртуальная память — что это?

Виртуальная память является подкачкой (дополнением) оперативной памяти. Она присутствует практически во всех операционных системах.

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

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

Виртуальная память (Virtual Memory, ВП) — это метод управления памятью компьютера, использующий для работы файл подкачки (swap file). При недостатке существующего объема ОЗУ, позволяет запускать на ПК более ресурсозатратные программы.

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

Виртуальная память так же обладает рядом достоинств:

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

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

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

Как узнать объем файла подкачки (swap file)

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

Системный монитор

Размер свапа подкачки можно узнать через штатную утилиту «Системный монитор».

Для этого:

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

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

Узнать объем ВП и другие параметры системы можно используя специальную утилиту Vmmap.exe. Она доступна для бесплатной загрузки на официальном сайте Microsoft и не требует установки. Поставляется в виде исполняемого файла, полностью на английском языке.

Dump File и его типы

Swap используется не только для расширения физической памяти, но и для создания аварийных дампов при возникновении «внештатных» аварийных ситуаций.

Как это работает:

  • Во время первоначального запуска системы, Windows создает и сохраняет на жестком диске специальную карту секторов, которые занимает на HDD свап.
  • Если происходит сбой, то операционная система изучает созданную карту на наличие неисправностей. В идеале она должна быть целостной. Если это так, то данные переписываются на винчестер и в свап по созданной карте секторов.
  • При следующем перезапуске компьютера SMSS анализирует ВП и проверяет его на наличие дампов, если он есть, то данные копируются из файла подкачки в специальный dump file. Дополнительно обновляется системный журнал. Поэтому открыв его можно узнать, была ли проведена эта операция.

Таким образом при автоматическом выборе размера свапа, Windows руководствуется настройками для создания аварийного дампа.

Загрузка и восстановление

Дампы можно разделить на 4 типа:

В него записывается все содержимое RAM на момент незапланированного завершения работы. С учетом этой информации файл подкачки должен иметь размер равный физической памяти компьютера +1 МБ (используется для создания записи в системном журнале).

Выбирается системой автоматически только в том случае, если общий объем физической памяти 4 ГБ и менее.

  • Дамп памяти ядра.

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

Выбирается по умолчанию, если размер RAM превышает 4 ГБ. При выборе дампа памяти ядра важно следить, чтобы минимальный размер для файла подкачки составлял хотя бы ⅓ от общего объема физической.

  • Малый дамп памяти.

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

Необходимый размер файла подкачки для него —не менее 2 Мб.

  • Автоматический дамп памяти.

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

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

Как изменить Dump File

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

  • Правой кнопкой мыши кликните по значку «Мой компьютер» и выберите меню «Свойства». Найдите пункт «Дополнительные параметры». Откроются свойства системы.

Система

  • Попасть в них можно и другим способом. Откройте диалоговое меню: «Выполнить» и в нем наберите:
sysdm.cpl
  • На вкладке «Дополнительно» найдите категорию, которая посвящена загрузке и восстановлению системы. После чего нажмите на кнопку «Параметры».
  • В блоке «Отказ системы» найдите графу запись отладочной информации и выберите подходящий тип дампа. Для Windows 10 по умолчанию используется Автоматический.

Загрузка и восстановление

  • По желанию дамп можно отключить. Для этого в выпадающем списке выберите «Нет». После этого система не будет делать резервные копии.

Учтите, что это может привести к безвозвратной потери важных данных.

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

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

Запустите системную утилиту «Выполнить» одновременным нажатием клавиш Windows+R или откройте ее через Пуск. После этого:

  • Впишите команду
sysdm.cpl

и нажмите «Ок».

  • Перейдите на вкладку «Дополнительно» и найдите здесь категорию «Быстродействие».

Свойства системы

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

Параметры быстродействия

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

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

Как добавить виртуальную память на Windows

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

Для этого:

  • Правой кнопкой мыши кликните по значку «Мой компьютер» и в выпадающем списке выберите графу «Свойства».
  • Откроется окно для работы с параметрами. В левой части экрана найдите надпись «Дополнительный параметры системы».

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

  • Здесь найдите «Быстродействие» и через меню «Параметры» откройте дополнительные свойства. На отразившейся вкладке выберите «Изменить» напротив «Виртуальная память».
  • Уберите галочку напротив графы «Автоматически выбирать объем файла подкачки». После этого станут доступны остальные пункты.

Параметры быстродействия

  • Выберите диск, на котором много свободного места и чьи ресурсы будут использоваться для создания файла подкачки.
  • Отметьте пункт «Указать размер», после чего добавьте значение в пустое поле. При этом число в поле «Максимальный» должно быть в 1,5 раза, чем в поле «Исходный».

Учитывайте, что объем измеряется здесь в МБ.

Как только закончите работу, подтвердите действия нажатием кнопки «Ок». Все изменения автоматически вступят в силу.

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

Рекомендации по использованию виртуальной памяти

VMMAP — Sysinternals

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

Итак, рассмотрим ряд советов:

  • Если на устройстве используется несколько HDD или SSD, то для свапа указывайте тот диск, который не является системным. Здесь не должна быть установлена операционная система. В итоге это значительно повысит общую скорость работы.
  • Создавать можно несколько файлов подкачки. Если вы используете дамп, то хотя бы один свап должен находиться на системном диске. Для всех остальных случаев делать это не обязательно.
  • Если у вас несколько винчестеров с разными физическими параметрами, то выбирать следует тот, который отличается лучшими показателями скорости работы. Узнать это можно из технических характеристик HDD.
  • Если жесткий диск разбит на несколько разделов, то для файла подкачки следует выбирать тот, который является основным (первым). К этому участку есть мгновенный доступ, что серьезно влияет на скорость работы.
  • Не бойтесь указать слишком большой размер для файла подкачки. Если физический размер HDD позволяет это сделать, то выделите ВП от 4 объемов от существующей RAM. Слишком низкий показатель может привести к появлению ошибок, критическому завершению работы некоторых приложений (с потерей данных).
  • Старайтесь ограничивать минимальный объем swap файла. Это позволит избежать его постоянной фрагментации. Если вы используете компьютер для работы с ресурсозатратным ПО или он работает в качестве сервера для хранения баз данных, то размер файла подкачки должен составлять 2-3 полных объема ОЗУ. Во всех остальных случаях он должен быть равен RAM или быть больше в 1,5 раза.

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

Так же подробно про ВП можно посмотреть в видеоролике ниже:

Виртуальная память или файл подкачки

В видео рассматривается оптимальный размер файла подкачки

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

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

Файл подкачки Windows / Habr

По запросу в любой поисковой системе «файл подкачки windows» можно получить тысячу-другую скопированных друг у друга, либо немного отличающихся ответов по выбору оптимальных размеров для pagefile.sys.

Самые распространенные советы выглядят примерно следующим образом: для машин с маленьким ОЗУ нужно задавать размер файла подкачки k*RAM, где RAM — объем физической памяти, k — какой-нибудь коэффициент, коих много самых разнообразных. И 1,5, и 2, и даже 3 встречал. Если же планок памяти стоит на 4Гб и больше, то «смело отключайте виртуальную память в принципе».

Статья о том, стоит ли верить ли этим советам, и если да, то насколько.

Что такое файл подкачки?

pagefile.sys, он же файл подкачки — файл, представляющий собой виртуальную память, которая позволяет одновременно выполняться большому количеству процессов, которые все сразу не смогли бы поместиться в физической памяти.
По умолчанию после установки Windows файл подкачки увеличивается автоматически при заполнении текущего объема.
Если отключить файл подкачки

Если попытаться отключить файл подкачки в windows 7, система выдаст предупреждающее окно, в котором сообщит о неприятных последствиях:

Отсюда следует, что не стоит полностью отказываться от использования виртуальной памяти, иначе в случае краха не получится даже проанализировать причину сбоя. Указанный на скриншоте минимальный размер в 1МБ берется из расчета конфигурации дампа памяти в настройках «загрузка и восстановление»:

Если выбрать для записи отладочной информации полный дамп, то размер увеличивается на несколько порядков. У меня он составил 400МБ.

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

Если перенести файл подкачки на другой раздел

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

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

Размер файла подкачки

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

Для начала потребуется утилита Process Explorer, она является бесплатным аналогом дефолтного Task Manager'a, но обладает многими преимуществами. Скачать можно по ссылке.

После запуска Process Explorer'a выберите самые ресурсоемкие в плане используемой памяти приложения, которые используете в повседневной жизни, и запустите их все одновременно. В окне Process Explorer'a нажмите CTRL+I или выберите в меню View/System Information, из всего многообразия представленных в окне данных нужно выбрать область Commit Charge

Значение Peak — пиковое значение выделенной памяти для всех приложений, складываемое из физической и виртуальной памяти.

Далее вооружаемся калькулятором и вычитаем из этого значения размер оперативной памяти. Если получается отрицательное значение — берем требуемые системой 400МБ (может быть другое значение), необходимые для создания дампа. Если получается положительное значение — выставляем таким минимальное и максимальное значение файла подкачки. Можно подстраховаться и установить «про запас» максимум выше, но тогда вырастет фрагментация файла в случае увеличения его размеров. Поэтому лучше зафиксировать на одном месте.

Литература

Статья Марка Руссиновича Pushing the Limits of Windows: Virtual Memory;
Перевод на русский язык Преодолевая ограничения Windows: виртуальная память;
Описание программы Process Explorer .

Подкачка страниц — Википедия

Подкачка страниц (англ. paging; иногда используется термин swapping от swap, /swɔp/) — один из механизмов виртуальной памяти, при котором отдельные фрагменты памяти (обычно неактивные) перемещаются из ОЗУ во вторичное хранилище (жёсткий диск или другой внешний накопитель, такой как флеш-память), освобождая ОЗУ для загрузки других активных фрагментов памяти. Такими фрагментами в современных ЭВМ являются страницы памяти.

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

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

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

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

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

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

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

Для обеспечения эффективной работы система подкачки должна выбирать для выгрузки те страничные кадры, обращение к которым в ближайшее время наименее вероятно. Существуют различные алгоритмы замещения страниц. В операционных системах используются алгоритмы LRU (англ. Last recently used), FIFO (англ. First In First Out) либо алгоритмы с учётом рабочего множества процесса[1].

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

Алгоритмы определения устаревших страниц[править | править код]

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

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

Наиболее часто используемые критерии поиска:

  • Least recently used. Удаляются те страницы, доступ к которым производился наиболее давно. Считается, что в последующем к таким страницам будет происходить минимум обращений.
  • Last recently used. Удаляются недавно освободившиеся страницы. Подразумеваются страницы только что завершившихся процессов.

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

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

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

Для исключения пробуксовки пользователь может предпринять следующие действия:

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

Недостатки и возможность их преодоления[править | править код]

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

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

В 32-разрядной Windows XP, Vista, 7 для своп-файла можно использовать оперативную память за пределами 3-го гигабайта, используя сторонние программы по созданию электронных дисков, хранящихся в памяти.

В Linux поддерживается сходный механизм, zswap, размещающий своп в памяти в сжатом виде.

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

Фрагментация файла подкачки[править | править код]

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

Рекомендации по размещению файла подкачки[править | править код]

  • Одним из способов выделения места для swap‐файла (раздела), рекомендуемым в течение многих лет[источник не указан 2609 дней], является кратное выделение памяти, когда объём этого файла равен объёму оперативной памяти, умноженному на константу от 0,5 до 2 или 3.
  • Если на компьютере имеется более одного жёсткого диска, то для более быстрого обращения к файлу подкачки его желательно разместить на наименее нагруженном запросами чтения/записи физическом диске. Хорошим выбором будет физический файл подкачки на диске, который имеет наибольшую скорость чтения/записи.
  • В Windows скорость чтения из небольших разделов больше у FAT32 по сравнению с NTFS, однако, благодаря более высокой устойчивости NTFS к сбоям и значительным объёмам современных жестких дисков, разделы с FAT32 ныне редко используются.
  • При наличии на компьютере значительного объёма ОЗУ (16-32 гигабайт) и использовании большинства популярных ОС семейств GNU/Linux можно полностью отключить подкачку.

Безопасность при работе со swap-файлом[править | править код]

Из файла (раздела) подкачки зачастую можно извлечь конфиденциальную информацию, используемую при работе вычислительной системы. Поэтому при работе с секретными данными обычно производится очистка swap — например, с помощью утилиты sswap из комплекта secure remove.

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

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

Использование файла подкачки может приводить к заражению некоторых ОС компьютерными вирусами, так как существует уязвимость[источник не указан 3130 дней], позволяющая вытеснить выполняемые программы в виртуальную память и изменить выполняемый код с помощью прямого доступа к жёсткому диску.

Unix[править | править код]

В ОС Unix, и подобных ей, swap обычно помещается на отдельный раздел жёсткого диска, что ранее ускоряло доступ к данным, по сравнению с расположением swap на обычном разделе. В ядрах Linux 2.6 и новее работа swap-файла не уступает по производительности swap-разделу[2][3].

Пример создания swap-файла для GNU/Linux:

# dd if=/dev/zero of=/swap bs=1024 count=128K # mkswap /swap # sync # swapon /swap 

Oracle Solaris может использовать тома ZFS в качестве разделов подкачки:

# zfs create -V 2G pool/swap # swap -a /dev/zvol/dsk/pool/swap 

Кроме использования при работе системы, некоторые дистрибутивы GNU/Linux используют SWAP раздел для организации режима сна («спящий режим», hibernation или «suspend to disk» - режим S4 ACPI). Для поддержки этого режима размер SWAP следует задать равным размеру оперативной памяти, увеличенному на 10-15%.

ОС Microsoft Windows и Windows NT[править | править код]

Область жёсткого диска, предназначенная для свопинга, располагается в отдельном файле, который называется файл подкачки, своп-файл (от англ. swap file). Он называется pagefile.sys и по умолчанию создаётся системой в корневом каталоге диска C:. В дальнейшем пользователь может управлять размером и размещением файла подкачки, например, используя панель управления, пункт Система.

В Windows 9x файл подкачки называется win386.swp и располагается в каталоге Windows. Однако правкой файла system.ini его можно перенести в корневой каталог для последующего совместного использования с Windows NT.

Также, начиная с Windows Vista появилась возможность создавать выделенный раздел подкачки, аналогичный по назначению используемым в UNIX-системах.

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

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

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

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

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

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

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

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

Чтобы это сделать, вам понадобится войти в главное меню, где найти «Панель управления», а потом пункт «Система». Во вкладке «Дополнительно» вы должны найти пункт «Быстродействие», после чего раскрыть окно параметров. В разделе с наименованием «Виртуальная память» вы увидите доступный объем памяти на текущий момент. Изменение настроек можно осуществить при помощи кнопки «Изменить». Стоит ставить значение, превышающее объем оперативной памяти вдвое.

Итак, что такое виртуальная память, вы уже поняли, а теперь стоит сказать о том, как ее очистить. Эта процедура необходима для сохранения конфиденциальности данных, расположенных в файле подкачки. Это делается посредством специальной функции, которая обычно отключена. Чтобы активировать ее, вам потребуется в «Панели управления» найти папку «Администрирование», где открыть «Локальную политику безопасности». В этом окне потребуется щелкнуть правой кнопкой по пункту «Очистка файла виртуальной памяти», где выбрать «Свойства». Там вам потребуется задействовать опцию «Выключить», после чего кликнуть «Применить», а потом «Ок». Далее нужно будет дважды перезагрузить компьютер, файл подкачки будет очищен после второго раза.

Ответы Mail.ru: что такое виртуальная память

Виртуа́льная па́мять — технология, которая была разработана с целью увеличения общего объема памяти, организации множества адресных пространств памяти, их защиты и автоматизации процесса перемещения машинного кода и данных между основной памятью компьютера и вторичным хранилищем. ------------------------------- Виртуальная память-это область выделенная Операционной системой на жестком диске! Заканчивается она когда мало оперативной памяти (желательно добавить)!! ! А виртуальную память можно добавить так: Мой компьютер-свойства-дополнительно-параметры (быстродействие) -дополнительно-изменить!! ! Задается она из расчета: если оперативная память равна 256, то файл подкачки будет равен 384-768, т. е к оперативной памяти прибавить 128!!! Но если мало, то можно поставить например, если оперативы 256, то 786 -1572!!! Кликаем задать и перезагружаем компьютер Если добавить оперативу, таких проблем не будет ---------------------------- виртуальная память - Временное хранилище, используемое компьютером для выполнения программ, превышающих размер доступной оперативной памяти. Например, программы могут использовать до 4 Гбайт виртуальной памяти на жестком диске, в то время как оперативная память компьютера составляет всего 32 Мбайт. Данные программы, для которых нет свободного места в оперативной памяти, сохраняются в файлах подкачки. файл подкачки - Скрытый файл на жестком диске, используемый Windows для хранения частей программ и файлов данных, не помещающихся в оперативной памяти. Файл подкачки и физическая (оперативная) память составляют виртуальную память. По мере необходимости Windows перемещает данные из файла подкачки в оперативную память (для их использования программой) и обратно (для освобождения места для новых данных) . Файл подкачки называется также файлом виртуальной памяти. Чтобы его увеличить проделай следующее: 1. СВОЙСТВА моего компа 2. вкладка ДОПОЛНИТЕЛЬНО 3. кнопка ПАРАМЕТРЫ в разделе БЫСТРОДЕЙСТВИЕ 4. в появившемся окне вкладка ДОПОЛНИТЕЛЬНО 5. кнопка ИЗМЕНИТЬ 6. МИНИМАЛЬНЫЙ РАЗМЕР не трогай, а МАКСИМАЛЬНУЮ задай такую, какая тебе необходимо в байтах (У меня, например, выставлена 2048). Советую выставить её на ДВУХ дисках одинаковую 7. нажми кнопку ЗАДАТЬ, затем ОК/ОК/ОК 8. перезагрузи комп

Виртуа́льная па́мять (англ. Virtual memory) — технология управления памятью ЭВМ, разработанная для многозадачных операционных систем. При использовании данной технологии для каждой программы используются независимые схемы адресации памяти, отображающиеся тем или иным способом на физические адреса в памяти ЭВМ. Позволяет увеличить эффективность использования памяти несколькими одновременно работающими программами, организовав множество независимых адресных пространств, и обеспечить защиту памяти между разными приложениями. Также позволяет программисту использовать больше памяти, чем установлено в компьютере, за счет откачки неиспользуемых страниц на вторичное хранилище (см. Свопинг) . При использовании виртуальной памяти упрощается программирование, так как программисту больше не нужно учитывать ограниченность памяти, или согласовывать использование памяти с другими приложениями. Для программы выглядит доступным и непрерывным все допустимое адресное пространство, вне зависимости от наличия в ЭВМ соответствующего объема ОЗУ. Применение механизма виртуальной памяти позволяет: * упростить адресацию памяти клиентским программным обеспечением; * рационально управлять оперативной памятью компьютера (хранить в ней только активно используемые области памяти) ; * изолировать процессы друг от друга (процесс полагает, что монопольно владеет всей памятью) .

<a rel="nofollow" href="http://otvet.mail.ru/question/18573177/" target="_blank">http://otvet.mail.ru/question/18573177/</a>

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

Физическое и виртуальное увеличение оперативной памяти компьютера

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

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

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

  1. Запустите утилиту мониторинга типа CPU-Z или HWMonitor.
  2. Посмотрите модель материнской платы.
  3. Перейдите на сайт производителя.
  4. Изучите спецификацию материнской платы, обратив особое внимание на характеристики памяти.

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

Из указанной информации мы можем вынести, что материнская плата поддерживает стандарт памяти 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 и последующих версиях по умолчанию включена виртуальная память: на выбранном разделе жесткого диска выделяется определенное место, к которому обращается система, если доступной оперативной памяти не хватает. Проще говоря, виртуальная память (файл подкачки) позволяет увеличить производительность за счет жесткого диска.

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

  1. Кликните правой кнопкой по значку «Компьютер».
  2. Откройте «Свойства».
  3. Перейдите в «Дополнительные параметры».
  4. Раскройте вкладку «Дополнительно».
  5. В поле «Быстродействие» откройте «Параметры».
  6. Нажмите «Изменить» на вкладке «Дополнительно».

Этот путь актуален для «семерки», 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? Вопрос дискуссионный. По некоторым данным производительность системы увеличивается на треть, но это максимальный эффект, который достигается при выполнении простых операций. Значительного же прироста ожидать не следует, так как на производительность влияет еще ряд факторов, включая мощность процессора.


Смотрите также