Читаем без скачивания Недокументированные и малоизвестные возможности Windows XP - Роман Клименко
Шрифт:
Интервал:
Закладка:
Чтобы определить порог выдачи сообщений о нехватке места, необходимо воспользоваться DWORD-параметром DiskSpaceThreshold, расположенным в ветви реестра HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServiceslanmanserverparameters. Значение этого параметра определяет процент занимаемого на диске места, преодоление которого станет стартовым моментом в выдаче сообщений о нехватке места. Следовательно, в шестнадцатиричной системе данный параметр может принимать значения в диапазоне от 0 до 64. По умолчанию не существует.
Можно вообще запретить выдачу сообщений о нехватке места. Для этого применяется DWORD-параметр NoLowDiskSpaceChecks, расположенный в ветви реестра HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionpoliciesExplorer. Если значение этого параметра равно 1, то выдача сообщений о нехватке места на диске будет прекращена. По умолчанию не существует.
Другие настройки
К другим настройкам операционной системы можно отнести настройки автоматического завершения работы программ и служб при завершении работы компьютера, выгрузки библиотек при завершении работы программ, а также некоторые другие настройки, которые будут рассмотрены.
Автоматическое завершение программ при выключении компьютера
Перед завершением работы компьютера операционная система дает всем программам и службам, запущенным в данный момент, приказ на сохранение своих данных и завершение работы. После этого операционная система ожидает некоторое время, пока не будут завершены все программы и службы. Если в течение этого времени какая-то программа или служба не завершила свою работу, эта программа или служба считается зависшей. По умолчанию операционная система не пытается автоматически завершить работу зависшего процесса. Вместо этого она выводит для пользователя диалог, в котором говорится, что определенная программа или служба не отвечает, и пользователю задается вопрос, что же необходимо делать дальше — либо в принудительном порядке завершить работу зависшей службы или программы, либо подождать некоторое время, пока она сама завершит свою работу.
Если данный диалог выводится очень редко, то с ним еще можно смириться. Но если он выводится практически при каждом завершении работы системы? Тогда реестр Windows позволяет задать для завершения работы системы режим автоматического завершения работы зависших программ. В этом случае, если какая-то программа или служба не отвечает в течение 20 секунд, которые будут даваться на завершение работы процессов, то работа зависшей программы будет завершаться автоматически. При этом следует учитывать, что, поскольку выполняется принудительное завершение работы процесса, существует вероятность, что все данные, которыми в это время оперировал зависший процесс, будут утеряны.
Чтобы заставить операционную систему при выходе автоматически завершать работу процессов, которые не завершили свою работу в течение определенного времени (по умолчанию 20 секунд), необходимо присвоить параметру строкового типа AutoEndTasks значение 1. Он расположен в ветви реестра HKEY_CURRENT_USERControl PanelDesktop.
Если значение параметра AutoEndTasks равно 1, то можно определить значение еще нескольких параметров, которые влияют на процесс автоматического завершения работы программ и служб. К ним можно отнести следующие параметры строкового типа.
■ HungAppTimeout — определяет интервал времени (в миллисекундах), в течение которого программа должна ответить на запрос системы. Если в течение этого времени программа не ответила на запрос, то она считается зависшей. Значение не используется при завершении работы компьютера — параметр предназначен для определения зависших программ в процессе работы пользователя в системе. При этом система не предпринимает никаких действий по завершению работы зависшей программы, даже если значение параметра AutoEndTasks равно 1.
Параметр расположен в ветви реестра HKEY_CURRENT_USERControl PanelDesktop. По умолчанию его значение равно 5000, что соответствует интервалу ожидания ответа, равному 5 секунд. В принципе, значение данного параметра можно уменьшить до 2000, что соответствует 2 секундам. Хотя никакой функциональной разницы от этого изменения не будет — просто на три секунды раньше программа станет считаться зависшей. При этом если программа все-таки ответит на запрос системы, то она опять станет считаться работающей.
■ WaitToKillAppTimeout — указывает интервал времени (в миллисекундах), в течение которого программа должна закончить свою работу при завершении работы операционной системы. Если программа не завершит свою работу в течение указанного интервала времени, то она будет завершена автоматически. При этом все несохранённые данные будут утеряны.
Параметр расположен в ветви реестра HKEY_CURRENT_USERControl PanelDesktop. По умолчанию его значение равно 20000, что соответствует интервалу ожидания ответа, равному 20 секунд. Этого интервала с избытком хватает на завершение работы программ при завершении работы операционной системы. Более того, если во время завершения работы операционной системы довольно редко зависают программы, то значение параметра WaitToKillAppTimeout можно уменьшить до 5000 — интервала в 5 секунд, как правило, также всегда хватает для корректного завершения работы программ.
■ WaitToKillServiceTimeout — расположен в ветви системного реестра HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControl. Его значение определяет интервал времени (в миллисекундах) в течение которого служба должна закончить свою работу при завершении работы операционной системы. По умолчанию значение этого параметра равно 20000. Этого также с избытком хватает для завершения работы служб, но можно присвоить этому параметру значение, равное, например, 7 000. Ниже этого значения лучше не опускаться, ведь, как часто бывает, службы оперируют информацией, критичной для корректной работы операционной системы (тем более, большая часть служб запущена с правами системы, то есть может изменять значения многих ветвей реестра), некорректная запись которой может привести к повреждению реестра.
Выгрузка библиотек при выходе из программы
По умолчанию система при завершении работы программы оставляет в памяти ее библиотеки на случай, если через некоторое время она снова будет запущена. С одной стороны, плюс этого метода очевиден — следующий запуск будет выполнен быстрее. Но, с другой стороны, очевиден и минус этого метода — библиотеки программы занимают место в оперативной памяти, которого иногда и так катастрофически не хватает.
Настройками выгрузки библиотек программ руководит параметр DWORD-типа AlwaysUnloadDll, расположенный в ветви реестра HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionExplorer. По умолчанию значение этого параметра равно 0 — это говорит о том, что библиотеки не будут выгружаться вместе с программой. Если же необходимо выгружать библиотеки, то следует присвоить этому параметру значение 1.
Функция упреждающей выборки
Одним из нововведений операционной системы Windows XP стала возможность упреждающей выборки (prefetching) часто используемых программ. Иными словами, при первом запуске программы (и при запуске операционной системы) части ее кода копируются в специальную папку (%systemroot%prefetch), а при следующих запусках программы эти части сразу берутся из папки, тем самым ускоряя запуск программы. Эта возможность включена по умолчанию.
Настройки упреждающей выборки расположены в ветви системного реестра Windows HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerMemory ManagementPrefetchParameters. При этом параметром, управляющим работой функции упреждающей выборки, является DWORD-параметр EnablePrefetcher. Он может содержать следующие значения.
■ 0 — полностью отключить механизм упреждающей выборки. Как правило, данный механизм действительно повышает загрузку программ, поэтому отключать его не стоит.
■ 1 — задействовать только возможность упреждающей выборки запускаемых приложений. При этом возможность упреждающего чтения при запуске компьютера использоваться не будет — как правило, эта возможность понижает скорость загрузки компьютера, поэтому, если критерий времени загрузки компьютера важен, следует использовать именно это значение параметра.
■ 2 — задействовать только возможность упреждающей выборки при запуске компьютера. Возможность упреждающей выборки запускаемых приложений использоваться не будет.
■ 3 — задействовать обе возможности. Это значение присвоено по умолчанию.
Настройки поведения при крахе системы или программы
При крахе операционной системы или программы (под крахом понимается ошибка, после появления которой работа программы или системы аварийно останавливается) задействуется сразу несколько механизмов операционной системы Windows XP.
К ним можно отнести запись ошибки в журнал событий (eventvwr.msc), попытку выполнения отладки программы, отправку сведений об ошибке корпорации Microsoft, создание дампа памяти, если произошел крах операционной системы.