- 31 - 8.2. ОСВОБОЖДЕНИЕ ОСНОВНОЙ (CMS) ПАМЯТИ Рассматривают следующие пути освобождения CMS: 1. Запустить MS-DOS в расширенную (XMS), если на компьютере она есть. 2. Тщательно продумать структуру файлов CONFIG.SYS и AUTOEXEC. BAT и удалить из них загрузку ненужных драйверов устройств и TSR (резидентных программ - Terminate-and-Stay-Resident). 3. Разместить (сколько можно) драйвера устройств и TSR в UMA, если на компьютере процессоры 80386 или 80486. 8.2.1. Запуск MS-DOS в XMS MS-DOS можно разместить в первом сегменте (64 К) XMS, ко- торый называется "высшая область памяти" (HMA - high memory area). Так как немногие программы используют HMA, то есть смысл запустить MS-DOS там. Если на компьютере есть HMA, настроечная Setup-программа обычно инсталлирует MS-DOS так, что она автоматически туда за- пускается. Но если используются программы, которые требуют доступа к HMA, а MS-DOS, находясь там, этому препятствует, то могут воз- никнуть проблемы. Для запуска MS-DOS в HMA в CONFIG.SYS первыми должны быть команды: device=himem.sys dos=high Для проверки того, что MS-DOS запускается в HMA, можно вы- полнить команду "mem". Если MS-DOS там, то "mem" выведет сооб- щение: "MS-DOS residentin Hight Memory Area". Если при этом MS-DOS не запускается в HMA, то: - или CONFIG.SYS не содержит соответствующих команд; - или некорректно установлен HIMEM-менеджер памяти. "device"-команда для "himem.sys" должна быть раньше любых других "device"-команд, загружающих другие драйверы памяти (SMARTDRV.SYS, RAMDRIVE.SYS или EMM386.EXE). Если CONFIG.SYS содержит правильные команды, HIMEM пра- вильно установлен, но MS-DOS все равно не запускается в HMA, то значит, что конфигурация памяти компьютера не разрешает исполь- зование HMA. 8.2.2. НЕКОТОРЫЕ СОВЕТЫ ПО СТРУКТУРЕ КОНФИГУРАЦИОННЫХ ФАЙЛОВ Желательно удалить команду "append /e" или "append c:\dos" из AUTOEXEC.BAT. В MS-DOS 6 они не нужны. Включайте "device"-команды только для тех драйверов, кото- рые нужны. Лишние можно отменить "rem"-ом. - 32 - Если есть XMS, то надо установить тот менеджер XMS, кото- рый работает именно с этим устройством. Для этого можно исполь- зовать HIMEM.SYS. И включите команду "dos=high". Если есть команда "buffers", уменьшите количество буферов до минимального (каждый буфер требует около 500 байт). Правильно установите "stacks"-команду. На некоторых систе- мах установка "stacks" в ноль приводит к проблемам запуска Microsoft Windows 3.0. Продумайте команду "lastdrive=", так как каждая лишняя буква использует на около 100 байт больше, чем предыдущая. Если используется сеть, то может ограничится число сетевых драйве- ров, применяемых одновременно. Если есть команда "fcbs", то настройте ее на 1. Важен порядок использования команд "device" и "devicehigh". Рекомендуется такой: - HIMEM.SYS; - специальный менеджер EMS (если она есть); - любые драйверы устройств, которые используют XMS; - EMM386.EXE (Но не использовать EMM386, если использу- ется специальный менеджер EMS); - любые драйверы устройств, которые используют EMS (если есть EMS) ; - любые драйверы устройств, которые используют UMA (devicehigh). Если компьютер имеет XMS, удалите все команды, запускающие FASTOPEN (лучше использовать SMARTDrive). Если есть только EMS и при FASTOPEN скорость работы кажется выше, то лучше загрузить FASTOPEN в EMS, установив опцию "/x". Надо хорошо обдумать использование SMARTDRV.SYS, т.к. он может занимать много основной памяти, а виртуальный RAM-диск лучше делать в XMS или в EMS. (Более подробно об использовании этих драйверов см. дальше). 8.2.3. ПЕРЕНОС ДРАЙВЕРОВ УСТРОЙСТВ и TSR в UMA ПРОГРАММОЙ MEMMAKER В MS-DOS 6, в отличие от версии 5, имеется специальная программа "MemMaker", которая служит для автоматизации процесса переноса некоторых драйверов устройств и TSR в UMA. Ее можно использовать только на компьютерах с процессором 80386 или 80486 и наличием XMS. Однако, если применяется только WINDOWS, то оптимизация памяти с помощью MemMaker может оказаться излиш- ней, т.к. WINDOWS требует как можно больше свободной XMS. Но если, кроме WINDOWS, применяются и другие программы, то бывает важнее освободить основную память, даже при наличии WINDOWS. Перед запуском MemMaker надо выполнить следующее: - Переписать CONFIG.SYS и AUTOEXEC.BAT так, чтобы в них не было блоков и загрузок лишних драйверов и TSR (последо- - 33 - вательность работы с MemMaker при нескольких конфигура- циях см. дальше). - Нормально (не временно) выйти из всех программ, в т.ч. из WINDOWS. - Запустить обычно применяемые TSR, например, по работе с сетями. После запуска MemMaker надо будет выбрать один из двух ме- тодов оптимизации - "Специальный" (Express Setup) или "Обычный" (Custom Setup). В большинстве случаев можно успешно воспользо- ваться "специальным" методом. Однако, иногда MemMaker может ос- вободить больше памяти (или снять возникшую проблему), если выбрать "обычный" метод с возможностью управления некоторыми настройками. 8.2.3.1. СПЕЦИАЛЬНЫЙ МЕТОД (EXPRESS SETUP) Шаги его запуска: - Выполнить команду "memmaker". - Выбрать команду "Continue" и нажать Enter. - Выбрать "Express Setup" и нажать Enter. После этого MemMaker выведет запрос, имеются ли программы, требующие наличия EMS. Если точно известно, что таких программ нет или нет в этом уверенности, то надо ответить "No", нажав Enter. Для ответа "Yes" ("Да") надо нажать ПРОБЕЛ, а затем Enter. Ответ "No" высвобождает 64 Кбайт UMA. Но если потом неко- торые программы не работают, например, не могут загрузиться или выводят разные сообщения, типа: "EMS Page Frame Not Found" ("Не найден EMS-фрэйм-страница") или "Expanded Memory Unavailable" ("EMS недоступна"), то надо опять запустить MemMaker и ответить на обсуждаемый вопрос "Yes". Если используется WINDOWS, то MemMaker может предолжить несколько запросов о вводе дополнительной информации. После всего этого появится запрос о необходимости перезаг- рузки компьютера, для чего надо нажать Enter. Во время перезагрузки MemMaker определяет размещение драй- веров устройств и TSR в памяти. Если она не выполнилась пра- вильно (или машина зависла), то беспокоиться не стоит. Можно нажать CTRL+ALT+DEL (или выключить/включить питание машины). MemMaker восстановит и продолжит свою работу. После перезагрузки, на основе полученных данных MemMaker определяет оптимальную конфигурацию размещения программ загруз- ки в памяти и пытается максимально эффективно разместить драй- вера и TSR в UMB-блоках. Делая это, он может перебрать тысячи вариантов до того, как выберет наиболее эффективный. Но процесс выбора занимает короткое время - несколько секунд. - 34 - После этого, MemMaker выполняет необходимые изменения фай- лов CONFIG.SYS и AUTOEXEC.BAT, по завершении которых на экране появится сообщение о необходимости опять перезагрузить систему (уже по новой конфигурации). Для выполнения надо нажать Enter. Во время перезагрузки советуется понаблюдать, как драйвера и TSR выводят свои обычные сообщения и не появляются ли ка- кие-нибудь новые. После перезагрузки MemMaker должен вывести запрос о том, явилась ли новая конфигурация MS-DOS работоспособной. Если во время перезагрузки никаких ошибочных сообщений не было и система выглядит работоспособной, то надо выбрать "Yes" и нажать Enter. Если есть подозрения, что система не сможет ра- ботать, то надо выбрать ответ "No" (нажав ПРОБЕЛ), затем нажать Enter. После этого надо следовать появляющимся на экране инст- рукциям. (Если система окажется неработоспособной, то можно от- менить изменения, выполненные MemMaker-ом ("Undo")). После положительного ответа (что система выглядит работос- пособной), MemMaker выведет заключительное сообщение, в котором покажет количество каждого типа памяти, доступной до и после его работы. Для выхода из MemMaker надо нажать Enter. Изменения файла CONFIG.SYS могут быть в виде добавления новых команд или изменения имевшихся. Например, могут быть до- бавлены или изменены некоторые опции загрузки EMM386.EXE. Или часть команд "device" могут быть заменены на "devicehigh" с но- выми параметрами. В файле AUTOEXEC.BAT MemMaker может добавить команду "loadhigh" ("lh") в начало некоторых имевшихся команд (вместе с новыми параметрами). 8.2.3.2. ОБЫЧНЫЙ МЕТОД (COSTOM SETUP) "Специальный" метод хорошо работает на большинстве компь- ютеров. Однако, в некоторых ситуациях можно высвободить больше основной памяти, используя "обычный" метод. К ним относятся: - Наличие EGA или VGA-дисплея (не SuperVGA!). После выбора в этом случае "обычного" метода на запрос "Use monochrome region (B000-B7FF) for running programs?" надо ответить "Yes". При этом дополнительно высвобождается UMA. Но если после этого возникнут проблемы по выводу некоторых изображений, особенно при работе с WINDOWS, то надо опять запустить MemMaker и на этот вопрос ответить "No". - Если не запускаются (другие) основные программы совмест- но с WINDOWS. После выбора "обычного" метода на вопрос "Optimize upper memory for use with Windows?" надо ответить "No". Такой ответ дополнительно освобождает основную память, когда не работает WINDOWS. Но при его запуске для других прог- рамм (не WINDOWS) остается меньше памяти. Поэтому, если при совместной с WINDOWS работе возникают проблемы, то надо опять загрузить "обычный" метод MemMaker-а и на этот вопрос ответить "Yes". - 35 - - Если работа драйверов устройств или TSR неустойчива во время запуска MemMaker-а (например, если компьютер зависает). В этом случае также надо выбрать "обычный" метод и на вопрос "Specify which drivers and TSRs to include in optimization?" надо ответить "Yes". Можно исключить драйвер или TSR-программу из оптимизационного процесса, добавив ее имя в файл MEMMAKER.INF, который содержит названия программ, которые MemMaker будет или игнорировать, или вообще отменять их загруз- ку во время оптимизационного процесса. Для игнорирования надо ввести имя такой программы со звездочкой в начале (например: "* dosedit"). При этом MemMaker не будет пытаться загружать ее в UMA, но она будет загружаться в основную память. Для отмены загрузки программы вообще, надо ввести ее имя без звездочки. MemMaker отменит ее загрузку, вставив слово "REM" в строку фай- ла, из которого она загружается. После окончания оптимизации слово "REM" будет удалено. Другие правила построения этого фай- ла: - Каждая строка должна начинаться с левого края. - Имя программы должно быть без типа (расширения). - Строка коментария должна начинаться с точки_с_запятой (;). Запуск "обычного" метода аналогичен запуску "специально- го", только в меню выбора между EXPRESS SETUP и CUSTOM SETUP выбирается CUSTOM SETUP (клавишами ПРОБЕЛ и ENTER). При этом также будет запрос на наличие программ, требующих EMS. Однако далее, в отличие от "специального" метода, на экран будут выве- дены начальные установки, по которым MemMaker может оптимизиро- вать память. Их можно изменить, если требуется. В настройках, где ответом должны быть слова "Yes" или "No", их надо выбирать стрелками "вверх" или "вниз", затем нажимать ПРОБЕЛ (для изме- нения ответа). Клавиша F1 выводит краткую помощь. После оконча- ния изменения настроек надо нажать ENTER для продолжения рабо- ты. При использовании WINDOWS надо ответить на дополнительные запросы MemMaker. После всего этого появится сообщение о необ- ходимости перезагрузки, для чего надо нажать ENTER. Если она не произойдет, то можно нажать CTRL+ALT+DEL или выключить/включить питание. MemMaker восстановит свою работу и будет работать да- лее аналогично "специальному" методу. 8.2.3.3. ОТМЕНА ИЗМЕНЕНИЙ, ВЫПОЛНЕННЫХ MEMMAKER-ом MemMaker выполняет изменения файлов CONFIG.SYS, AUTOEXEC.BAT и иногда файл SYSTEM.INI от WINDOWS. Перед измене- нием делается их резервная копия. Если измененная конфигурация плохо работает, то можно восстановить прежнюю, выполнив коман- ду: memmaker /undo После чего опять можно загрузить MemMaker в "обычном" ме- тоде для повторной оптимизации по другим настройкам. 8.2.3.4. ОБЩИЙ СИНТАКСИС КОМАНДЫ ЗАГРУЗКИ MEMMAKER-а MEMMAKER [/B] [/BATCH] [/SESSION] [/SWAP:диск] [/T] [/UNDO]_ [/W:n,m] где: /B - Работа MemMaker-а в черно-белом изображении (для монохром- ных дисплеев). - 36 - /BATCH - Запуск MemMaker в "batch"-режиме (автоматическом?)(спе- циальном?). При этом MemMaker примет значения всех зап- росов по умолчанию. В случае ошибок будут восстановлены файлы CONFIG.SYS, AUTOEXEC.BAT и (если надо) Windows SYSTEM.INI. Сообщения о статусе работы можно прочитать в файле MEMMAKER.STS. /SESSION - Используется исключительно MemMaker-ом во время вы- полнения оптимизационного процесса. /SWAP:диск - Указывает имя диска (раздела), на котором имеются файлы с исходной конфигурацией. Этот параметр необходим только тогда, если в процессе загрузки имя загрузочного диска (раздела) было изменено (например, если он преоб- разован в "сжатый" вид специальной программой). Если после такой загрузки не указать параметр "/SWAP", то MemMaker не сможет найти файлы исходной конфигурации MS-DOS. Но этот параметр не требуется, если использова- лись программы: Stacker 2.0, SuperStor или DBLSPACE. /T - Отменяет проверку наличия сети "IBM Token-Ring networks". Этот параметр надо включить, если компьютер включен в сети и возникают проблемы в работе MemMaker-a. /UNDO - Отменяет изменения, выполненные MemMaker-ом. /W:size1,size2 - Указывает размер UMA для буфера WINDOWS, кото- рой требуется для него две области в UMA. "sizer1" - размер для первой, "sizer2" - для второй. По умолчанию они не резервируются (т.е.: /W:0,0). 8.2.3.5. УЛУЧШЕНИЕ КОНФИГУРАЦИИ ЗАГРУЗОЧНЫХ ПРОГРАММ В ПАМЯТИ После отработки MemMaker-а можно попытаться еще улучшить загрузочную конфигурацию, изменив (если возможно) порядок раз- мещения команд в CONFIG.SYS и AUTOEXEC.BAT. Дело в том, что MemMaker его не меняет, а для большей эффективности лучше заг- ружать программы в порядке уменьшения требуемой ими памяти. Оп- ределить эти размеры можно через файл MEMMAKER.STS, который создается MemMaker-ом при его выполнении. Примерный порядок ра- боты по этой теме: 1. Подготовить загрузочный гибкий диск командами: "format a: /s" или "sys a:" (если уже отформатирован) 2. Скопировать на него файлы CONFIG.SYS и AUTOEXEC.BAT. 3. Загрузить какой-нибудь текстовый редактор, а из него - файл MEMMAKER.STS с жесткого диска. 4. Найти секцию "[SizeData]". В ней находится информация о требуемых размерах. Например (по файлу SETVER.EXE): Command=C:\DOS\SETVER.EXE Line=9 FinalSize=672 MaxSize=12048 - 37 - FinalUpperSizes=0 MaxUpperSizes=0 Programm Type=DEVICE Строка "MaxSize" указывает количество памяти, которое требует данный файл для запуска и работы. 6. Распечатайте весь файл MEMMAKER.STS или собрав только названия файлов и строки MaxSize. 7. Закройте файл MEMMAKER.STS без его перезаписи и открой- те файл CONFIG.SYS с жесткого диска. 8. Используя полученную распечатку переставьте вызовы драйверов и TSR в порядке требования памяти от большего размера к меньшему (кроме некоторых, типа HIMEM.SYS, EMM386.EXE или сетевых (network)). Замечание: Программа MS-DOS Setup помещает команду заг- рузки драйвера SETVER в начало CONFIG.SYS. Ее можно пе- редвинуть после HIMEM.SYS и EMM386.EXE, но перед вызо- вом первой программы, которая его требует. Такое пере- мещение позволит запускать SETVER в UMA. 9. Запишите CONFIG.SYS, откройте AUTOEXEC.BAT с жесткого диска, произведя и в нем соответствующие изменения по- рядка расположения команд (если возможно). 10. Запишите AUTOEXEC.BAT и выйдите из текстового редактора. 11. Выньте дискету (если стоит) из дисковода A: и перезаг- рузите компьютер. Если перезагрузка выполнилась успеш- но, то надо выполнить MemMaker для оптимизации новой конфигурации. Если система перезагрузилась плохо или машина вообще зависла, то надо загрузиться с подготов- ленной загрузочной дискеты и переписать файлы CONFIG.SYS и AUTOEXEC.BAT на диск C:. 8.2.3.6. ИСПОЛЬЗОВАНИЕ MemMaker С НЕСКОЛЬКИМИ КОНФИГУРАЦИЯМИ Если требуется создать несколько конфигураций в одном CONFIG.SYS и AUTOEXEC.BAT, то перед запуском MemMaker-а надо переписать блоки из этих файлов в пары отдельных CONFIG.SYS и AUTOEXEC.BAT. Затем надо отработать MemMaker на каждой из них, а потом собрать их в блоки одной пары CONFIG.SYS и AUTOEXEC.BAT. Последовательность работы может быть такой: 1. Многоблочные CONFIG.SYS и AUTOEXEC.BAT переписываются в несколько файлов (по количеству блоков) с разными име- нами, например: copy config.sys config.1 copy config.sys config.2 copy config.sys config.3 . . . . . - 38 - copy autoexec.bat autoexec.1 copy autoexec.bat autoexec.2 copy autoexec.bat autoexec.3 . . . . . 2. С помощью текстового редактора надо оставить в каждом из них команды только одного блока (и перезаписать) (кроме того, удалить блоки "[common]" и команды "inclu- de", заменив их на их содержимое). 3. Переименовать исходные CONFIG.SYS и AUTOEXEC.BAT в фай- лы с типом ".BAK". 4. По очереди переименовывать CONFIG.n и AUTOEXEC.n в CON- FIG.SYS и AUTOEXEC.BAT, перезагружать компьютер и отра- батывать на них MemMaker, а затем опять переименовывать в CONFIG.n и AUTOEXEC.n. 5. Загрузить текстовый редактор (лучше многооконный), и в нем на базе сохраненных CONFIG.BAK и AUTOEXEC.BAK соз- дать новые CONFIG.SYS и AUTOEXEC.BAT, заменив старые блоки на отработанные новые в парах CONFIG.n и AUTO- EXEC.n. 8.2.3.7. РЕШЕНИЕ ВОЗМОЖНЫХ ПРОБЛЕМ ИСПОЛЬЗОВАНИЯ MemMaker-а 1. Компьютер зависает во время работы MemMaker. Если он зависает во время первой перезагрузки, то надо нажать CTRL+ALT+DEL для восстановления MemMaker-а. В нем выбрать опцию "Try again with conservative setting", нажав ENTER. Компьютер опять будет перезагружаться. Если зависнет опять, то это будет зависание при второй перезагрузке (см. ниже). Если компьютер зависает во время второй перезагрузки, то также надо нажать CTRL+ALT+DEL для восстановления MemMaker-а. Далее в нем надо выбрать "Exit and undo changes", нажав ПРОБЕЛ, а затем ENTER. Компьютер опять перезагрузится, но по исходным настройкам CONFIG.SYS и AUTOEXEC.BAT. После этого надо опять загрузить MemMaker, выбрать в нем "Обычный" метод ("Custom Setup"), отработать MemMaker, пока не появится экран Advanced-опции. Если в ответе на запрос "Scan the upper memory aggressively?" стоит "Yes", то его надо изме- нить на "No", нажав ПРОБЕЛ и ENTER. Далее следовать появляющим- ся инструкциям. Если компьютер зависнет опять, то можно попробовать отра- ботать проблему N: 4 ("Компьютер зависает после сообщения "MemMaker will now restart your computer to test the new memory configuration""). 2. Компьютер зависает после сообщения "MemMaker will now restart your computer". Первым здесь надо определить, зависает ли он при загрузке EMM386. Для этого надо нажать CTRL+ALT+DEL (для восстановления MemMaker-а). Затем в нем надо выбрать "Cancel and undo all changes", нажав ПРОБЕЛ, а затем ENTER. Компьютер опять перезагрузится (по исходным настройкам - 39 - CONFIG.SYS и AUTOEXEC.BAT). Снова надо загрузить MemMaker и от- работать его так же, как до зависания. Во время перезагрузки, выполняемой MemMaker-ом, при появлении сообщения "Starting MS-DOS ..." надо нажать и отпустить F8. Появится текст: "MS-DOS will prompt you to confirm each CONFIG.SYS command" ("Команды CONFIG.SYS будут отрабатываться после запроса"). На каждый из них надо отвечать "Y" ("Да") и замечать, после какой команды компьютер зависнет. Если он зависает при загрузке EMM386, то надо отработать проблему N: 5 ("Компьютер зависает при выполнении MemMaker-ом тестов"). Если компьютер зависает при загрузке другого драйвера (не EMM386), отработайте проблему N: 3 ("Компьютер зависает, когда MemMaker загружает программу или драйвер устройства, от- личный от EMM386"). Если CONFIG.SYS отработается успешно, то появится запрос: "Process AUTOEXEC.BAT [Y,N]?". Надо нажать "Y" для его выполне- ния, заметить, при загрузке какой программы возникло зависание и отработать следующую проблему (N: 3). 3. Компьютер зависает, когда MemMaker загружает программу или драйвер устройства, отличный от EMM386. Такое зависание го- ворит о том, что эта программа не может корректно работать с MemMaker-ом или в UMA. При его возникновении надо выполнить перезагрузку (нажав CTRL+ALT+DEL) для восстановления MemMaker-а. Затем в нем надо выбрать "Cancel and undo all changes", нажав ПРОБЕЛ, а затем ENTER. Компьютер опять перезагрузится (по исходным настройкам CONFIG.SYS и AUTOEXEC.BAT). После этого надо опять загрузить MemMaker, выбрать в нем "Обычный" метод ("Custom Setup"), отра- ботать MemMaker, пока не появится экран Advanced-опции. В зап- росе "Specify which drivers and TSRs to include during optimization?" надо установить "Yes" вместо "No" (нажав ПРОБЕЛ, затем ENTER). При использовании WINDOWS надо ответить еще на вопросы. В дальнейшем MemMaker будет выводить запросы на вклю- чение в оптимизационный процесс каждого драйвера и каждой TSR. На всех из них надо нажимать ENTER, кроме той, что привела к зависанию. На ней надо нажать ПРОБЕЛ для установки "No", затем ENTER. После этого надо отработать MemMaker до конца. Он опять будет перезагружать компьютер. Если опять возникнет зависание при запуске другого драйвера или другой TSR, то надо повторить действия, описанные в этом разделе. Если компьютер будет зависать при запуске MemMaker, то на- до отработать проблему N: 5 ("Компьютер зависает при выполнении MemMaker-ом тестов"). 4. Компьютер зависает после сообщения "MemMaker will now restart your computer to test the new memory configuration". Это означает, что какой-то драйвер или TSR (надо заметить его название) не может правильно работать в UMA и его надо загру- жать в основную память. Для этого надо нажать CTRL+ALT+DEL для перезагрузки и восстановления MemMaker-а. В нем надо выбрать "Exit and undo changes", нажав ПРОБЕЛ, а затем ENTER. Компьютер опять перезагрузится, но по исходным настройкам CONFIG.SYS и AUTOEXEC.BAT. После этого надо опять загрузить MemMaker, выб- - 40 - рать в нем "Обычный" метод ("Custom Setup"). Дальнейшие дейст- вия аналогичны действиям в решении предыдущей проблемы (N: 3). 5. Компьютер зависает при выполнении MemMaker-ом тестов. Надо его перезагрузить (нажав CTRL+ALT+DEL) для восстановления MemMaker-а. Затем в нем надо выбрать "Cancel and undo all changes", нажав ПРОБЕЛ, а затем ENTER (или "Exit and undo changes"). После этого надо проверить наличие в CONFIG.SYS ко- манды загрузки EMM386.EXE. Кроме того, возможно, что подобная ситуация расписана в файле README.TXT (в разделе о MemMaker, где изложены проблемы его работы на определенных марках компь- ютеров). 6. Недостаточно памяти для продолжения MemMaker. Эта ошиб- ка появляется после сообщения: "MemMaker cannot continue because there is not enough free conventional memory". После его появления надо нажать ENTER для перезагрузки компьютера. Когда появится сообщение: "Starting MS-DOS ...", надо нажать и отпустить клавишу F8. Появится текст: "MS-DOS will prompt you to confirm each CONFIG.SYS command" ("Команды CONFIG.SYS будут отрабатываться после запроса"). На каждый из них надо отвечать "N" ("Нет"), кроме загрузки HIMEM.SYS, EMM386.EXE и SHELL=...COMMAHD.COM (ответ на них - "Y"). А также надо отве- чать "Y" на загрузку драйверов по подготовке сжатого диска или готовящих доступ к жесткому диску. После выполнения CONFIG.SYS появится запрос: "Process AUTOEXEC.BAT [Y,N]?". Надо нажать "N" для его отмены. После появления системной подсказки надо выполнить коман- ду: "find /i "memmaker" autoexec.bat", которая должна вывести сообщение типа: c:\dos\memmaker.exe /session:13396 После этого надо выполнить загрузку MemMaker с параметром, каким он был выведен командой "find". MemMaker продолжит свою работу и надо будет следовать появляющимся его запросам. 7. После работы MemMaker-а, драйвер или TSR, загруженные в UMA, не работают. Это означает, что их надо загружать в основ- ную память. Для этого сначала надо восстановить прежние наст- ройки командой "memmaker /undo". После запуска MemMaker-а надо выбрать опцию "Resdtore files now", нажав ENTER. MemMaker выве- дет предупреждающее сообщение. Для перезагрузки компьютера надо нажать ENTER, после чего надо опять перезагрузить MemMaker ко- мандой "memmaker". После появления начального сообщения нажать ENTER. Далее надо выбрать "обычный" метод ("Custom Setup") и действовать аналогично решению проблемы N: 3. 8.2.3.8. ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ ПО РАБОТЕ MemMaker В течение оптимизации MemMaker добавляет команду загрузки программы CHKSTATE.SYS в начало файла CONFIG.SYS. После его окончания она удаляется. Также добавляется команда запуска программы SIZER.EXE или в CONFIG.SYS, или в AUTOEXEC.BAT. В конце своей работы MemMaker ее удаляет. CHKSTATE.SYS и SIZER.EXE используются только MemMaker-ом. - 41 - 8.3. ОСВОБОЖДЕНИЕ РАСШИРЕННОЙ (XMS) ПАМЯТИ. Если необходимо использовать программу, которая требует использовать XMS, но правильно не работает, например может выз- вать сообщение "High Memory Area (HMA) in use" ("HMA занята"). Поэтому надо организовать управление или освободить XMS. Это можно сделать следующими путями: - увеличить физический размер XMS, заменив плату; - проверить, есть ли установка HIMEM.SYS (или другого менеджера XMS); - Если в CONFIG.SYS есть настройки драйверов SMARTDrive, RAMDri- ve или EMM386, то желательно изменить их опции так, чтобы они использовали XMS меньше. Или какие-то вообще отменить, если они не очень нужны. - Отменить загрузку MS-DOS в XMS, убрав команду "dos=high", или заменив "dos=high,umb" на "dos=umb". - Если EMM386.EXE загружается без параметра "noems", то можно добавить параметр "min=0". 8.4. ОСВОБОЖДЕНИЕ ДОПОЛНИТЕЛЬНОЙ (EMS) ПАМЯТИ. Если нужна программа, которая использует EMS, но она рабо- тает неверно, то для увеличения EMS можно использовать следую- щие пути: - Если на компьютере нет EMS, но есть XMS то нужно проверить установку EMM386.EXE. И если он установлен, то надо изменить его настройку на увеличение использования EMS. - Если на компьютере есть EMS, то надо проверить установку ме- неджера EMS. - Если в CONFIG.SYS есть установки драйверов SMARTDrive или RAMDrive, то можно изменить их опции ради уменьшения исполь- зования ими EMS. Или их можно вообще отменить. 9. ИСПОЛЬЗОВАНИЕ EMM386 Сначала напоминание: здесь надо различать загрузку драйве- ра EMM386.EXE через файл CONFIG.SYS и как выполнение обычной команды в системной подсказке (в т.ч. в AUTOEXEC.BAT), хотя загружается один и тот же файл EMM386.EXE (но с разным порядком выполнения). Для такого различия в дальнейшем то, что касается запуска в качестве простой команды будет отмечаться словом "ко- манда", а как драйвер - словом "драйвер". EMM386.EXE может работать на компьютерах с 80386 или с 80486 процессорами. Как драйвер он позволяет в XMS эмулировать EMS. Кроме того, он может работать как менеджер UMA. Нельзя за- пускать EMM386 с другими менеджерами EMS. Как команда, он разрешает или отменяет доступ к эмулируе- мой EMS или к сопроцессору WEITEK. Но в качестве команды его нельзя использовать из WINDOWS. - 42 - EMM386 совместим с EMM386 от Microsoft Windows 3.0, но лучше его. Синтаксис драйвера: device=[путь]EMM386.EXE [on|off|auto] [memory] [w=on|w=off]_ [mx|frame=address|/pmmmm] [pn=address] [x=mmmm-nnnn]_ [i=mmmm-nnnn] [b=address] [L=minXMS] [a=altregs]_ [h=handles] [d=nnn] [ram=mmmm-nnnn] [noems] [novcpi]_ [highscan] [verbose] [win=mmmm-nnnn] [nohi] [nomovexbds]_ [rom=mmmm-nnnn] [altboot] [min=size] синтаксис команды: EMM386.EXE [on|off|auto] [w=on|w=off] Параметры: on|off|auto - Включить драйвер ("on"), приостановить драйвер ("off"), перевести в автоматический режим (auto), который организует работу драйвера только тогда, когда программа требует использования EMS. По умолчанию "on". Изменить этот параметр можно, загрузив EMM386 как команду с измененным этим па- раметром. memory - Определяет размер памяти (в Кбайтах), который выделя- ется EMM386 для эмуляции EMS/VCPI-интерфейса. Оно до- бавляется к количеству памяти, занимаемого UMB-блоками и самой программой EMM386. 64<= memory<= 32768. По умолчанию - вся свободная XMS. Если указано "noems", то оно равно нулю. EMM386 округляет значение в сторону уменьшения для получения числа кратного 16. w=on|w=off - Включает (on) или отключает поддержку сопроцес- сора "Weitek". По умолчанию - w=off mx - Определяет коды адресов фрэйм-страницы, 1<= x <= 14. Код адрес Код адрес 1 => C000h 8 => DC00h 2 => C400h 9 => E000h 3 => C800h 10 => 8000h 4 => CC00h 11 => 8400h 5 => D000h 12 => 8800h 6 => D400h 13 => 8C00h 7 => D800h 14 => 9000h Значения с 10 до 14 испльзуются только с 512 К памятью. frame=addres - Прямо указывает сегмент фрэйм-страницы. Значение addres указывается в диапазоне 8000h - 9000h или C0004 - E0004 через 400h. Можно указать "frame=none" для отмены доступа к фрэйм-странице, но это может привести к проблемам при использовании программ, требующих EMS. /pmmmm - Определяет адреса фрэйм-страницы. Значение "mmmm" ука- зывается в диапазоне 8000h - 9000h или C0004 - E0004 через 400h. - 43 - pn=addres - Определяет сегменты желаемых адресов 0<=n<=255. Зна- чение "addres" указывается в диапазоне 8000h-9000h или C0004 - E0004 через 400h. Адреса для страниц 0-3 должны быть Contiguous (выбра- ны?) в случае организации совместимости с LIM EMS (Lotus/Intel/Microsoft EMSpecification). Если используется "mx", "frame" или "/pmmmm" - пара- метр, то нельзя указывать адреса для страниц 0-3 в "/pmmmm". x=mmmm-nnnn - Предотвращает EMM386 от использвания определенных сегментных адресов для EMS - страницы. Значения для "mmmm" и "nnnn" лежат в диапазоне от A000h до FFFFh и округляются в меньшую сторону с кратностью 4 К. "x" - параметр главнее "i"-параметра, если две об- ласти перекрываются. i=mmmm-nnnn - Определяет область сегментных адресов, которые бу- дут использовать (включаются) для EMS-страницы или для UMB-блоков. Значения для "mmmm" лежат в диапазоне от A000h до FFFFh и округляются в меньшую сторону с кратностью 4 К. b=addres - Определяет нижний сегментный адрес, доступный для EMS-"banking" (переключаются 16-Кбайтные страницы). 1000h<=adress<=4000h. По умолчанию - 4000h L=minXMS - Определяет, что указанный размер (в Кбайтах) XMS бу- дет доступен после загрузки EMM386.EXE. По умолчанию = 0. a=altegs - Определяет количество быстро чередующихся регистров (используются в многозадачном режиме). 0<= altegs <= 254. По умолчанию = 7. Каждый такой регистр занимает около 200 байт в памяти EMM386.EXE. h=handles - Определяет количество "handles", которых может ис- пользовать EMM386.EXE. 2<=handles<=255. По умолчанию=64. d=nnn - Определяет количество Кбайт памяти, резервируемое для буферов прямого доступа (DMA - direct memory acces). 16<= nnn <= 256. По умолчанию = 16. ram[=mmmm-nnnn] - Предусматривает доступ и к EMS и к UMA. По умолчанию нет доступа к UMA. Если не указан диапазон сегмент- ных адресов, EMM386 использует все доступное место в памяти. noems - Предусматривает доступ к UMA, но без доступа к EMS. novcpi - Отменяет поддержку VCPI-интерфейса. Этот параметр дол- жен использоваться совместно с параметром NOEMS. Если они указаны оба, то EMM386 проигнорирует параметры MEMORY и MIN. highscan - Указывает EMM386 выполнить дополнительную проверку UMA для использования как UMB-блоки или как EMS-ок- на. Но на некоторых компьютерах этот параметр может - 44 - не сработать или EMM386 найдет, что UMA доступна, хотя фактически - нет. В результате компьютер может зависнуть. verbose - Указывает EMM386 выводить статус и ошибки при загруз- ке. По умолчанию EMM386 выводит сообщения только, ес- ли случаются ошибки. Можно указать только "v". min=mmmm-nnnn - Резервирует диапазон сегментных адресов для WINDOWS вместо EMM386. Значения для "mmmm" лежат в диа- пазоне от A000h до FFFFh и округляются в меньшую сторо- ну с кратностью 4 К. Параметр "x" главнее параметра "min". Но "min" главнее "ram", "rom" и "i", если облас- ти пересекаются. nohi - Не разрешает EMM386 загружаться в UMA. Обычно часть EMM386 загружается в UMA. Указание этого параметра увели- чивает размер памяти для UMB-блоков, но уменьшает размер основной памяти. nomovexbda - Не разрешает EMM386 перемещение данных расширенно- го BIOS из основной памяти в UMA. rom=mmmm-nnnn - Резервирует диапазон сегментных адресов, кото- рые EMM386 использует для "призрачной" памяти (как ROM). Значения для "mmmm" лежат в диапазоне от A000h до FFFFh и округляются в меньшую сторону с кратностью 4 К. Ука- зание этого параметра может ускорить работу компьютера, если он уже не имеет такую "shadow" RAM. altboot - Указывает, чтобы EMM386 применял другой метод пере- загрузки компьютера при нажатии CTRL+ALT+DEL. Этот параметр надо ставить тогда, если после загрузки EMM386 нажатие этих клавиш приводит к зависанию маши- ны или к другим действиям. min=size - Указывает минимальное количество эмулируемой EMS/VCPI -памяти (в Кбайтах), если оно доступно. Диапазон значе- ний лежит от 0 до указанного в параметре "memory". По умолчанию = 256. Если указан "noems", то по умолчанию = 0. Если значение "min">"memory", то EMM386 принимает значение "min". Команда "EMM386" без параметров выведет текущее состояние статуса. Перед установкой EMM386.EXE должен быть установлен HIMEM.SYS. Параметры надо использовать очень аккуратно, а то может зависнуть система. Если нужен доступ к UMA, можно использовать или "ram" или "noems". "Ram" переключение организует меньше доступа к UMA для запуска драйверов устройств и программ чем "noems". В любом случае надо в CONFIG.SYS включить команду "dos=umb". Команда включения EMM386.EXE должна предшествовть любой другой "devicehigh"-команде. - 45 - Если EMM386.EXE не может найти 64 Кбайта для создания фрэйм-страницы, то появится следующее сообщение: "Unable to set base address". ("Нельзя настроить базовые адреса"). Примеры: - установки по умолчанию: device=himem.sys device=emm386.exe - базовый адрес сегмента=D000h для EMS фрэйм-страницы и 512 К памяти для EMM386.EXE; один из следующих примеров: device=emm386.exe 512 frame=d000 device=emm386.exe 512 frame=d000 p0=d000 p1=d400 p2=d800_ p3=dc00 - добавить в предыдущий пример запрет использовать адреса с E00h и разрешить использовать EMM386 127 handles: device=emm386.exe 512 frame=d000 x=e000-ec00 h=127 Если используется XGA-дисплей совместно с EMM386.EXE, то надо отменить использование некоторых адресов памяти с помощью опции "x=" команды EMM386. Для их определения можно применить команду просмотра карты памяти. При инсталляции драйвера расширенной памяти Intel (EMM.SYS) надо использовать переключатель "NE" или "E". Более подробно см. документацию к Aboveboard. Кроме EMM386 и EMM-менеджеров памяти разработаны и другие, например: 386MAX, CEMM или QEMM. 10. УСКОРЕНИЕ РАБОТЫ СИСТЕМЫ Для ускорения работы системы рассматриваются следующие пу- ти: - ускорение работы системы без использовния больше памяти; - использование команды "buffers"; - использование программы Fastopen; - использование программы SMARTDrive (диско-кэширующая); - использование программы RAMDrive (диско-памяти). 10.1. УСКОРЕНИЕ РАБОТЫ СИСТЕМЫ БЕЗ ИСПОЛЬЗОВАНИЯ БОЛЬШЕ ПАМЯТИ В основном это методы повышения скорости обращения к жест- кому диску. К ним относятся: - удаление ненужных файлов: - использовать "chkdsk /f" для востановления утеряного места, затем просмотр (и удаление файлов), созданных "chkdsk"; - установка оптимального чередования (interlive). - 46 - 10.1.1. Удаление ненужных файлов. Обычно рассматривают три типа файлов, которые могут быть удалены: - программы и данные, которые больше не используются; - временные файлы, которые остаются на диске при неожиданном (ненормальном) окончании работы программы; - файлы MS-DOS, инсталлируемые автоматически, но которые прак- тически не используются (например, "edlin"). Важно удалить ненужные файлы до "сжатия" или архивации жесткого диска. Можно указать системе специальный подкаталог для временных файлов, настроив переменную TEMP (для старых программ - TMP) в AUTOEXEC.BAT: set temp=c:\tempfile set tmp =c:\tempfile Если такой каталог находится на виртуальном (RAM)-диске, то файлы стираются автоматически; если он находится на жестком диске, то его желательно периодически очищать. Никогда нельзя удалять файлы, начинающиеся с "DBLSPACE". Вспомогательная таблица по анализу некоторых файлов на удаление --------------------------------------------------------------- Имена файлов | Описание | Можно удалить, --------------|--------------------------|--------------------- APPEND .EXE | Установить путь поиска | Если не требуется | файлов данных | --------------|--------------------------|--------------------- NLSFUNC .EXE | Международные кодовые | Если в них нет KEYB .COM | таблицы | нужной. * .CPI | | (COUNTRY.SYS обычно DISPLAY .SYS | | используется всегда) KEYBOARD.SYS | | --------------|--------------------------|--------------------- RAMDRIVE.SYS | Для виртуального диска | Если не нужен --------------|--------------------------|--------------------- DOSSHELL. * | Оболочка MS-DOS Shell | --- " --- * .VID | | --------------|--------------------------|--------------------- POWER .EXE | Сохраняет батарейку | Если компьютер | на laptop-компьютере | не laptop --------------|--------------------------|--------------------- INTERLNK. * | Соединяет два компьютера | Если нет такого INTERSVR. * | | соединения --------------|--------------------------|--------------------- EMM386 .EXE | Управление памятью на | Если компьютер типа MEMMAKER. * | компьютерах от 80386 и | 80286 и ниже, или SIZER .EXE | выше | если нет XMA CHKSTATE.SYS | | --------------|--------------------------|--------------------- SMARTDRV.EXE | Кэширование памяти для | Если нет НМД или | жесткого диска | если нет XMA --------------------------------------------------------------- - 47 - 10.1.2. Использование "CHKDSK". Периодически советуется использовать "CHKDSK /f" для поис- ка и восстановления утерянных секторов. Если на них имеется ка- кая-то информация, то "CHKDSK" создает файлы с типом ".СНК" (например, file0001.chk) в корневом каталоге. Потом надо их посмотреть и удалить, если не нужны. До запуска CHKDSK надо выйти из всех запущенных программ, включая WINDOWS или MS-DOS Shell. Кроме того, надо удалить из файлов CONFIG.SYS и AUTOEXEC .BAT вызовы всех резидентных программ и перезагрузить компьютер (кроме поставляемых с MS-DOS 6). В противном случае могут быть утеряны некоторые данные. CHKDSK не работает на дисках, подс- тавленных по команде SUBST, и ее нельзя использовать для про- верки дисков на сетевых устройствах. Кроме того, CHKDSK находит только логические ошибки в файловой системе, а не физические ошибки диска. Синтаксис: CHKDSK [диск:] [[путь]имя_файла|маска_файлов] [/F] [/V] или для получения статуса текущего диска: CHKDSK /F - Определение ошибок на диске. Нельзя ее использовать, не выйдя нормально из всех загруженных программ и не закрыв в них открытые файлы (данных). /V - Выводит имена файлов на проверяемом диске. В случае, если два файла или каталога используют одно дис- ковое место, то CHKDSK выведет сообщение вида (без их фиксации): <Файл> is cross linked on allocation unit <число> Если CHKDSK не находит ошибок, то он заносит в переменную ERRORLEVEL число 0. В противном случае - 255. Можно записать выводимый CHKDSK статус в файл (но при этом нельзя использовать параметр "/F"). Например: chkdsk a: > status 10.1.3. Установка оптимального чередования. Понятие "чередование" ("interleave") связано с различием механических возможностей работы жесткого диска с возможностями электронники. Однако, с развитием техники такие различия умень- шались, по мере создания более быстрых типов интерфейсов, кото- рых к настоящему времени известно четыре: ST506/412, AT-BUS, ESDI и SCSI. Для первых ST506/412 применялся "MFM"-способ магнитной за- писи (17 секторов по 512 байт на 1 дорожку), который требует очень большую скорость считывания для последовательного чтения секторов, но первые контроллеры были слишком медленные и могли последовательно читать (как правило) на IBM PC/XT только каждый пятый, а на IBM PC/AT - каждый третий сектор. В связи с этим для повышения эффективности работы стал применяться метод чере- - 48 - дования ("interleave"), заключающийся в замене физических номе- ров секторов на логические; а его значение показывает, за сколько полных оборотов диска ("revolution") могут быть прочи- таны все сектора одной дорожки. Причем, оказалось, что для "AT" обычно оптимален метод чередования, равный 3; а для "XT" - 5. Следующим стал применяться "2,7 RLL"-способ кодирования, заключающийся в перекодировании исходной группы информации и введения избыточности при стабилизации вращения диска и улучше- ния качества рабочих поверхностей (26 секторов на дорожку). Со- ответственно, требуются специальные RLL-контроллеры. Развитием метода "2,7 RLL" стал "ARLL" (или "3,9 RLL") (31 сектор на дорожку). Некоторые контроллеры винчестеров, использующих интерфейс ST506/412, снабжены буферной памятью. Они читают всю дорожку диска во внутреннюю RAM-память, поэтому коэффициент чередования для них не играет роли ("контроллеры с interleave 1:1"). Кроме того, есть контроллеры с высокопроизводительными интерфейсами, обеспечивающие реальное значение коэффициента чередования сек- торов 1:1. Интерфейс "AT-BUS" ("Task File" или "IDE") разработан для малогабаритных компьютеров и означает, что часть контроллера, совместимого по адресам с интерфейсом ST506/412, расположена вместе с электронной частью винчестера. Интерфейс ESDI применяется на моделях PS/2 (36 секторов на дорожке). Используется NRZ-метод записи. SCSI - другой универсальный и быстродействующий интерфейс, может быть и медленнее ESDI, но более универсален по работе с периферией. Сведения об используемом интерфейсе (и об уровне чередова- ния) можно прочитать в технической документации к жесткому дис- ку. Например: "Interface : ST506-MFM" Некоторые программы позволяют проверить оптимальность уровня чередования, например программа CALIBRAT.EXE из комплек- та Norton Utilities 5.0. Достаточно выполнять тесты этой прог- раммы до тех пор, пока на экране не будет отработан график зна- чений чередования от 1 до 8 с указанием оптимального (работает программа только по отформатированному диску). Если же она "срывается" и приводит к зависанию машины, или сообщает, что не может определить оптимальный "interleave", то можно попытаться выбрать значение чередования вручную, исходя из вышепредстав- ленной информации. На компьютерах типа 386 можно выполнить "HARD DISK UTILITY" настроечной программы BIOS SETUP (см. При- ложение A). 10.2. ИСПОЛЬЗОВАНИЕ ПРОГРАММЫ FASTOPEN. FASTOPEN уменьшает время на открытие часто используемых файлов. Она отслеживает размещение файлов на жестком диске и сохраняет информацию в памяти для последующих обращений к ним. - 49 - Особенно это касается оверлейных программ и баз данных. Четыре пути загрузки FASTOPEN: - обычным путем через командную строку; - включить FASTOPEN в AUTOEXEC.BAT; - добавить "install"-команду для FASTOPEN в CONFIG.SYS; - запуск FASTOPEN в UMA через "loadhigh" в AUTOEXEC.BAT. Синтаксис как отдельной программы: fastopen имя_диска:[[=]n] [имя_диска:[[=]n][...]] [/x] синтаксис при загрузке через CONFIG.SYS: INSTALL=[[диск:]путь]FASTOPEN.EXE имя_диска:[[=]n]_ [имя_диска:[[=]n][...]] [/X] где: "диск:" и "путь" - Указывают месторасположение FASTOPEN.EXE имя_диска - Имя того раздела на жестком диске, который должен обслуживаться FASTOPEN-ом. n - Количество файлов, с которыми FASTOPEN может работать в в одно время. Диапазон значений: 10<= n <= 999. По умол- чанию = 48. /x - Выделить пространство в дополнительной (EMS) памяти в виде имени кэша (области памяти, в которой будут хра- ниться (кэшироваться) имена открываемых файлов и их расположение). Кэш соответствует версии 4.0 Lotus/In- tel/Microsoft Expanded Memory Specification (LIM EMS). FASTOPEN не требует наличия XMS или EMS. Однако, может ис- пользовать EMS, но не XMS. Его недостатком является то, что он не улучшает использование программ, которые повторно не исполь- зуют какие-либо файлы. Для них более эффективным может оказать- ся использование команды "buffers" или "smartdrive". Пример контроля до 100 файлов, расположенных на диске "C:" (загрузка через CONFIG.SYS): install=c:\dos\fastopen.exe c:=100 Рекомендации по использованию FASTOPEN. 1. Его полезно использовать при работе с базами данных, языками-компиляторами и если есть достаточно основной памяти. 2. Желательно, чтобы количество обслуживаемых файлов вы- биралось из расчета: 1 файл на 1 М объема жесткого диска. 3. Поэкспериментируйте с FASTOPEN. Если не видно ускорения работы программ, то лучше отказаться от его использования. 4. Если на компьтере установлена EMS, то лучше загрузить FASTOPEN в нее, указав опцию "/х". 5. Если на компьтере нет EMS, но есть UMA, то лучше загру- зить FASTOPEN в UMA, применив команду загрузки "loadhigh" (в AUTOEXEC.BAT). - 50 - Другие ограничения по использованию FASTOPEN: 1. FASTOPEN работает только с жестким диском, не работает в сети. Одновременно FASTOPEN может работать только с не более 24 разделами жесткого диска. Указанное количество файлов дейст- вительно для каждого раздела. 2. Настроить FASTOPEN можно только один раз. 3. Нельзя выполнять FASTOPEN из "MS-DOS SHELL" (зависнет машина). 4. Как отдельную команду FASTOPEN нельзя загружать при ис- пользовании WINDOWS. 5. Для предотвращения потери данных нельзя загружать деф- рагментирующую программу (типа "defrag" от MS-DOS 6), пока FASTOPEN.EXE загружен. FASTOPEN требует около 48 байт памяти на каждый контроли- руемый файл. Пока установлен FASTOPEN, нельзя использовать программы, обрабатывающие все файлы НМД, в частности "сжимающие" диск. 10.3. ИСПОЛЬЗОВАНИЕ ПРОГРАММЫ SMARTDrive Эта программа уменьшает время обращения к жесткому диску при наличии XMS. SMARTDrive использует некоторое количество XMS для своих нужд, которое называется КЭШом SMARTDrive. Оно ис- пользуется для хранения информации, читаемой с НМД. Когда прог- рамма пытается прочитать такую информациию с НМД, SMARTDrive передает ее из своего КЭШа. SMARTDrive может всегда записывать новую или модифицированную информацию на НМД, поэтому практи- чески нет опасности потери информации из-за выключения компь- ютера. Обычно SMARTDrive устанавливается через AUTOEXEC.BAT, но для создания двойной буферизации должна быть загрузка и через CONFIG.SYS (см. ниже). Кроме того, SMARTDrive может временно хранить информацию, которая должна быть записана на диск, но не может быть записана немедленно. Если на компьютере возможно ис- пользование SMARTDrive, то программа SETUP (по установке MS-DOS) вставляет команду ее загрузки в AUTOEXEC.BAT. В SMARTDrive MS-DOS 6 добавлена возможность выполнять двой- ную буферизацию, которая обеспечивает совместимость с теми кон- троллерами жестких дисков, которые не могут работать с памятью под управлением EMM386 или WINDOWS, запущенной в 386-enhanced- режиме. В этом случае SMARTDrive должен загружаться с использо- ванием команды "device" файла CONFIG.SYS (в дополнение к заг- рузке через AUTOEXEC.BAT). Рекомендации по установке 1. Используйте SMARTDrive если есть НМД и не менее 512 К XMS. 2. Укажите такой размер кэша, какой наиболее возможен. Ес- ли какие-то программы не могут при этом работать, то надо его уменьшить, пока они не заработают. Наиболее эффективен размер около 2 Мбайт. - 51 - 3. Если возможно, периодически сжимайте НМД. SMARTDrive работает лучше, если файлы на нем нефрагментированы. Но сжатие диска надо выполнять без установки SMARTDrive. 4. Если компьютер типа 80386 с XMS, попробуйте загрузить SMARTDrive в UMA. 5. Не используйте SMARTDrive совместно с другими диск-ке- ширующими программами. Кроме того SMARTDrive не работает с WINDOWS версий 2.х 6. SMARTDrive нельзя загружать после запуска WINDOWS. Синтаксис загрузки через AUTOEXEC.BAT: [диск:][путь]SMARTDRV [[drive[+|-]]...] [/E:ElementSize]_ [InitCacheSize] [WinCacheSize]] [/B:]_ [/C] [/R] [/L] [/Q] [/V] [/S] синтаксис загрузки SMARTDRV из командной строки после того, как он уже был ранее загружен: SMARTDRV [[drive[+|-]]...]] [/C] [/R] синтаксис загрузки для создания двойной буферизации (для CONFIG. SYS): device=[диск:][путь]SMARTDRV.EXE /double_buffer Параметры: [[drive[+|-]] - Определяет букву имени диска (раздела), для ко- торого надо создать кэш-управление. Знак "+" указывает на установление кэша и для чтения, и для записи для это- го диска. Знак "-" - на отмену его. Можно указать нес- колько имен (разделов). Если указывается только имя без знака "+" или "-", то устанавливается кэш для чтения и отменяется кэш для записи. Если не указываются существу- ющие имена, то: - гибкие диски и устройства, созданные с помощью INTERLNK становятся кэшируемыми для чтения, но некэширу- емыми для записи; - разделы жесткого диска становятся кэшируемыми и для чтения, и для записи; - CD-ROM, сетевые устройства и устройства Microsoft Flash memory-card игнорируются. /E:ElementSize - Указывает количество кэшируемой памяти (в бай- тах), которым SMARTDrive обменивается за один раз. До- пустимыми значениями являются: 1024, 2048, 4096 и 8192. По умолчанию - 8192. Чем оно больше, тем больше исполь- зуется основной памяти. InitCacheSize - Определяет количество кэшируемой памяти (в Кбайт) при запуске SMARTDrive (до запуска WINDOWS). Чем оно больше, тем реже надо SMARTDrive обращаться к диску, тем выше скорость выполнения чтения/записи. Если оно не указано, то значение по умолчанию см. в табл. ниже. - 52 - WinCacheSize - Определяет количество кэшируемой памяти (в Кбайт) на которое оно уменьшается после запуска WINDOWS. После выхода из WINDOWS размер кэша восстанавливается. Если InitCacheSize < WinCacheSize, то InitCacheSize становит- ся равен WinCacheSize. Таблица значений InitCacheSize и WinCacheSize по умолчанию ---------------------------------------------------------- Extended InitCacheSize WinCacheSize Memory ---------------------------------------------------------- До 1 MB Вся extended Ноль (нет кэширо- memory вания) До 2 MB 1 MB 256 K До 4 MB 1 MB 512 K До 6 MB 2 MB 1 MB 6 MB и более 2 MB 2 MB ---------------------------------------------------------- /B:BufferSize - Определяет размер буфера первоначального чте- ния, который является дополнительным количеством информа- ции, считываемой из файла после того, как программа вы- полнит чтение какого-то количества данных из него. Напри- мер, если какая-то программа читает 512 Кбайт данных из некоторого файла, то после этого SMARTDrive прочитает из него же еще столько данных, сколько указано в BufferSize, и запишет их в память. Когда этой же программе требуется следующая информация из файла (данных), она может полу- чить ее из памяти, вместо обращения к диску. По умолчанию размер BufferSize = 16 Кбайт. А вообще оно может быть кратно значению ElementSize. Чем оно больше, тем больше основной памяти требуется SMARTDrive. /C - Записывает всю кэшированную информацию из памяти на кэши- руемый диск при уменьшении его активности. SMARTDrive по умолчанию записывает всю кэшированную информацию на диск во время "теплой" перезагрузки по клавишам CTRL+ALT+DEL, но не делает этого при выключении питания или нажатия кнопки RESET. Параметр "/C" заставит SMARTDrive делать за- пись и при выключении питания (и кнопки RESET). Советуется обязательно его ставить. /R - Очищает содержимое существующего кэша и перезагружает SMARTDrive. /L - Запрещает автоматическую загрузку SMARTDrive в блоки UMB, даже если они доступны. Этот параметр обычно добавляется тогда, если используется двойная буферизация, а система MS-DOS загружается медленно. /Q - Отменяет вывод на экран строки статуса при загрузке SMARTDrive (как и по умолчанию). Но если при загрузке вст- ретится ошибка, то сообщение о ней все равно будет выведе- но. Этот параметр нельзя использовать совместно с парамет- ром "/V". /V - Включает вывод на экран строки статуса и сообщения об ошибках во время загрузки. Его нельзя использовать сов- местно с параметром "/Q". - 53 - /S - Выводит дополнительную информацию о статусе SMARTDrive. При инсталяции в "config.sys" раньше SMARTDRV должны уста- навливаться HIMEM.SYS и менеджеры памяти. Т.к. размер КЭШа зависит от используемых программ и конфи- гурации компьютера, то есть смысл с ним поэкспериментировать для поиска наилучшего варианта в диапазоне от 256 до 2048 Кб. Меньше 256К не рекомендуется (нет смысла). Размер КЭШа свыше 2048 К дает небольшую добавку в скорости. Например, создав КЭШ в диапазоне 256К-512К можно увеличить скорость на 20%. А если создать КЭШ размером от 2048К до 2304К повышение скорости было бы 22%. Примеры: c:\dos\smartdrv 2048 1024 c:\dos\smartdrv a- b- d+ Создание двойной буферизации может потребоваться при ис- пользовании SCSI-дисков (как правило), а также при ESDI или MCA -дисками совместно с EMM386 или WINDOWS, запускаемому в 386- enhanced режиме. Но большинство жестких дисков не требуют двой- ной буферизации. Если нет уверенности в ее необходимости, то можно сделать следующие действия: 1. Ввести в CONFIG.SYS строку: device=c:\dos\smartdrv.exe /double_buffer 2. Ввести в AUTOEXEC.BAT команду: c:\dos\smartdrv 3. Запустить MemMaker, если он раньше не использовался. 4. Выполнить команду: "mem /c /p" для просмотра, что UMA используется. 5. В командной строке надо набрать "smartdrv" (и нажать ENTER). Будет выведена информация о системе. 6. Надо посмотреть колонку под названием "Buffering". Если в любой строке этой колонки стоит "yes", то двойная бу- феризация необходима. (Если система загружается медлен- но, то в AUTOEXEC.BAT надо указать загрузку SMARTDRV с параметром "/L"). Если в каждой строке указанной колон- ки стоит "no", то можно удалить "device"-команду заг- рузки SMARTDRV через CONFIG.SYS. Но если в каждой стро- ке этой колонки стоит"-", то SMARTDRV не может опреде- лить, требуется ли двойная буферизация или нет. Установка двойной буферизации возможна только в основную память (при этом занимается 2 Кбайт). 10.4. ИСПОЛЬЗОВАНИЕ ПРОГРАММЫ RAMDrive Драйвер RAMDrive.sys позволяет создать в памяти один или несколько виртуальных дисков. Его можно загружать или через "device"-команду, или через "devicehigh". - 54 - Синтаксис: device=[путь] RAMTDRV.SYS [DiskSize SectorSize [NumEntries]]_ [/e | /a] где: DiskSize - Размер РАМ-диска в Кбайтах. 4<= DiskSize<= 32767. По умолчанию 64 Кбайт. SectorSize - Размер сектора в байтах, может быть равен 128, 256 или 512. По умолчанию 512. Но если указывается Sec- torSize, то надо указать и DiskSize. NumEntries - Количество файлов и подкаталогов которые можно соз- дать в корневом каталоге RAM-диска. 2<= NumEntries <= 1024. По умолчанию 64. Но если указывается Num- Entries, то надо указать SectorSize и DiskSize. /e - Создание RAM-диска в XMS. /a - Создание RAM-диска в EMS. До установки RAM диска в CONFIG.SYS должны быть установле- ны менеджеры XMS (EMS) памяти (HIMEM.SYS, EMM386 или другие). Основные применения RAM диска: - для временных подкаталогов (перем. ТЕМР); - для копии COMMAND.COM; - для часто используемых оверлейных программ (типа NC). Но лучше найти оптимальное сочетание RAMDRIVE и SMARTDRV. Если компьютер типа 80386 или 80486, то при загрузке RAMDRIVE попробуйте использовать команду "devicehigh" вместо "device". Если используется EMM386, не устанавливайте RAM-диск в эммулируемую EMS. Пример: device=C:\DOS\RAMTDRV.SYS 2048 /e