Зачем нужен ЕММ386?

Поиск, обмен ссылками, вопросы по устаревшему программному обеспечению.
Bobo
Advanced Member
Сообщения: 9537
Зарегистрирован: 16.08.2007,11:42
Откуда: СПб

Вклад в сообщество

Зачем нужен ЕММ386?

Сообщение Bobo » 03.01.2021,18:22

Escalibur писал(а): 03.01.2021,18:20 как он использовался.
я его никак не использовал - сначала вместо него был 386/MAX а потом винда
Xeon E5-2670v2/32 Gb, Amiga А4000Т

Аватара пользователя
visualer
Advanced Member
Сообщения: 1910
Зарегистрирован: 26.09.2019,17:50
Откуда: ..
Контактная информация:

Зачем нужен ЕММ386?

Сообщение visualer » 03.01.2021,21:32

Позоритесь тут при живом Кае и гугле)
Ретровизор - мой канал в Telegram
Взгляд назад. Персональная техно-археология. Ретро-компы. Downgrade 💾
t.me/retrovis Подпишись :redface:

Аватара пользователя
Кай
Почётный пользователь
Сообщения: 19738
Зарегистрирован: 08.08.2010,21:44
Откуда: СПб, Ульянка-Лигово
Контактная информация:

Вклад в сообщество

Зачем нужен ЕММ386?

Сообщение Кай » 03.01.2021,21:47

при живом Кае
Я мёртв. И, да, c DOS я использовал QEMM. :)

Аватара пользователя
barsik
Newbie
Сообщения: 13
Зарегистрирован: 17.06.2018,00:57
Откуда: С-Петербург

Зачем нужен ЕММ386?

Сообщение barsik » 06.01.2021,00:44

Вместо EMM386 лучше QEMM386 (это не один файл, а целый пакет, после инсталляции занимает на винте 1.3 Мб). Кроме управления памятью выше 1 Мб он увеличивает основное ОЗУ аж до 635 Кб (т.е из 640 Кб на DOS уходит лишь 5 Кб) и лучше оптимизирует использование ОЗУ с драйверами. Любой другой менеджер памяти также будет лучше. Из всех менеджеров памяти майкрософтовский даёт самые худшие параметры.

pahan
Advanced Member
Сообщения: 4455
Зарегистрирован: 13.03.2015,14:23
Откуда: Химки, М.О.

Вклад в сообщество

Зачем нужен ЕММ386?

Сообщение pahan » 08.01.2021,11:45

pahan, а код в основной памяти должен оставаться при использовании экстендера? 64М для данных?
Вот что за человек, а? Предлагает мне в выходной день спецификации читать. Как будто я на работе этим не смогу заниматься. Ладно, под пиво пойдет :biggrin: :biggrin:

Итак, про dpmi, с которым в основном по dos4gw все знакомы.
Там при работе программы получается такая цепочка из вызовов:
Софт->dpmi клиент->dpmi-сервер | vcpi->ems | xms | голый dos -> исходная ОС.
Софт работает в защищённом режиме с плоской или сегментной памятью. Но при этом использует обработчики прерываний и память устройств, которые остаются (по умолчанию почти все) в реальном режиме (память ниже 1 Мб остаётся как есть), то есть вечно переключается туда-сюда. Как программа разместится в памяти и создаст нужные дескрипторы сегментов - об этом должна озаботиться она сама. А дальше ещё больше интересного, ибо куча вещей остаётся зависимыми от конкретных реализаций:
1) может быть доступна виртуальная (страничная) память в защищённом режиме, может быть нет
2) может быть возможно запускать 32битные приложения из 16битной ОС, может быть нет
3) dpmi-сервер в общем-то вообще не обязателен, могут быть и более примитивные механизмы на этом уровне (ems/xms), просто больше функций тогда выносится в клиент
4) исходная ОС - совсем не обязательно dos, там может быть все что угодно (собственно изначально спецификация разрабатывалась для запуска dos-программ из windows 3.0 и в последующих виндах для этого используется что-то подобное). Соответственно может работать несколько dpmi-серверов одновременно с нормальной многозадачностью, а внутри одного сервера - несколько клиентов, но уже с добровольной многозадачностью

Аватара пользователя
alecv
Advanced Member
Сообщения: 6993
Зарегистрирован: 05.10.2004,11:13
Откуда: Санкт-Петербург
Контактная информация:

Вклад в сообщество

Зачем нужен ЕММ386?

Сообщение alecv » 08.01.2021,21:49

Была какая-то книжка про разные способы и надстройки управления памятью DOS > 640K.

Может эта или похожая. Не знаю насчет переводов.
Кстати если у кого есть - скажите.

UPD Поискал и сам нашел. Только Edition 2 но тож неплохо.
http://vtda.org/books/Computing/Operati ... dition.pdf

Bobo
Advanced Member
Сообщения: 9537
Зарегистрирован: 16.08.2007,11:42
Откуда: СПб

Вклад в сообщество

Зачем нужен ЕММ386?

Сообщение Bobo » 08.01.2021,22:47

Была какая-то книжка называлась PC System Programming for developers 1990 года - и там про эту EMM расписано (ну не для буратин конечно)
Xeon E5-2670v2/32 Gb, Amiga А4000Т

maxlilt
Newbie
Сообщения: 19
Зарегистрирован: 15.02.2017,13:07

Зачем нужен ЕММ386?

Сообщение maxlilt » 12.01.2021,08:34

Обеспечивает доступ к области старших адресов и использует расширенную память(XMS), чтобы эмулировать дополнительную память (EMS). Этот драйвер должен быть загружен командой <DEVICE> в Вашем CONFIG.SYS файле и может использоваться только на компьютерах с процессором 80386 и выше.

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

MsDemonid
Member
Сообщения: 197
Зарегистрирован: 13.10.2015,08:33
Откуда: Пенза

Зачем нужен ЕММ386?

Сообщение MsDemonid » 12.01.2021,17:00

Escalibur писал(а): 02.01.2021,22:52 Помнится, был такой менеджер EMM386, но я никогда его в автозагрузку не вставлял, т.к. он много жрал основной памяти. А для чего он вообще был нужен? Чем Himem не устраивал?
EMM и Himem - это совершенно разные стандарты использования памяти за первым мегабайтом. Общим является то, что для доступа к дополнительной (расширенной) памяти требуется буфер в первом мегабайте.
1) Himem. Все что он умеет - это копировать данные из основной памяти в дополнительную (и наоборот), блоками по 64 килобайта. Для чего он переключается в защищенные режим (получает доступ ко всей памяти), производит копирование, переключается обратно в реальный режим и передает управление вызвавшей его программе.
2) EMM. Он ничего не копирует, а просто умеет аппаратно отображать любой 16-64 Кb участок расширенной памяти на сегмент основной памяти (как правило на адресс E000:0000). А уж в этом сегменте пользовательская программа может сама что угодно копировать и даже выполнять код. Но, для меппирования драйверу EMM нужно при загрузке переключить процессор в режим виртуальных адресов, то есть пользовательские программы как бы работают в реальном режиме, а сам менеджер EMM в защищенном.
Из вышеперечисленного ясно, что доступ к памяти за первым мегабайтом в разы быстрее происходит посредством EMM386, поскольку нет лишних переключений из реального режима в защищенный и обратно, а так же нет ненужных копирований между первым мегабайтом и дополнительной памятью.
Поэтому, я всегда загружал у себя EMM386. При правильной настройке он позволяет добиться 605-610K основной памяти, чего вполне хватало для любых программ (при драйверах SMARTDRV, KEYRUS и MOUSE). Единственный минус - это нужна дотошная настройка под конкретную машину, что в общем не сложно, только нужно внимательно доку почитать и запастись терпением.
Впоследствии я запал на пакет QEMM386 (или 386MAX, точно уже не помню), в котором есть автоматическая оптимизация памяти, за счет чего получал фантастические 620-625 Kb свободной основной памяти, при всех загруженных драйверах.
Escalibur писал(а): 03.01.2021,16:47 а код в основной памяти должен оставаться при использовании экстендера? 64М для данных?
Как правило да, остается. Хотя есть механизм по типу DLL, позволяющий подгружать его куда угодно. 64 Мб для всего. Этот расширитель характерен тем, что программе отдается вся имеющаяся в компе память, а под чего ее использовать - дело сугубо программы.

Forza3dfx
Advanced Member
Сообщения: 1021
Зарегистрирован: 01.03.2015,08:51

Вклад в сообщество

Зачем нужен ЕММ386?

Сообщение Forza3dfx » 12.01.2021,19:31

MsDemonid писал(а): 12.01.2021,17:00 ) Himem. Все что он умеет - это копировать данные из основной памяти в дополнительную (и наоборот), блоками по 64 килобайта. Для чего он переключается в защищенные режим (получает доступ ко всей памяти), производит копирование, переключается обратно в реальный режим и передает управление вызвавшей его программе.
https://frolov-lib.ru/books/bsp/v06/ch6_2.htm

Аватара пользователя
Кай
Почётный пользователь
Сообщения: 19738
Зарегистрирован: 08.08.2010,21:44
Откуда: СПб, Ульянка-Лигово
Контактная информация:

Вклад в сообщество

Зачем нужен ЕММ386?

Сообщение Кай » 12.01.2021,22:55

Не по теме
Отсюда много боли и страданий из-за совместимости.
Может мне это... Как его... Стартап? Онлайн Обучение русских/татар/удмуртов грамотному (на троечку) литературному русскому языку начать? Гы-гы-гы!


Ответить