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

Тонкая настройка и оптимизация MS-DOS

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

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

4.1. Теория: Как использовать всю доступную память?

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

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

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

Если расположить в расширенной памяти MS-DOS, резидентные программы и драйверы, для программ останется порядка 600-620 килобайт памяти. Это на 100-140 килобайт больше, чем при использовании версий MS-DOS более ранних, чем 5.0. Теперь понятно, зачем надо обязательно переходить к использованию новой версии MS-DOS - у вас будет больше памяти для работы программ! Конечно, это не единственная причина (например, MS-DOS весрии 4.0 содержит ошибки), но довольно существенная.

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

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

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

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

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

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

  • Расширенная память (extended memory) - лежит в адресном пространстве процессора выше границы 1024 килобайт, непосредственно адресуется процессорами 80286/80386/80486 в так называемом "защищённом режиме". Операционная система MS-DOS не может непосредственно использовать расширенную память для загрузки и выполнения программ. Вы можете использовать расширенную память для размещения ядра MS-DOS, системных буферов, резидентных программ и драйверов. Расширенная память располагается непосредственно на материнской плате компьютера.
  • Дополнительная память (expanded memory) - отображается в окна, расположенные в адресном пространстве ниже границы 1024 килобайта, то есть в стандартную память. Эта память доступна MS-DOS и программам, работающим в "реальном режиме", т.е. в дополнительную память могут загружаться программы и эти программы могут там выполняться под управлением MS-DOS. Дополнительная память располагается на отдельной плате, которая вставляется в слоты расширения материнской платы компьютера. Для работы дополнительной памяти в файле CONFIG.SYS должен быть установлен специальный драйвер, поставляющийся вместе с платой памяти.

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

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

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

Компьютер IBM PC или IBM XT

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

Компьютер IBM AT с процессором 80286

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

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

Компьютеры с процессорами 80386 или 80486

Если ваш компьютер содержит процессор 80386 или 80486, к возможностям, перечисленным выше, добавляется ещё две.

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

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

Обычно компьютеры с процессорами 80386 или 80486 оснащены расширенной памятью объёмом от 2 до 64 мегабайт (вам могут встретиться компьютеры с ещё большим объёмом расширенной памяти). Однако многие программы рассчитаны на использование дополнительной памяти.

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

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

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