Тонкая настройка и оптимизация 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 килобайт. Но специальное аппаратное устройство отображает в эти окна часть дополнительной памяти, поэтому фактически программа будет работать с дополнительной памятью. При необходимости окна могут двигаться по дополнительной памяти, позволяя программам адресовать весь объём дополнительной памяти. Запомните: расширенная память и дополнительная память - разные вещи!
Ещё одно замечание, касающееся использования программами дополнительной памяти: для получения доступа к дополнительной памяти программы должны непосредственно вызывать драйвер дополнительной памяти. Т.е. для того, чтобы использовать дополнительную память, программы должны быть составлены специальным образом. Для иллюстрации сказанного выше мы приведём рисунок, на котором изображена упрощённая карта распределения оперативной памяти:
Возможности, имеющиеся у вас для оптимизации использования оперативной памяти, сильно зависят от типа процессора и наличия расширенной или дополнительной памяти. Компьютер IBM PC или IBM XTЭтот тип компьютера не оснащён расширенной памятью, но в нём может быть установлена плата дополнительной памяти. Если есть дополнительная память, вы можете разместить в ней кэш диска или электронный диск. Компьютер IBM AT с процессором 80286Если ваш компьютер содержит процессор 80286, вы можете предпринять следующие шаги, направленные на более эффективное использование оперативной памяти.
Компьютеры с процессорами 80386 или 80486Если ваш компьютер содержит процессор 80386 или 80486, к возможностям, перечисленным выше, добавляется ещё две.
Остановимся подробнее на второй возможности. Обычно компьютеры с процессорами 80386 или 80486 оснащены расширенной памятью объёмом от 2 до 64 мегабайт (вам могут встретиться компьютеры с ещё большим объёмом расширенной памяти). Однако многие программы рассчитаны на использование дополнительной памяти. Получается, что у вас есть море расширенной памяти, но вам-то нужна дополнительная! Как быть в этом случае? Не покупать же ещё и плату дополнительной памяти! В этом случае необходимо воспользоваться драйвером .i.EMM386.EXE;, входящим в состав MS-DOS версии 5.0. Этот драйвер использует часть расширенной памяти для эмуляции в ней дополнительной памяти. То есть у вас становится меньше расширенной памяти, но появляется дополнительная. |