![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-13 11:18 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行 |
| DOS学习入门 & 精彩文章 (教学室) » 关于CONFIG.SYS的内存管理疑问? |
| 可打印版本 1,558 / 12 |
| 第1楼 hulongzhuo | 发表于 2007-03-18 07:03 |
| 中级用户 发帖 135 积分 294 | |
|
关于CONFIG.SYS的内存管理疑问? 最近学习DOS,很早以前虽然学习过,但对有些不是很清楚,这两天翻了很多资料,
关于系统配置方面的,如CONFIG.SYS,其中有几点看到很多人讲得混淆了,首先我是这样认为的: 1,DOS管理的内存应分为: 常规内存 1-640K 上位内存(UMB) 640-1024K 高端内存(HMA) 扩展内存的前64K部分 扩允内存(EMS) 和扩展内展差不多 扩展内存(XMS) 1024K以后的部分 2, DEVICE=是把驱动装于常规内存, DEVIDEHIGH=是把驱动装于高端内存(HMA) dos=high,umb 表示DOS管理由EMM386.EXE创建的UMB,并将自身的一部分装入HMA 但是看到很多资料都是把上位内存UMB 与高端内存HMA相混淆了, 比如说DEVIDEHIGH=是装入上位内存UMB, dos=high 也是装入上位内存UMB, 不知道到底哪种是正确的,还有就是高端内存HMA只有64K,如果都把驱动和DOS部分加载到这一部分,有没有什么影响,如果超过了64K呢, 另外,是不是所有和DOS程序只能在640K的空间运行,即然如此,那用HIMEM.SYS驱动出来的扩展内存,到底有多大意义呢?? 本人太菜,希望版本或哪位高手作答,不尽感激!!!! [ Last edited by hulongzhuo on 2007-3-17 at 06:06 PM ] |
|
| 第2楼 Michael | 发表于 2007-03-18 07:36 |
| 钻石会员 发帖 3,041 积分 10,056 | |
|
dos程序可以将扩展内存做为数据区。
|
|
| 第3楼 hulongzhuo | 发表于 2007-03-18 12:15 |
| 中级用户 发帖 135 积分 294 | |
|
各位高手都进来谈谈!!!
|
|
| 第4楼 ywcn | 发表于 2007-03-19 04:10 |
| 初级用户 发帖 68 积分 155 | |
|
640-1024那块叫保留内存,不是UMB,UMB是利用保留内存剩余的地址空间影射的一块内存区域,注意是"地址空间",也就是说UMB并不在保留内存中.
DEVIDEHIGH是将程序装入UMB,dos=high是将dos装入HMA |
|
| 第5楼 Michael | 发表于 2007-03-19 05:17 |
| 钻石会员 发帖 3,041 积分 10,056 | |
|
错误。
|
|
| 第6楼 Michael | 发表于 2007-03-19 05:19 |
| 钻石会员 发帖 3,041 积分 10,056 | |
|
能上wikipedia的,可以去查一下。很详尽的解释。
|
|
| 第7楼 hulongzhuo | 发表于 2007-03-19 08:02 |
| 中级用户 发帖 135 积分 294 | |
|
5楼的,什么错误,
干嘛不说说呢?? |
|
| 第8楼 Michael | 发表于 2007-03-19 08:24 |
| 钻石会员 发帖 3,041 积分 10,056 | |
|
ems和xms可不是差不多,而是差很多。ems是映射到1M以下地址存取的,xms则不是这样。
|
|
| 第9楼 hulongzhuo | 发表于 2007-03-19 21:18 |
| 中级用户 发帖 135 积分 294 | |
|
还有吗?楼上的
|
|
| 第10楼 ywcn | 发表于 2007-03-25 11:08 |
| 初级用户 发帖 68 积分 155 | |
Originally posted by Michael at 2007-3-18 07:24 PM: 汗,还以为你说我错误呢! |
|
| 第11楼 GOTOmsdos | 发表于 2007-03-25 12:43 |
| 铂金会员 发帖 1,827 积分 5,154 | |
|
"DEVIDEHIGH是将程序装入UMB,dos=high是将dos装入HMA "
这种说法,可能得商榷. 所谓HIGH 可能是指 HMA和UMB, 所以DEVICEHIGH 可能是由DOS决定是装入 HMA还是UMB,并不限于UMB 如果说 DOS=HIGH是将DOS装入HMA,那么 DOS=HIGH,UMB 的 UMB怎么解释? 解释为 DOS可以使用HIGH和UMB,比较说的通..是一种开关 当然,先决条件是: DEVICE=HIMEM.SYS DEVICE=EMM386.EXE 原先的扩充内存和扩展内存都是装在各自的插槽里的,现在来说只是规范了,其实它们都是在你的那一根内存条上的,不是什么其他东西. 先有常规内存 后有扩充内存 再有扩展内存 现在都在一个实体上 [ Last edited by GOTOmsdos on 2007-3-25 at 12:48 PM ] |
|
| 第12楼 darkradx | 发表于 2007-03-25 13:29 |
| 高级用户 发帖 420 积分 972 | |
|
DOS=HIGH和DOS=UMB起效的先决条件是
A20 can be turned on ------Any XMS Manager installed UMB Exist ------UMBPCI/EMS Manager XMS管理规范下定义整个内存区域(常规+扩展)是flat的, HMA位于XMS最低端, 大小是FFFF:FFFF-0xFFFFF, dos接收到dos=high而且尝试开a20成功, 则可以利用HMA EMS是page mapping的(EMS manager操作过后才会有UMB(Unused UMA)) DOS=HIGH和DOS=UMB各有功用 我的记忆很不清楚, 只能说个大概 |
|
| 第13楼 darkradx | 发表于 2007-03-25 13:29 |
| 高级用户 发帖 420 积分 972 | |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |