Управление памятью в windows

Обновлено: 04.07.2024

С понятием управления паметью в ОС связаны следующие технологии:

  • Функции управления памятью в ОС
  • Типы адресов
  • Методы распределения памяти в ОС
  • Принцип кэширования данных в ОС

Содержание

Функции управления памятью в ОС

Операционная система решает следующие задачи:

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

Типы адресов

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

Символьные имена

Символьные имена присваивает пользователь при написании программы.

Виртуальные адреса

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

Физические адреса

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

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

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

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

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

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

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

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

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

Виртуальная память (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. Для этого выполните следующие действия:

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

Система

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Для этого:

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

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

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

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

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

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

VMMAP - Sysinternals

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

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

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

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

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

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

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

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

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

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

Многие пользователи хотят, что бы компьютер постоянно «летал». Есть много способов оптимизации скорости работы ПК. Вот 3 статьи на нашем сайте: один, два и три. Но сегодня речь пойдет об оптимизации работы оперативной памяти. На сайте Майкрософт есть интересная статья но без литра водки не разберешься :-). Мы пойдем в обход, как настоящие герои.

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

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

Запускаем диспетчер задач Ctrl+Shift+Esc, переходим на вкладку быстродействие и смотрим на циферки, в данном случае объём оперативной памяти составляет 12279 МБ. Кэшировано 521 МБ. Доступно 10646 МБ. И свободно 10200 МБ. По центру внизу нажимаем кнопку Монитор ресурсов.

Монитор ресурсов Windows

Наблюдаем примерно такую же картину, Свободная память совпадает, но есть еще пункт Ожидание 433 МБ.

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

Монитор ресурсов Windows

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

Загрузка памяти Windows

Как видим, оперативная память начинает «таять». Если у Вас установлено 4 ГБ оперативной памяти, то уже нормальной работы не получится. При 8 ГБ всё еще будет хорошо. Теперь опять смотрим в монитор ресурсов и сравниваем цифры.

мониторим ресурсы Windows

Доступно, кэшировано, свободно всё совпадает, но вот полоска ожидание разрослась до 7027 МБ. то есть 7 ГБ. Теперь закрываем Firefox и другие запущенные программы и смотрим в диспетчер задач.

Ram в Windows

Оперативная память освободилась, это видно по графику, да и цифры красивые.

Освобождение памяти Windows

В мониторе ресурсов цифры совпадают, но синяя полоса ожидание (она же кэшировано), означает, что в оперативной памяти еще висит информация, с которой мы работали. Так как пункт свободно показывает нам 3786 МБ.

Теперь представьте, что вы работали полдня, запускали большое количество программ, в оперативной памяти висят куски непонятно чего, и как сам Windows управляет всем этим КЭШИРОВАНО абсолютно не понятно. Наверное, сами программисты из Microsoft не знают, как работает оперативка :-). А Вам нужно запустить видеоредактор, фотошоп или погонять в любимую игрушку (лара крофт, farcry 5 или подобные монстры) без лагов и фризов.

Есть очень простой выход, скачиваем маленькую бесплатную программу Mem Reduct.

скачиваем маленькую бесплатную программу Mem Reduct

Устанавливаете и запускаете, от имени администратора! Программа на русском языке.

Mem Reduct

Mem Reduct показывает свои циферки. Так же можно сравнить с AIDA 64, интересен пункт виртуальная память, цифры совпадают. В AIDA 64 так же можно промониторить файл подкачки, в данном случае задав минимальный объём 1024 МБ, а максимальный 6144 МБ. Чётко видно текущую и пиковую загрузку файла подкачки. Таким образом, при запущенной AIDA 64 можно поработать дней пять при своей типовой нагрузке на компьютер и определить нужный конкретно Вам объём файла подкачки. Так как споры по поводу его объёма на просторах интернета не утихают.

Загрузка памяти AIDA 64

Далее в опциях программы Mem Reduct нужно сделать настройки. Для Windows10 есть еще дополнительный пункт, можете попробовать у кого стоит 10-ка.

Настройка Mem Reduct

Далее нажимаем кнопку внизу Очистить память.


Появится окошко, можно поставить галочку и нажимаем Да.


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

замеряем память Windows

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

Загрузка RAM в World of Tanks

Так же хотелось бы сказать пару слов любителям игр, особенно которые смотрят чудо-блогеров на ютубе и любят статистику из MSI Afterburner. Так вот, скриншот для Вас. Где указано RAM 10565 МБ. Это не загрузка оперативной памяти. Это скорее всего сумма кешировано+занято, а вот ниже параметр RAM usage 6970 МБ соответствует правде.



Сами «Танки» кушают всего 1415 МБ оперативной памяти.

Сколько памяти кушают танки

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


Надеемся, статья была полезной и интересной.

Есть минимум три основных пути как отремонтировать компьютер: 1. Обратиться к знакомому или другу (гуру), который хорошо разбирается в компьютерах. 2. Вызвать мастера на дом. 3. Обратиться в сервисный центр. Рассмотрим поподробнее все три варианта ремо.

В статье Вы научитесь: • Как подключить компьютер к смартфону по wi-fi для передачи файлов со смартфона. • Как подключить смартфон к смартфону по wi-fi для передачи файлов между ними. • Как подключить смартфон к компьютеру по wi-fi для передачи файлов с.

В статье обсудим, как быстро и удобно настроить автозагрузку Windows 10, 8, 7 абсолютно любому пользователю. С помощью Autorun Organizer.

На ПК три шины: шина данных, шина адреса и шина управления. 32-разрядный ЦП может адресовать 4 ГБ (от 2 до 32-й степени) байтов. Пользователи могут использовать до 4 ГБ реальной физической памяти. Многие устройства в ПК имеют свою собственную память, которая будет отображена на физическую память ПК.Чтение и запись этого физического адреса фактически является физическим адресом устройства. Вообще говоря, память устройства также является адресом физической памяти.

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

В ЦП есть важный 32-битный регистр CR0, а бит PG отвечает за то, чтобы сообщить системе, нужно ли выполнять пейджинг. Перед запуском Windows позиция PG устанавливается в 1, что указывает на то, что подкачка разрешена. Размер страницы обычно составляет 4 КБ, поэтому 4 ГБ памяти будут разделены на 1М (от 2 до 20-й степени) пейджинговый блок.Некоторые из них будут соответствовать физической памяти, то есть N-я страница в виртуальной памяти соответствует M-му страничному блоку физической памяти., (нота: Это соответствие не взаимно-однозначное, а взаимно-однозначное, то есть несколько страниц виртуальной памяти могут быть сопоставлены с одной и той же страницей физической памяти. ) Некоторые устройства будут сопоставлены с файлами на диске и помечены как грязные. При чтении этого фрагмента виртуальной памяти система выдаст исключение. В это время будет запущена функция обработки исключений. Функция обработки исключений прочитает дисковый файл этой страницы в память и установит отметку «не грязный».


Пример, показанный на рисунке выше:

  • Некоторая физическая память отображается на процесс 1, а некоторая - на процесс 2. Два процесса независимы друг от друга, и независимо от того, как управлять процессом 1, это не повлияет на процесс 2.
  • Некоторая физическая память отображается как на процесс 1, так и на процесс 2. Если виртуальная память процесса 1 изменена, виртуальная память, соответствующая процессу 2, также изменится. Совместное использование памяти между процессами 。
  • Некоторая виртуальная память не отображается на физическую.

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

  • ①Увеличенный объем памяти, Компьютер имеет только 4 ГБ физической памяти, но предоставляет 4 ГБ виртуальной памяти, что позволяет пользователям запрашивать больше памяти. Когда физической памяти недостаточно, вы можете переставлять редко используемые страницы виртуальной памяти в файлы, а затем при необходимости читать их.
  • ② Сделайте так, чтобы виртуальная память между разными процессами не мешала друг другу. Операционная система Windows позволяет каждому процессу видеть разную виртуальную память, поэтому разные процессы имеют разные сопоставления физической памяти с виртуальной памятью.Даже если адреса виртуальной памяти двух процессов равны 0x40000, поскольку отображаемая физическая память различается, изменение адреса одним процессом не повлияет на другой процесс.。
  • Адрес пользовательского режима: виртуальная память, виртуальный адрес которой находится в диапазоне 0

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

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

Концепция подкачки памяти упоминается при представлении адресов виртуальной памяти в Разделе 2. Windows предусматривает, что некоторые страницы виртуальной памяти могут быть заменены местами в файлы, которые называются подкачивающей памятью. Некоторая виртуальная память никогда не переключается в файл и становится невыгружаемой памятью. Когда уровень запроса прерывания программы выше (включая) DISPATCH_LEVEL, программа может использовать только невыгружаемую память, иначе это вызовет синий экран смерти.

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