Board logo

标题: 高位内存变小 [打印本页]

作者: 不得不爱     时间: 2005-9-30 18:18    标题: 高位内存变小

我的电脑最近不知道为什么高位内存突然变小了32K,而且内存配置没有改动过!
谁知道我的电脑出了什么毛病?请帮忙解决一下!谢谢各位!!!!!
作者: willsort     时间: 2005-10-1 18:08
Re qwe1234567:

      问题不明,请提供更详细的信息。比如现在的config.sys和autoexec.bat内容,以及你的高位内存是指UMB还是HMA(我猜测是UMB)。另外,你所说的内存配置未改变,是印象如此,还是确定如此?
作者: 不得不爱     时间: 2005-10-1 20:46
是确定如此,现在的config.sys和autoexec.bat内容都没变,高位内存是指UMB!
作者: willsort     时间: 2005-10-1 21:14
Re qwe1234567:

      那请提供你的系统环境和现在的 memory map (比如mem /c输出)。
作者: 不得不爱     时间: 2005-10-2 14:33
mem/c输出:1 Mb 以下使用内存的模块:

  名称           总计        =     常规内存     +    上位内存
  --------  ----------------   ----------------   ----------------
  SYSTEM      16,720   (16K)      9,744   (10K)      6,976    (7K)
  HIMEM        1,104    (1K)      1,104    (1K)          0    (0K)
  EMM386       3,184    (3K)      3,184    (3K)          0    (0K)
  TW          39,072   (38K)     11,888   (12K)     27,184   (27K)
  KEY         21,616   (21K)     21,616   (21K)          0    (0K)
  MousClip     2,784    (3K)          0    (0K)      2,784    (3K)
  DOSKEY       3,968    (4K)          0    (0K)      3,968    (4K)
  COMMAND      7,168    (7K)          0    (0K)      7,168    (7K)
  XMSDSK         688    (1K)          0    (0K)        688    (1K)
  MOUSE        3,344    (3K)          0    (0K)      3,344    (3K)
  FREE       647,216  (632K)    607,808  (594K)     39,408   (38K)

内存总计:

     内存类型           总共    =    已使用   +     空闲
  ----------------  -----------   -----------   -----------
  常规内存              655,360        47,552       607,808
  上位内存               91,520        52,112        39,408
  保留内存              367,232       367,232             0
  扩展内存 (XMS)    258,932,736     7,193,600   251,739,136
  ----------------  -----------   -----------   -----------
  总内存            260,046,848     7,660,496   252,386,352

  1 MB 以下内存数       746,880        99,664       647,216

  总计扩充内存 (XMS)                  258,932,736 (252,864K)
  空闲扩充内存 (XMS)                  251,739,136 (245,839K)

  最大可执行程序尺寸                      607,648     (593K)
  最大空闲上位内存块                       23,264      (23K)
  空闲高内存区数                              112       (0K)
  PC DOS 驻留在高位内存区中.
作者: 不得不爱     时间: 2005-10-2 14:36
config.sys:
device=himem.sys
device=emm386.exe noems i=b000-b7ff
device=vide.sys /d:1
dos=high,umb
lastdrive=m
autoexec.bat:
echo off
path=m:\ucdos;m:;c:;c:\dos;c:\disk
rem cache/sizext:2000/write:off/mini
xmsdsk m: 6000 /y
set dircmd=/o
set temp=m:\
set tmp=m:\
prompt $t$p$g
shsucdx /d:1,l
extract /e /l m: pq.cab>nul
copy command.com m:
set comspec=m:\command.com
lh doskey
mouse
mousclip
extract /e /l m: tw.cab>nul
tw/np>nul
lh key py wb lx>nul
作者: Michael     时间: 2005-10-4 11:17
这32K就那么重要,如果autoexec和config都没动过,不会是感染病毒了吧。
作者: willsort     时间: 2005-10-4 15:12
Re qwe1234567:

      从你提供的信息来看,软件方面应该没有什么问题,那么有可能与硬件有关。但也许PC-DOS会有更多的细节我没有注意到。或者如 Michael 兄猜测的那样,病毒侵占了某些 UMB 空间。

      最关键的在于是“内存配置没有改动过”而“高位内存突然变小了32K”这个事情,而且变小的是UMB总空间,而非剩余的可用空间。因为 UMB 是 EMM386 从保留内存攫取的,而且这个攫取机制很复杂,我猜测很可能是某个硬件方面(或者也可能是软件)的原因,导致了保留内存中 B000-B7FF 这一段(用于单色的显示模式)不再可用,因而使 i=b000-b7fff 参数失效。而这个参数在我的环境中所能增加的UMB量恰恰是32K,虽然 b000 到 b7ff 不过只是2K的大小

---------- Edited by willsort  ----------
红色字体所示内容乃错误言论,敬请注意!
实际上,B000和B7FF都是指段地址,真正的地址表示是:B000:0000-B7FF:FFFF,这是段地址+偏移的内存地址表示方法,它们之间真正的内存空间应该是段地址差乘以段间距,也即(B7FF-B000+1)*16=32K
---------- Edited by willsort ----------


[ Last edited by willsort on 2005-10-4 at 18:29 ]
作者: 不得不爱     时间: 2005-10-4 16:07
可是i=b000-b7fff 参数有效,如果不加的话UMB只有57K。而且不会是感染病毒,因为我的小硬盘启动后也是一样。
作者: willsort     时间: 2005-10-4 20:26
Re qwe1234567:

      我始终无法成功模拟出你的内存配置环境,在我的memory map中,UMB总量始终是117,216。而autoexec.bat中有几个程序我都是不熟悉的,也无法得到其拷贝。因此,只能提供你给一些测试问题所在的排除性方案。

      将你的config.sys和autoexec.bat备份后,将config.sys修改至只余himem和emm386两行,autoexec.bat修改只余path一行,然后重启系统测试;如果UMB总量恢复正常,那么可以判断是软件性故障;如果故障依旧,则可能是硬件性故障。
作者: 不得不爱     时间: 2005-10-4 20:36
故障依旧!
作者: willsort     时间: 2005-10-4 21:57
Re qwe1234567:

      那就没有太多的解决办法了,如果有条件,可以考虑硬件的“换件排除法”以及“最小系统法”。祝你成功!
作者: 不得不爱     时间: 2005-10-6 11:30
我用的是MSDOS7.1,不是PCDOS!
作者: willsort     时间: 2005-10-6 15:50
Re qwe1234567:

      我是根据你的 memory map 最后的那句 "PC DOS 驻留在高位内存区中." 猜测你的使用环境的,现在看来可能是你所使用的中文平台在内核汉化中出现了某些小问题。

      另外,为了避免无谓的猜测,提出问题时,请尽量提供详细的背景信息,比如所使用的平台环境对于任何问题都是有必要的;而对于启动故障,需要指出启动方式,列出启动配置,以及内存映像。
作者: 不得不爱     时间: 2005-10-6 16:18
可是与中文平台无关!我将AUTOEXEC.BAT改为AUTOEXEC.BA 上位内存不变!