45932 (665238), страница 2
Текст из файла (страница 2)
нижних адресах общего адресного пространства. Мы можем подключить такой объем
памяти, какой нам необходим в пределах, накладываемых зарезервированными
адресами. Независимо от того, подключено ли к компьютеру 48К или 576К, они
всегда размещаются, начиная с адреса 0000. Таким образом, оперативная память
(ОП) всегда занимает нижние адреса пространства, а постоянная память - в верхних
адресах. Между ними располагается экранная память. Между всеми этими разделами
могут быть промежутки - промежуток от конца ОП до начала экранной памяти и от
конца экранной памяти до начала постоянно запоминающих устройств. Это
неиспользуемая часть памяти IBM/PC.
Модернизация памяти
Функция ОП является хранение слов информации, каждое из которых в равной мере
доступно процессору и другим устройствам ЭВМ, связанным с оперативной памятью.
Равнодоступность слов достигается путем присваивания адреса каждой ячейке ОП и
обеспечения возможности доступа к информации при любом порядке поступления
адресов. В структурном отношении ОП состоит из комплекса быстродействующих
запоминающих устройств.
Память всегда была важным элементом компьютера. Первый компьютер обладал
способностью обращаться к 640К оперативной памяти - RAM. Но в те дни, когда
стандартом считались 64К, это было слишком большой величиной, настолько большой,
что даже не знали, что можно с ней делать. В настоящее время памяти в 640К уже
не хватает.
Память компьютера обычно называют RAM, что означает память с оперативным
запоминающим устройством. Это временная память, управляемая микропроцессором
компьютера и используемая программным обеспечением таким образом, чтобы мы могли
создавать и обрабатывать информацию. Память может быть либо временной, либо
постоянной.
RAM - это временная память, потому что, когда отключить питание, содержимое RAM
теряется. Этот недостаток восполняется наличием в компьютере накопителей на
дисках, которые хранят информацию постоянно. Информация, записанная в дисковую
память, не стирается при выключении питания компьютера. Однако компьютер не
может непосредственно обрабатывать информацию, хранящуюся на диске. Он работает
непосредственно только с RAM. Таким образом, кроме своих математических
обязанностей, на микропроцессор возложена обязанность управления памятью, с
которой он прекрасно справляется. В памяти он хранит различные величины,
производит сравнения, копирует и пересылает информацию. Чем больше у компьютера
память, тем больше информации он может хранить и тем больше информации сможет
обрабатывать 9 по заданной программе микропроцессора.
ROM -это память, допускающая только считывание. Доступ к ней осуществляется так
же, как и к RAM, но запись в эту память производить нельзя. Она хранит
информацию постоянно, поэтому информация может только считываться. Содержимое
ROM не потеряется при выключенном питании. В компьютерах ROM используется в
различных целях. Система BIOS персонального компьютера (ПК) хранится в
микросхеме ROM. Кроме ограничения в 1 Мб используемой в персональном компьютере
оперативной памяти RAM при работе с DOS мы должны знать, что память в ПК
является непрерывной.
Типы памяти
DOS признает четыре различных типа памяти: обычная, верхняя, расширенная и
дополнительная память. Первые три типа различаются только своим расположением на
карте памяти ПЭВМ. Четвертый тип памяти - это дополнительная память, которая
называется также LIM-EMS-памятью или просто EMS-памятью и лежит вне адресного
пространства микропроцессора.
Карта памяти
Обычная память
Обычная память - это область объемом 640К, в которую загружаются DOS и
прикладные программы. Она простирается от начала памяти до отметки 640К.Если на
ПК установлено ОЗУ объемом менее 640К, обычная память располагается только до
его верхней границы. Например, в компьютерах с памятью объемом 512К она
простирается только от 0 до 512К. Узнать, какой объем обычной памяти имеет ваша
система, можно, введя МЕМ в командной строке DOS. Этот объем будет изменяться в
зависимости от того, как выглядят файлы AUTOEXEC.BAT и CONFIG.SYS. Важнейший
шаг, который можно сделать, чтобы предоставить программам больше пространство,
заключается во включении в AUTOEXEC.BAT и CONFIG.SYS команд, увеличивающих
наибольший размер выполняемой программы, о котором сообщает МЕМ. Можно больше
узнать об использовании обычной памяти с помощью ключа /P команды МЕМ. Блок
окружения - область памяти, в которой хранятся строки, созданные командами SET,
PATH и PROMPT. DOS обеспечивает блок окружения, содержащий копию этих строк для
каждой загружаемой и выполняемой программы. Можно извлечь еще больше информации
из этого листинга обычной памяти.
Расширенная память
Расширенная память - это память, которая лежит выше отметки 1М. Расширенная
память в некоторой степени не так полезна, как обычная, потому что DOS просто не
может ее использовать так же, как она использует обычную память. Расширенную
память могут использовать драйверы, поставляемые с DOS 5 (RAMDrive и SMARTDrive)
. Для работы с расширенной памятью эти программы либо переключаются на время в
защитный режим, копируют данные в расширенную память или из нее и медленно
переключаются обратно в обычный режим, либо полагаются на особенности
микропроцессора, позволяющие им достигнуть расширенной памяти, оставаясь в
обычном режиме. Некоторые прикладные программы также будут использовать
расширенную память, и при ее преобразовании в дополнительную можно заставить
программы, которые используют дополнительную память, а не расширенную память,
все же косвенно ее использовать. В версии 5 большая часть самой DOS может быть
загружена в расширенную память, освобождая дополнительный объем обычной память
для прикладных программ.
DOS 5 поступает пользователю вместе со специальным драйвером устройства,
называемым HIMEM.SYS, который призван управлять расширенной памятью. HIMEM.SIS
управляет потоками данных для всей памяти объемом 640К, включая область верхней
памяти.
Дополнительная память
Нехватка памяти была впервые отмечена пользователями электронных таблиц. Для
электронных таблиц требуется большой объем обычной памяти, а стандартная память
DOS не может удовлетворить эту потребность. Поэтому была разработана
спецификация дополнительной памяти или EMS. EMS определяет дополнительную
память. В действительности эта память не является частью памяти DOS, она
является пулом RAM - областью памяти, которая по объему может быть до 8 Мб.
Чтобы получить доступ к дополнительной памяти, прикладная программа требует у
ЕММ (драйвер, который предоставляет программам доступ к памяти), определенное
число логических страниц и затем ставит им в соответствие физические страницы в
страничном блоке. ЕММ делит всю ОЗУ на плате на ряд блоков размером по 16К,
называемых логическими страницами. Затем он находит неиспользуемый участок
памяти размером 64К и делит его на 4 равных блока по 16К, которые называются
физическими страницами. Как только логическая страница связывается с физической
страницей, программа может считать из этой памяти или записать в нее, как если
бы это была обычная память, использующая стандартные адреса, состоящие из
сегментов и смещений. Память EMS используется для хранения данных,
буферизованных с помощью команды FASTOPEN, указав при запуске FASTOPEN ключ /X,
а также разместить в дополнительной памяти с помощью драйверов RAMDRive и
SMARTDrive электронные диски и кеш-буферы.
Верхняя память
Область между 640К и 1М называется областью верхней памяти. В типичной ПЭВМ
оказывается, что многие из адресов в верхней памяти не используются. В ПК 386 с
видеоадаптером VGA, сегменты А000h и B000h резервируются под видеобуфер,
представляющий собой участок памяти, содержимое которого определяет, что вы
видите на экране. Вы очень редко можете встретить ПК, который не имеет, по
крайней мере, некоторого свободного пространства между 640К и 1М; вот почему
область верхней памяти так важна для DOS 5.
DOS 5 поступает пользователю со специальным драйвером EMM386.EXE, который может
конвертировать неиспользуемое пространство в области верхней памяти в
используемое ОЗУ на ПК 386 и 486. Эти части ОЗУ называются блоками верхней
памяти. В совокупности с командами DOS 5 ( LOADHIGH и DEVICEHIGH ), ЕММ386.ЕХЕ
может дополнительно предоставить в распоряжение DOS до 128К или даже больше.
Можно загрузить в UMB драйверы устройств.
Чтобы создать блоки верхней памяти, драйвер ЕММ386.ЕХЕ переводит в DOS в режим
виртуального МП 8086 микропроцессоров 80386 и 80486, который не поддерживается в
МП 80286. Режим виртуального МП 8086 сходен с реальным режимом, за исключением
одной очень важной особенности. При работе DOS в режиме виртуального МП 8086
драйвер, например ЕММ386.ЕХЕ, может использовать особенность 386 и 486,
известную как страничная организация. При такой организации считывания и записи
одной области памяти перенаправляются по другим адресам. После того, как
ЕММ386.ЕХЕ идентифицирует неиспользуемые участки области верхней памяти, он
перепрограммирует микропроцессор 386 или 486 так, чтобы он пере направлял
операции считывания и записи, предназначенные для этих областей верхней памяти,
в расширенную память. Таким образом, эти неиспользованные области превращаются в
блоки верхней памяти (UMB), а ЕММ386.ЕХЕ, в сущности, заполняет их ОЗУ из
области памяти выше отметки 1Мб.
Загрузка DOS в старшую память
Чтобы достичь большего объема памяти, пригодного для DOS в нижних 640К, одно из
простейших и наиболее эффективных конфигурационных изменений, которое можно
осуществить, заключается в перемещении DOS в старшую память. По умолчанию DOS
загружается в обычную память, сокращая объем памяти, доступной для других
программ. При использовании DOS 5 максимальный размер выполняемой программы
никогда не может быть больше 580К. Если в обычную память загрузить драйверы
устройств или резидентные программы, или использовать большое количество
дисковых буферов и дисковых файлов, максимальный размер выполняемой программы
будет даже меньше.
Перемещение DOS в НМА
Загруженная DOS располагается близко к началу обычной памяти, где она потребляет
60К ОЗУ, оставляя свободных 580К для прикладных программ. Большая часть DOS
перемещена в расширенную память, как раз за границей 1М, что оставляет для
прикладных программ свободных более 623К. В расширенную память перемещается не
вся DOS, а большая ее часть, так что увеличивается размер выполняемой программы
более чем на 40К. Участок, остающийся в обычной памяти - это тот минимум,
который требует DOS для поддержания своей работы.
Установка HIMEM.SYS
Конфигурирование системы для загрузки DOS в НМА, а не в младшие адреса,
требует двух простых изменений в файле CONFIG.SYS. Сначала надо добавить команду
DEVICE= с тем, чтобы HIMEM.SYS загружался всякий раз при запуске компьютера. Эта
команда не обязательно должна быть первой в файле CONFIG.SYS, но она обязательно
должна идти перед другими командами, которые загружают драйверы, использующие
HIMEM.SYS.
Добавление директивы DOS=HIGH
После добавления строки, загружающей HIMEM.SYS, надо включить в
CONFIG.SYS вторую команду для загрузки DOS в НМА:
DOS=HIGH
Если файл CONFIG.SYS уже содержит команду DOS=UMB, то вместо добавления новой
строки надо изменить существующую, чтобы она выглядела следующим образом:
DOS=HIGH, UMB
DOS =HIGH заставляет DOS загружаться в НМА. Кроме того, программа установки DOS
5 могла уже создать эту строку.
Загрузка BUFFERS в НМА
Команда BUFFERS определяет число буферов, которое может использовать ОС,
параметр может изменяться от 1 до 99, по умолчанию параметр равен 3, размер
каждого буфера равен 528 байтам, из них непосредственно под информацию, а 16
байт используется для хранения информации о самом буфере.BUFFERS= резервирует
под буферизацию данных, поступающие на диски или с них. Добавление в CONFIG.SYS
команды DOS=HIGH дает нам больше, чем просто перемещение DOS в НМА; эта команда
также перемещает в НМА дисковые буферы, создаваемые командой BUFFERS. Пример
загрузки DOS в НМА: DEVICE=C:\DOS\HIMEM.SYS
BUFFERS=20
DOS=HIGH
Загрузка резидентных программ и драйверов устройств в старшую память:
Команда DEVICEHIGH
Чтобы достичь большего объема памяти, пригодного для DOS в нижних 640К, одно из
простейших и наиболее эффективных конфигурационных изменений, которое можно
осуществить, заключается в перемещении DOS в старшую (high) память.
Для загрузки драйверов устройств в старшую память DOS предоставляет команду
DEVICEHIGH. Ее формат:
DEVICEHIGH [SIZE=size] [d:][hath]driver [parameters]
где driver - имя драйвера устройства, parameters - необязательный список
параметров, передаваемых драйверу при установке, а size - минимальный объем
верхней памяти, который должен быть освобожден для загрузки драйвера в старшую