<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.technet.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Mark Russinovich по-русски</title><link>http://blogs.technet.com/mark_russinovich/default.aspx</link><description /><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Миф о дублировании SID компьютера</title><link>http://blogs.technet.com/mark_russinovich/archive/2009/11/15/3293962.aspx</link><pubDate>Sun, 15 Nov 2009 18:35:01 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3293962</guid><dc:creator>abeshkov</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.technet.com/mark_russinovich/comments/3293962.aspx</comments><wfw:commentRss>http://blogs.technet.com/mark_russinovich/commentrss.aspx?PostID=3293962</wfw:commentRss><description>3 ноября 2009 года Sysinternals закрыла проект NewSID - утилиты, которая предназначалась для изменения идентификатора защиты компьютера (machine SID). Я написал NewSID в 1997 году (первоначально она называлась NTSID), поскольку в то время единственным...(&lt;a href="http://blogs.technet.com/mark_russinovich/archive/2009/11/15/3293962.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3293962" width="1" height="1"&gt;</description></item><item><title>Преодолевая границы Windows: процессы и потоки</title><link>http://blogs.technet.com/mark_russinovich/archive/2009/11/02/3290815.aspx</link><pubDate>Mon, 02 Nov 2009 13:47:12 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3290815</guid><dc:creator>abeshkov</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.technet.com/mark_russinovich/comments/3290815.aspx</comments><wfw:commentRss>http://blogs.technet.com/mark_russinovich/commentrss.aspx?PostID=3290815</wfw:commentRss><description>Это четвертая статья из серии &amp;quot;Преодолевая границы Windows&amp;quot;, в рамках которой я рассказываю об ограничениях, существующих для фундаментальных ресурсов в Windows. На сей раз, я собираюсь обсудить с вами ограничение на максимальное количество...(&lt;a href="http://blogs.technet.com/mark_russinovich/archive/2009/11/02/3290815.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3290815" width="1" height="1"&gt;</description></item><item><title>Преодолевая ограничения Windows: дескрипторы</title><link>http://blogs.technet.com/mark_russinovich/archive/2009/10/21/3288042.aspx</link><pubDate>Wed, 21 Oct 2009 06:52:38 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3288042</guid><dc:creator>abeshkov</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.technet.com/mark_russinovich/comments/3288042.aspx</comments><wfw:commentRss>http://blogs.technet.com/mark_russinovich/commentrss.aspx?PostID=3288042</wfw:commentRss><description>Это уже пятая статья из моей серии публикаций &amp;quot;Преодолевая границы Windows&amp;quot;, в которых я рассказываю о максимальном значении и объеме ресурсов, которыми управляет Windows, таких как физическая память, виртуальная память, процессы и потоки: Преодолевая...(&lt;a href="http://blogs.technet.com/mark_russinovich/archive/2009/10/21/3288042.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3288042" width="1" height="1"&gt;</description></item><item><title>Дело о временных профилях реестра</title><link>http://blogs.technet.com/mark_russinovich/archive/2009/10/15/3287016.aspx</link><pubDate>Thu, 15 Oct 2009 02:58:09 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3287016</guid><dc:creator>abeshkov</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.technet.com/mark_russinovich/comments/3287016.aspx</comments><wfw:commentRss>http://blogs.technet.com/mark_russinovich/commentrss.aspx?PostID=3287016</wfw:commentRss><description>Служба поддержки клиентов корпорации Microsoft является одним из крупнейших пользователей утилит Sysinternals и они часто посылают мне письма с рассказами о проблемах, которые они решили с помощью наших утилит. Случай, о котором я расскажу в этой статье,...(&lt;a href="http://blogs.technet.com/mark_russinovich/archive/2009/10/15/3287016.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3287016" width="1" height="1"&gt;</description></item><item><title>Дело о медленной демонстрации</title><link>http://blogs.technet.com/mark_russinovich/archive/2009/05/26/3258821.aspx</link><pubDate>Tue, 26 May 2009 09:41:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3258821</guid><dc:creator>abeshkov</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.technet.com/mark_russinovich/comments/3258821.aspx</comments><wfw:commentRss>http://blogs.technet.com/mark_russinovich/commentrss.aspx?PostID=3258821</wfw:commentRss><description>Несколько недель назад я впервые участвовал в презентации на конференции Microsoft Teched перед аудиторией в 5000 человек. Билл Вегте (Bill Veghte), старший вице-президент Microsoft по продажам Windows, вел эту презентацию и делал обзор новых возможностей...(&lt;a href="http://blogs.technet.com/mark_russinovich/archive/2009/05/26/3258821.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3258821" width="1" height="1"&gt;</description></item><item><title>Преодолевая ограничения Windows: выгружаемый и невыгружаемый пулы</title><link>http://blogs.technet.com/mark_russinovich/archive/2009/05/06/3236407.aspx</link><pubDate>Thu, 07 May 2009 01:00:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3236407</guid><dc:creator>abeshkov</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.technet.com/mark_russinovich/comments/3236407.aspx</comments><wfw:commentRss>http://blogs.technet.com/mark_russinovich/commentrss.aspx?PostID=3236407</wfw:commentRss><description>В предыдущих статьях из цикла &amp;quot;Преодолевая границы Windows&amp;quot; я рассказал о двух основных ресурсах системы: физической памяти и виртуальной памяти . В этот раз я собираюсь поведать о двух фундаментальных ресурсах ядра, выгружаемом (от англ. paged)...(&lt;a href="http://blogs.technet.com/mark_russinovich/archive/2009/05/06/3236407.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3236407" width="1" height="1"&gt;</description></item><item><title>Дело о таинственных файлах на рабочем столе</title><link>http://blogs.technet.com/mark_russinovich/archive/2009/02/03/3204885.aspx</link><pubDate>Tue, 03 Feb 2009 16:16:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3204885</guid><dc:creator>abeshkov</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.technet.com/mark_russinovich/comments/3204885.aspx</comments><wfw:commentRss>http://blogs.technet.com/mark_russinovich/commentrss.aspx?PostID=3204885</wfw:commentRss><description>Несколько недель назад моя жена сказала мне, что иногда в папке Desktop ее компьютера появлялись файлы, которые не отображались на самом рабочем столе. Она заговорила об этом не только потому, что была удивлена несоответствием, но так как она хотела переместить...(&lt;a href="http://blogs.technet.com/mark_russinovich/archive/2009/02/03/3204885.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3204885" width="1" height="1"&gt;</description></item><item><title>Дело о прервавшемся телефонном звонке</title><link>http://blogs.technet.com/mark_russinovich/archive/2008/12/30/3194969.aspx</link><pubDate>Wed, 31 Dec 2008 01:48:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3194969</guid><dc:creator>abeshkov</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.technet.com/mark_russinovich/comments/3194969.aspx</comments><wfw:commentRss>http://blogs.technet.com/mark_russinovich/commentrss.aspx?PostID=3194969</wfw:commentRss><description>У Дэвида Соломона (David Solomon), моего соавтора по книгам Windows Internals, недавно был очень важный разговор в VoIP-сети Skype, когда звук неожиданно исказился. Через секунду привычный рабочий стол сменил BSOD. После того, как он перезагрузил компьютер,...(&lt;a href="http://blogs.technet.com/mark_russinovich/archive/2008/12/30/3194969.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3194969" width="1" height="1"&gt;</description></item><item><title>Преодолевая ограничения Windows: виртуальная память</title><link>http://blogs.technet.com/mark_russinovich/archive/2008/11/17/3182311.aspx</link><pubDate>Tue, 18 Nov 2008 01:48:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3182311</guid><dc:creator>abeshkov</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.technet.com/mark_russinovich/comments/3182311.aspx</comments><wfw:commentRss>http://blogs.technet.com/mark_russinovich/commentrss.aspx?PostID=3182311</wfw:commentRss><description>В моей первой публикации из серии &amp;quot;Преодолевая ограничения Windows&amp;quot; я рассказал об ограничениях, накладываемых на физическую память, включая ограничения, связанные с лицензированием, реализацией и совместимостью драйверов. В этот раз я решил...(&lt;a href="http://blogs.technet.com/mark_russinovich/archive/2008/11/17/3182311.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3182311" width="1" height="1"&gt;</description></item><item><title>Дело о мееееедленной системе</title><link>http://blogs.technet.com/mark_russinovich/archive/2008/09/24/3160236.aspx</link><pubDate>Wed, 24 Sep 2008 14:24:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3160236</guid><dc:creator>abeshkov</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.technet.com/mark_russinovich/comments/3160236.aspx</comments><wfw:commentRss>http://blogs.technet.com/mark_russinovich/commentrss.aspx?PostID=3160236</wfw:commentRss><description>Несколько недель назад моя жена пожаловалась мне, что Vista на ее настольном компьютере не реагирует на движение мышкой или ввод с клавиатуры. Принимая во внимание важность этого клиента, я тут же сел за компьютер, чтобы решить эту проблему. Система,...(&lt;a href="http://blogs.technet.com/mark_russinovich/archive/2008/09/24/3160236.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3160236" width="1" height="1"&gt;</description></item><item><title>Преодолевая ограничения Windows: физическая память</title><link>http://blogs.technet.com/mark_russinovich/archive/2008/07/21/3151288.aspx</link><pubDate>Mon, 21 Jul 2008 14:42:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3151288</guid><dc:creator>abeshkov</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.technet.com/mark_russinovich/comments/3151288.aspx</comments><wfw:commentRss>http://blogs.technet.com/mark_russinovich/commentrss.aspx?PostID=3151288</wfw:commentRss><description>&lt;p&gt;Эта публикация будет первой в серии под названием «Преодолевая ограничения Windows», которая ожидает вас в ближайшие месяцы. В ней разъясняется механизм потребления ОС Windows и приложениями тех или иных ресурсов, описываются ограничения этих ресурсов, обусловленные условиями лицензирования или особенностями реализации, предлагаются методики получения статистики потребления ресурсов и диагностики утечек. Для умелого управления системами Windows нужно понимать, как ОС координирует физические (в том числе ресурсы процессора и памяти) и логические (например, виртуальную память, дескрипторы и объекты диспетчера окон) ресурсы. Представление об ограничениях таких ресурсов и умение отслеживать их потребление позволяет составить картину основных потребителей, скорректировать характеристики системы в расчете на определенную нагрузку и выявить приложения, провоцирующие утечки ресурсов. &lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;&lt;strong&gt;Физическая память&lt;/strong&gt;     &lt;br /&gt;Одним из основных ресурсов любого компьютера является физическая память. Диспетчер памяти Windows наполняет память кодом и данными активных процессов, драйверов устройств и самой операционной системы. Так как в большинстве систем объем кода и данных, к которым производится обращение, превышает емкость физической памяти, то она демонстрирует, какой код и какие данные оказываются задействованы в тот или иной момент. Объем памяти влияет на производительность – когда данные или код, нужный процессу или операционной системе, отсутствует в памяти, диспетчер памяти вынужден подгружать его с диска. &lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;Помимо воздействия на производительность, объем физической памяти обуславливает ограничения других ресурсов. К примеру, объем невыгружаемого пула (буферов операционной системы, выделяемых из физической памяти) напрямую зависит от объема физической памяти. Кроме того, характеристики физической памяти определяют предел виртуальной памяти системы, объем которой примерно равен сумме емкости физической памяти и максимального объема всех настроенных файлов подкачки. Наконец, объем физической памяти косвенно сказывается на максимальном количестве процессов. Об этом я подробно расскажу в предстоящей публикации об ограничениях, связанных с процессами и потоками. &lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;&lt;strong&gt;Ограничения памяти в ОС Windows Server&lt;/strong&gt;     &lt;br /&gt;Особенности поддержки физической памяти в ОС Windows продиктованы ограничениями оборудования, условиями лицензирования, характеристиками структур данных операционной системы и вопросами совместимости драйверов. На странице &amp;quot;&lt;a href="http://msdn.microsoft.com/en-us/library/aa366778.aspx" mce_href="http://msdn.microsoft.com/en-us/library/aa366778.aspx"&gt;Ограничения памяти в различных выпусках ОС Windows&lt;/a&gt;&amp;quot; (на английском языке) веб-узла MSDN изложены ограничения памяти, характерные для различных версий Windows и номеров SKU в рамках каждой версии. &lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;Как видите, во всех серверных версиях ОС Windows разным номерам SKU соответствуют разные формы поддержки физической памяти, обусловленные условиями лицензионных соглашений. К примеру, 32-разрядная версия ОС Windows Server 2008 Standard поддерживает лишь 4 ГБ физической памяти, в то время как 32-разрядная версия Windows Server 2008 Datacenter – 64 ГБ. С другой стороны, 64-разрядная версия ОС Windows Server 2008 Standard поддерживает всего 32 ГБ физической памяти, а 64-разрядная версия Windows Server 2008 Datacenter – целых 2 ТБ. Систем с физической памятью объемом 2 ТБ не так уж много – участники рабочей группы по вопросам производительности ОС Windows Server знают пару таких, одна из которых в какой-то момент была собрана в их собственной лаборатории. Вот как выглядит диспетчер задач в такой системе.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/mark_russinovich/WindowsLiveWriter/Windows_1523/clip_image002_2.gif" mce_href="http://blogs.technet.com/blogfiles/mark_russinovich/WindowsLiveWriter/Windows_1523/clip_image002_2.gif"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; border-top: 0px; border-right: 0px" border="0" alt="clip_image002" src="http://blogs.technet.com/blogfiles/mark_russinovich/WindowsLiveWriter/Windows_1523/clip_image002_thumb.gif" width="570" height="455" mce_src="http://blogs.technet.com/blogfiles/mark_russinovich/WindowsLiveWriter/Windows_1523/clip_image002_thumb.gif" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Максимальный для 32-разрядных систем объем памяти – 128 ГБ – поддерживается версией Windows Server 2003 Datacenter Edition. Такое ограничение связано с тем, что в более мощных системах структуры, применяемые диспетчером памяти для отслеживания физической памяти, потребляли бы слишком большую часть пространства виртуальных адресов. Диспетчер памяти отслеживает страницы памяти при помощи массива, называемого базой данных PFN, и в целях оптимизации производительности отображает все содержимое этой базы в виртуальную память. Так как каждая страница памяти представлена структурой данных объемом 28 байт, в системе с физической памятью емкостью 128 ГБ для размещения базы данных PFN потребуется 930 МБ. В 32-разрядных ОС Windows предусмотрено пространство виртуальных адресов объемом 4 ГБ, зависящее от оборудования и по умолчанию распределяемое между текущим процессом пользовательского режима (например, блокнотом) и системой. В таких условиях база данных PFN объемом 980 МБ занимает почти половину из доступных 2 ГБ системной части пространства виртуальных адресов, а значит, на отображение ядра, драйверов устройств, системного кэша и других структур данных системы остается всего 1 ГБ (см. иллюстрацию).&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/mark_russinovich/WindowsLiveWriter/Windows_1523/clip_image002%5B4%5D.gif" mce_href="http://blogs.technet.com/blogfiles/mark_russinovich/WindowsLiveWriter/Windows_1523/clip_image002%5B4%5D.gif"&gt;&lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="clip_image002[4]" src="http://blogs.technet.com/blogfiles/mark_russinovich/WindowsLiveWriter/Windows_1523/clip_image002%5B4%5D_thumb.gif" width="230" height="244" mce_src="http://blogs.technet.com/blogfiles/mark_russinovich/WindowsLiveWriter/Windows_1523/clip_image002%5B4%5D_thumb.gif" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;По той же причине в таблице ограничений объема памяти указаны пониженные лимиты для SKU при загрузке в режиме настройки систем с объемом памяти 4 ГБ (иначе называемом 4GT и включаемом параметрами загрузки /3GB или /USERVA файла Boot.ini и параметром /Set IncreaseUserVa программы Bcdedit). Дело в том, что для этого режима характерна такая схема разделения физической памяти, при которой процессам пользовательского режима достается 3 ГБ, а системе – всего 1 ГБ. В целях повышения производительности в ОС Windows Server 2008 для системных нужд резервируется более значимая доля адресного пространства. Для этого максимальный объем физической памяти, поддерживаемый в 32-разрядных версиях ОС, сокращается до 64 ГБ. &lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;Диспетчер памяти мог бы высвободить память путем выборочного отображения фрагментов базы данных PFN в системные адреса по мере необходимости, однако этот вариант слишком сложен и имеет потенциал снижения производительности, связанного с дополнительными операциями отображения и отмены отображения. Лишь недавно стали появляться системы настолько производительные, чтобы такой вариант можно было рассматривать как реалистичный. Впрочем, так как размер системной части адресного пространства не является ограничением для отображения всей базы данных PFN в 64-разрядных версиях ОС Windows, поддержка большего объема памяти реализована именно в них. &lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;Версия ОС Windows Server 2008 Datacenter поддерживает до 2 ТБ физической памяти. Такое ограничение не связано ни с особенностями реализации, ни с возможностями оборудования – все дело в том, что корпорация Майкрософт не объявляет о поддержке конфигураций, которые мы не в состоянии протестировать. На момент выпуска ОС Windows Server 2008 «рекорд» по объему памяти находился на отметке 2 ТБ – на этом и остановились. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Ограничения памяти в клиентских версиях ОС Windows&lt;/strong&gt;     &lt;br /&gt;64-разрядные клиентские версии ОС Windows поддерживают разные объемы памяти – от 512 МБ в Windows XP Starter до 128 ГБ в Vista Ultimate. В то же время, все 32-разрядные клиентские версии ОС Windows, в том числе Windows Vista, Windows XP и Windows 2000 Professional, поддерживают физическую память в объеме до 4 ГБ. 4 ГБ – это максимальный физический адрес, доступный в стандартном режиме управления памятью x86. Некоторое время назад поддержка памяти в объеме свыше 4 ГБ была бессмысленна – системы с таким объемом памяти, даже серверные, встречались чрезвычайно редко. &lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;К моменту разработки пакета обновления 2 (SP2) для ОС Windows XP появление клиентских систем с объемом памяти свыше 4 ГБ уже прогнозировалось, что заставило разработчиков приступить к интенсивному тестированию Windows XP на подобных системах. Кроме того, в пакете обновления 2 (SP2) для ОС Windows XP была реализована поддержка расширений физических адресов (PAE) по умолчанию для устройств, поддерживающих технологию No Execute, что, во-первых, необходимо для предотвращения исполнения данных (DEP), а во-вторых, обеспечивает возможность поддержки памяти в объеме более 4 ГБ. &lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;В ходе тестирования выяснилось, что многие системы аварийно завершают работу, зависают и отказываются загружаться. Происходит это из-за того, что некоторые драйверы устройств, в особенности аудио- и видеоустройств, которые, в основном, встречаются в клиентских системах, а не в серверах, запрограммированы на работу с физическими адресами в пределах 4 ГБ. Эти драйверы, оказываются, обрубают адреса свыше 4 ГБ, что приводит к повреждению содержимого памяти со всеми вытекающими последствиями. В серверных же системах, которые, как правило, оснащаются менее специфичными устройствами с относительно простыми и надежными драйверами, подобные проблемы обнаружены не были. Выявленные недостатки экосистемы драйверов заставили применительно к клиентским версиям ОС отказаться от работы с памятью в объеме свыше 4 ГБ, несмотря на то, что теоретически её адресация возможна. &lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;&lt;strong&gt;Фактические ограничения памяти в 32-разрядных клиентских системах&lt;/strong&gt;     &lt;br /&gt;Согласно официальным условиям лицензии, в 32-разрядных клиентских версиях ОС допускается установка памяти в объеме до 4 ГБ. Фактически же лимит поддержки объема памяти ниже – кроме того, он зависит от набора микросхем и характеристик подключенных устройств. Дело в том, что в таблицу физических адресов включается не только оперативная память, но и память устройств. При этом для совместимости с 32-разрядными операционными системами, которые не способны обрабатывать адреса свыше 4 ГБ, в системах x86 и x64 память устройств отображается ниже границы адресации 4 ГБ. Предположим, если в системе установлено 4 ГБ оперативной памяти, а окна в память сетевых адаптеров, аудио- и видеоустройств в сумме составляют 500 МБ, то 500 МБ из 4 ГБ оперативной памяти окажутся за границей адресации (см. рисунок).&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/mark_russinovich/WindowsLiveWriter/Windows_1523/clip_image0028.gif" mce_href="http://blogs.technet.com/blogfiles/mark_russinovich/WindowsLiveWriter/Windows_1523/clip_image002%5B8%5D.gif"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; border-top: 0px; border-right: 0px" border="0" alt="clip_image002[8]" src="http://blogs.technet.com/blogfiles/mark_russinovich/WindowsLiveWriter/Windows_1523/clip_image0028_thumb.gif" width="260" height="267" mce_src="http://blogs.technet.com/blogfiles/mark_russinovich/WindowsLiveWriter/Windows_1523/clip_image002%5B8%5D_thumb.gif" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Следовательно, оснащение 32-разрядной системы с клиентской версией ОС Windows памятью объемом 3 ГБ и выше, вполне возможно, не принесет желаемого эффекта. В ОС Windows 2000, Windows XP и Windows Vista RTM с объемом доступной памяти можно ознакомиться в диалоговом окне System Properties (Свойства системы), на странице Performance (Быстродействие) диспетчера задач. В ОС Windows XP и Windows Vista (в том числе с пакетом обновления 1 (SP1)) эти сведения можно также получить с помощью служебных программ Msinfo32 и Winver. С выходом пакета обновления 1 (SP1) для ОС Windows Vista некоторые из этих инструментов стали указывать объем установленной, а не доступной, памяти, о чем сказано в специальной &lt;a href="http://support.microsoft.com/kb/946003/" mce_href="http://support.microsoft.com/kb/946003/"&gt;статье базы знаний Майкрософт&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;Как свидетельствует утилита Msinfo32, при загрузке моего ноутбука под управлением 32-разрядной версии Vista доступно 3,5 ГБ памяти из четырех установленных.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/mark_russinovich/WindowsLiveWriter/Windows_1523/clip_image00210.gif" mce_href="http://blogs.technet.com/blogfiles/mark_russinovich/WindowsLiveWriter/Windows_1523/clip_image002%5B10%5D.gif"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; border-top: 0px; border-right: 0px" border="0" alt="clip_image002[10]" src="http://blogs.technet.com/blogfiles/mark_russinovich/WindowsLiveWriter/Windows_1523/clip_image00210_thumb.gif" width="278" height="63" mce_src="http://blogs.technet.com/blogfiles/mark_russinovich/WindowsLiveWriter/Windows_1523/clip_image002%5B10%5D_thumb.gif" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Схему распределения физической памяти можно узнать с помощью служебной программы &lt;a href="http://www.winsiderss.com/tools/meminfo/meminfo.htm" mce_href="http://www.winsiderss.com/tools/meminfo/meminfo.htm"&gt;Meminfo&lt;/a&gt;, написанной Алексом Ионеску (Alex Ionescu – он, кстати сказать, принимает участие в подготовке пятого издания нашей с &lt;a href="http://www.solsem.com/" mce_href="http://www.solsem.com/"&gt;Дэвидом Соломоном&lt;/a&gt; (David Solomon) книги «&lt;a href="http://technet.microsoft.com/en-us/sysinternals/bb963901.aspx" mce_href="http://technet.microsoft.com/en-us/sysinternals/bb963901.aspx"&gt;Внутреннее устройство Windows&lt;/a&gt;»). Вот как выглядят выходные данные программы Meminfo, запущенной с параметром –r, который позволяет вывести на консоль диапазоны физической памяти.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/mark_russinovich/WindowsLiveWriter/Windows_1523/clip_image00212.gif" mce_href="http://blogs.technet.com/blogfiles/mark_russinovich/WindowsLiveWriter/Windows_1523/clip_image002%5B12%5D.gif"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; border-top: 0px; border-right: 0px" border="0" alt="clip_image002[12]" src="http://blogs.technet.com/blogfiles/mark_russinovich/WindowsLiveWriter/Windows_1523/clip_image00212_thumb.gif" width="554" height="155" mce_src="http://blogs.technet.com/blogfiles/mark_russinovich/WindowsLiveWriter/Windows_1523/clip_image002%5B12%5D_thumb.gif" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Обратите внимание на два разрыва между страницами: от 9F0000 до 100000 и от DFE6D000 до FFFFFFFF (4 ГБ). Характерно, что при загрузке того же компьютера с 64-разрядной версией Vista все 4 ГБ памяти отмечаются как доступные, а 500 МБ ОЗУ, оставшиеся выше отметки 4 ГБ, задействуются следующим образом.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/mark_russinovich/WindowsLiveWriter/Windows_1523/clip_image00214.gif" mce_href="http://blogs.technet.com/blogfiles/mark_russinovich/WindowsLiveWriter/Windows_1523/clip_image002%5B14%5D.gif"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; border-top: 0px; border-right: 0px" border="0" alt="clip_image002[14]" src="http://blogs.technet.com/blogfiles/mark_russinovich/WindowsLiveWriter/Windows_1523/clip_image00214_thumb.gif" width="554" height="141" mce_src="http://blogs.technet.com/blogfiles/mark_russinovich/WindowsLiveWriter/Windows_1523/clip_image002%5B14%5D_thumb.gif" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Так почему же эти разрывы возникают ниже границы 4 ГБ? Ответить на этот вопрос нам поможет диспетчер устройств. Запустите оснастку &amp;quot;devmgmt.msc&amp;quot;, выберите в меню View (Вид) команду Resources by Connection (Ресурсы по подключению) и раскройте узел Memory (Память). На моем ноутбуке основным потребителем отображаемой памяти устройств, что не удивительно, является видеоадаптер, на долю которого приходится 256 МБ в диапазоне E0000000-EFFFFFFF:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/mark_russinovich/WindowsLiveWriter/Windows_1523/clip_image00216.gif" mce_href="http://blogs.technet.com/blogfiles/mark_russinovich/WindowsLiveWriter/Windows_1523/clip_image002%5B16%5D.gif"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; border-top: 0px; border-right: 0px" border="0" alt="clip_image002[16]" src="http://blogs.technet.com/blogfiles/mark_russinovich/WindowsLiveWriter/Windows_1523/clip_image00216_thumb.gif" width="554" height="226" mce_src="http://blogs.technet.com/blogfiles/mark_russinovich/WindowsLiveWriter/Windows_1523/clip_image002%5B16%5D_thumb.gif" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Оставшийся объем распределяется между другими устройствами. Кроме того, согласно консервативной оценке микропрограммы в период загрузки, шина PCI резервирует для устройств дополнительные диапазоны. &lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;Потребление адресов памяти ниже 4 ГБ особенно заметно в мощных игровых системах с высокопроизводительными видеоадаптерами. Я как-то купил в магазине, специализирующемся на игровых компьютерах, систему с 4 ГБ ОЗУ и двумя видеоадаптерами по 1 ГБ каждый. Я не стал специально указывать свои предпочтения по части ОС, предполагая, что установлена 64-разрядная версия Vista. Вопреки моим ожиданиям, выяснилось, что они установили 32-разрядную версию, а значит, операционной системе доступно лишь 2,2 ГБ из установленной памяти. После установки 64-разрядной версии, по данным программы Meminfo, в диапазоне памяти между 8FEF0000 и FFFFFFFF образовался громадный разрыв.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/mark_russinovich/WindowsLiveWriter/Windows_1523/clip_image00218.gif" mce_href="http://blogs.technet.com/blogfiles/mark_russinovich/WindowsLiveWriter/Windows_1523/clip_image002%5B18%5D.gif"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; border-top: 0px; border-right: 0px" border="0" alt="clip_image002[18]" src="http://blogs.technet.com/blogfiles/mark_russinovich/WindowsLiveWriter/Windows_1523/clip_image00218_thumb.gif" width="554" height="143" mce_src="http://blogs.technet.com/blogfiles/mark_russinovich/WindowsLiveWriter/Windows_1523/clip_image002%5B18%5D_thumb.gif" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Диспетчер устройств сообщает о том, что 512 МБ в этом разрыве, составляющем в общей сложности свыше 2 ГБ, отводится видеоадаптерам (по 256 МБ каждому). Кроме того, похоже, микропрограмма зарезервировала дополнительный объем памяти – либо для динамического отображения, либо в силу консервативности оценки.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/mark_russinovich/WindowsLiveWriter/Windows_1523/clip_image00220.gif" mce_href="http://blogs.technet.com/blogfiles/mark_russinovich/WindowsLiveWriter/Windows_1523/clip_image002%5B20%5D.gif"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; border-top: 0px; border-right: 0px" border="0" alt="clip_image002[20]" src="http://blogs.technet.com/blogfiles/mark_russinovich/WindowsLiveWriter/Windows_1523/clip_image00220_thumb.gif" width="554" height="420" mce_src="http://blogs.technet.com/blogfiles/mark_russinovich/WindowsLiveWriter/Windows_1523/clip_image002%5B20%5D_thumb.gif" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Даже если система оснащена всего 2 ГБ физической памяти, может случиться так, что часть её окажется недоступной под управлением 32-разрядной версии Windows. Причиной тому – наборы микросхем, практикующие агрессивное резервирование областей памяти для устройств. На нашем общем семейном компьютере, купленном несколько месяцев назад у крупного изготовителя оборудования, доступно 1,97 ГБ из установленных 2 ГБ физической памяти.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/mark_russinovich/WindowsLiveWriter/Windows_1523/clip_image00222.gif" mce_href="http://blogs.technet.com/blogfiles/mark_russinovich/WindowsLiveWriter/Windows_1523/clip_image002%5B22%5D.gif"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; border-top: 0px; border-right: 0px" border="0" alt="clip_image002[22]" src="http://blogs.technet.com/blogfiles/mark_russinovich/WindowsLiveWriter/Windows_1523/clip_image00222_thumb.gif" width="285" height="65" mce_src="http://blogs.technet.com/blogfiles/mark_russinovich/WindowsLiveWriter/Windows_1523/clip_image002%5B22%5D_thumb.gif" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Диапазон физических адресов от 7E700000 до FFFFFFFF зарезервирован шиной PCI и устройствами. Таким образом, даже теоретически пространство физических адресов не может превышать 7E700000 байт (1,976 ГБ), но поскольку часть этого диапазона резервируется для памяти устройств, Windows сообщает о том, что общий объем памяти составляет 1,97 ГБ. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/mark_russinovich/WindowsLiveWriter/Windows_1523/clip_image00224.gif" mce_href="http://blogs.technet.com/blogfiles/mark_russinovich/WindowsLiveWriter/Windows_1523/clip_image002%5B24%5D.gif"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; border-top: 0px; border-right: 0px" border="0" alt="clip_image002[24]" src="http://blogs.technet.com/blogfiles/mark_russinovich/WindowsLiveWriter/Windows_1523/clip_image00224_thumb.gif" width="443" height="225" mce_src="http://blogs.technet.com/blogfiles/mark_russinovich/WindowsLiveWriter/Windows_1523/clip_image002%5B24%5D_thumb.gif" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Так как теперь для получения сертификата о подписывании драйверов изготовители оборудования должны предоставлять в лаборатории WHQL драйверы как для 32-разрядных, так и для 64-разрядных версий Windows, большинство современных драйверов вполне справляются с физическим адресами свыше 4 ГБ. 32-разрядные версии Windows в силу наличия риска, который очень трудно оценить, будут по-прежнему игнорировать память выше границы 4 ГБ. При этом изготовители оборудования в тех случаях, когда этому ничто не препятствуют, переходят (или, по крайней мере, должны переходить) на 64-разрядные версии.    &lt;br /&gt;Вывод прост: потребление памяти в полном объеме, каким бы существенным он ни был (конечно, в рамках ограничений версии), возможно только в 64-разрядных версиях Windows. При покупке специализированного игрового компьютера обязательно попросите изготовителя оборудования сразу установить 64-разрядную версию операционной системы. &lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;&lt;strong&gt;Когда памяти достаточно?&lt;/strong&gt;     &lt;br /&gt;Вне зависимости от объема установленной в системе памяти возникает вопрос: достаточен ли этот объем? К сожалению, определенного ответа на него нет. Делать какие-то выводы следует на основе регулярного наблюдения за объемом «доступной» памяти системы, особенно если выполнение задач, ставящихся перед компьютером, требует интенсивного потребления памяти. В терминах Windows доступной памятью называется физическая память, не закрепленная за процессом, ядром или драйвером устройства. Очевидно, при необходимости доступная память может быть выделена процессу или системе. Естественно, диспетчер памяти пытается использовать доступную память как можно эффективнее – он организует в ней файловый кэш (список ожидания) и список обнуленных страниц памяти. Кроме того, появившаяся в Windows Vista функция Superfetch проводит упреждающую выборку в список ожидания и приоритезацию данных и кода, отдавая предпочтение тем данным и коду, которые с наибольшей вероятностью будут востребованы в ближайшем будущем. &lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;Дефицит доступной памяти свидетельствует о том, что к физической памяти активно обращаются процессы или система. Если же объем доступной памяти оказывается близким к нулю в течение длительного времени, значит, имеет смысл установить дополнительную память. Существует несколько способов мониторинга доступной памяти. В ОС Windows Vista опосредованно отслеживать объем доступной памяти помогает индикатор Physical Memory Usage History (Хронология использования физической памяти) диспетчера задач. Его значение должно быть постоянно приближено к 100%. Вот как выглядит диспетчер задач в моей настольной системе с объемом памяти 8 ГБ (кстати, не много ли у меня памяти?!).&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/mark_russinovich/WindowsLiveWriter/Windows_1523/clip_image00226.gif" mce_href="http://blogs.technet.com/blogfiles/mark_russinovich/WindowsLiveWriter/Windows_1523/clip_image002%5B26%5D.gif"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; border-top: 0px; border-right: 0px" border="0" alt="clip_image002[26]" src="http://blogs.technet.com/blogfiles/mark_russinovich/WindowsLiveWriter/Windows_1523/clip_image00226_thumb.gif" width="432" height="289" mce_src="http://blogs.technet.com/blogfiles/mark_russinovich/WindowsLiveWriter/Windows_1523/clip_image002%5B26%5D_thumb.gif" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Во всех версиях ОС Windows график доступной памяти можно вывести при помощи системного монитора. Для этого нужно активировать счетчик Available Bytes (Доступно байт) из группы счетчиков Memory performance (Производительность памяти).&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/mark_russinovich/WindowsLiveWriter/Windows_1523/clip_image00228.gif" mce_href="http://blogs.technet.com/blogfiles/mark_russinovich/WindowsLiveWriter/Windows_1523/clip_image002%5B28%5D.gif"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; border-top: 0px; border-right: 0px" border="0" alt="clip_image002[28]" src="http://blogs.technet.com/blogfiles/mark_russinovich/WindowsLiveWriter/Windows_1523/clip_image00228_thumb.gif" width="415" height="319" mce_src="http://blogs.technet.com/blogfiles/mark_russinovich/WindowsLiveWriter/Windows_1523/clip_image002%5B28%5D_thumb.gif" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;С текущей величиной доступной памяти можно ознакомиться в диалоговом окне System Information (System Information) программы &lt;a href="http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx" mce_href="http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx"&gt;Process Explorer&lt;/a&gt; или (в предшествующих Vista версиях ОС Windows) на странице Performance (Быстродействие) диспетчера задач. &lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;&lt;strong&gt;Как преодолеть ограничения      &lt;br /&gt;&lt;/strong&gt;Из трех основных ресурсов – процессора, памяти и дисковой подсистемы – характеристики памяти, как правило, оказывают наибольшее влияние на общую производительность системы. Чем памяти больше, тем лучше. Быть уверенными в том, что весь потенциал установленной памяти реализован, вам помогут 64-разрядные версии ОС Windows. Они, между прочим, предоставляют ряд других преимуществ по части производительности, о которых я расскажу в одном из предстоящих выпусков серии «Преодолевая ограничения Windows», посвященном виртуальной памяти и её ограничениям.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/markrussinovich/archive/2008/07/21/3092070.aspx" target="_blank" mce_href="http://blogs.technet.com/markrussinovich/archive/2008/07/21/3092070.aspx"&gt;Оригинал записи&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3151288" width="1" height="1"&gt;</description></item><item><title>Дело о случайных сбоях Internet Explorer и Windows Media Player</title><link>http://blogs.technet.com/mark_russinovich/archive/2008/06/02/3197988.aspx</link><pubDate>Mon, 02 Jun 2008 14:34:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3197988</guid><dc:creator>abeshkov</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.technet.com/mark_russinovich/comments/3197988.aspx</comments><wfw:commentRss>http://blogs.technet.com/mark_russinovich/commentrss.aspx?PostID=3197988</wfw:commentRss><description>Когда я впервые столкнулся со сбоями Internet Explorer (IE) на моей домашней 64-битной игровой системе, то изначально списал всю вину на повреждение памяти стороннего плагина. Я продолжил свою работу, но через несколько дней я снова столкнулся со сбоем...(&lt;a href="http://blogs.technet.com/mark_russinovich/archive/2008/06/02/3197988.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3197988" width="1" height="1"&gt;</description></item><item><title>Дело о случайных сбоях Internet Explorer и Windows Media Player</title><link>http://blogs.technet.com/mark_russinovich/archive/2008/06/02/3198075.aspx</link><pubDate>Mon, 02 Jun 2008 14:34:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3198075</guid><dc:creator>abeshkov</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.technet.com/mark_russinovich/comments/3198075.aspx</comments><wfw:commentRss>http://blogs.technet.com/mark_russinovich/commentrss.aspx?PostID=3198075</wfw:commentRss><description>Когда я впервые столкнулся со сбоями Internet Explorer (IE) на моей домашней 64-битной игровой системе, то изначально списал всю вину на повреждение памяти стороннего плагина. Я продолжил свою работу, но через несколько дней я снова столкнулся со сбоем...(&lt;a href="http://blogs.technet.com/mark_russinovich/archive/2008/06/02/3198075.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3198075" width="1" height="1"&gt;</description></item><item><title>Дело об ошибке FrontPage</title><link>http://blogs.technet.com/mark_russinovich/archive/2008/05/14/3195242.aspx</link><pubDate>Wed, 14 May 2008 18:15:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3195242</guid><dc:creator>abeshkov</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.technet.com/mark_russinovich/comments/3195242.aspx</comments><wfw:commentRss>http://blogs.technet.com/mark_russinovich/commentrss.aspx?PostID=3195242</wfw:commentRss><description>В очередной статье из серии &amp;quot;Дело об...&amp;quot; от Марка Руссиновича (Mark Russinovich) мы поговорим об ошибке, вызванной некорректным наследованием прав в Windows. Представляем вам первую публикацию из серии &amp;quot;Дело об&amp;quot; от стороннего автора....(&lt;a href="http://blogs.technet.com/mark_russinovich/archive/2008/05/14/3195242.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3195242" width="1" height="1"&gt;</description></item><item><title>Дело о пиках загрузки ЦП системным процессом</title><link>http://blogs.technet.com/mark_russinovich/archive/2008/04/07/3151261.aspx</link><pubDate>Mon, 07 Apr 2008 14:46:00 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3151261</guid><dc:creator>abeshkov</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.technet.com/mark_russinovich/comments/3151261.aspx</comments><wfw:commentRss>http://blogs.technet.com/mark_russinovich/commentrss.aspx?PostID=3151261</wfw:commentRss><description>&lt;p&gt;Как вы уже, наверное, догадались, читая мой блог и другие публикации, мне всегда нужно знать наверняка, что происходит на моих компьютерах. Когда какой-то процесс сильно загружает ЦП, вызывает нехватку оперативной памяти или снижает производительность работы жесткого диска - все это для меня важно. Своей бдительностью я не только добиваюсь нормальной работы своих компьютеров - порой она позволяет мне замечать проблемы с производительностью и надежностью в коде ОС Windows и программ сторонних разработчиков.&lt;/p&gt;  &lt;p&gt;Главным для меня способом контроля за происходящим является автоматический запуск программы &lt;a href="http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx" mce_href="http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx"&gt;Process Explorer&lt;/a&gt; при входе в систему. При настройке каждого нового компьютера я добавляю в папку автозапуска в профиле своей учетной записи ярлык на программу Process Explorer с параметром /t, который свертывает ее окно. В результате работу программы Process Explorer выдает лишь значок на панели задач с графиком уровня загрузки ЦП. Так как мне нужен доступ к детальной информации о системных и моих собственных процессах, при работе в ОС Windows Vista я также указываю параметр /e. Каждый раз при входе в систему он заставляет Windows выводить запрос системы контроля учетных записей, который, в свою очередь, позволяет мне предоставить программе Process Explorer права администратора. &lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;Я постоянно слежу за пиками загрузки ЦП с помощью значка программы Process Explorer на панели задач, где на зеленом и красном графиках указывается загрузка ЦП процессами пользовательского режима (приложениями) и режима ядра (операционной системой и драйверами), соответственно. Благодаря этому за последние несколько месяцев я обнаружил ряд ошибок в приложениях. Сегодня я расскажу, как с помощью программ Process Explorer и Kernrate мне удалось обнаружить проблему с драйвером стороннего разработчика и добиться устранения этой проблемы изготовителем. &lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;Однажды я обнаружил, что работа моего нового портативного компьютера, купленного всего несколько месяцев назад, слегка замедляется. Значок программы Process Explorer на панели задачи подтверждал мои ощущения красными мини-графиками загрузки ЦП. При наведении курсора мыши на этот значок выводится название процесса, который больше всего загружает ЦП. В данном случае им оказался процесс System (системный процесс).&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/mark_russinovich/WindowsLiveWriter/530a57617890_8D4/clip_image002_2.jpg" mce_href="http://blogs.technet.com/blogfiles/mark_russinovich/WindowsLiveWriter/530a57617890_8D4/clip_image002_2.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; border-top: 0px; border-right: 0px" border="0" alt="clip_image002" src="http://blogs.technet.com/blogfiles/mark_russinovich/WindowsLiveWriter/530a57617890_8D4/clip_image002_thumb.jpg" width="129" height="72" mce_src="http://blogs.technet.com/blogfiles/mark_russinovich/WindowsLiveWriter/530a57617890_8D4/clip_image002_thumb.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Первые несколько раз я замечал эту проблему, но она довольно быстро пропадала сама собой, и я не успевал найти ее причину. Тем не менее, в диалоговом окне System Information (Сведения о системе) программы Process Explorer я мог наблюдать, что пики загрузки ЦП были довольно длительными.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/mark_russinovich/WindowsLiveWriter/530a57617890_8D4/clip_image0025.jpg" mce_href="http://blogs.technet.com/blogfiles/mark_russinovich/WindowsLiveWriter/530a57617890_8D4/clip_image002%5B5%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; border-top: 0px; border-right: 0px" border="0" alt="clip_image002[5]" src="http://blogs.technet.com/blogfiles/mark_russinovich/WindowsLiveWriter/530a57617890_8D4/clip_image0025_thumb.jpg" width="554" height="128" mce_src="http://blogs.technet.com/blogfiles/mark_russinovich/WindowsLiveWriter/530a57617890_8D4/clip_image002%5B5%5D_thumb.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Процесс System, в отличие от других процессов, не размещает исполняемые образы. Он предназначен исключительно для размещения потоков операционной системы для нужд диспетчера памяти, диспетчера кэша и других подсистем, а также для размещения потоков драйверов устройств. Все эти потоки исполняются сугубо в режиме ядра, и именно по этой причине загрузка ЦП процессом System на графиках программы Process Explorer выделяется красным цветом. &lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;Я подозревал, что источником проблемы является какой-то драйвер устройства стороннего производителя, поэтому первым делом мне нужно было выяснить, какой именно поток загружает ЦП. Зная это, я смог бы найти виновника. Я неусыпно ждал появления признаков проблемы при переходе из одной сети в другую, а они не заставили себя ждать слишком долго. Потоки, исполняемые в рамках процесса, показаны в программе Process Explorer на странице Threads (Потоки) диалогового окна Process Properties (Свойства процесса), поэтому в следующий же раз, столкнувшись с пиком загрузки ЦП, я дважды щелкнул на процессе System и открыл страницу Threads (Потоки).&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/mark_russinovich/WindowsLiveWriter/530a57617890_8D4/clip_image0027.jpg" mce_href="http://blogs.technet.com/blogfiles/mark_russinovich/WindowsLiveWriter/530a57617890_8D4/clip_image002%5B7%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; border-top: 0px; border-right: 0px" border="0" alt="clip_image002[7]" src="http://blogs.technet.com/blogfiles/mark_russinovich/WindowsLiveWriter/530a57617890_8D4/clip_image0027_thumb.jpg" width="404" height="464" mce_src="http://blogs.technet.com/blogfiles/mark_russinovich/WindowsLiveWriter/530a57617890_8D4/clip_image002%5B7%5D_thumb.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Префикс “ntkrnlpa.exe”, предваряющий начальные адреса потоков, выведенных в верхней части списка потребителей ресурсов ЦП, свидетельствует о том, что они относятся к операционной системе. Ntkrnlpa.exe - это версия ядра, загружаемая в 32-разрядных клиентских системах, поддерживающих технологию защиты No Execute, а также в серверных системах, в которых необходима адресация памяти в объеме свыше 4 ГБ. Поскольку ранее я настроил в программе Process Explorer получение символов, относящихся к образам операционной системы, с общедоступного сервера символов Майкрософт, в списке потоков, помимо прочего, были указаны имена запускавших эти потоки функций. Наиболее активные потоки оказались запущены функцией ExpWorkerThread, что свидетельствовало о том, что это рабочие потоки, действующие от имени системы и драйверов устройств. Вместо того чтобы создавать специальные потоки, потребляющие ресурсы памяти, система и драйверы могут делегировать исполнение задач &lt;a href="http://msdn2.microsoft.com/en-us/library/aa490176.aspx" mce_href="http://msdn2.microsoft.com/en-us/library/aa490176.aspx"&gt;рабочим потокам&lt;/a&gt; операционной системы из общего пула. &lt;/p&gt;  &lt;p&gt;Увы, даже зная, что повышенный уровень потребления ресурсов ЦП связан с рабочими потоками, я не продвинулся в установлении первопричины проблемы. Нужно было знать, какие функции вызывают эти рабочие потоки, поскольку функции эти должны были относиться к драйверу устройства или компоненту ОС, от имени которого они исполнялись. Программа Process Explorer предоставляет возможность разобрать структуру исполнения потока, проанализировав его стек. Стеком называется область памяти, в которой хранятся вызовы функций. Чтобы просмотреть стек того или иного потока в программе Process Explorer, нужно сначала выделить этот поток, а затем либо нажать кнопку Stack (Стек), либо дважды щелкнуть на записи потока. Впрочем, в среде Windows Vista попытка просмотреть стек потоков процесса System приводит к выводу ошибки следующего содержания:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/mark_russinovich/WindowsLiveWriter/530a57617890_8D4/clip_image002%5B9%5D.jpg" mce_href="http://blogs.technet.com/blogfiles/mark_russinovich/WindowsLiveWriter/530a57617890_8D4/clip_image002%5B9%5D.jpg"&gt;&lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="clip_image002[9]" src="http://blogs.technet.com/blogfiles/mark_russinovich/WindowsLiveWriter/530a57617890_8D4/clip_image002%5B9%5D_thumb.jpg" width="233" height="169" mce_src="http://blogs.technet.com/blogfiles/mark_russinovich/WindowsLiveWriter/530a57617890_8D4/clip_image002%5B9%5D_thumb.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Дело в том, что в ОС Windows Vista процесс System относится к числу «защищенных процессов», которые блокируют любой доступ к своим потокам и к занимаемой ими памяти. Защищенные процессы были реализованы с целью подкрепления технологии управления цифровыми правами (DRM). Они позволяют поставщикам видео высокой четкости сохранять ключи шифрования этих материалов так, что вероятность исполнения администратором средств снятия защиты цифровых прав, доступа к процессу и считывания ключей сводится к минимуму. &lt;/p&gt;  &lt;p&gt;Поскольку этот путь ни к чему не привел, мне пришлось искать альтернативные способы выяснить назначение рабочих потоков. Для этого я привлек KernRate - инструмент профилирования с командной строкой, который можно совершенно бесплатно загрузить с веб-узла корпорации Майкрософт. Программа &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=d6e95259-8d9d-4c22-89c4-fad382eddcd1&amp;amp;DisplayLang=en" mce_href="http://www.microsoft.com/downloads/details.aspx?FamilyID=d6e95259-8d9d-4c22-89c4-fad382eddcd1&amp;amp;DisplayLang=en"&gt;KernRate&lt;/a&gt; способна профилировать как процессы пользовательского режима, так и потоки режима ядра. Она основывается на механизме профилирования по образцам, реализованном еще в первом выпуске ОС Windows NT. Суть его сводится к записи уникальных адресов, в которых исполняются команды процессора, при срабатывании интервального таймера профилирования. Когда программе Kernrate поступает команда остановить журнал профилирования, она извлекает данные из ядра, отображает адреса на загруженные драйверы устройств и посредством механизма преобразования символов сообщает имена функций. &lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;Подумав, что если программа Kernrate справится с задачей идентификацией драйвера устройства, символы мне не понадобятся, я запустил ее без аргументов. Несмотря на то, что версии программы Kernrate, официально поддерживающей ОС Windows Vista, на данный момент не существует, в 32-разрядных выпусках Windows Vista работает версия этой программы для ОС Windows XP - Kernrate_i386_XP.exe. Кстати сказать, аналогичные задачи профилирования позволяет решать недавно выпущенная служебная программа &lt;a href="http://www.microsoft.com/whdc/system/sysperf/perftools.mspx" mce_href="http://www.microsoft.com/whdc/system/sysperf/perftools.mspx"&gt;xperf&lt;/a&gt; - она работает в средах Windows Vista и Windows Server 2008, в том числе в 64-разрядных версиях этих ОС. Я запустил профилирование в период заметного увеличения нагрузки на ЦП, а затем, нажав сочетание клавиш CTRL+C, вывел результат на консоль.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/blogfiles/mark_russinovich/WindowsLiveWriter/530a57617890_8D4/clip_image00211.jpg" mce_href="http://blogs.technet.com/blogfiles/mark_russinovich/WindowsLiveWriter/530a57617890_8D4/clip_image002%5B11%5D.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; border-top: 0px; border-right: 0px" border="0" alt="clip_image002[11]" src="http://blogs.technet.com/blogfiles/mark_russinovich/WindowsLiveWriter/530a57617890_8D4/clip_image00211_thumb.jpg" width="554" height="154" mce_src="http://blogs.technet.com/blogfiles/mark_russinovich/WindowsLiveWriter/530a57617890_8D4/clip_image002%5B11%5D_thumb.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;В первой позиции списка были указаны обращения к ядру, а вот на втором месте оказался неопознанный драйвер b57nd60x. Поскольку большинство файлов драйверов находится в каталоге %systemroot%\system32\drivers, можно было открыть этот каталог и просмотреть свойства файла с помощью проводника. Но поскольку передо мной была программа Process Explorer, я решил воспользоваться более оперативным способом узнать производителя и версию драйвера. Для этого я открыл процесс System в представлении библиотек DLL. В этом представлении перечисляются библиотеки DLL и файлы, отображенные на адресное пространство процессов пользовательского режима, но применительно к процессу System выводится список модулей ядра, в том числе драйверов, загруженных в системе. Это представление помогло мне установить, что искомый драйвер относится к сетевой карте моего портативного компьютера. Как выяснилось, производитель драйвера - компания Broadcom, а версия - 10.10.&lt;/p&gt;  &lt;p&gt;Итак, я знал, что повышенное потребление ресурсов ЦП вызывает драйвер производства компании Broadcom. Теперь нужно было узнать, доступна ли его обновленная версия. Я зашел на веб-узел компании Dell, ознакомился со списком доступных файлов для своей системы, но ничего путного не обнаружил. Подозревая, что производитель не знает о проблеме, я решил обратиться непосредственно к нему. С помощью рабочей группы Майкрософт по взаимодействию с экосистемой оборудования я связался с ответственным специалистом компании Broadcom по драйвером, отравил ему по электронной почте подробное описание симптомов и изложил свои выводы. Он переслал мое письмо разработчику драйвера, который, в свою очередь, подтвердил, что причина описанного мною поведения неизвестна, а через несколько дней отправил мне отладочную версию драйвера с открытыми именами символов с тем, чтобы я выполнил профилирование программой Kernrate и, просмотрев журнал, сообщил, какие функции драйвера активны в периоды пиковой загрузки процессора. Через несколько дней проблема проявилась вновь, и я отправил разработчику выходные данные программы kernrate с информацией об активных функциях.&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;По словам разработчика, судя по предоставленной мною трассировке, драйвер недостаточно эффективно взаимодействовал с шиной PCIe при обработке определенных запросов, причем проблема, по всей видимости, усугубилась в условиях специфической конфигурации оборудования. Он предоставил мне для испытаний новый драйвер, и по прошествии нескольких недель подробного мониторинга я сообщил ему, что проблема, по всей видимости, решена. Обновленный драйвер пока что не опубликован на веб-узле службы поддержки компании Dell, но я полагаю, что это случится в ближайшем будущем. Так мне удалось раскрыть очередное дело, на этот раз с помощью программ Process Explorer и Kernrate, а также отзывчивого разработчика драйверов из компании Broadcom.&lt;/p&gt;  &lt;p&gt;Если вам нравятся записи в моем блоге, посвященные устранению неполадок, рекомендую ознакомиться с веб-трансляцией моего выступления на конференции TechEd/ITforum из серии «&lt;a href="http://www.microsoft.com/emea/spotlight/sessionh.aspx?videoid=722" mce_href="http://www.microsoft.com/emea/spotlight/sessionh.aspx?videoid=722"&gt;Дело о необъяснимом&lt;/a&gt;». На протяжении 75-минутной трансляции я привожу примеры устранения неполадок из своего опыта, в том числе пример, который рассмотрен в сегодняшней записи, и многие другие, среди которых и те, которые я еще не описывал. В завершающей части своего сообщения я обращаюсь к аудитории с предложением отправлять мне снимки экрана, журналы и описания успешных случаев устранения неполадок, обещая взамен отправить каждому автору экземпляр своей книги «&lt;a href="http://technet.microsoft.com/en-us/sysinternals/bb963901.aspx" mce_href="http://technet.microsoft.com/en-us/sysinternals/bb963901.aspx"&gt;Внутреннее устройство Windows&lt;/a&gt;» с автографом. Предложение еще в силе, так что если у вас есть успешный опыт расследований, зафиксируйте его документально, пришлите мне, и получите бесплатную книгу. Я уже получил немало разного рода историй, и в следующей записи поделюсь с вами одной из них, которую мне прислал один из зрителей веб-трансляции. При непосредственной помощи программы Process Monitor ему удалось решить проблему, связанную с веб-сервером. &lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;Наконец, если вы хотите увидеть мои выступления вживую, приезжайте на конференцию &lt;a href="http://www.microsoft.com/events/teched2008/itpro/default.mspx" mce_href="http://www.microsoft.com/events/teched2008/itpro/default.mspx"&gt;TechEd US/IT Pro&lt;/a&gt;, которая пройдет в июне в Орландо. Там я буду выступать с докладами из серий «Дело о необъяснимом», «Изменения в ядре ОС Windows Server 2008» и «Границы системы безопасности Windows». Надеюсь, увидимся!&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.technet.com/markrussinovich/archive/2008/04/07/3031251.aspx" target="_blank" mce_href="http://blogs.technet.com/markrussinovich/archive/2008/04/07/3031251.aspx"&gt; Оригинал записи&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3151261" width="1" height="1"&gt;</description></item></channel></rss>