Компьютерная память

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 микропроцессоров 80 386 и 80 486, который не поддерживается в МП 80 286. Режим виртуального МП 8086 сходен с реальным режимом, за исключением одной очень важной особенности. При работе DOS в режиме виртуального МП 8086 драйвер, например ЕММ386. ЕХЕ, может использовать особенность 386 и 486, известную как страничная организация. При такой организации считывания и записи одной области памяти перенаправляются по другим адресам. После того, как ЕММ386. ЕХЕ идентифицирует неиспользуемые участки области верхней памяти, он перепрограммирует микропроцессор 386 или 486 так, чтобы он пере направлял операции считывания и записи, предназначенные для этих областей верхней памяти, в расширенную память. Таким образом, эти неиспользованные области превращаются в блоки верхней памяти (UMB), а ЕММ386. ЕХЕ, в сущности, заполняет их ОЗУ из области памяти выше отметки 1Мб.