Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
4rd_lesson_06_03_2013.doc
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
167 Кб
Скачать
☆

2.1.1. Драйвер Himem.Sys

Предназначен для управления расширенной и высокой памятью в соответствии со спецификацией XMS. Имеет следующий синтаксис:

DEVICE=[Disk:][PATH] Himem.sys [/HMAMIN=n] [/NUMHENDLES=m] [/INT15=p] [EISA] [/A20CONTROL:{ON|OFF}] [/SHADOWRAM:{ON|OFF}] [/CPUCLOCK:{ON|OFF}] [/MACHINE:c] [/VERBOSE]

Этот драйвер выполняет две основные функции:

  1. обеспечивает доступ выполняемых программ к расширенной памяти(extended) в соответствии со спецификацией XMS;

  2. формирует и управляет высокой памятью (HMA). Для высокой памяти используются первые 64 Кб расширенной памяти*.

В большинстве случаев при подключении этого драйвера указания ключей не требуется.

Пример использования:

DEVICE = C:\DOS\Himem.sys

Замечания:

  • cам драйвер Himem.sys загружается в стандартную память и занимает в ней около 4Кб;

  • команда на подключение к системе этого драйвера должна быть указана в файле Config.sys первой, перед всеми остальными командами, которые обеспечивают подключение драйверов, использующих XMS память;

  • свободная высокая память также может использоваться для хранения данных исполняемой программы, если она обращается к драйверу Himem.sys с таким запросом;

* Область высокой памяти(HMA), представляет собой первые 64 Кбайта расширенной памяти. Она может быть использована для переноса в нее модулей ядра операционной системы, ее буферов и рабочих областей. При этом для программ MS-DOS дополнительно освобождается несколько десятков килобайт.

Для использования области высокой памяти необходимо написать в файле конфигурации CONFIG.SYS всего две команды:

DEVICE=C:\DOS\HIMEM.SYS

DOS=HIGH

Первая команда загружает драйвер HIMEM.SYS, управляющий расширенной памятью. Вторая команда настраивает MS-DOS на использование области высокой памяти для хранения модулей ядра операционной системы, ее буферов и рабочих областей (см п.2.2).

2.1.2. Драйвер Emm386.Exe

Предназначен управления верхней (UMA) памятью. Имеет следующий синтаксис:

DEVICE = [Disk:][PATH]Emm386.exe [ON|OFF|AUTO] [FRAME=a] [NOEMS] [RAM[=f-g]]

Этот драйвер реализует доступ к области верхней (UMA) памяти.

Ключи ON, OFF и AUTO специфицируют режим работы драйвера. Если указан ON, то драйвер активизируется. Переключатель OFF предотвращает запуск драйвера в работу, хотя он к системе все равно подключается и затем может быть активизирован. Когда задан аргумент AUTO, драйвер переключается в автоматический режим работы по запросу. Ключ NOEMS разрешает поддержку верхней (UMA) памяти.

Замечания:

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

  • команда подключения этого драйвера должна быть указана перед всеми командами, загружающими драйверы устройств в верхнюю память(но после Himem.sys);

Пример использования:

DEVICE = C:\DOS\Emm386.exe NOEMS

2.2. Команда DOS = HIGH | UMB | HIGH, UMB

Предназначена для загрузки резидентных модулей DOS в высокую (HMA) память и обеспечения связи DOS с верхней (UMA) памятью.

Аргумент HIGH специфицирует перемещение резидентных модулей DOS из стандартной памяти в высокую память, если она доступна. В противном случае эти модули остаются в стандартной памяти. По умолчанию используется аргумент LOW, предписывающий оставить резидентные модули DOS в стандартной памяти.

Аргумент UMB указывает, что DOS должна обеспечить связь с верхней памятью, сформированной драйвером Emm386.exe. Когда верхняя память не сформирована, этот аргумент игнорируется.

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

2.3. Команда DEVICEHIGH [/L:r1,[s1] [/S]] = file [аргументы] [переключатели]

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

Команда DEVICEHIGH является аналогом команды конфигурирования DEVICE, однако загружает драйвер не в стандартную память, а в верхнюю и предоставляет пользователю уточнение места загрузки этого драйвера при помощи ключа /L. Чтобы загрузка драйвера в верхнюю память была возможной, необходимо выполнение следующих условий:

  1. в ПК должна быть сформирована верхняя память (п.2.1.2);

  2. должна быть обеспечена связь DOS с верхней памятью (п.2.2);

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

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

Выполнение загрузки драйверов в верхнюю (UMA) память

Для размещения драйверов и резидентных программ в верхней памяти, необходимо:

  • загрузить драйвер EMM386.EXE

  • поместить в файл CONFIG.SYS строку "DOS=[HIGH,]UMB";

  • для загрузки драйверов в верхнюю память, вместо оператора "DEVICE=" использовать оператор "DEVICEHIGH=";

  • для загрузки в верхнюю память резидентных программ в файле AUTOEXEC.BAT используйте команду LOADHIGH, передав ей в качестве параметра имя и параметры загружаемой резидентной программы.

Для примера приведён образец файла CONFIG.SYS, в котором подключен драйвер EMM386.EXE:

DEVICE=C:\DOS\HIMEM.SYS

DEVICE=C:\DOS\EMM386.EXE NOEMS

DOS=HIGH,UMB

DEVICEHIGH=C:\DOS\HYPER386.EXE

DEVICEHIGH=C:\DOS\ANSI.SYS

Первая команда загружает драйвер HIMEM.SYS, необходимый для управления расширенной памятью. Вторая команда подключает драйвер EMM386.EXE, используемый для загрузки резидентных программ и драйверов в верхнюю память. Третья команда указывает, что MS-DOS должен быть загружен в область высокой памяти, должна быть использована возможность размещения драйверов и резидентных программ в верхней памяти.

В последних двух командах драйвер HYPER386.EXE и эмулятор ANSI терминала ANSI.SYS загружаются в верхнюю память (драйверы приведены для примера).

Для загрузки в верхнюю память резидентных программ в файле AUTOEXEC.BAT необходимо использовать команду LOADHIGH или сокращенно LH.

2.4. Команда BREAK = {ON | OFF}

Предназначена для управления прерыванием программ по Ctrl-Break (Ctrl-C). Имеет два режима Off и On. Если прерывание включено (On), то DOS анализирует нажатие клавиш Ctrl-C перед всеми операциями ввода-вывода. Иначе, прерывание выключено.

Пример использования:

BREAK=on

2.5. Команда BUFFERS = n [ , m ]

Устанавливает число буферов для дискового ввода-вывода, которые будут созданы и задействованы DOS. Каждый буфер может хранить информацию из одного сектора (512 байт). Наличие буферов DOS существенно облегчает обработку файлов, если прикладная программа многократно обращается к одним и тем же областям файла. В этом случае при первом обращении к файлу требуемые программе секторы будут считаны в буферы DOS и в дальнейшей работе с этими данными программа будет обращаться не к диску, а к буферам DOS в оперативной памяти, что требует существенно меньше времени. В среднем при увеличении n эффективность системы сначала возрастает, а затем начинает снижаться, т.к. при любом обращении к данным DOS сначала вынуждена просматривать все буфера в поисках затребованных данных.

m – объем буфера предввода, используемого для ускорения дисковых операций. Буфер предввода автоматически заполняется системой данными из m (1-8) секторов, следующих за запрошенными в настоящий момент программой. Этот буфер особенно эффективен в случае последовательного доступа к длинным файлам.

Пример использования:

BUFFERS = 20.

2.6. Команда FILES = n

Устанавливает максимальное число одновременно открытых файлов (8-255, по умолчанию 8). Данную команду следует использовать, если на экране появится сообщение об исчерпании обработчиков файлов (file handler), причем увеличение n ведет к возрастанию размера резидентной части DOS.

Пример использования:

FILES = 20

2.7. Команда COUNTRY = с [, [cp] [,file]]

Настраивает DOS для использования в заданной стране, устанавливая формат даты и времени, принятого в заданной стране. Влияет на задание таких команд, как DATE и TIME. Код страны (для России равен 007) определяет использование типичных для соответствующей страны форматов дат, времени, десятичных разделителей и денежных единиц. Эта информация извлекается из файла country.sys.

Например, для России: COUNTRY = 007, 866, C:\DOS\Country.sys