Как максимально освободить обычную память

Ответить
 • Просмотры: 6
Аватара пользователя
ShaddyR

Re: Как максимально освободить обычную память

Сообщение ShaddyR »

Цитата ShaddyR:



т.е. himem ничего не меняет в отсутствие emm'а, я верно понял основную идею?
Как максимально освободить обычную память




Меняет. Драйвер HIMEM.SYS используется для организации доступа DOS к расширенной памяти (XMS). При наличии в CONFIG.SYS директивы:



Код:

Код: Выделить всё

DOS=HIGH

Драйвер позволяет резидентным модулям ядра DOS загружать себя в область высокой памяти (HMA — первые (64 Кб-16 байт) сверх 1-го Мб оперативной памяти), т.е. — фактически освободить в основной памяти до 64 Кб для загружаемых не оверлейных программ (размер ядра, конечно, меньше; потому не строго 64 Кб, а только — до[/i] 64 Кб).




Цитата ShaddyR:



теперь вопрос знатокам ДОСа: как при этом в примере №2 оказалось на 60 кил свободнее первого примера?
Как максимально освободить обычную память




Там же ясно написано во втором листинге, что ядро DOS загружено в область высокой памяти:



Код:

Код: Выделить всё

MS-DOS is resident in the high memory area.

Но какое это отношение имеет к EMM386.EXE?



Я же выше писал про другое, про то, что речь идёт не о HMA, а об UMB, что позволяет сделать только EMM386.EXE (разумеется, при загруженном драйвере HIMEM.SYS). Использование параметра NOEMS дополнительно позволяет использовать для организации UMB 64 Кб памяти в UMA (которое, в противном случае, было бы использовано под окно доступа к эмулируемой дополнительной памяти (EMS)).




читать дальше »


Насколько я понимаю, Ваши примеры основаны именно на DOS?! Мне же было бы гораздо интереснее рассмотреть отличия DOS под Windows от чистой DOS, ибо некоторые моменты там отличаются. Например, у меня нет информации, почему под Windows при отсутствующих в CONFIG.SYS директиве DOS=HIGH и драйверах HIMEM.SYS/EMM386.EXE, они, тем не менее, используются, равно как и задействуется эмуляция отображаемой памяти — судя по тому же «mem /c /p»:


читать дальше »




Код:

Код: Выделить всё

Модули, использующие адреса памяти ниже 1 МБ:
  Имя            Размер         Обычная память     Верхняя память
  --------  ----------------   ----------------   ----------------
  MSDOS       18 272   (18K)     18 272   (18K)          0    (0K)
  DISPLAY     18 064   (18K)     18 064   (18K)          0    (0K)
  HIMEM        1 120    (1K)      1 120    (1K)          0    (0K)
  DBLBUFF      2 976    (3K)      2 976    (3K)          0    (0K)
  IFSHLP       2 864    (3K)      2 864    (3K)          0    (0K)
  WIN          3 776    (4K)      3 776    (4K)          0    (0K)
  vmm32        3 392    (3K)      3 392    (3K)          0    (0K)
  KEYB         6 944    (7K)      6 944    (7K)          0    (0K)
  COMMAND      7 408    (7K)      7 408    (7K)          0    (0K)
  Свободно   590 352  (577K)    590 352  (577K)          0    (0K)
Сведения о памяти:
  Тип памяти           Размер        Занято      Свободно
  ----------------  -----------   -----------   -----------
  Обычная               655 360        65 008       590 352
  Верхняя                     0             0             0
  Зарезервировано             0             0             0
  Память XMS         67 107 840             ?   267 120 640
Нажмите любую клавишу . . .
  ----------------  -----------   -----------   -----------
  Всего памяти:      67 763 200             ?   267 710 992
  Ниже 1 МБ:            655 360        65 008       590 352
  Всего отображаемой памяти (EMS):               67 108 864     (64M)
  Свободно отображаемой памяти (EMS):            16 777 216     (16M)
  Максимально допустимый размер программы:          590 336   (577K)
  Наибольший свободный блок верхней памяти:               0     (0K)
  Резидентная часть MS-DOS загружена в сегмент HMA.





Вот что интересно было бы узнать, хотя, увы, ныне сие уже давно, давно не актуально.





2Игорь Лейко: у Вас, должно быть, отключены скрипты, ибо сие не ссылки, а обычные спойлеры, внутри которых листинги «mem /c /p» (к сожалению, не в тэге «code»). Включите скрипты для домена oszone.net.
Аватара пользователя
Игорь Лейко

Re: Как максимально освободить обычную память

Сообщение Игорь Лейко »

Цитата Iska:



Например, у меня нет информации, почему под Windows при отсутствующих в CONFIG.SYS директиве DOS=HIGH и драйверах HIMEM.SYS/EMM386.EXE, они, тем не менее, используются, равно как и задействуется эмуляция отображаемой памяти
Как максимально освободить обычную память




Цитата из документации с диска Windows 95 (файл config.txt):




Цитата:



AUTO|NOAUTO

Этот параметр определяет, будет ли MS-DOS автоматически загружать драйверы Himem.sys, Ifshlp.sys, Dblbuff.sys и Setver.exe в случае, если ссылки на них отсутствуют в файле Config.sys. По умолчанию используется значение AUTO, т.е. драйверы загружаются в память автоматически. Значению AUTO соответствуют команды BUFFERSHIGH, FILESHIGH, FCBSHIGH, LASTDRIVEHIGH и STACKSHIGH, которые используются вне зависимости от того, какая форма команд присутствует в файле (с приставкой -HIGH или без нее). Выбор значения NOAUTO означает необходимость явной загрузки всех перечисленных драйверов и самостоятельного добавления к нужным командам приставки -HIGH.



Поднимать документацию Win98 неохота. Изображение

За совет спасибо, но я тут слишком редко бываю, чтобы разбираться, что здесь как работает.
Аватара пользователя
Игорь Лейко

Re: Как максимально освободить обычную память

Сообщение Игорь Лейко »

Игорь Лейко, благодарствую, стало яснее! Увы, подзабыл. В том числе и про появившийся под Windows суффикс HIGH.



P.S. Под Windows 98 описание в «config.txt» аналогичное.
Аватара пользователя
Iska

Re: Как максимально освободить обычную память

Сообщение Iska »

Игорь Лейко, благодарствую, стало яснее! Увы, подзабыл. В том числе и про появившийся под Windows суффикс HIGH.



P.S. Под Windows 98 описание в «config.txt» аналогичное.
Аватара пользователя
Iska

Re: Как максимально освободить обычную память

Сообщение Iska »

Цитата yurfed:



device=C:\windows\emm386 NOEMS

В своё время, в таком варианте добивался 632 КБ
Как максимально освободить обычную память




Но можно словить глюк с какой-нибудь старой программой, которая "расширенную" (EMS) память использует
Аватара пользователя
El Scorpio

Re: Как максимально освободить обычную память

Сообщение El Scorpio »

Цитата El Scorpio:



Но можно словить глюк с какой-нибудь старой программой
Как максимально освободить обычную память




Можно, но очень редко.

DOS 6.22 пользовал до 97 года. Пару раз сталкивался с данной траблой.
Аватара пользователя
yurfed

Re: Как максимально освободить обычную память

Сообщение yurfed »

А может кто-нибудь дать ссылку на QEMM386. Не могу найти этот драйвер: находятся или кряки или за смс. Очень надо.
Аватара пользователя
ukio

Re: Как максимально освободить обычную память

Сообщение ukio »

Цитата ukio:



А может кто-нибудь дать ссылку на QEMM386
Как максимально освободить обычную память




Поищу. Если остался, дам весь QEMM
Аватара пользователя
ukio

Re: Как максимально освободить обычную память

Сообщение ukio »

ukio,
тут
, там образ дискеты, но ее можно распаковать.
Аватара пользователя
DedAlex

Re: Как максимально освободить обычную память

Сообщение DedAlex »

Iska, разобрался - говорили, похоже, о разных вещах. Emm\Qemm практически не использовал - периодически сталкиваясь со сбоями программ при ней, предпочитал обойтись без - благо дело, задействование HMA практически убирало необходимость использование оных драйверов.



Iska,Кстати, ты и сам запутался в определениях:


Цитата ShaddyR:



emm386
Как максимально освободить обычную память





Цитата Iska:



нужен для работы с блоками верхней памяти (devicehigh/loadhigh).
Как максимально освободить обычную память




не HMA, а UMB, потому я так и среагировал Изображение
Ответить

Вернуться в «Microsoft Windows 95/98/Me (архив)»