Дополнительная и расширенная виды памяти MS DOS
В начале 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
Другая возможность увеличения размера доступной программам оперативной памяти появилась в 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 – программам.
Популярное: Как построить свою речь (словесное оформление):
При подготовке публичного выступления перед оратором возникает вопрос, как лучше словесно оформить свою... Как распознать напряжение: Говоря о мышечном напряжении, мы в первую очередь имеем в виду мускулы, прикрепленные к костям ... Почему стероиды повышают давление?: Основных причин три... ![]() ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (246)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |