Как настроить смартфоны и ПК. Информационный портал

Для чего необходима виртуальная память. Что такое виртуальная память

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Также существует термин 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.

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

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

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

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

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

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

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

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

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

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

Использование виртуальной оперативной памяти в современных операционных системах.

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

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

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

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

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

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

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

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

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

Настройка ( )


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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

виртуальная память ?

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

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

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

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

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

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

Лучшие статьи по теме