为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

微机内存管理优化

2017-11-13 10页 doc 27KB 19阅读

用户头像

is_594886

暂无简介

举报
微机内存管理优化微机内存管理优化 ]一1 徐景村弋P\6 【摘要J介绍了微机中配备的四种内存的应用范围厦管理方法,重点时高端内卉的使用厦管理优化进行了N-it: 【关键词】常规内存《.存芏查!堕高端内存高内存稳繁ttJ《乱卉八s l内存简介 1.1常规内存 常规内存指’640k以下的内存,该内存由DOS管理,用以 存放DOS常驻命令和CONFIGSYS中定义的设备驱动程序. 其余部分可用于存放用户编写的DOS应用程序.由于空问有 限,常规内存不能存放大的用户程序. 1.2高端内存 64~3k,1024k之间的384k属...
微机内存管理优化
微机内存管理优化 ]一1 徐景村弋P\6 【摘要J介绍了微机中配备的四种内存的应用范围厦管理方法,重点时高端内卉的使用厦管理优化进行了N-it: 【关键词】常规内存《.存芏查!堕高端内存高内存稳繁ttJ《乱卉八s l内存简介 1.1常规内存 常规内存指’640k以下的内存,该内存由DOS管理,用以 存放DOS常驻命令和CONFIGSYS中定义的设备驱动程序. 其余部分可用于存放用户编写的DOS应用程序.由于空问有 限,常规内存不能存放大的用户程序. 1.2高端内存 64~3k,1024k之间的384k属高端内存区.该区内没有可 供用户使用的RAM,有的仅是各种适配器ROM或网卡用的 缓冲RAM.总之该区归硬件使用.值得庆幸的是这些地址空 间并投全被占用.可供用户开发利用. 13扩展内存 扩展内存指的是地址在lMb以上的内存.8086只有20 山东师范大学250014济南 条地址线.所以无能力访问它.286,386SX有24条地址线 能访问的扩展内存可延伸到16Nb.386,486有32条地址线. 扩展内存可延伸到4G但实际上并不一定配备这么多.早期 的286微机常配有lMbRAM,指的就是际640k之外又加r 384k扩展RAM. 站在应用角度看DOS将使用分配给它的全部常规内 存,而扩展内存只在一定条件下使用.要想让扩展内存在 DOS下也能使用最好的是将它们中的一部分技人缓 冲,以构造成虚拟RAM盘,或者划出高内存区,存放DOS命 令.扩展内存的另一重要用途是可以用于模拟扩充内存= 1.4扩充内存 它是遵守LIM.ENS规范的一类内存,位于正规内存之 外.扩充内存可由两种方法获得:一是在微机中加扩充RAM 板,可加到8Mb,也可加到32Mb但有一点必须说明对于前 f911ll:A+_@DPTR: f101RO—A: (11)CT8; (12)R2:A—R0; f13)RLC (14)F0C; (15)1tO卜A: (16)清IE0; (17)中断返回; f181结束. 补充说明:FO保存下次准备进出的二进制位.其它参照 主控程序说明即可理解. 另外.该中断程序设计时要考虑其执行的最长时问.包 古中断发生返回时间,另加操作时间,总时问不应超过一个 采样周期的时间限制.否则,将造成录放音的严重失真.甚至 不能正常工作. 笔者的实验明上述中斯程序在8051使用6M晶振. 采样频率为16kttz时,工作正常.当采样频率为32~,lHz时. 能正常工作.究其原理在于中断程序的运行时间超过r采 样周期时间.但使用l2M晶振时,32Mltz采样翱率下可以正 常工作. 6的实现情况及结论 笔者提出的CPU实现串/并转换的方案已用于单片 语音系统设计并取得了成功可见.该方案较传统的方案 具有使用芯片数 薪浪潮1997年镕12期7 者微机中必须配有EMS32软件,后者必须配有EMS40软 辟:其二是通过DOS的EMM386EXE驱动程序,将扩展内存 转换为扩充内存用.假如系统有16Mb扩展内存,而用户程序 要求使用8Nb扩充内存,执行下述命令即可获得: DEVICE=C,D0SkEMM386EXERAM8I92 程序不能自动使用扩充内存,扩充内存内的程序只有以 页为单位映射到高端内存之后.才能运行.记住这一点很重 要.具体作法是将扩充内存以16k为单位划成逻辑页,然后 划出不用的64k区域,通常在64ok一1Mb之间,这个区问正 好对应着高端内存区.我们称这64k为页框.页框内16k为 一 个物理页.正好四页.软件驱动程序EMM{它提供应用程序 访问内存的软件界面)将扩充内存中的程序以16k为单位映 射人64k页框内的物理页中,CPU按的段位移量击访问 物理页内的程序,从而完成了对一个逻辑页程序的访问.当 程序要想访问其它逻辑页时,EMM就会将另外逻辑页映射 进页框中.如此反复,页框成了访问扩充内存的窗口,16k 为单位完成对扩充内存中程序的访问扩充内存主要用来构 造虚拟RAM盘. l5三种工作模式与高内存区 f11实地址模式:这是8086使用的模式,2O条地址线都 处于激括状态.寻址范围1Mb. {2I保护模式:是286上处理机使用的模式.在这种 模式下工作.所有的地址线都处于激活状态需注意的是 DOS不在保护模式下运行,要启动DOS.286以上CPL”必须 在实地址模式下模拟8086,因此仍限制在1Mb内. (3)虚拟86模式:这种模式与实地址模式类似,不同的 是在虚拟86模式下运行DOS,EMM386EXE的驱动程序可 使用386,486的分页技术,将对扩充内存中某些页内容的读 写改到其它地址中(倒如上面谈到的高端内存中). 在熟悉了三种工作模式后,我们来看高内存区,它是位 于扩展内存的65520字节以内的区间.和其它扩展内存不 同.在宴地址模式下就可对它进行读写,这是Micro~曲公司 的编程人员在80年代中后期发现的.他们让处理机的第21 条地址线(编号是Ao)生效.在不转成保护模式下,可直接访 问扩展内存的前6557.0字节.我们称它为高内存区lIMA. HMA的大小是固定的.不管Pc微机有多少扩展内存,HMA 的大小就是65520字节. 2内存的管理及优化 21常规内存管理 DOS环境下的应用程序基本上都在常规内存中运行,常 规内存不足往往是程序运行失败的原因.释放更多的常规内 存对用户程序往往是有利的. (1)将DOS的常驻内存命令移人HMA中,释放45k之 多的常规内存.其方法就是对Configsys文件作两个简单的 修改: 81997年12期新浪绷 ?安装HIMEMSYS.如果该文件在DOS的C盘上.正 确的命令是: DEVICE=C:,DoskHIMEMSYS ?加入DOS=HIGH命令.如果ConfigsYs中已有 DOS=UMB语句,可将该句改为DOS=HIGHUMB.DOS= HIGH将通知系统将DOS装入liMA中. (2)精减Configys和Autoexeebat内容,不启动不必 要的驻留程序.在DOS启动过程中,两文件的命令决定r安 装哪些使用内存的设备驱动程序和其它内存驻留程序,用户 可从这两个文件中除s中也可装 IMA中.TSRs程序 和设备驱动程序装人uMBs后对DOS装在何处无影响.下面 是一个Config.sys的侧子: DEVICE=C:,D0S,HIMEMSYS DEVICE=C,D0S,EMM386EXEOEMS D0S=HIGH+UMB 】e=40 Buffers=20 (4)用DOS6的MEN/F检测高端内存,以确定如何希 用.以下是一个例子. Free Segmem 00570 Conventional 80 MenlO~ Total (Ok) 00586 00590 0lB32 Toudfree FeUpl~r RegionLq?【 156384 265520 160 88608 543952 632800 M FreeTom] (55k)56384 (64k)65520 fOkJ {87k) (531k) (618k Free (55k) (64k) T 56384 65520 dze {55k) (64k) 以上说明EMM386EXE生成了两个高端内存块.一个为 55k.另一个为64k.这两个高端内存块所处的位置还可用 MEM/O来检查.结果如下: Upper OCA3A OE00l memo~Detlal ReonTom]N删e l56384(55k)MSDOS 265520f64klMSDOS (5)将Ts和设备驱动程序装人UMBs并试运行.装 入的命令分别是: Leadh:lgll【d:】【path】program【paramatea~s】 DEVICEH1GH【d:】【path】driver【parameters】 有两点要注意:一是上述程序的数目不可太多,其总容 量一定要小于LIMBs的容量;二是装人的顺序要正确.一般 来说先装人较小的TSRs程序和设备驱动程序运行,造些程 序要求附加的内存UMBs也可能满足它.若是先装人较大的 程序后装人较小的程序,则因跗加内存不能满足,导致系统 死锁,因此,UMBs中能装多少,哪些能装进去并能成功运行, 其能尝试.为此,要求用户作好如下准备: ?保证系统的硬件能正常工作; ?确保DOS6已正确安装; ?保证当前安装的Ts程序和设备驱动程序是正确 的; ?用FORMAT/S生成一个系统盘,将Config.sys和 Autoc~ee.hat文件拷贝到该盘上作备份用,一旦出现死锁时 可重新启动系统. (6)使用DOS6的MEMMAKER程序.人工测试哪些 程序和设备驱动程序能在LIMBs中运行是件很麻烦的 事,使用MEMMAKER就方便多了.该程序的主要目标就是 尽可能多地将TSRs和设备驱动程序穆人高端内存.为做到 这一点.它审查Comqgsys和Aoex扩展内存,相应的管理 可归结为对扩展内存的管理.它包括以下内容: (1)将DOS和鼠标驱动程序穆人高内存区.以节省更多 的常规内存. (2)存放并运行直接使用扩展内存的程序(例如Win. dows),或借用DOS扩展程序的软件工具.开辟保护模式内存 区给某些应用程序.让它们可以使用16Mb或更多的扩展内 存. (3)用扩展内存模拟扩充内存.实践证明使用EMS(扩充 内存管理)的应用程序远比使用XMS(扩展内存管理)的程序 普遍.而且花费较少.EMS3.2可提供8Mb的扩充内存. EMS4.0可提供32Mb的扩充内存.有一点要说明.如果某程 序提供了选择项,它厩可使用XMS内存也可使用EMS内存, 应让它直接使用XMS内存,而不要使用由EMS仿真提供的 扩充内存,原因是前者运行速度比后者快. (4)使用扩展内存和扩充建磁盘超高速缓存——RAM 盘RAM盘是设置在内存中的一个虚拟存储设备.它工作 起来跟实际盘一样.可以向里写文件,删脒文件.甚至还可以 给它分配驱动器名字.RAM盘同磁盘的区别在于前者是电信 号存储,关机即失.后者是磁盘存储,RAM盘作为磁盘的超高 速缓存,将系统面向磁盘的访问转向面向RAM盘的访问.这 样以来,可以1O倍地提高硬盘的速度,而且减少了磁头磨 损,延长了硬盘的使用寿命.DOS6的sMARTD五ve其有建 RAM盘的功能./A参数指定在扩充内存中建,/E参数指 定在扩展内存中建.参数前的数字指明RAM盘的容量(以 为单位)例如以卞命令: DEVICE=C:\DOS\SMARTDrive.sys1024/E DEVICE=C:\DOS\SMARTDrlvesys720/A 前者在扩展内存中建一个1Mb的RAM盘,后者在扩充 RAM中建一个720kb的RAM盘.RAM盘的容量根据需要还 可设得更大些,常用的DOS命令及较大的用户程序都可装进 去,使用起来厩快又方便,这就是为什么微机要求内存越来 越多的原因. 内存是微机的宝贵资源,内存种类不同,管理优化的措 施也不同,微机在发展,内存管理措施必须紧跟上.这将是一 个值得长期探讨的问. 参考文献 lJeffP~ise着翼红宇王世航译DOS6内存管理技术北京:电 子工业出版杜,1993 2COTOP着李建臣诨内存管理北京:电子工业出版社.1995 3邦甫京.DOS使用太垒V2.0,V60北京:清华大学出版社.1994 (收稿日期:1997-08-03) 新浪潮1997年12||9
/
本文档为【微机内存管理优化】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
热门搜索

历史搜索

    清空历史搜索