Работая в среде Windows, мы зачастую не задумываемся о скрытых в ней возможностях. Попробуем разобраться в некоторых из них, чтобы оптимизировать работу Windows 9х/Ме, причем отдельные подходы пригодятся также для Windows NT и XP. Этот материал - результат четырехлетнего изучения различных публикаций в Интернете, журналах, книгах, а кроме того, собственной практики. Кстати, предупреждаю: перед началом любых экспериментов сделайте резервное копирование всех важных файлов.

Оптимизация Msdos.sys

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

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

[Options]

BootDelay=0 (указывает время задержки после выдачи сообщения Starting Windows. Не поддерживается в Windows 98);

DisableLog=1 (сообщает, что не требуется создавать загрузочный журнал);

Logo=0 (говорит о том, что не нужно отображать эмблему Windows);

Network=0 (1) (свидетельствует об отсутствии или наличии сети - ускоряет процесс загрузки);

SystemReg=0 (указывает, что при загрузке не сканируется Реестр);

DblSpace=0 (предупреждает, что не используется система сжатия);

DrvSpace=0

Оптимизация Config.sys и Autoexec.bat

Config.sys

Далее перечислены параметры и их значения, влияющие на производительность системы.

SWITCHES=/F (указывает о пропуске при загрузке паузы в 2 с);

ACCDATE= C- F- (применяется для установки в системе имен дисковых накопителей, не использующих работу с датами последнего обращения к файлам; это несколько повышает быстродействие файловых операций, но затрудняет функционирование отдельных программ сортировки файлов на диске по датам последнего доступа);

DEVICE=C:WINDOWSHIMEM. SYS /TESTMEM:OFF /Q (параметр TESTMEM:OFF запрещает при загрузке тестировать память, а параметр /Q не позволяет выводить сообщения о ходе загрузки);

DEVICE=C:WINDOWSEMM386.EXE RAM A=64 H=128 D=256 AUTO NOTR (параметр NOTR велит драйверу EMM386 не производить поиск адаптера Token Ring Network; D=256 задает объем буфера прямого обмена с памятью равным 256 Кбайт);

BUFFERSHIGH=65,0 /x (требуется дополнительное кэширование, поскольку в среде DOS работа с диском FAT32 происходит заметно медленнее, чем в Windows);

STACKSHIGH=9,256 (указаны число и величина стековых областей; иногда для ускорения загрузки предлагается установить 0,0).

Autoexec.bat

Основные команды в этом файле обеспечивают поддержку в DOS русского языка и запуск драйверов различных устройств. Две его строки указывают приложениям место для размещения временных файлов:

SET TMP=
SET TEMP=

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

Оптимизация стандартных средств

Как правило, в данном случае рекомендуется задать минимальный размер файла подкачки и провести дефрагментацию жесткого диска, а также включить опцию DMA для жестких дисков, дисководов CD-ROM, DVD-ROM и CD-RW.

Оптимизация System.ini

В секции [386Enh] необходимо сделать следующие установки:

PageBuffers=32 (для повышения скорости работы с файлом подкачки постоянного размера);

ConservativeSwapfileUsage=1 (для запрета системе Windows 98/Me использовать без особой необходимости файл подкачки).

Важное значение имеет и группа таких параметров, как

[vcache]
minfilecache=
maxfilecache=
chunksize=512

Если в файле System.ini не окажется этой секции, то создайте ее и задайте указанные параметры.

Последние определяют размер области памяти, отводимой под дисковый кэш, или, иначе говоря, под область быстрого доступа. В операционной системе сначала данные считываются и записываются в область кэша и уже затем «сбрасываются» на диск. При выборе значений перечисленных параметров из секции [vcache] руководствуйтесь объемом установленной оперативной памяти, скоростью жесткого диска и требованиями вашей работы. Можно упростить эту процедуру, применив программу Cashemen 3.60.

Оптимизация Системного реестра

Управление приоритетами ЦП

Для Windows 9x/Me. С помощью управления приоритетом задач можно добиться более эффективного использования ЦП. Работа любого приложения Windows зависит от параметра CPUPriority. Так, если задать CPUPriority=0, все активные приложения получат дополнительные циклы CPU (приоритет реального времени);

CPUPriority=1 - все загруженные приложения (активные и фоновые) получают несколько больше циклов процессора, чем загружаемые (Win32 TSRs/DLL/Runtimes/APIs);

CPUPriority=2 - все загруженные приложения (активные и фоновые) имеют гораздо больше циклов процессора, чем загружаемые (Win32 TSRs/DLL/Runtimes/ APIs);

CPUPriority=3 - все приложения, а также TSRs/DLL/Runtimes/

APIs делят одни и те же циклы CPU (данное значение устанавливается по умолчанию).

Итак, запустите Редактор реестра Regedit или его аналог. Далее откройте раздел HKEY_LOCAL_

MACHINESystemCurrentControl SetServicesVxDBIOS. В правой панели создайте новый параметр DWORD, назовите CPUPriority и задайте его значение, дважды щелкнув на нем мышью.

Есть еще несколько параметров, влияющих на распределение приоритетов. Поэтому там же, где был организован CPUPriority (HKEY_ LOCAL_MACHINESystemCurrent ControlSetServicesVxDBIOS), создайте еще три параметра DWORD и присвойте им значения:

PCIConcur = 1 (разрешено);
FastDRAM = 1 (разрешено);
AGPConcur = 1 (разрешено) 
- при установленной AGP-плате.

Для Windows 9х/Me/NT4-5. С помощью параметра Priority Control можно управлять перераспределением приоритетов между активными и фоновыми задачами. Запустите Regedit и войдите в HKEY_LOCAL_ MACHINESystem CurrentControlSetControlPriorityControl. (Если раздела PriorityControl нет, то создайте его: щелкните правой кнопкой мыши на разделе Control, выберите пункты «Создать ? Раздел» и дайте название.) В правой панели организуйте параметр DWORD - Win32PrioritySeparation - и придайте ему одно из следующих значений:

0 - активные и фоновые задачи имеют одинаковые приоритеты;

1 - приоритет активных приложений больше, чем у фоновых;

2 - активные приложения имеют гораздо больший приоритет, чем фоновые.

Оптимизация работы файловой системы

Отложенная запись и время задержки

Чтобы убедиться, что отложенная запись разрешена, нужно войти в Панель управления, щелкнуть на значке «Система», выбрать закладку «Быстродействие», нажать кнопку «Файловая система» и отметить закладку «Съемный диск». Кроме того, должна быть включена функция «Разрешить буферизацию записи для всех съемных дисков». Можно запретить кэширование записи (отложенную запись), выключив эту функцию, но тогда понизится производительность системы.

В Windows 98 SE и Me можно увеличить время задержки данных в кэше перед сбросом их на диск. Данный прием повышает производительность системы, однако при этом возрастает риск потерять данные при неожиданных сбоях, а также из-за того, что некоторые современные контроллеры жестких дисков со встроенным кэшем забывают сбросить информацию на жесткий диск по завершении работы ОС. (Компания Microsoft для исправления данной ошибки выпустила соответствующие «заплатки»: http://support.microsoft.com/ support/ kb/ articles/ q260/ 0/ 67.asp и http://support.microsoft.com/ support/ kb/ articles/ q273/ 0/ 17.asp.)

Итак, вы можете изменить время задержки данных в кэше таким образом. Запустите Редактор реестра. Перейдите в раздел HKEY_ LOCAL_ MACHINESOFTWAREMicrosoftWindowsCurrentVersion. В правой панели создайте новый параметр DWORD и присвойте ему имя CacheWriteDelay. Измените по своему усмотрению данный параметр, дважды щелкнув на его имени и вписав в появившееся поле «Значение» число в секундах, умноженное на тысячу. Так, если задержка записи равна 2 с (рекомендуемое значение), то в поле «Значение» запишите 2000, в секции «Система исчисления» включите опцию «Десятичная» и нажмите ОК - должна появиться запись CacheWriteDelay 0х000007d0 (2000).

Запоминание файлов и каталогов

При работе с файлами в среде Windows ОС сохраняет их имена и размещение. Если вы выберете из списка «Типичная роль этого компьютера» («Панель управления ? Система ? Быстродействие ? Файловая система ? Жесткие диски») соответствующий режим (шаблон) работы, то можете указать числа каталогов и имен, которые вам нужно запомнить (см. табл. 1).

Создание собственного шаблона

Запустите Редактор реестра и войдите в раздел HKEY_LOCAL_ MACHINESOFTWAREMicrosoftWindowsCurrentVersion

FS Templates. Создайте новый раздел, щелкнув правой кнопкой мыши на пункте FS Templates и присвойте ему любое имя, например The Best или For Quake. Теперь перейдем к этому новому шаблону, щелкнув мышью на его названии. Рекомендуется присвоить первому параметру правой панели «Значение по умолчанию» имя полученного шаблона. Щелкните правой кнопкой мыши на правой панели и укажите пункт «Двоичный параметр», чтобы создать параметры NameCache и Path Cache для кэширования имен и путей. Если, например, вам требуется запомнить 1024 имени и 64 каталога, что в шестнадцатеричной системе будет составлять 400h и 40h соответственно, то с учетом обратного порядка хранения байтов получите:

NameCache=00 04 00 00
PathCache=40 00 00 00

Теперь внесите эти параметры с их значениями в раздел HKEY_

LOCAL_MACHINE System CurrentControlSet control FileSystem.

Задание размера блока данных для упреждающего чтения

Затем для настройки работы файловой системы задайте число считываемых байтов при последовательных обращениях к данным. Смысл упреждающего чтения - обработка одного имеющегося в памяти блока информации одновременно с запросом и считыванием другого, следующего. Чем больше будет значение параметра упреждающего чтения, тем выше станет производительность системы при последовательном доступе. Теоретически его можно задать таким, что за один раз в память поместится блок данных величиной, например, около 1 Мбайт. Однако в действительности, если при этом одновременно к диску будут обращаться несколько приложений, то производительность ПК даже снизится. По умолчанию максимальная величина блока данных для упреждающего чтения равна 64 Кбайт - «Панель управления ? Система ? Быстродействие ? Файловая система ? Жесткие диски ? Оптимизация упреждающего чтения». Чтобы изменить это значение, проделайте следующее. Запустите Редактор реестра и перейдите к разделу HKEY_LOCAL_ MACHINESystemCurrentControlSetControlFileSystem. Если в правой панели отсутствует двоичный параметр, то создайте его и назовите ReadAheadThreshold. Затем измените значение. Обратите внимание на то, что размер указывается в байтах, и не забудьте про обратный порядок записи разрядов. Например, значение блока данных для упреждающего чтения составляет 96 Кбайт, что равно 98 304 байт, а в шестнадцатеричном виде - 00 01 80 00h. В обратной последовательности: это будет 00 80 01 00. Сначала вводите 00, затем 01 и т. д.

Задание размера свободной области дискового пространства при записи данных на диск

На производительность файловой системы влияет размер не только считываемого блока данных, но и записываемого. По умолчанию Windows сбрасывает данные в первый попавшийся свободный участок величиной 512 Кбайт. Затем происходит обращение к файловой системе о выделении следующих 512 Кбайт и т. д. Сразу видно, что, во-первых, возникает предпосылка для фрагментации, а во-вторых, тратится время на запрос и поиск пространства. Поэтому рекомендуется увеличить не менее чем вдвое размер свободного пространства, запрашиваемого Windows для записи. В этом случае прирост производительности будет заметнее при работе с файлами большого объема - графическими с высоким разрешением. Размер свободного пространства лучше выбирать в интервале 1024-4096 Кбайт с учетом объема жесткого диска.

Чтобы выполнить такую оптимизацию, сделайте следующее. Запустите Редактор реестра и перейдите к разделу HKEY_LOCAL_MACHINE SystemCurrentControlSetControl

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

Оптимизация работы с дисководом CD-ROM

При работе с компакт-дисками Windows использует также механизмы кэширования и упреждающего чтения. Однако ОС позволяет установить пользователю величину кэш-памяти не более 1238 Кбайт («Панель управления ? Система ? Быстродействие ? Файловая система ? Компакт-диски ? Оптимизация доступа»), а оптимизацию скорости упреждающего чтения - задавать для 8-скоростных дисководов CD-ROM. Есть способ обойти эти ограничения. Откройте раздел Системного реестра HKEY_ LOCAL_MACHINESystemCurrent-ControlSetcontrolFileSystem

CDFS. Учтите, что значение параметра DWORD CacheSize задает размер, отводимый под кэш-память. Величину памяти в килобайтах, которую вы хотите выделить под кэш, разделите на два и результат занесите в Реестр. Значение параметра DWORD Prefetch определяет величину блока информации для упреждающего чтения с дисководов (табл. 2).

Изменение времени принудительного завершения приложений

Когда вы хотите прекратить выполнение какого-либо приложения, то нажимаете комбинацию клавиш ++. Система Windows перед «снятием» задачи выделяет ей некоторое время на закрытие. Величиной этого интервала времени можно управлять. Откройте Редактор реестра и перейдите к разделу HKEY_CURRENT_USER ControlPanelDesktop. Создайте, как было описано выше, два новых строковых параметра: HungAppTimeout и WaitToKillAppTimeout. Первый параметр указывает, сколько времени (в миллисекундах) операционная система даст приложению при попытке «закрыть» его комбинацией клавиш ++. По умолчанию это значение составляет 5000 мс. Второй параметр - промежуток времени, выделенный приложению на самостоятельное завершение по окончании работы с ОС (выключение питания или перезагрузка). По умолчанию он составляет 20 000 мс. Как производятся установка или изменение значений HungAppTimeout и WaitToKillAppTimeout, уже было рассказано. Рекомендуется установить значение HungAppTimeout равным 1000 мс, а WaitToKillAppTimeout - 5000 мс.

Ускорение завершения работы системы

Наверняка многие пользователи по завершении работы с Windows сталкивались с сообщением о том, что какое-то приложение еще выполняется и сначала нужно закрыть его, а уже затем снова выходить из ОС. Подобная ситуация возникает тогда, когда программа не может корректно обработать сообщение о завершении функционирования, присланное ей Windows, как и всем другим запущенным приложениям, при прекращении работы ОС. Оказывается, в Реестре существует параметр, значение которого влияет на поведение Windows в подобной ситуации. Чтобы изменить его, запустите Редактор реестра и перейдите к разделу HKEY_CURRENT_USERControl Panel Desktop. Создайте (если его не существует) новый строковый (String) параметр и назовите его AutoEndTasks. Если присвоить ему значение «0» (а также в случае отсутствия параметра AutoEndTasks), то завершение подобных приложений переложится на пользователя, если «1» - то ОС будет сообщено о принудительном закрытии приложений, не способных самостоятельно закончить работу при «выходе» из Windows.


Обновления и «заплатки» Windows 98 SE

Оказалось, что в компоненте WebTV (не входит в русскоязычную версию Windows 98) ОС Windows 98, 98 SE и Ме имеется «дыра», и проникший через нее взломщик может разрушить систему. Проблема скрывается в файле Annclist.exe. Все подробности об этой ошибке можно узнать на сайте Microsoft: http://www.microsoft.com/ technet/ security/ bulletin/ ms00-074.asp. Если же вас не интересуют тонкости, то просто загрузите «заплатку» с адреса http://download.microsoft.com/ download/ win98SE/ Update/ 12278/ W98/ EN-US/ 274113USA8.EXE

* * *

Файл VIP.386, отвечающий за разбиение и сборку IP-пакета, содержит ошибку. Находясь в сети может возникнуть ситуация, когда полностью прекратится какая-либо работа. Подробности - http://www.microsoft.com/ technet/ security/ bulletin/ ms00-029.asp, а «заплатка» - http://download.microsoft.com/ download/ win98/ update/ 8070/ w98/ EN-US/ 259728USA8.EXE.

* * *

Присутствует также ошибка и в работе NMPI (Name Management Protocol on IPX). Используя NMPI, компьютер при обращении к другим ПК определяет имена. Ошибка содержится в NWLINK.VXD и VSERVER.VXD. Подробности - http://www.microsoft.com/ technet/ security/ bulletin/ ms00-073.asp; «заплатка» - http://download.microsoft.com/ download/ win98/ Update/ 11974/ W98/ EN-US/ 273727USA8.EXE.

Эти файлы по умолчанию в Windows 98, 98 SE не устанавливаются, а вводятся при инсталляции протокола Microsoft IPX/SPX.

* * *

Можно столкнуться и с ошибкой HyperTerminal Buffer Overflow. Коммуникационное приложение HyperTerminal автоматически устанавливается при инсталляции Windows 98, 98 SE и Me. Оно содержит два неконтролируемых буфера. Оказалось, что используя эту оплошность разработчиков, удаленный пользователь может запустить на вашей машине любой код. Ошибка содержится в HTICONS.DLL,HYPERTRM.DLL + HYPERTRM.EXE. Подробности - http://www.microsoft.com/ technet/ security/ bulletin/ ms00-079.asp; исправление - http://download.microsoft.com/ download/ win98/ Update/ 12395/ W98/ EN-US/ 274548USA8.EXE

* * *

Как выяснилось, любая программа, применяющая библиотеки RICHED20.DLL, RICHED32.DLL и USP10.DLL, из-за допущенных в них ошибок может работать некорректно, при определенных условиях даже вызвать ошибку доступа к памяти. Подробности - http://support.microsoft.com/ support/ kb/ articles/ q249/ 9/ 73.asp; «заплатка» - http://download.microsoft.com/ download/ win98SE/ Update/ 5072/ W98/ EN-US/ 249973USA8.exe.

Приведенные файлы входят в дистрибутив ОС Windows, но некоторые поставщики ПО включают в свои продукты и сопутствующие библиотеки. Поэтому может оказаться, что в системе уже установлены обновленные версии RICHED20.DLL, RICHED32.DLL и USP10.DLL.

* * *

По завершении работы Windows 98 SE вы можете столкнуться со следующими ситуациями. Когда вы нажмете кнопку «Пуск», выберете пункт «Завершение работы», а затем укажете «Выключить компьютер" и далее OK, то ПК «повиснет" при сообщении «Идет подготовка к выключению питания».

Если же вы укажете «Перезагрузить компьютер в режиме MS-DOS», то ПК «зависнет» на сером фоне. А когда вы выполните все перечисленные действия с выключенной опцией «Запретить быстрое завершение работы» («Пуск ? Программы ? Стандартные ? Служебные ? Сведения о системе ? Сервис ? Программа настройки системы ? Дополнительно»), то произойдет перезагрузка ПК.

Подобные проблемы могут быть вызваны следующими файлами: APMBATT.SYS, CONFIGMG.VXD, MSCONFIG.EXE, PCI.VXD, TSHOOT98.CHM и VPOWERD.VXD. Подробности - http://support.microsoft.com/ support/ kb/ articles/ q239/ 8/ 87.asp; «заплатка» - http://www.microsoft.com/ windows/ downloads/ bin/ w98/ 4756US8.EXE (4756RU8.EXE).

* * *

Если в системе существуют сетевые диски, то при выключении питания ПК можно столкнуться с ee «зависанием». Причем чем больше сетевых дисков (порог - восемь), тем выше такая вероятность. И отвечают за это файлы USER32.DLL и USER.EXE. Подробности - http://support.microsoft.com/ support/ kb/ articles/ q260/ 0/ 67.asp; «заплатка» - http://download.microsoft.com/ download/ win98SE/ Update/ 7602/ W98/ EN-US/ 260067USA8.EXE (260067RUS8.EXE).

* * *

Вы, возможно, уже заметили, что программа FDISK.EXE в Windows 98, 98 SE работает некорректно с жесткими дисками объемом более 64 Гбайт. Подробности - http://support.microsoft.com/ support/ kb/ articles/ q263/ 0/ 44.asp; исправление - http://download.microsoft.com/ download/ Win98/ Update/ 8266R/ W98/ EN-US/ 263044USA8.EXE.

* * *

Для корректной работы программы ScanDisk с жесткими дисками размером свыше 32 Гбайт в системах Windows 98, 98 SE необходимо «исправить» файл ESDI_506.PDR Fix. Подробности - http://support.microsoft.com/ support/ kb/ articles/ q243/ 4/ 50.asp; «заплатка» - http://download.microsoft.com/ download/ win98SE/ Update/ 5638-6151/ W98/ EN-US/ 243450USA8.EXE.

* * *

Если у компьютеров с набором микросхем VIA в программе установки BIOS отключить второй канал IDE, то при работе в среде Windows 98, 98 SE могут возникнуть следующие затруднения. В «Диспетчере устройств» («Пуск ? Настройка ? Панель управления ? Система ? Устройства») контроллер жестких дисков будет показан как запрещенный или с желтым значком. Также возможны конфликты и с назначением прерываний. Подробности - http://support.microsoft.com/ support/ kb/ articles/ q245/ 6/ 82.asp; «заплатка» - http://download.microsoft.com/ download/ in98SE/ ideupd/ 1/ W98/ EN-US/ 245682US8.EXE.

* * *

Даже при корректном завершении работы Windows иногда самопроизвольно может запускаться утилита проверки диска ScanDisk, что вызвано работой менеджера IFSMGR.VXD (Instal File System MаnаGeR). Подробности - http://support.microsoft.com/ support/ kb/ articles/ q273/ 0/ 17.asp; «заплатка» - http://download.microsoft.com/ download/ win98SE/ Update/ 11956/ W98/ EN-US/ 273017USA8.EXE (273017RUS8.EXE).

* * *

В списке рекомендованных обновлений, доступном на сайте http://www.microsoft.com/ windows98/ downloads/ corporate.asp, рекомендуется к загрузке приведенное по адресу http://download.microsoft.com/ download/ win98SE/ Update/ 2944-2/ W98/ EN-US/ 242975USA8.EXE (242975RUS8.EXE). Там содержатся исправления для файлов USER32.DLL, SYSTRAY.EXE, USER.EXE, 1394BUS.SYS, OHCI1394.SYS, SBP2PORT.SYS, DISKTSD.VXD и IOS.VXD.