Электронная библиотека книг Александра Фролова и Григория Фролова.
Shop2You.ru Создайте свой интернет-магазин
Библиотека
Братьев
Фроловых

MS-DOS для программиста

© Александр Фролов, Григорий Фролов
Том 19, М.: Диалог-МИФИ, 1995, 253 стр.

[Назад] [Содеожание] [Дальше]

6.4. Оперативная память

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

Фирма IBM в своем первом персональном компьютере IBM PC использовала процессор Intel 8086, способный непосредственно адресовать 1024 Кбайт оперативной памяти. Из этого адресного пространства фирма IBM использовала для операционной системы и программ 640 Кбайт памяти, зарезервировав оставшиеся 384 Кбайт для системного постоянного запоминающего устройства, дисплейного адаптера и другой аппаратуры.

Однако по мере того, как компьютеры становились все мощнее и мощнее, для них находились новые задачи, требующие все большего объема оперативной памяти. Первоначально заложенного в архитектуру IBM PC объема памяти программ (640 Кбайт) стало недостаточно для решения сложных задач.

С появлением процессора Intel 80286, способного адресовать до 16 Мбайт оперативной памяти, возникли предпосылки для расширения доступного программам адресного пространства. Архитектура компьютера IBM PC/AT позволяет использовать для программ все 16 Мбайт памяти.

Казалось бы, все хорошо, однако даже если ваш компьютер содержит 16 Мбайт оперативной памяти, операционная система MS-DOS без принятия специальных мер может использовать для себя и программ только первые 640 Кбайт. При этом программам пользователя достается обычно не более 500 - 550 Кбайт основной оперативной памяти, остальная память используется MS-DOS для своих собственных нужд.

Это связано с тем, что MS-DOS использует так называемый реальный режим работы процессора 80286. В реальном режиме процессор 80286 становится несколько улучшенным аналогом старого процессора 8086, и может адресовать только первые 1024 Кбайт памяти.

Возникает странная ситуация, когда память есть, но пользоваться ей нельзя!

Распределение памяти в MS-DOS

Для того, чтобы как-то задействовать память, расположенную выше границы 1024 Кбайт (эту память называют расширенной), в старых версиях MS-DOS использовались драйверы электронного диска ramdrive.sys и кеш дисковой памяти smartdrv.sys. Драйвер электронного диска предназначен для организации быстродействующего квазидиска. Этот диск ведет себя так же, как и обычный, но за счет того, что данные пересылаются в оперативную память, такой диск работает очень быстро.

Начиная с версии 5.0 операционная система MS-DOS может использовать расширенную память и для решения других задач.

В частности, в расширенной памяти (вернее, в ее небольшой начальной части размером около 64 Кбайт, называющейся верхней памятью) могут располагаться модули, буферы и рабочие области самой операционной системы. Если в компьютере используется процессор i386 или i486, можно поместить в расширенную память резидентные программы и драйверы.

Если расположить в расширенной памяти MS-DOS резидентные программы и драйверы, для программ останется порядка 600 - 620 Кбайт памяти. Это на 100 - 140 Кбайт больше, чем при использовании старых версий MS-DOS.

А если ваша программа имеет размер 2 Мбайт и к тому же ей требуется обрабатывать массивы данных размером в 1 Мбайт?

Для решения таких задач в среде MS-DOS можно использовать дополнительную память. Эта память располагается на отдельной плате, которая вставляется в слот расширения материнской платы компьютера. Дополнительная память может быть установлена даже в компьютерах, выполненных на базе процессоров 8086 или 8088, которые не могут адресовать память за границей одного Мбайта. Как это может быть?

Здесь все дело в том, что дополнительная память (которая может по размеру достигать 16 или даже 32 Мбайт) отображается с помощью специальных схем в область памяти, лежащую ниже границы 1024 Кбайт, то есть в стандартную память. Для работы с расширенной памятью выделяются 4 окна в области адресов выше границы 640 Кбайт, но ниже 1024 Кбайт. Причем общий размер этих окон составляет 64 Кбайт.

Программы обращаются по адресам, соответствующим одному из четырех окон. Эти адреса находятся в пределах первых 1024 Кбайт. Но специальное аппаратное устройство отображает в эти окна часть дополнительной памяти, поэтому фактически программа будет работать с дополнительной памятью.

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

Запомните: расширенная память и дополнительная память - разные вещи!

  • Расширенная память (extended memory) - лежит в адресном пространстве процессора выше границы 1024 Кбайт, непосредственно адресуется процессорами 80286/i386/i486/Pentium в так называемом защищенном режиме. Операционная система MS-DOS не может непосредственно использовать расширенную память для загрузки и выполнения программ. Вы можете использовать часть расширенной памяти для размещения ядра MS-DOS, системных буферов, резидентных программ и драйверов. Расширенная память располагается непосредственно на основной плате компьютера.
  • Дополнительная память (expanded memory) - отображается в окна, расположенные в адресном пространстве ниже границы 1024 Кбайт, то есть в стандартную память. Эта память доступна MS-DOS и программам, работающим в реальном режиме, то есть в дополнительную память могут загружаться программы и эти программы могут там выполняться под управлением MS-DOS. Дополнительная память располагается на отдельной плате, которая вставляется в слоты расширения основной платы компьютера. Для работы дополнительной памяти в файле config.sys должен быть установлен специальный драйвер, который поставляется вместе с платой памяти.

Еще одно замечание, касающееся использования программами дополнительной памяти: для получения доступа к дополнительной памяти программы должны непосредственно вызывать драйвер дополнительной памяти. То есть для того чтобы использовать дополнительную память, программы должны быть составлены специальным образом.

Для иллюстрации сказанного выше на рис. 6.15 изображена упрощенная карта распределения оперативной памяти .

img00023.gif (7474 bytes)

Рис. 6.15. Упрощенная схема распределения оперативной памяти

Область от 0 до 640 Кбайт - это так называемая стандартная память. В области стандартной памяти располагаются векторы прерываний, часть ядра операционной системы, резидентные программы, драйверы. В эту же область загружаются запущенные на выполнение программы. В результате оптимизации нам было бы желательно максимально расширить пространство, доступное программам, переместив ядро операционной системы, драйверы и резидентные программы в расширенную память.

Область от 640 до 1024 Кбайт зарезервирована фирмой IBM для аппаратного обеспечения. В ней находятся:

  • память видеоадаптера (адреса от A000h:0000h до BFFFh:FFFFh);
  • ПЗУ для обслуживания видеоадаптеров, дисков и другой аппаратуры (адреса от C000h:0000h до EFFFh:FFFFh);
  • BIOS (адреса от F000h:0000h до FFFFh:000Fh).

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

Как правило, зарезервированная память задействована не полностью, в ней есть свободные области. Эти свободные области и используются при работе с расширенной или дополнительной памятью.

Драйвер emm386.exe , входящий в MS-DOS, отображает свободные области на расширенную память, пользуясь виртуальным режимом работы процессоров i386, i486 или Pentium (режим виртуального процессора 8086). К сожалению, в этой книге нет места для детального описания виртуального режима работы. Для нас важно, что процессор, находясь в виртуальном режиме при использовании драйвера emm386.exe адресуется к свободным областям зарезервированной памяти. При этом процессор использует механизм адресации, соответствующий реальному режиму работы. Однако на эти свободные области зарезервированной памяти отображаются участки расширенной памяти, находящиеся выше границы 1024 Кбайт.

Если поместить в свободные участки зарезервированной памяти, отображаемые на расширенную память, драйверы или резидентные программы, физически они окажутся в расширенной памяти. Но сами они об этом не будут знать ничего, продолжая работать так, как будто они находятся в стандартной памяти ниже границы 1024 Кбайт.

Драйверы дополнительной памяти также используют свободные участки зарезервированной памяти. Они располагают там окно размером 64 Кбайт, обычно отображаемое с помощью специальной аппаратуры на дополнительную память, установленную на отдельной плате. Как мы уже говорили, дополнительная память не входит в адресное пространство процессора и не может адресоваться им непосредственно ни в реальном, ни в защищенном режиме. Она отображается в окно, расположенное в зарезервированной памяти и программы адресуются к ней только через это окно.

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

Область от 1024 Кбайт и выше - это расширенная память. Ее начальный участок от 1024 до 1088 Кбайт - область старшей памяти (High Memory Area - HMA ). Именно в эту область MS-DOS может помещать значительную часть своего ядра и области данных. Интересной особенностью области HMA является то, что она доступна для процессора, работающего в реальном режиме, то есть как раз в том режиме, который использует MS-DOS.

Как такое может быть? Для того, чтобы это понять, необходимо вспомнить механизм сегментной адресации памяти, используемый процессорами серии Intel. Физический адрес получается из двух компонент - сегментного адреса и смещения. Каждая компонента - двухбайтовая. Для вычисления адреса в реальном режиме работы процессора к сегментной компоненте, сдвинутой влево на четыре бита, прибавляется компонента смещения.

Например, пусть у нас имеется логический адрес 1234h:0005h. Сегментный адрес равен 1234h, а смещение - 0005h. Сдвигаем сегментный адрес влево на четыре бита, получаем 12340h. Затем прибавляем смещение 0005h и получаем физический адрес 12345h.

Задавая какое-нибудь значение сегментного адреса и меняя смещение, мы можем адресоваться к любому сегменту памяти размером 64 Кбайт в пределах первого Мбайт адресного пространства.

А что получится, если задать сегментный адрес FFFFh, то есть самое большое значение для сегментного адреса?

Очевидно, что конец области оперативной памяти, простирающейся от 0 до 1024 Кбайт, имеет адрес FFFFh:000Fh, так как этому логическому адресу соответствует физический адрес FFFFFh. Адрес FFFFFh - это самый большой адрес, который может быть задан при использовании 20-разрядной адресации. А реальный режим работы процессора использует именно 20-разрядную адресацию.

Зададим себе вопрос: что произойдет, если, например, при записи в память будет указан логический адрес FFFFh:0010h?

Если в вашем компьютере установлен процессор 8086 или 8088, то произойдет запись в самую первую ячейку оперативной памяти, имеющую физический адрес 00000h, так как перенос из девятнадцатого разряда в двадцатый будет игнорирован (адресные разряды в процессоре 8086 или 8088 нумеруются от 0 до 19).

Процессоры 80286, i386, i486 и Pentium имеют большее количество адресных линий, поэтому перенос в двадцатый разряд не будет потерян. Произойдет адресация памяти за пределами первого Мбайта!

За счет двадцатого разряда адресной шины процессор в реальном режиме получает доступ к памяти в диапазоне адресов от FFFFh:0010h до FFFFh:FFFFh. Это почти 64 Кбайт (без шестнадцати байт). Именно эти 64 Кбайт MS-DOS может использовать для размещения своего ядра и областей данных. Все что вам нужно для того чтобы использовать таким образом область старшей памяти HMA - это две строки в файле config.sys :

DEVICE=C:\DOS\HIMEM.SYS
DOS=HIGH

Как использовать всю доступную память

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

IBM PC или IBM PC/XT

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

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

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

Драйвер Назначение драйвера и рекомендации по использованию
ega.sys Сохранение текущего состояния видеоадаптера EGA. Этот драйвер вам нужен только в том случае, если вы работаете с оболочкой DOSSHELL или Windows и при этом ваш компьютер оснащен видеоадаптером EGA
country.sys Этот драйвер нужен вам только в одном случае - если вы используете интернациональную поддержку, встроенную в MS-DOS, например, работаете с символами кириллицы
display.sys Аналогично предыдущему драйверу
keyboard.sys Аналогично предыдущему драйверу
printer.sys Аналогично предыдущему драйверу
himem.sys Драйвер предназначен для управления расширенной памятью. Он бесполезен на тех компьютерах, в которых отсутствует расширенная память. В частности, на компьютерах IBM PC и IBM PC/XT
ansi.sys Драйвер обеспечивает расширенное управление консолью и используется достаточно редко. Подключайте его только в том случае, если он действительно необходим для правильной работы используемых вами программ, о чем можно узнать из документации на программы
ramdrive.sys Этот драйвер предназначен для организации электронного диска в оперативной памяти. Используйте его только в том случае, когда в компьютере имеется расширенная или дополнительная память достаточного объема. Учтите, что более предпочтительным способом увеличения быстродействия дисковой подсистемы является кэширование дисковой памяти
smartdrv.exe Драйвер нужен для организации кеширования дисковой памяти. Его использование оправдано только на тех компьютерах, которые имеют расширенную или дополнительную память
driver.sys Этот редко используемый драйвер предназначен для поддержки нестандартных или внешних НГМД
setver.exe Драйвер позволяет "обмануть" программы, не рассчитанные на использование MS-DOS версии 6.22. Когда такие программы пытаются определить версию MS-DOS, драйвер setver.exe возвращает заранее оговоренное для каждой программы значение, например, 3.30. Если вы не запускаете программы, рассчитанные на конкретную версию MS-DOS, у вас нет необходимости использовать этот драйвер
emm386.exe Этот драйвер используется для управления расширенной памятью в компьютерах, выполненных на базе процессоров i386, i486 или Pentium. Он совершенно бесполезен, если ваш компьютер содержит процессоры 8086, 8088, NEC20 или 80286

IBM PC/AT с процессором 80286

Если ваш компьютер содержит процессор 80286, вы можете предпринять следующие шаги, направленные на более эффективное использование оперативной памяти:

  • ядро операционной системы MS-DOS и ее буферы можно перенести в область адресов, лежащую выше границы 1024 Кбайт. При этом доступная для программ область оперативной памяти увеличится на несколько десятков Кбайт;
  • компьютер IBM PC/AT с процессором 80286 обычно имеет по крайней мере 384 Кбайт расширенной памяти. Эту память лучше всего задействовать для организации кеширования дисков. Кэширование дисков улучшит производительность дисковой подсистемы компьютера;
  • если вы располагаете расширенной памятью размером в несколько Мбайт, имеет смысл увеличить размер кеша до 2-4 Мбайт. Кроме того, можно организовать в расширенной памяти электронный диск ;
  • если размер расширенной памяти составляет 384 Кбайт, но имеется еще и дополнительная память, вы можете организовать кеш в расширенной памяти и электронный диск в дополнительной. Если вы работаете с программным обеспечением, использующим дополнительную память, лучше ограничиться дисковым кешем в расширенной памяти.

Первое, что необходимо сделать при оптимизации использования памяти - перенести ядро операционной системы MS-DOS, ее буферы и рабочие области в область адресов, лежащую выше границы 1024 Кбайт. Эта возможность появилась в MS-DOS начиная с версии 5.0.

После установки MS-DOS на компьютере IBM PC/AT файл config.sys будет содержать следующие две строки:

DEVICE=C:\DOS\HIMEM.SYS
DOS=HIGH

Первая строка нужна для подключения драйвера himem.sys , управляющего расширенной памятью. Этот драйвер необходим для размещения MS-DOS выше границы 1024 Кбайт. Вторая строка указывает, что MS-DOS и все ее рабочие области должны быть размещены в расширенной памяти.

Учтите, что эти две строки должны располагаться в файле config.sys именно в том порядке, в котором они были приведены выше - вначале необходимо подключить драйвер himem.sys , а затем указать MS-DOS о необходимости загрузки ее ядра и областей данных в старшие адреса памяти строкой DOS=HIGH.

После того, как вы переместили операционную систему в область адресов выше 1024 Кбайт, займитесь размещением кеша дисковой подсистемы и электронного диска. Здесь все зависит от того, сколько и какой памяти установлено в вашем компьютере. Вам необходимо найти компромисс между размером кеша и дополнительной или расширенной памятью, отведенной используемому программному обеспечению. При этом вы можете воспользоваться рекомендациями, приведенными в разделе, посвященной настройке дисковой системы компьютера.

IBM PC/AT с процессорами i386, i486 и Pentium

Если ваш компьютер содержит процессор i386, i486 или Pentium, к перечисленным выше возможностям добавляется еще две:

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

Остановимся подробнее на второй возможности.

Обычно компьютеры с процессорами i386, i486 или Pentium оснащены расширенной памятью объемом от 2 до 16 Мбайт (вам могут встретиться компьютеры с еще большим объемом расширенной памяти). Однако все еще встречаются программы рассчитаны на использование дополнительной памяти.

Получается, что у вас есть очень много расширенной памяти, но вам-то нужна дополнительная! Как быть в этом случае? Не покупать же еще и плату дополнительной памяти!

В этом случае необходимо воспользоваться драйвером emm386.exe , входящим в состав MS-DOS. Этот драйвер использует часть расширенной памяти для эмуляции в ней дополнительной памяти. То есть у вас становится меньше расширенной памяти, но появляется дополнительная.

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

Для реализации этих возможностей подключите драйвер emm386.exe :

device=c:\dos\emm386.exe  [параметры]

Эта строка должна располагаться в файле config.sys после строки, подключающей драйвер himem.sys .

В качестве параметра вы можете указать размер эмулируемой дополнительной памяти в Кбайтах. Например, если вам нужна дополнительная память размером 1 Мбайт, используйте следующую строку:

device=c:\dos\emm386.exe  1024

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

Для того, чтобы полностью отключить эмуляцию дополнительной памяти, задайте параметр NOEMS:

device=c:\dos\emm386.exe  NOEMS

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

Однако даже если вы подключите драйвер emm386.exe , ваши резидентные программы и драйверы не попадут автоматически в расширенную память. Для того, чтобы разместить драйверы и резидентные программы в расширенной памяти, вам необходимо сделать следующее:

  • подключить драйвер himem.sys ;
  • поместить в файл config.sys строку "DOS=HIGH,UMB";
  • для загрузки драйверов вместо оператора "DEVICE=" использовать оператор "DEVICEHIGH =";
  • для загрузки резидентных программ в файле autoexec.bat использовать команду LOADHIGH , передав ей в качестве параметра имя и параметры загружаемой резидентной программы.

Для примера приведем образец файла config.sys , в котором подключен драйвер emm386.exe :

device=c:\dos\himem.sys 
device=c:\dos\emm386.exe  2048
dos=high,umb
devicehigh=c:\dos\smartdrv.sys 320
devicehigh=c:\dos\ansi.sys

В первой строке подключается драйвер himem.sys , необходимый для управления расширенной памятью. Во второй строке подключается драйвер emm386.exe , который используется для эмуляции двух Мбайт дополнительной памяти и для загрузки резидентных программ и драйверов в расширенную память. В третьей строке указывается, что MS-DOS должен быть загружен в верхние адреса памяти, и кроме того, что должна быть использована возможность размещения драйверов и резидентных программ в расширенной памяти.

Последние две строки - пример размещения драйверов в расширенной памяти.

Для загрузки в расширенную память резидентных программ воспользуйтесь командой LOADHIGH или LH . Приведем фрагмент файла autoexec.bat, в котором используется загрузка резидентных программ в расширенную память:

LOADHIGH  c:\cyryllic\cyrkeyb c
LH  c:\mouse.com

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

Отметим еще один важный момент, связанный с использованием драйвера emm386.exe .

В состав MS-DOS входит программа mem.exe , предназначенная для исследования оперативной памяти. Запустив ее с параметром /f, вы увидите на экране примерно следующее:

Free Conventional Memory:

  Segment         Total
  -------   -----------------
   033F9          224    (0K)
   03407       88 992   (87K)
   049C1      353 248  (345K)

  Total Free: 442 464  (432K)

Free Upper Memory:

  Region   Largest Free     Total Free      Total Size
  ------  --------------  --------------  --------------
      1         0   (0K)        0   (0K)  125 808 (123K)
      2         0   (0K)        0   (0K)    8 192   (8K)

Программа отображает объемы свободных блоков стандартной памяти и блоков верхней памяти.

Обратите внимание, что область верхних блоков памяти фрагментирована. В ней выделяются области с номерами 1 и 2.

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

DEVICEHIGH  /L:1=C:\DOS\SETVER.EXE
LH  /L:1 C:\DOS\MSCDEX.EXE /S /D:MITSUMI
LH  /L:2 SWAKEYB

Зная объем оперативной памяти, необходимый для драйверов и резидентных программ, вы можете расположить их в верхних блоках памяти оптимальным образом, указав для каждого драйвера или резидентной программы нужную область. Для определения объема резидентной части драйверов и резидентных программ вы можете использовать все ту же программу mem.exe , запустив ее с параметром /D.

Если имеется несколько свободных блоков верхней памяти и десяток драйверов, а также резидентных программ, "ручное" их размещение в областях верхней памяти может отнять много времени. К счастью, в состав MS-DOS входит программа memmaker.exe , выполняющая такое размещение в автоматическом режиме. Иногда после автоматической оптимизации бывает полезно выполнить "ручную доводку", перемести некоторые резидентные программы в другие области верхней памяти.

Детальное обсуждение программы memmaker.exe вы сможете найти во втором томе нашей серии книг "Персональный компьютер - шаг за шагом", который называется "Операционная система Microsoft Windows . Руководство пользователя". Заметим только, что программа memmaker.exe добавляет к номеру области еще и размер резидентной части драйвера или программы:

DEVICEHIGH  /L:1,12048 =C:\DOS\SETVER.EXE
LH  /L:1,28288 C:\DOS\MSCDEX.EXE /S /D:MITSUMI
LH  /L:2,1520 SWAKEYB

Быстродействие оперативной памяти

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

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

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

В CMOS-памяти хранится конфигурация аппаратных средств компьютера. После изменения конфигурации компьютера необходимо обновить содержимое CMOS-памяти. Для этого предназначена специальная программа, часто называемая SETUP-программой или программой установки конфигурации.

SETUP-программа может запускаться при включении компьютера (если нажать определенную клавишу, обычно <Del>), либо эта программа может поставляться на дискете вместе с компьютером.

Если ваш компьютер оснащен быстродействующей памятью, необходимо убедиться в том, что процессор не вставляет циклы ожидания при обращении к памяти.

Это особенно необходимо, если в вашем компьютере установлен процессор i386 или i486. Такие компьютеры обычно комплектуются быстрой памятью. И если в CMOS-памяти указано, что надо вставлять циклы ожидания при работе с памятью, компьютер не будет работать с максимальной производительностью.

Другая возможность повышения скорости работы с памятью, но на этот раз с постоянной памятью (BIOS), часто имеется в компьютерах, выполненных на процессорах i386 или i486. Эта возможность заключается в копировании содержимого относительно медленной постоянной памяти BIOS в специальную область быстродействующей оперативной памяти с последующим преобразованием адресов. Используемая область памяти имеет специальное название - теневая память.

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

Будет выполняться копирование BIOS в теневую память или нет - зависит от установки определенной ячейки CMOS-памяти. Для выбора правильного режима вам необходимо воспользоваться SETUP-программой.

Как правило, SETUP-программа описывается в документации на основную плату компьютера. Возможность изменения количества тактов ожидания и режим теневой памяти обычно имеются только в компьютерах, выполненных на процессорах i386, i486 и Pentium, однако бывают и исключения. Например, модели компьютеров фирмы SUMMIT, выполненные на основе процессора 80286, могут работать без тактов ожидания. В них также имеется возможность использования теневой памяти.

[Назад] [Содеожание] [Дальше]