Работа в DOS

  • Примечание: драйвер ifshlp.sys обязательно должен быть в разделе [WIN] файла CONFIG.SYS, без него Windows не загрузится! Для режима командной строки он, однако, бесполезен, а память занимает, потому в разделе [DOS] не нужен. Но, загрузившись в DOS, не пытайтесь затем войти в Windows командой win.com — не получится.

    Дополнительная оптимизация:
    1. Сэкономить ещё 5 Кб стандартной памяти можно, поставив в секцию [DOS] файла CONFIG.SYS команды:

lastdrivehigh=X
stackshigh=9,256
Первая команда резервирует для организации доступа к дискам (физическим и логическим) место в верхней памяти, а не в стандартной. Вместо "X" надо указывать последнюю букву диска, который используется в DOS. Например, если у вас жёсткий диск разбит на два логических, а CD-ROM в DOS не используется, то пишите lastdrivehigh=D.
Вторая команда резервирует память под стеки в верхней области, вместо стандартной по умолчанию.
2. Для загрузки драйверов и резидентных программ в верхнюю память, вместо стандартной, следует в файле CONFIG.SYS использовать команды devicehigh (для sys-драйверов) и installhigh (для com- и exe-программ), а в файле AUTOEXEC.BAT, других bat-файлах и просто в командной строке — loadhigh (lh).

Например, драйвер мыши лучше загружать командой
lh mouse.com
3. При работе в "чистом" DOS весьма желательно загрузить в AUTOEXEC.BAT программу smartdrv.exe, которая организует кэширование дисков в расширенной (extended) памяти (адреса свыше 1 Мб), что при активной работе с файлами существенно увеличивает производительность. В этом случае, кстати, нет потребности в большом количестве буферов ввода-вывода и можно ограничиться 10:
buffershigh=10
Однако если, кроме smartdrv, вы собираетесь использовать в DOS звуковую карту, CD-ROM, мышь, русификатор экрана и клавиатуры, то всё это может и не поместится в верхней памяти. Иногда может помочь смена порядка загрузки драйверов и программ. Также можно попробовать поэкспериментировать с программой MemMaker, которая помогает подобрать оптимальный вариант загрузки. В крайнем случае, от smartdrv придётся отказаться.


  • Если используемым DOS-программам не требуется отображаемая (expanded) память, то можно отказаться от её эмуляции драйвером EMM386 и сэкономить 64 Кб верхней памяти для драйверов, загружая EMM386 строкой
    device=c:\windows\emm386.exe ram noems
    Экспериментировать с порядком загрузки драйверов приходится, поскольку верхняя память сильно фрагментирована, а каждый драйвер должен полностью помещаться в непрерывную область адресного пространства памяти. Однако оптимизация программой MemMaker весьма убога и, оптимизируя вручную порядок загрузки, можно получить гораздо лучшие результаты (и даже лучшие, чем после работы более продвинутого оптимизатора QEMM). При этом нужно учитывать три параметра потребности в памяти у драйвера (размер модуля, минимально потребный размер блока памяти для загрузки драйвера, размер остающейся в памяти резидентной части), а также то, не требуется ли начальная загрузка в нижнюю (стандартную) область памяти. Соотнеся это с размерами блоков верхней памяти, можно использовать их "на всю катушку", освободив нижнюю память по максимуму. А вот исходные данные для "ручной работы" лучше всего получить как раз от оптимизатора QEMM.

Пытаясь "раздобыть" побольше нижней памяти, не следует забывать, что некоторые чипсеты (в частности, некоторые серверные Intel-материнские платы) вообще не дают возможность использовать верхнюю область памяти для программ (EMM386 просто не грузится). Установку DOS-задач на такие машины лучше вообще не планировать.

1 2 3 4

   
Hosted by uCoz