Куда пропала оперативная память?
(С) Фролов А.В., Фролов Г.В., 1997,
Сегодня мы расскажем вам о проблеме, которая
иногда возникает при использовании старых
программ, расчитанных на работу в MS-DOS, например,
игровых. Эта проблема проявляется следующим
образом: при запуске программа сообщает, что для
работы ей не хватает оперативной памяти и она
отказывается работать.
Увидев такое сообщение, не спешите бежать в
компьютерный магазин за новыми модулями памяти.
Даже оснастив компьютер оперативной памятью
размером 128 Мбайт, вы можете ничего не добиться, а
только зря потратите деньги. Скорее всего дело не
в том, что памяти мало, а в том, что она
используется старыми программами не полностью.
Выполнив определенные настройки операционной
системы, вы можете заставить "упрямую"
программу заработать, не изменяя конфигурацию
аппаратных средств своего компьютера.
Корни причин неэффективной работы старых
программ с оперативной памятью лежат в
архитектуре первых моделей процессоров Intel 8086 и
8088, использованных в компьютерах IBM PC. Эти
процессоры принципиально не могли работать с
памятью объемом больше чем 1 Мбайт в силу
присущих им архитектурных ограничений. В те
времена микросхемы памяти стоили очень дорого, а
такой объем подходил для решения любых задач,
поэтому, казалось, предел в 1 Мбайт начнет мешать
еще не скоро.
С течением времени оперативная память
дешевела. Программы стали более требовательны к
ее объему. Для удовлетворения потребностей новых
программ фирме Intel пришлось разработать
процессор Intel 80286 с новой архитектурой. В так
называемом защищенном режиме процессор Intel 80286
способен адресовать до 16 Мбайт оперативной
памяти.
Чтобы обеспечить возможность работы старых
программ, в процессоре Intel 80286 помимо защищенного
режима был предусмотрен реальный режим работы. В
этом режиме новый процессор выглядел с точки
зрения программы как процессор Intel 8086 и имел то же
самое ограничение на размер адресуемой памяти - 1
Мбайт.
Ситуация с разными режимами работы процессоров
Intel сохранилась и поныне, во времена новейших
процессоров Pentium II. Программы, разработанные
специально для таких операционных систем как
Microsoft Windows, IBM OS/2 Warp и UNIX, могли использовать для
своей работы почти всю оперативную память,
установленную в компьютере. Что же касается
программ MS-DOS, то они запускаются в режиме
совместимости и ни при каких условиях не смогут
преодалеть барьер в 1 Мбайт, установленный
когда-то для процессора Intel 8086.
Кое что, однако, все же можно сделать.
Из адресного пространства 1 Мбайт для программ
используется всего 640 Кбайт. Остальная область
частично выделяется видеоадаптеру и другим
периферийным устройствам, а частично остается
свободным. Установив в операционной системе MS-DOS
драйвер расширенной памяти EMM386.EXE вы можете
отобразить свободные участки адресного
пространства на память, лежащую выше границы 1
Мбайт. Такое отображение возможно, однако, только
для процессора Intel 80386 и процессоров более
старших моделей.
Перед тем как приступать к оптимизации памяти,
а также после завершения этого процесса, имеет
смысл выяснить, а сколько же свободной памяти
есть в наличии. Это можно сделать с помощью
программы MEM.EXE, входящей в состав MS-DOS. В отчете,
который она отображает, доступная для программ
MS-DOS память называется "Conventional memory"
(стандратная память). В случае успешной
оптимизации объем свободного простарнства может
достигать 600 - 620 Кбайт.
После установки драйвера EMM386.EXE загрузите
резидентные программы, запускаемые через файл
AUTOEXEC.BAT и драйверы, подключенные в файле CONFIG.SYS с
помощью команд LH и DEVICEHIGH, соответственно.
Подробное описание этих команд вы можете найти в
любом руководстве по MS-DOS.
Существует и более легкая методика, основанная
на применении программы оптимизации памяти MEMMAKER,
входящей в комплект MS-DOS. Просто запустите эту
программу и следуйте инструкциям, появляющимся
на экране. После двухкратной перезагрузки
операционной системы объем памяти, доступной
программам MS-DOS, заметно увеличится.
Проследите также за тем, чтобы в файле CONFIG.SYS
загружался драйвер HIMEM.SYS, а также чтобы в этом
файле была строка DOS=HIGH,UMB. В этом случае часть
ядра операционной системы MS-DOS будет загружена в
так называемую область старшей памяти,
находящуюся выше границы первого мегабайта. Это
освободит еще несколько десятков Кбайт памяти
для старых программ.
Некоторые игровые программы требуют, чтобы для
их запуска было еще больше свободной памяти, чем
вы можете выделить. В этом случае следует
воспользоваться меню выбора конфигурации,
которое определяется в файле CONFIG.SYS с помощью
таких команд, как Menu и Menuitem. Создайте две
конфигурации, одна из которых предназначена для
обычной работы, а другая - для запуска игровых и
других программ, предъявляющих особые
требования к памяти.
|