Мегаобучалка Главная | О нас | Обратная связь


Дополнительная и расширенная виды памяти MS DOS



2019-12-29 215 Обсуждений (0)
Дополнительная и расширенная виды памяти MS DOS 0.00 из 5.00 0 оценок




В начале 80-х годов некоторые фирмы производители оборудования для компьютеров стали выпускать платы дополнительной памяти (memory extension cards). Доступ к памяти на этих платах осуществляется через специальный драйвер управления дополнительной памятью (EMM – expanded memory manager). Для обеспечения совместимости такого вида программ фирмами Lotus, Intel и Microsoft был разработан стандарт – спецификация дополнительной памяти (LIM EMS – LIM expanded memory specification). В настоящее время используется четвертая редакция этой спецификации – LIM EMS 4.0, где максимальный объем дополнительной памяти составляет 32 Мбайта.

Для обмена с EMS – памятью EMS- драйверы используют окно размером 64 Кбайта, которое расположено в верхней памяти MS DOS. Это окно, так называемый EMS-frame, разделено на 4 блока по 16 Кбайт. EMS-память также представлена в виде страниц размером в 16 Кбайт. Поэтому в EMS – окне могут быть доступны одновременно 4 страницы EMS –памяти. Для чтения или записи любой страницы EMS – памяти надо обратиться к EMS-драйверу, после чего она станет доступна программам DOS и с ней можно будет работать. Это весьма неудобно, т.к. заставляет программы самим заботиться о смене страниц в памяти.

Таблица 1.6.3.2.

Распределение оперативной памяти в MS-DOS

Адрес-длина Содержимое Примечание
0000-003FF     1Кб Таблица векторов прерываний  
00400-005FF            512 байт   Глобальные переменные BIOS Глобальные переменные DOS   В ранних версиях здесь располагались глобальные переменные интерпретатора Бейсик
00600-0А000     35-60 Кб   Модуль IO.SYS Модуль MSDOS.SYS: - обслуживающие функции; - буферы, рабочие и управляющие области; - инсталлирующие драйверы Резидентная часть COMMAND.COM: - обработка программных прерываний; - системная программа загрузки; - программа загрузки транзитной части COMMAND.COM   Размер этой области зависит от версии MS-DOS и, главное от конфигурационного файла CONFIG.SYS  

»580 Кб

 

Область памяти для выполнения программ пользователя и утилит MS-DOS. В эту область попадают программы типа *.COM и *.EXE     Объем этой области сильно зависит от объема, занимаемого ядром ОС. Программа может перекрыть транзитную область COMMAND.COM
Область расположения стека исполняющейся программы Стек «растет» снизу вверх
18 Кб Транзитная часть командного процессора COMMAND.COM   Собственно командный интерпретатор
А0000-C7FFF 160 Кб Видеопамять. Область и размер используемого видеобуфера зависит от используемого режима При работе в текстовом режиме область памяти А0000-В0000 свободна и может быть использована в программе
С8000-Е0000 96 Кб Зарезервировано для расширения BIOS  
F0000-FFFFF 64Кб Область ROM BIOS (System BIOS) Обычно объем этой области равен 32 Кб, но может достигать и 128 Кб, занимая и младшие адреса
100000-10FFFF High Memory Area При наличии драйвера HIMEM.SYS здесь можно расположить основные системные файлы MS-DOS, освобождая тем самым область основной памяти в первом мегабайте Может использоваться при наличии специальных драйверов. Используются спецификации XMS и EMS

 

Другая возможность увеличения размера доступной программам оперативной памяти появилась в 1982г., когда Intel стала выпускать микропроцессоры 80286. Эти и последующие микропроцессоры, обеспечивая совместимость с микропроцессором 8088, представляют также множество других возможностей. В частности эти микропроцессоры могут непосредственно работать с памятью большего, чем 1 Мбайт, размера (см. табл. 1.6.3.1).

Вместе с тем память с адресами свыше 1 Мбайта в этих микропроцессорах доступна только в так называемом защищенном режиме. MS DOS в этом режиме работать не может. Если же процессор работает в режиме совместимости с Intel-8088, в котором работает MS DOS – этот режим называется обычным или реальным (real mode), то программам доступна память только в пределах первого Мбайта. Исключением являются лишь первые 64 Кбайта расширенной памяти, о чем будет рассказано ниже.

Часть оперативной памяти сверх первого мегабайта, доступного в реальном режиме, называется расширенной памятью (extended memory).

В середине 80-ч годов был разработан стандарт по работе с расширенной памятью (XMS – extended memory specification) и реализующие его драйверы, например, HIMEM.SYS, которые предоставили широкие возможности для использования расширенной памяти DOS- программами.

Для обработки данных, расположенных в XMS – памяти, необходимо сначала переместить их в обычную или верхнюю память MS DOS, там выполнить обработку и затем с помощью запроса к XMS – драйверу поместить их обратно.

Более эффективное решение состоит в другом. Если сама программа выполняется в защищенном режиме процессора, то расширенная память жоступна ей непосредственно. При этом код программы и обрабатываемые данные могут располагаться в любом месте доступной XMS – памяти. Поэтому многими фирмами были созданы специальные системные программы – расширители DOS(DOS –extenders), позволяющие вызывать функции DOS из защищенного режима работы процессора. Во многих программах, требующих эффективной работы с большими объемами данных (компьютеры, базы данных и т.п.) применяются расширители DOS. Примером может служить операционная оболочка Windows/386 2.0, включающая в себя внутренний расширитель DOS.

Особую роль в расширенной памяти играют ее первые 64 Кбайта. Дело в том, что при создании микропроцессора Intel – 80286 фирма Intel допустила ошибку, из-за которой в реальном режиме оказалось возможным получить доступ к первым 64 Кбайтам расширенной памяти.

Ошибка состояла в следующем. Адрес каждого байта в процессоре Intel-286 задается с помощью двух двухбайтовых чисел: адреса сегмента Seg и смещения внутри сегмента Rel. Полный адрес A в процессоре вычисляется по формуле:

A = 16 * Seg + Rel.

Если адрес A становится больше 1 Мбайта (220), то в микропроцессоре Intel-8088 происходило отбрасывание «лишнего» 1 Мбайта, выполняемое автоматически вследствие использования в нем только 20 адресных линий. При разработке Intel-80286 об этом забыли. В результате стало возможным обращаться и к первым 64 Кбайтам расширенной памяти.

По-английски первые 64 Кбайта расширенной памяти называют Hight Memory Area – HMA.

Эта особенность была использована в MS DOS, начиная с версии 5.0, где предоставлена возможность перемещать на компьютерах с процессорами 80286 и выше ядро ЩС и драйверы в первые 64 Кбайт расширенной памяти. Тем самым возможно значительно увеличить объем обычной памяти, доступной DOS – программам.



2019-12-29 215 Обсуждений (0)
Дополнительная и расширенная виды памяти MS DOS 0.00 из 5.00 0 оценок









Обсуждение в статье: Дополнительная и расширенная виды памяти MS DOS

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

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



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (215)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.008 сек.)