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

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


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

Глава 39. Использование оперативной памяти в DOS
Загрузка DOS в НМА

Диспетчеры памяти
Оптимизация

использования

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

для перехода от одного режима к другому (как это делается, описано в и. 40.14). Но

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

работчики научились перемещать (с помощью специальных драйверов) часть кода DOS

в первые 64 Кбайта расширенной памяти. Это позволило освобождать 30-40 Кбайт

обычной памяти на компьютерах с процессором Intel-80286 или старше.
А с появлением микропроцессора Intel-80386 данную проблему стало возможно решит!.

кардинально. Этот микропроцессор оснащен средствами управления оперативной па-

мятью, с помощью которых можно назначить любому блоку физической памяти нуж-

ный логический адрес. Тем самым оказалось возможным как бы поместить блоки опе-

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

"пустоты" между участками памяти, занятыми BIOS и контроллерами. Естественно,

при этом количество расширенной памяти компьютера несколько уменьшалось (ведь

общее количество физической памяти в компьютере от переназначения адресов не

изменилось), но расширенная память Ч это значительно менее дефицитный ресурс.
Различные фирмы (Quarterdesk, Qualitas и др.) разработали так называемые диспет-

черы памяти (QEMM и 386МАХ), которые реализовывали эту возможность, позволяя

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

резидентные программы в эти блоки верхней памяти. В 1990 г. соответствующая воз-

можность была включена и в DR DOS 5.0 фирмы Digital Research, что стало угрожать

позициям фирмы Microsoft на рынке DOS. Поэтому фирма Microsoft напряглась и в

1991 г. выпустила MS DOS 5.0, в которую были включены аналогичные возможности:

драйвер EMM386, обеспечивающий доступ к верхней памяти и команды DeviceHigh и

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

того, MS DOS 5.0 поддерживала и перемещение ядра DOS в первые 64 Кбайта расши-

ренной памяти.
Итак, с помощью диспетчеров памяти EMM386 из MS DOS, QEMM, 386МАХ и др.

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

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

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

мог отводиться для драйверов и резидентных программ: ведь типичный объем свобод-

ных участков верхней памяти составляет от 100 до 200 Кбайт (на разных компьютерах

Ч по разному).
Однако проблема наилучшего использования верхней памяти оказалась не такой-то

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

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

(обычно называемых регионами), расположенных в "дырах" между адресами памяти,

используемыми BIOS и контроллерами. Поэтому для наилучшего использования верх-

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

какой регион верхней памяти лучше ее поместить (или, может быть, оставить в обыч-

ной памяти). Это совсем не простая комбинаторная задача, и часто здесь приходится

рассматривать десятки вариантов в поисках наилучшего.
Ясно, что возлагать на пользователя заботу об эффективном использовании верхней

памяти было бы неправильно. Пользователь должен решать свои проблемы, а не ком-

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

памяти. Тем более что при любом изменении конфигурации компьютера (добавлении

нового контроллера, изменении версии драйвера и т.д.) эту задачу надо решать заново.

Поэтому для решения этой задачи были созданы специальные программы Ч оптими-

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

памяти независимых разработчиков (Optimize в диспетчере QEMM фирмы

Quarterdesk, Maximize в диспетчере 386МАХ фирмы Qualitas и т.д.). В MS DOS 6.0

также был включен оптимизатор MemMaker, который рассматривается главе 41. Оп-

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

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

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

файлы конфигурации DOS Ч CONFIG.SYS и AUTOEXEC.BAT. Этот процесс требует

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


Часть 7. DOS для опытного пользователя
[Т] 39.6'
I fr'' !)'^.Х'^""-"-<>."{.
^ уl\Х1Mf^f.^^ Il4<,' ,//- ii .1 li-U.'

:t) И":Х1(^l". i'Ч^^^ll.ХХ^"
Для получения суммарных данных об использовании оперативной памяти можно вве-

сти команду MEM. На экран будет выдана следующая таблица:
Размеры различных

видов памяти
Размеры свободных

блоков памяти
Использование НМА
Если имеется

EMS-память
Memory Type
Conventional

Upper

Reserved

Extended (XMS)
Total memory

Total under 1 MB
Total
40K 600K

143K OK

384K OK

173K 64 196K

740K 64 796K

182K 600K

600K OK (614 688 (0 bytes) bytes)

Хmo ry area.
640K

143K

384K
64 369K
65 536K

783K
Largest executable program size

Largest free upper memory block

MS-DOS is resident in the high memory
Здесь для каждого типа памяти (Conventional Ч обычная память, Upper Ч верхняя

память. Reserved Ч зарезервированная память, то есть память, занятая для специаль-

ных целей, скажем, создания теневого BIOS, то есть копии BIOS в оперативной памя-

ти, Extended (XMS) Ч расширенная память) приводится общий размер данного типа

памяти (столбец Total), размер использованной памяти (столбец Used) и размер сво-

бодной, то есть незанятой памяти данного типа (столбец Free). Ниже в строке Total

memory данные сведения приводятся для всех видов памяти в сумме, а в строке Total

under I MB Ч суммарные данные для обычной и верхней памяти.
После этого программа МЕН приводит наибольший размер программы, который может

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

обычной памяти (строка Largest executable program size), и размер наибольшего не-

прерывного блока верхней памяти (строка Largest free upper memory block).
Если модули DOS загружены в первые 64 Кбайта расширенной памяти (НМА) с по-

мощью команды файла CONFIG.SYS DOS=HIGH), то в конце выдачи сообщается об этом:

MS-DOS is resident in the high memory area (MS DOS находится в НМА). Если драй-

вер расширенной памяти запущен, и первые 64 Кбайта расширенной памяти свободны,

то выдается другое сообщение: The high memory area is available (НМА свободна).
Если драйвер EMM386 эмулирует EMS-память, то после надписи Extended (XMS)

будет выведена звездочка Ч символ примечания. А само примечание будет приведено

чуть ниже:
EMM386 Is using XMS memory to simulate EMS memory as needed.

Free EMS memory may change as free XMS memory changes.

(EMM386 использует расширенную память для имитации EMS-памяти

при наличии потребности в ней. Размер свободной EMS-памяти может изменяться

при изменении количества свободной расширенной памяти).
А еще до этого в выдаче будут сообщены общий размер EMS-памяти (Total Expanded)

и размер свободной EMS-памяти (Free Expanded)'.
Total Expanded (EMS)

Free Expanded (EMS)*
32 064 (32 833 536 bytes)

31 376 (32 129 024 bytes)
" ) Г Х/1"," 11'

1-1(^101If Х.iUII^ХH Hi.'

/ 1НМЯ 1И ! lpOl /.)- 'MM:МИ
Чтобы узнать, какие программы и драйверы находятся в памяти и сколько памяти они

занимают, введите команду MEM /С /Р . Здесь режим /С указывает желаемый тип

выдачи, а режим /Р заставит программу Mem делать паузы при заполнении экрана

(для продолжения выдачи надо будет нажать любую алфавитно-цифровую клавишу).

Вот фрагмент выдачи программы Mem в этом режиме (для экономии места часть строк

заменена строкой с многоточием):
Глава 39. Использование оперативной памяти в DOS
Modules using memory below 1 MB:

Name Total
Conventional
Upper Memory
SYSTEM 33 264 (32K) 9 632 (9K) 23 632 (23K)

HIMEM 1 168 (1K) 1 168 (1K) 0 (OK)

EMM386 4 320 (4K) 4 320 (4K) 0 (OK)

DBLBUFF 2 448 (2K) 2 448 (2K) 0 (OK)

ASPIDISK 9 472 (9K) 9 472 (9K) 0 (OK)

SETVER 832 (1K) 0 (OK) 832 (1K)

KEYB 6 944 (7K) 0 (OK) 6 944 (7K)

Free 614 704 (600K) 614 704 (600K) 0 (OK)
C)l4f;1 О СИПООДНОИ

пцмч1И
Здесь в столбце Name приводится имя программы или драйвера (исключения: System

означает память DOS, a Free Ч свободную память). В столбце Total сообщается об-

щее количество занятой программой (драйвером, DOS и т.д.) памяти, а в столбцах

Conventional и Upper Memory уточняется, сколько из этого количества памяти со-

ставляет обычная память {conventional) и сколько верхняя память (upper).
Вслед за приведенной таблицей приводятся суммарные данные об использовании па-

мяти (см. пункт "Суммарные данные об использовании памяти" выше).
3, iMi'i. iiinr Для подробного изучения можно вывести данный отчет в файл. Например,

команда MEM /С > MEM.LST помещает выдаваемый программой MEM отчет в файл MEM.LST.
Если Вы хотите узнать более подробные, чем в сводном отчете, сведения о свободных

участках оперативной памяти, введите команду MEM /F . Программа выдает отчет о

блоках свободной памяти. Сначала приводятся данные о блоках свободной обычной

памяти (Free Conventional Memory):
Free Conventional Memory:

Segment Total
Свободные блоки

обычной памяти
OOB9F

0142D

01436

029FO
80 (OK)

144 (OK)

88 992 (87K)

482 544 (471K)
Total Free: 571 760 (558K)
Здесь сначала приводятся данные о блоках свободной обычной памяти (Free Conven-

tional Memory). Для каждого блока указывается сегментный адрес начала блока (в

шестнадцатеричном виде, столбец Segment) и размер блока (столбец Total). В строке

Total Free приводится общее количество свободной обычной памяти.
3.:1М<"чяпис. Приводимые сведения не вполне корректны, так как программа выводит све-

дения о блоках, занятых самой программой MEM, как о свободных, но не объединяет их эти

блоки с блоком оставшейся свободной памяти. Это может ввести пользователя в заблужде-

ние: вместо одного большого свободного блока памяти он увидит три блока поменьше. Так,

приведенный выше отчет о блоках свободной обычной памяти правильнее выглядел бы так:
Segment Total


OOB9F

0142D
80

571680
(OK.)

(558K)
Свободные блоки Ниже приводится отчет о блоках свободной верхней памяти (Free Upper Memory):

верхней памяти pree Upper Memory:

Region Largest Free Total Free Total Size
41 488

65 520
(41 К)

(64K)
41 488

65 520
(41 K)

(64K)
76 624

65 520
(75K)

(64K)
Подробные сведения

Для каждого региона (непрерывного блока) верхней памяти приводится номер региона

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

этом регионе верхней памяти (столбец Largest Free), общее количество свободной

памяти в регионе (столбец Total Free) и размер всего этого региона верхней памяти

(столбец Total Size).
Чтобы вывести наиболее подробные сведения о блоках памяти, занятых DOS, про-

граммами и драйверами, следует ввести команду MEM /D /Р . Здесь режим /D указы-

вает желаемый тип выдачи, а режим /Р заставит программу Mem делать паузы при

заполнении экрана (для продолжения выдачи надо будет нажать любую алфавитно-

цифровую клавишу).
Часть 7. DOS для опытного пользователя
Блоки

обычной памяти
В выдаваемом программой отчете сначала приводятся данные о блоках обычной памяти

(Conventional Memory Details), ниже Ч о блоках верхней памяти (Upper Memory

Details). Для экономии места часть строк заменена строкой с многоточием:
Conventional Memory Detaij:

Segment Total Name Type
00000 1 039 (1K) Interrupt Vector

00040 271 (OK) ROM Communication Area

00050 527 (1K) DOS Communication Area

00070 2 864 (3K) 10 System Data

CON System Device Driver

AUX System Device Driver

COM3 System Device Driver

COM4 System Device Driver

00123 5 536 (5K) MSDOS System Data

0027D 34 672 (34K) 10 System Data

1 152 (1K) XMSXXXXO Installed Device=HIMEM

3 104 (3K) EMMOXXXO Installed Device^EMM386

13 184 (13K) SCSIMGR$ Installed Device^ASPIBMV

896 (1K) FILES=20

256 (OK) FCBS=4

10 640 (10K) BUFFERS=20

2 288 (2K) LASTDRIVE=Z

3 008 (3K) STACKS', 256

OOAF4 80 (OK) MSDOS System Program

OOAF9 2 656 (3K) COMMAND P rog ram

OOB9F 80 (OK) MSDOS -- Free -



OOBA4 272 (OK) COMMAND Environment

00В В 5 144 (OK) MEM Environment

OOBBE 11 408 (11K) KEYRUS P год ram

OOE87 88 992 (87K) MEM Program

02441 505 824 (494K) MSDOS -- Free Ч

Upper Memory Detail:

Segment. Region Total Name Type

OC94A 1 35 120 (34K) 10 System Data

35 088 (34K) DBLSYSH$ installed Device=-DRVSPACE

OD1DD 1 -144 (OK) MOUSE Environment

OD1E6 1 14 464 (14K) MOUSE Program

OD56E 1 26 912 (26K) MSDOS -- Free --
Имена программ и

драйверов
Виды блоков памяти
Блоки памяти

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

надцатеричном виде, столбец Segment), размер блока (столбец Total), имя программы

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

(столбец Name), и назначение блока (столбец Type). Для блоков верхней памяти со-

общается также номер региона верхней памяти (столбец Region).
В столбце Name обозначения драйверов приводятся с отступом, чтобы их нельзя было

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

Type) в столбце Name (имя программы Ч хозяина блока) приводится MSDOS.
В столбце Type назначение блоков может быть следующим: Interrupt Vector Ч табли-

ца векторов прерываний, ROM Communication Area Ч область параметров, исполь-

зуемая BIOS, DOS Communication Area Ч область параметров, используемая DOS,

System Data Ч системные данные MS DOS, System Device Driver Ч встроенный в

DOS драйвер, Installed Device Ч драйвер, установленный с помощью команды DEVICE

или DEVICEHIGH файла CONFIG.SYS, FILES=..., FCBS=..., BUFFERS=..., LAST-

DRIVE^..., STACKS=... Ч области, в которых хранятся данные, соответствующие

указанным командам файла CONFIG.SYS, Program Ч программа, Environment Ч

переменные окружения программы, -- Free Ч Ч свободный блок памяти.
Ниже приводится сводная информация об использовании памяти, в которую дополни-

тельно включаются сведения о количестве памяти сверх 1 Мбайта, не занятой драйве-

ром расширенной памяти (Memory accessible using Int 15h), а также о поддерживаемых

версиях стандартов EMS-памяти (EMS version) и расширенной памяти (XMS version),

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

команда MEM /С > MEM. LST помещает выдаваемый программой MEM отчет в файл НЕМ. LST.
Для того чтобы вывести сведения только о блоках памяти, принадлежащих резидент-

ной программе или драйверу, введите команду MEM /М имя-программы-или-драйвера .

Например, MEM /М MOUSE выведет данные по программе или драйверу MOUSE.

Часть 8
Настройка

конфигурации DOS
В этой части мы расскажем о настройке конфигурации DOS. В главе 40

описывается как процесс настройки конфигурации на новом компьютере,

так и внесение в нее изменений. Подробно рассматривается русификация

компьютера, кэширование дисков, использование памяти. Затем даются

рекомендации по написанию файлов конфигурации CONFIG.SYS и

AUTOEXEC.BAT. В конце главы рассказывается о том, как использовать

диалоговые файлы конфигурации и как приспособить их для выполнения 1'

периодических работ на компьютере (например, для проверки дисков).
В главе 41 описывается применение программы MemMaker, с помощью

которой можно оптимизировать файлы конфигурации CONFIG.SYS и

AUTOEXEC.BAT так, чтобы высвободить большее количество оперативной

памяти для прикладных программ.
ХОГЛАВЛЕНИЕ ЭТОЙ ЧАСТИ
Глава 40. Настройка конфигурации DOS ................................................. 440

1   ...   59   60   61   62   63   64   65   66   ...   98


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