无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 3825|回复: 7
打印 上一主题 下一主题

关于内存的两句话,哪一句是对的??

[复制链接]
跳转到指定楼层
1#
发表于 2010-11-29 21:40:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
EMM386.EXE 就是用来驱动扩展内存的,它可以把扩充内存模拟成扩展内存,提供给就程序适用扩展内存。


扩充内存(Expanded Memory)是一种不参与存储器统一统址的内存。其使用规范称作EMS(Expanded Memory Sepecfication),因为是由Lotus,Intel和Microsoft三家公司联合开发的,故也称作LIM EMS。早期XT机型上扩充内存以内存卡的物理形式出现,后来的高档微机上则可以由扩展内存(Extended Memory)来仿真扩充内存,这是CPU开始支持内存映射的结果。


蓝字是对的还是红字是对的?还是全部都对??谢谢各位大侠
2#
发表于 2010-11-30 09:47:19 | 只看该作者
应该都对吧,蓝字告诉你EMM386.EXE是做什么用的,红字告诉你扩充内存(Expanded Memory)是什么来的。。。
回复

使用道具 举报

3#
发表于 2010-12-3 21:11:39 | 只看该作者
一般人搞不清扩展和扩充的区别,楼主贴的蓝字是错误的。扩展内存是指1M以上的内存,扩充内存是在640k-1M之间的一种以分页形式管理的内存,早期都是扩充内存,后来都是扩展内存了,所以为了兼容以前的使用扩充内存的程序,就用扩展内存来模拟扩充内存,也就是emm386.exe,使用它之前需要先加载himem.sys扩展内存,然后emm386才能在它的基础上模拟扩充内存。

有点像绕口令,试着理解吧,呵呵。
回复

使用道具 举报

4#
发表于 2010-12-5 13:37:43 | 只看该作者
应该学习一下DOS对内存的管理的基础知识

     一、常规内存(Conventional Memory)

     DOS 始终维持着低端640KB 的内存限制。这640KB 不需要借助内存管理程序,可以直接进行寻址, 这部分内存又被称为常规内存。
   它也是DOS 系统下所有应用软件都可利用的区域。

     二、上端内存区(UMA,Upper Memory Area)和上位内存块(UMB,Upper Memory Block)

     紧邻常规内存上端的区域就是UMA,其中包含ROM。一般情况下,UMA留作系统硬件(如BIOS、视频等)使用,所以又被称为系统区域。
   其最大的容量为384KB,在1MB之内(8086/8088以上系统,对于内存的寻址都能达到1MB或更高,故也可以将1MB以内的内存叫常规内存的)。

     其中,除UMA外的剩余空间就是UMB。在386以上的系统中,通过在Config.sys中设置:

     DEVICE=EMM386.EXE和DOS=UMB,可使用UMB存放设备驱动、Command等常驻内存的程序。

     三、扩展内存(Extended Memory)

     286以上的系统中,采取线性的内存寻址方式直接存取1MB以上的新增的内存,称为Extended Memory。通常,DOS通过在Config.sys
   中设置DEVICE=C:\DOS\HIMEM.SYS来使用Extended Memory。 它主要用于Windows环境下的系统和用户程序。在XMS中起始位置的64KB称为
   高内存区(HMA,High Memory Area),可以通过在Config.sys中设置DOS=HIGH,将MS-DOS的大部分程序从UMA中移至HMA 中,以便用户有更
   多可用的常规内存。

     四、扩充内存(Expanded Memory)

     286以上的计算机都能够使用Extended Meory,而且在使用中它比Expanded Memory速度更快,现在仍然以增加Extended Memory的方
   式来增加内存容量。但在这样的计算机中运行一些老程序时,就需要用到Expanded Memory。这时只要在Config.sys中设置
   DEVICE=EMM386.SYS,就能够实现利用Extended Memory模拟Expanded Memory的情况。

     五、DOS中的内存管理程序

     从上面的介绍我们知道,DOS的常规内存为640KB,现在使用的内存容量往往超过这个范围,于是就需要统一对内存进行调配使用。
   Himem.sys是DOS内存管理程序之一,能够协调使用内存,并能使同一时间内没有两个或者两个以上的应用程序或设备驱动程序使用相同的
   内存。Himem.sys提供对大于640KB内存的访问,通过其后接的参数还可以实现对内存管理的更多功能。部分常用的参数如下:

     /testmem:on|off参数:该参数用来决定在启动计算机时是否进行内存检测。默认情况下,Himem会在每次启动时自动检测、识别出错
   内存,从而降低系统不稳定或数据丢失等现象发生的几率。但是相对来说,它进行的检测也比计算机上执行的标准加电内存测试更加彻底,
   需要的时间也更长。如果的确不需要进行该项测试,可用testmem:off禁止。

     /EISA:指定Himem.sys程序可以用来分配的扩展内存。

     /NOEISA:指定Himem.sys程序不能分配的扩展内存。

     /HMAmin=m:在Himem.sys分配扩展内存以前,设定程序的最小内存需求。其中,m是指所需的最小内存大小,在0~63范围内(默认值
   为0)。

     /V 或者/Verbose:在加载的同时,提示Himem.sys显示状态和错误信息。默认情况下,Himem. sys除非遇到一个错误,否则是不会显
   示任何信息的。使用该命令在系统加载时,可以按下Alt键来显示状态信息。

     Emm386.exe也能提供对640KB以外内存的管理,使应用程序能像利用常规内存一样使用。常见的用法是在Config.sys中,加入如下命
   令行:

     device=c:\dos\himem.sys

     device=c:\dos\emm386.exe ram

     d=64把内存设置为dma64KB。

     在Windows中最好不要使用该程序,因为Windows本身带有对640KB以外内存的管理程序。
回复

使用道具 举报

5#
发表于 2010-12-10 21:27:38 | 只看该作者
扩充内存(Expanded Memory)最早出现在8086的机子上,通过专用的I/O口和DIP开关对ROM未使用的内存段进行替换。
到了EISA、PCI及更高,BIOS编写商通过桥的功能完成内存重定位把扩展内存模拟成扩充内存,扩充内存不使用1M以上的地址(A20状态对其没有影响),另外由于扩充内存地址位于UMB,放在里面的程序可以在实模式直接运行,不过当进行页面切换的时候要注意处理,防止正在运行的被切出去,另外由于技术原因只有前16M的扩展内存可被映射成扩充内存。早期的CMOS SETUP里面还有专门的设置项。PAE技术实现和此技术类似。
目前管理EMS的通常使用INT 15H、EMM386(其实就是利用BIOS的接口),config.sys里面使用UMB通常需要EMM386。EMS申请每块为16KB,BIOS进行映射时最小单位为4个连续块(即64K)

XMS则通过类似文件句柄的方法来使用扩展内存,HMA(F000:FFFF~FFFF:FFFF)属于XMS的附属品,由于XMS实际上已经使用1M以上的地址,所以A20必须打开。XMS通常用INT15H、HIMEM来驱动,DOS=HIGH属于此范畴。

蓝色的属于翻译歧义问题--扩展内存(Extended Memory)、扩充内存(Expanded Memory)反过来了(早期很多人就是反过来翻译)。

红色的也有点问题,其实内存重定位是靠桥而不是CPU来完成。PCI桥里面就有如何把某段内存映射成ROM段(DOS)的项,显卡、硬盘卡就是依靠桥来把32位地址的ROM映射到C000~F000 ROM段的替换。BIOS里面有一段16KB左右的代码就是来自最早的IBM PC机的ROM(FE000~FFFFF),后面的板卡ROM自检时再对原有的中断服务程序进行替换。

***在DOS下不推荐直接使用INT 15H来管理扩充内存和扩展内存。
EMS使用INT 67H、IN 15H(AH=40H~46H)调用,XMS用INT 2FH(AH=43H调用,AL=子功能)

[ 本帖最后由 netwinxp 于 2010-12-10 22:06 编辑 ]
回复

使用道具 举报

6#
发表于 2010-12-12 19:32:12 | 只看该作者
获益匪浅。。。。不错,温习一遍的感觉真好
回复

使用道具 举报

7#
发表于 2010-12-14 08:51:00 | 只看该作者
无忧这里真专业。。学习了。
回复

使用道具 举报

8#
发表于 2010-12-25 20:55:36 | 只看该作者
BTW:台湾通常把EMS翻译成扩展内存,把XMS翻译成延伸内存,很多COPY砖家不加消化所以才会有EMS出现两种叫法的冲突。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-17 02:37

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表