Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Пользователь


Сообщения: 79
Благодарности: 0

Профиль | Отправить PM | Цитировать


В начале 80-х, когда ещё не был разработан стандарт XMS (eXtended Memory Specification), но процессоры Intel (8086 и 8088) в реальном режиме (а защищённый ещё только проектировался) могли адресовать не более 1 Мб памяти. А многим уже хотелось больше.
Был придуман трюк под названием EMS - Expanded Memory Specification. В компьютер вставлялась плата расширения памяти, доступ к которой обеспечивался через окна в обычной, адресуемой, памяти куда её куски и отображались (её второе название - отображаемая). Эта спецификация быстро стала стандартом де-факто и довольно долго не сдавала позиции, несмотря на появление защищённого режима и пр. Таким образом можно адресовать не более 32 мегабайт памяти.
Стандарт EMS позволял программистам вырваться за пределы ограничения в 640 мегабайт, хоть и довольно неудобным способом. Очень многие среды программирования (в частности, TurboPascal) поддерживали программирование EMS.
В MSDOS драйвером EMS является emm386.exe. При этом часть расширенной (XMS) памяти просто будет использоваться как EMS-память (эмуляция - скажем так). Он же даёт возможность грузить программы и драйвера в UMB при помощи devicehigh и loadhigh (lh) (ну, и ещё одна функция была, но она сейчас неактуальна). Параметр noems запрещает поддержку EMS, оставляя в силе devicehigh и lh. Зачем он нужен? Как уже было сказано, EMS - память отображаемая. Т.е. для работы с ней надо часть обычной памяти отвести под "окна". А зачем транжирить драгоценную conventional memory, если EMS не используем?
Если был использован ключ noems, Win98 и в свойствах PIF'а (ярлыка) не позволит выделить программе EMS.
Если твоя программа знает, что такое EMS, и умеет её использовать, то всё это поможет.

-------
I prefer Slackware 10.2 + fvwm 2.5.14 installed on my on my nx8220. KDE 3.4 is not bad too :)


Отправлено: 19:56, 06-02-2003 | #22