Ядро Системы И Виртуальная Память

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

Что такое ядро

Ядро – это составляющая часть операционной системы, т.е. основные компоненты Windows (всякие там DLL-модули и тому подобное).
По умолчанию неиспользуемые модули ядра сохраняются в ОЗУ с фунциями ПЗУ (это та самая виртуальная память или еще её называют файл подкачки)

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

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


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

  • Пример: скорость доступа к данным у DIMM 128 МБ = 7-8 наносекунд, у DIMM 256 МБ = 8-12 наносекунд. Чем больше объем модуля, тем дольше время доступа к нему.
  • Пример: память общим объемом 512 МБ, если это 4 модуля по 128 МБ, будет работать быстрее, нежели два модуля по 256 МБ. Это связано с тем, что модули по 256 МБ содержат больше микросхем, которые компьютер должен опросить. Бывают исключения, связанные с техническими тонкостями (различные используемые наборы микросхем).

Работа виртуальной памяти

Виртуальная память – это на физическом уровне обычный файл, в который записывается (как и в физическую память) всякая информация. Но работает она довольно медленно, так как скорость считывания данных с винчестера начинается примено с 33-44 мб/сек. Отсюда видно, что это более чем кратная разница в быстродействии.


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


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

Загрузка ядра в ОЗУ

Если есть причины выгрузки Ядра системы в ОЗУ, то это сделать даже рекомендуется.
Причины побуждающие к этому – большое количество свободных, неиспользуемых ресурсов оперативной памяти (когда при обычном режиме работы системы свободно 80 и более процентов ОЗУ, посмотреть можно в диспетчере задач)
А также большая нагрузка (постоянное чтение данных с жесткого диска), опять же видно в диспетчере задач или в примитиве – постоянная индикация работы жесткого диска на системном блоке.
Или обе причины сразу....

Решения задач по оптимизации ядра в ОЗУ и виртуальной памяти

Начнем с того что есть некоторые предварительные технические требования, чтобы не сделать хуже чем есть на текущий момент.
ОЗУ Должно быть не менее 256 МБ и текущее её использование не более 20%. Тогда для ускорения быстродействия системы, точнее, ее ядра можно разместить его в ОЗУ – однако надо помнить следующее, что при проблемах с электропитанием (т.е. у вас нет Источника Бесперебойного Питания – UPS и электричество периодически отключается по тем или иным причинам) – возможны потери данных во время работы системы, хотя по большому счету и хранение их в файле подкачки не всегда спасает в данном случае.
Так вот сама система будет работать быстрее... но тут стоит помнить о том, что другие программы тоже используют ОЗУ и если им будет не хватать ОЗУ, они будут использовать виртуальную память – тут надо выбирать по личным запросам, так сказать вашему техническому заданию. Можно руководствоваться минимальными техническими требованиями программного обеспечения, с которым вы будете работать, исходя из того сколько ОЗУ останется в наличии после выгрузки Ядра в ОЗУ и сколько нужно для минимальной работы используемых вами программ. Или экспериментальным путем – грубо говоря на глаз, определить по удобству работы и быстродействию.
Если ОЗУ довольно много – скажем от 512 МБ и выше, то виртуальную память можно вообще отключить – если это позволит работать с вашими программами (проверка – вышеописанным методом), повысив еще быстродействие. Однако, не все программы могут работать без нее... это уже на свой страх и риск и по потребностям.
Практические действия
Так вот, если у вас все в порядке с техническими возможностями компьютера (памяти начиная от 256 МБ и с электричеством все в порядке) то можно выполнить все эти действия.
Для начала могу предложить почитать всю мою статью? по оптимизации быстродействия систем на базе Windows NT (2000/XP/2003).
Там описан параметр DisablePagingExecutive. Это и есть ключ в реестре, указывающий держать ядро системы в физическом ОЗУ если указать его равным 1, по умолчанию он = 0.
Далее, если рискнете попробовать отключить виртуальную память, то это можно сделать 2-мя способами:

  • через реестр в значении PagingFiles указать размер = 0, после имени файла подкачки идут значения
  • через свойства моего компьютера – во вкладке "Дополнительно" в разделе "Быстродействие" – кнопка "Параметры" и опять вкладка "Дополнительно" – выставить на всех дисках без файла подкачки (если ваша ОС 2003/ХР).

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


Это Все! Успехов Вам в работе!
Sea Wol F 2006-01-25 09:44:14


Обсуждение на форуме

Общая оценка документа [показать форму]

страница еще не оценена