DOS操作系统中的内存管理

如下图所示,DOS操作系统运行于实模式中,8086处理器的寻址空间只用1MB,系统硬件使用的内存安排在从A1000开始的内存高端,在系统低端,即00000h-00500h则是中断向量表和BIOS数据区。剩下的大约640KB的内存才是操作

系统和应用程序所能使用的,这就是“640KB”限制,在这640KB中,DOS操作系统占据了低端的一部分,剩余的才是应用程序可用的,大约有600KB


DOS操作系统下可直接使用的内存与电脑的内存无关,即使电脑的内存远远高于1M,如果使用DOS操作系统,那么可以直接使用的内存也只有640KB1M以上的内存要通过内存管理工具才能使用。在windows95之后的操作系统已经不存在这种内存限制了。

0-640KB的这部分内存称为常规内存Conventional Memory)。在DOS下,一般的应用程序只能使用系统的常规内存,因而都要受到640KB内存的限制。而且由于DOS本身和 config.sys文件中的安装的设备驱动程序和autoexec.bat文件中执行的内存驻留程序都要占用一些常规内存,所以应用程序能使用的常规内存是不到640K的。

从A0000h到FFFFFh这部分内存大约有384KB的内存称为高端内存(Upper Memory)。程序一般不能使用这个内存区域,但是EMM386.exe可以激活高端内存的一部分,并且它允许用户将某些设备驱动程序和用户程序用DevicehighLH( loadhigh)装入高端内存。dos=high,umb也是把DOS的一部分装到高端内存里。这里的umb是高端内存块(Upper Memory Block)的缩写。

在DOS下主要有以下两种增加内存的方式。

扩充内存(Expanded Memory):是一种早期的增加内存的标准,最多可扩充到32M。使用扩充内存必须在计算机中安装专门的扩充内存板,而且还要安装管理扩充内存板的管理程序。由于扩充内存是在扩展内存之前推出的,所以大多数程序都被设计成能使用扩充内存,而不能使用扩展内存。由于扩充内存使用起来比较麻烦,所以在扩展内存出现后不久就被淘汰了。

 扩展内存(Extended Memory):只能用在80286或更高档次的机器上,目前几乎所有使用DOS的机器上超过1M的内存都是扩展内存。扩展内存同样不能被DOS直接使用,DOS5.0以后 提供了Himem.sys这个扩展内存管理程序,我们可以通过它来管理扩展内存。emm386.exe可以把扩展内存(XMS)仿真成扩充内存 (EMS),以满足一些要求使用扩充内存的程序。

  最后再强调一下,不管扩充内存或扩展内存有多大,DOS的应用程序只能在常规内存下运行。有的程序可以通过DOS扩展器(比如DOS4GW.exe等程序)使CPU进入保护模式,从而直接访问扩展内存;但是要注意,进入保护模式以后,计算机就脱离了DOS状态。


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值