Главная страница

Фигурнов В.Э. IBM PC для пользователя. Книга содержит подробное и доступное для начинающих описание возмож


Скачать 5.4 Mb.
НазваниеКнига содержит подробное и доступное для начинающих описание возмож
АнкорФигурнов В.Э. IBM PC для пользователя.doc
Дата01.02.2017
Размер5.4 Mb.
Формат файлаdoc
Имя файлаФигурнов В.Э. IBM PC для пользователя.doc
ТипКнига
#1585
страница69 из 98
1   ...   65   66   67   68   69   70   71   72   ...   98

Глава 41. Оптимизация использования памяти
Возобновление

оптимизации
пьютером. MemMaker выведет вопрос о том, хотите ли Вы действительно выйти или

надо продолжить работу ("Continue or Exit"). Вы можете нажатиями клавиши (Пробел)

выбрать один из следующих ответов и нажать (Enter]:
Continue Ч продолжить оптимизацию;
Exit and undo changes Ч выйти и отменить сделанные изменения. При этом Mem-

Maker может вывести запрос на подтверждение выхода (это происходит, если он

уже сделал изменения в файлах CONFIG.SYS и AUTOEXEC.BAT), а затем Ч со-

общение о перезагрузке компьютера. В ответ на них надо нажимать клавишу

(Enter

).
Exit and keep changes Ч выйти, сохранив сделанные изменения. В этом случае при

следующем запуске MemMaker Вам будет предложено либо снова начать оптими-

зацию (Restart Optimization), либо отменить сделанные изменения (Undo

Changes).
А когда на экране компьютера выведено предложение нажать (Enter) для перезагрузки

компьютера, Вы можете просто выключить компьютер, если Вам необходимо закончить

работу. После включения компьютера процесс оптимизации будет продолжен.
Если процесс оптимизации был прерван (например, нажатием клавиши (Ц) с выбором

варианта ответа Exit and keep changes, при выключении или зависании компьютера и

т.д.), то при следующем вызове MemMaker обычно обнаруживает это и предлагает

выбрать возобновление оптимизации или отмену изменений (Restart optimization or

undo changes?). Вы можете выбрать нажатиями клавиши (Пробел) выбрать один из

следующих ответов и нажать (Enter):
Restart Optimization Ч возобновить прерванный процесс оптимизации;

Undo Changes Ч выйти и отменить сделанные изменения. При этом MemMaker выве-

дет запрос на восстановление исходных файлов CONFIG.SYS и AUTOEXEC.BAT,

а затем Ч сообщение о перезагрузке компьютера. В ответ на них надо нажимать

клавишу [Enter).
41.8. Полезные советы
Параметр

/TESTMEM.-OFF
Параметр

FPAME=NONE
Изменение

порядка вызова

программ

и драйверов
Приведем несколько советов по выполнению оптимизации и улучшению ее результа-

тов.
Если команду запуска драйвера расширенной памяти HIMEM.SYS в файл CON-

FIG.SYS вставил МетМакег, то в этой команде не будет параметра /TESTMEM:OFF, от-

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

вставить этот параметр, чтобы ускорить процесс начальной загрузки.
Если Вы работаете с DOS-программами, использующими EMS-память, но не лазящими

непосредственно в EMS-OKHO, то Вы можете высвободить 64 Кбайта верхней памяти,

задав параметр FRAHE=NONE драйвера EMM386.ЕХЕ. К сожалению, MemMaker не умеет

вставлять этот параметр и даже интерпретирует его (если он уже имеется в команде

вызова драйвера EMM386.ЕХЕ) как запрет на использование EMS-памяти. Поэтому в

таких случаях надо при оптимизации отвечать No на вопрос о наличии программ, ра-

ботающих с EMS-памятью, а по окончании оптимизации Ч заменить в файле CON-

FIG.SYS в команде вызова драйвера EMM386.ЕХЕ параметр EMS на параметры RAM

FRAME=NONE.
Если какие-то резидентные программы или драйверы после оптимизации не загружа-

ются в верхнюю память, а свободной верхней памяти вроде бы достаточно, то это мо-

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

памяти, а потом часть памяти освобождает. Так поступают многие программы и драй-

веры. Например, драйвер экрана и клавиатуры KEYRUS требует при загрузке 46

Кбайт, но затем он выкидывает из памяти все ненужные функции, оставляя в памяти

чуть более 11 Кбайт. Но если этот драйвер загружается последним, то он может не

загрузиться в верхнюю память, если там к этому моменту осталось, скажем, 30 Кбайт.

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

каталоге с файлами MemMaker, то есть, как правило, в каталоге с файлами MS DOS).

В этом файле для каждой программы и драйвера сообщается максимальный и конеч-

ный размер памяти, используемой программой или драйвером. Максимальный размер


472
Часть 8. Настройка конфигурации MS DOS
Использование

области памяти

монохромного

дисплея
Файлы CONFIG.SYS

со стартовыми меню
памяти выводится в строке MaxSlze=wc^o. Следует записать эти величины и переста-

вить в файлах CONFIG.SYS и AUTOEXEC.BAT строки вызова драйверов и резидент-

ных программ (насколько это возможно) в порядке убывания величины MaxSize. Здесь

слова "насколько это возможно" означают, что многие программы и драйверы должны

запускаться в определенном порядке, скажем, программа SMARTDRV для кэширова-

ния дисков Ч после программы MSCDEX, обеспечивающей доступ к компакт-дискам.

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

плея (32 Кбайта по адресу BOOOO-B7FFF) даже при наличии видеоконтроллера

SuperVGA, если Вы используете режимы SuperVGA только при работе в Windows. Это

достаточно типичная ситуация, так как при работе в среде DOS подавляющее боль-

шинство программ использует только видеорежимы VGA. Для этого надо выполнить

следующие действия:
а) в файле настройки Windows SYSTEM. INI (он находится в каталоге с файлами

Windows) найти секцию с заголовком [386Enh] и вставить туда команду DEVICE, вы-

зывающую драйвер MONOUMB.386, поставляемый в составе MS DOS. Например, если

файлы MS DOS находятся в каталоге C:\EXE\MSDOS, то в секцию [386Enh]

вставить строку DEVICE=C:\EXE\MSDOS\MONOUMB.386:

б) сохранить файл SYSTEM.INI ;

в) запустить MemMaker и выбрать вариант оптимизации с настройкой пользователем
(Custom Setup),
г) для режима "Use monochrome region (BOOOЧB7FF) for running programs?" задать

значение Yes.
Файлы CONFIG.SYS, включающие стартовые меню (см. главу 40), оптимизируются

весьма плохо. Точнее, при оптимизации одной ветви файла CONFIG.SYS (то есть ко-

манд, соответствующих одному варианту выбора в стартовом меню), остальные ветви

разоптимизируются. Поэтому оптимизировать файлы CONFIG.SYS, включающие стар-

товые меню, надо следующим образом.
а) сохранить копии файлов CONFIG.SYS и AUTOEXEC.BAT: вам потребуется провес-

ти несколько сеансов оптимизации, a MemMaker позволяет отменить результаты

лишь последнего сеанса;
б) если в блоке [COMMON] файла CONFIG.SYS имеются команды запуска драйверов

(кроме драйверов HIMEM.SYS и EMM386.ЕХЕ), то их надо скопировать в блоки,

соответствующие вариантам выбора в стартовом меню. А из блока [COMMON] эти

команды надо удалить. Причина проста: при разных вариантах выбора в стартовом

меню оптимальное расположение этих драйверов в памяти может быть разным;
в) если в блоках файла CONFIG.SYS, вставляемых по команде INCLUDE, есть коман-

ды запуска драйверов (кроме драйверов HIMEM.SYS и EMM386.ЕХЕ), их надо

скопировать в те места, в которых находятся команды INCLUDE, а из прежнего

места Ч убрать. Причина Ч та же, что и в п. (б):
г) оптимизацию каждой ветви файла CONFIG.SYS надо выполнять по отдельности.

Стоит сказать, что MemMaker оптимизирует ту ветвь файла CONFIG.SYS, которая

выбирается при первой перезагрузке после задания режимов работы оптимизатора

(см. выше шаг 9 в пункте "Выполнение оптимизации"). Перед оптимизацией каж-

дой ветви надо превратить в комментарии команды вызова драйверов, содержащих-

ся в других ветвях файла CONFIG.SYS, если эти ветви уже были оптимизированы

(иначе MemMaker уничтожит оптимизационные настройки в этих командах);
д) после окончания оптимизации всех требующих этого ветвей файла CONFIG.SYS

надо восстановить из комментариев те команды файла CONFIG.SYS, которые были

превращены в комментарии в соответствии с пунктом (г).
41.9. Возможные проблемы
В подавляющем большинстве случаев оптимизация использования памяти не вызывает

каких-либо проблем. Однако встречаются некоторые программы и драйверы (как пра-

вило, достаточно древние), которые не работают в верхней памяти. Кроме того, неко-

торые старые контроллеры дисков не могут выполнять операции ввода-вывода с верх-

ней памятью. Бывают и другие причины, в том числе не связанные непосредственно с

оптимизацией. Некоторые их этих причин мы рассмотрим ниже.
Глава 41. Оптимизация использования памяти
Опасные параметры

оптимизации
Если программа или

драйвер не работают
Зависание во время

оптимизации
Если EMM386

обнаруживает

ошибку
Если Вы проводили оптимизацию с настройкой пользователем (Custom Setup) и вклю-

чили режимы "Scan the upper memory area aggressively?", "Use monochrome region

(BOOO-B7FF) for running programs?" или "Keep current EMM386 memory exclusions

and. inclusions?*, отмените результаты оптимизации, затем выполните оптимизацию с

настройкой пользователем (Custom Setup) и укажите значения этих параметров No. В

MS DOS 6.0 режим "Scan the upper memory area aggressively?" применялся по умол-

чанию при быстрой оптимизации (Express Setup), так что в MS DOS 6.0 при возник-

новении проблем после быстрой оптимизации тоже надо воспользоваться приведенной

рекомендацией.
Если какая-либо программа или драйвер не работают, а они размещены в верхней па-

мяти (командой DEVICEHIGH файла CONFIG.SYS или командой LH в файле

AUTOEXEC.BAT), то следует отменить результаты оптимизации, затем выполнить

оптимизацию с настройкой пользователем (Custom Setup), ответить Yes на вопрос

"Specify which drivers and TSRs to include in optimization?", а затем запретить уча-

стие данной программы или драйвера в процессе оптимизации. При этом программа

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

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

другую программу или драйвер, которые не работают в верхней памяти. Например,

драйвер сканера или дисковода компакт-дисков с интерфейсом SCSI может использо-

вать в своей деятельности драйвер SCSI-контроллера, реализующий ASPI-интерфейс.

Если этот последний драйвер не работает в верхней памяти, то не будет работать и

использующий его драйвер. В этом случае надо попробовать разместить в обычной

памяти тот драйвер или программу, услугами которой пользуется неработающая про-

грамма или драйвер.
Если при выполнении оптимизации компьютер зависает, перезагрузите его и в ответ на

сообщение "Starting MS DOS..." нажмите клавишу (183. MS DOS перейдет в режим

пошаговой загрузки. Выполняйте загрузку, отвечая (7^ пока компьютер не зависнет.

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

те, вызов какой программы или драйвера записан в этой команде, затем отмените ре-

зультаты оптимизации и повторите ее снова в режиме оптимизации с настройкой поль-

зователем (Custom Setup), ответьте Yes на вопрос "Specify which drivers and TSRs to

include in optimization?", и запретите участие данной программы или драйвера в про-

цессе оптимизации.
Если это не помогает, то возможно, что эта программа или драйвер использует какую-

то другую программу или драйвер, которые не работают в верхней памяти или при

загрузке программой SIZER, используемой MemMaker. Если Вы подозреваете в этом

какую-то программу или драйвер, попробуйте запретить уже ее участие в процессе

оптимизации.
Если во время обычной работы с компьютером драйвер EMM386.ЕХЕ выводит сооб-

щение типа "EMM386 has detected error #12 in an application", это означает, что про-

цессор сообщил EMM386 об ошибке при выполнении какой-либо программы (напри-

мер, о попытке выполнения недопустимой или несуществующей команды). Как прави-

ло, эти ошибки вызваны сбоями в той программе, с которой Вы работали в момент

сбоя. Однако если такие ошибки появляются при работе с разными программами, то,

скорее всего, это связано с каким-либо драйвером или резидентной программой. Сбои

могут быть вызваны как ошибкой в самой программе или драйвере, так и конфликтом с

другой программой или с каким-либо контроллером. Кстати, иногда такие ошибки вы-

даются при недостатке оперативной памяти для программы, а также если программа

использует EMS-память, а Вы не сообщили о необходимости поддержки EMS-памяти

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

данные ошибки, если этот драйвер или программа не были запущены (для этого можно

нажать клавишу (W] во время начальной загрузки при появлении надписи "Starting

MS DOS..." и затем ответить CN) на вопрос о запуске подозреваемого драйвера или

программы). Опытные пользователи во многих случаях могут выявить программу или

драйвер по адресу памяти, указанном в выдаваемом EMM386.ЕХЕ сообщении об

ошибке и карте памяти, сообщаемой программой MEM с параметром /D. Иногда, одна-

ко, выявить сбойный драйвер или программу таким образом не удается, поскольку со-

общаемый адрес находится в области памяти, занятой DOS или BIOS.


Часть 8. Настройка конфигурации MS DOS
Сбои При

кэшировании дисков
Иногда для выявления вызывающего сбои драйвера или программы достаточно отме-

нить загрузку драйвера EMM386.ЕХЕ. При этом драйвер или программа могут просто

зависнуть, выдать сообщение об ошибке и т.д.
Иногда сбои вызываются тем, что драйвер EMM386.ЕХЕ и MemMaker неправильно

определяют блоки свободной верхней памяти. Попробуйте добавить в команду вызова

EMM386.ЕХЕ параметр X=AOOO-C7FF и посмотреть, не исчезнет ли ошибка. Если Вы

заметили, что сбой происходит при обращении к жесткому диску, дискете или ком-

пакт-диску, попробуйте вставить в эту команду параметр X=C800-CFFF.
Если выдаваемый номер ошибки Ч 12, то можно попробовать вставить в файл

CONFIG.SYS команду STACKS=18,512.
Замечание. Очень часто для устранения ошибки достаточно установить новую версию

вызывающего сбои драйвера или программы. А иногда сбойный драйвер или программу все

же удается использовать даже без перехода на новую версию, скажем, переставив команду

вызова драйвера или программы в другое место файла (CONFIG.SYS или AUTOEXEC. BAl

(каких только чудес не бывает на свете)!
Иногда сбои после оптимизации вызваны некорректной работой программ кэширова-

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

грамму SMARTDRV, а другие программы кэширования дисков, то часто сбои прекра-

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

Ваш контроллер жестких дисков не может выполнять операции ввода-вывода с жест-

кими дисками, если буфера ввода-вывода располагаются в верхней памяти. Попробуйте

указать параметр /L при вызове SMARTDRV или (что обычно лучше) вставить в файл

CONFIG.SYS строку DmCE=^,nуmь-к-дpaйвepу\')SMR^DM.E.XE /DOUBLE_BUFFER. На-

пример, если SMARTDRV.ЕХЕ находится в каталоге C:\EXE\MSDOS. то надо вста-

вить в файл CONFIG.SYS строку OEVICE=C:\EXE\MSDOS\SMARTDRV.EXE /DOUBLE_BUFFER .

Более подробно данная тема освещена в параграфе 40.9.
41.10. Ограничения программы
Программа MemMaker имеет следующие ограничения.
1. Для выполнения MemMaker необходимо наличие следующих условий: операцион-

ная система MS DOS версии 6.0 или старше; процессор IntelЧ80386 или старше; не

менее 384 Кбайт расширенной памяти.
2. MemMaker может выполнять оптимизацию только если диспетчером верхней памя-

ти является EMM386.ЕХЕ. Если MemMaker обнаружит на компьютере другой дис-

петчер памяти, он сообщит об этом. При этом MemMaker может сам удалить вызо-

вы диспетчеров QEMM, 386МАХ и NETROOM из файлов конфигурации компьюте-

ра и установить вместо них EMM386.ЕХЕ. Для других диспетчеров памяти это не-

обходимо сделать вручную. Следует заметить, что MemMaker удаляет только вызо-

вы диспетчеров памяти из файлов CONFIG.SYS и AUTOEXEC.BAT, а сами файлы

диспетчеров памяти с диска не удаляются.
3. MemMaker не просматривает и не оптимизирует файлы командные файлы, вызван-

ные из файла AUTOEXEC.BAT.
4. MemMaker не может обрабатывать файлы CONFIG.SYS, AUTOEXEC.BAT и

SYSTEM. INI, если они содержат более 512 строк.
5. MemMaker не изменяет последовательность вызова драйверов и резидентных про-

грамм в файлах CONFIG.SYS и AUTOEXEC.BAT. Это естественно, так как он не

знает, для каких программ и драйверов последовательность их вызова существенна,

а для каких Ч нет. Однако Вы можете изменить последовательность вызова драй-

веров и резидентных программ вручную (см. пункт "Изменение порядка вызова
1   ...   65   66   67   68   69   70   71   72   ...   98


написать администратору сайта