Информационные технологииStfw.Ru 🔍

HIMEM

🕛 28.12.2008, 20:57
Microsoft не был первооткрывателем HIMEM, как обычно считается.
HIMEM использовалась ранее DESQview (Quarterdeck), хотя стала широко
доступна только с версией Microsoft Windows 2.10. HIMEM использует
всего лишь 64 Кбайт из доступной расширенной памяти - точнее говоря,
первые 64 Кбайт (минус 16 байтов) расширенной памяти, памяти непосредственно над 1 Mбайт. Важной для HIMEM особенностью является то,
что эти 64 Кбайт доступны из режима реальной адресации и могут быть
использованы без средств расширения DOS. Одно из возможных применений
HIMEM - позволить DOS разместить там часть себя, таким образом освобождая дополнительно часть памяти ниже 640 Кбайт для пользовательских
программ. HIMEM в действительности основана на ошибке, на разнице между
микропроцессорами 80286 и 8088 в случае, когда 286 работает, как
8088. Кроме того, что процессор разбивает память на страницы - 16
взаимно не пересекающихся участков по 64 Кбайт,- процессор также
представляет память в виде пересекающихся участков по 64 Кбайт, называемых сегментами, которые начинаются с каждых 16 байтов. Предположим, что процессор пытается получить доступ к одному из сегментов,
который начинается очень близко к верхней границе 1MB. 8086 при этом
совершит циклический переход к памяти в низших адресах, как показано
на рис. 2. │ Область памяти │ ║ │ в высших адресах │ ║ ├──────────────────┤ ║ │ │ ║ │ │ ║ │ │ ║ │ │ ║ │ │ Обычное │ │ адресное │ │ пространство │ │ в реальном │ │ режиме │ │ ║ │ │ ║ │ │ ║ │ │ ║ │_│ ║ │ │ ║ │ │ ║ │ │ ║ ~~ ║ │~~│ ║ │ │ ║ │ │ ║ │ │ ║ │ │ ║ │ │ ║ └──────────────────┘ ¬
Рис.2. Реально существует две области памяти в высших адресах.
Вторая из этих областей имеет объем 64 Кбайт и расположена непосредственно за 1-Мбайтной границей. DOS может получать доступ к этой области при работе в реальном режиме на большинстве из систем, оснащенных процессорами 286 и 386.
В случае процессора 80286, однако, адрес, который будет получен
в результате операции, находится в действительности непосредственно
над границей 1 Мбайт. Это дает возможность в режиме реальной адресации адресовать первые 64 Кбайт (минус 16 байтов) расширенной памяти.
Этот участок памяти меньше 64 Кбайт на 16 байтов потому, что последний сегмент начинается на 16 байтов ниже границы 1 Mбайт. Чтобы ликвидировать разногласия в случае, когда микропроцессор 286 работает
как микропрочессор 8086, IBM встроила в шину специальные средства,
которые заставляют память в режиме реального вроемени переходить циклически на низшие адреса, как это происходит в 8086/8088. Драйвер
HIMEM занимается как раз тем, что выборочно отменяет действие этой
поправки, чтобы программы, написанные особым образом с целью использования этой области, могли поместить там информацию. Это то, что делают Microsoft Windows, DESQview, Ventura Publisher и Carousel.

DOS   Теги: Dos

Читать IT-новости в Telegram
Информационные технологии
Мы в соцсетях ✉