无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 8155|回复: 46
打印 上一主题 下一主题

[讨论] C大,GRUB4DOS的map功能能不能添加缓存?

[复制链接]
1#
发表于 2011-11-17 11:35:26 | 显示全部楼层

回复 #9 hotdll 的帖子

map (0)/a.iso (0xff)
map --mem (0xff)/b.iso (0xfa)
中间是不是还要有map --hook啊,你是不是省略了?
回复

使用道具 举报

2#
发表于 2011-11-17 12:58:06 | 显示全部楼层

回复 #23 不点 的帖子

我突然想起来,很久以前,在老爷机上,用word打开软盘上的文件,能卡10分钟。
但是要是先拷贝,再打开就快多了。

map --mem (0)/a.iso (0xff)
map --mem  (0xff)/b.iso (0xfa)
第二步很快是因为做了优化,直接原地重新map。但第一步应该比较慢


map (0)/a.iso (0xff)
map --mem (0xff)/b.iso (0xfa)
第二步成了蜗牛了。。。比从(0)读a.iso要慢

是不是因为第一步的map导致的对齐的问题?

[ 本帖最后由 wannaknow 于 2011-11-17 12:59 编辑 ]
回复

使用道具 举报

3#
发表于 2011-11-17 14:50:50 | 显示全部楼层

回复 #28 不点 的帖子

唉,根源还是当初规定,一次int 13h调用(CHS)不能要求读写跨磁道的连续扇区,一切以简化bios编写为目标。

结果最后所有人都嫌麻烦,才提出LBA的概念。
回复

使用道具 举报

4#
发表于 2011-11-17 15:01:55 | 显示全部楼层

回复 #28 不点 的帖子

问题不仅如此,即使改进int 13h钩子,也会有性能损失。
对于虚拟的(0xff)来说,它是支持lba的大扇区光盘,不存在任何“对齐”的问题,每次读取都是以2048k为单位的。
可是,事实上,它可能是由1024/255/63的盘虚拟的。
只要bios不支持lba,再怎么改进,一次真实读取也不能跨过63这个“沟”
因此,会有大约3/63次读被“砍”成要读两次。

最糟的情况是18sectors per track,然后a.iso还是从奇数扇区开始的(又想了想,不对,a.iso的位置影响不大)。

[ 本帖最后由 wannaknow 于 2011-11-17 15:15 编辑 ]
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-6-1 08:29

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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