QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1214|回复: 6

高速缓存的困惑

[复制链接]
发表于 2004-2-25 16:16:43 | 显示全部楼层 |阅读模式
高速缓存的硬件基础是memory吧,为了解决少访问磁盘,
但可以用write back 或者write throngh 策略,
不要高速缓存(毕竟其占用了memory的空间),直接用内存管理的统一策略来管理整个memory。
高速缓存在linux中的意义应该是什么呢?采用hash结构是为了什么?
我看这段总是觉得高速缓存和通常的内存相比没什么优点?很困惑!
发表于 2004-2-25 16:44:21 | 显示全部楼层
你是说磁盘数据缓存还是高速缓存?

高速缓存是一种访问速度超快的内存,因为主存的访问速度与cpu的执行速度相比就好像乌龟和飞机,大部分时间CPU都是在等待内存访问,所以把数据放在高速缓存里执行当然要比放在主存里执行快。

任何策略都只有一个目的,让CPU尽量访问高速存储设备而少去访问低速设备,CPU相对于系统的其它部件实在是太快了。
回复

使用道具 举报

 楼主| 发表于 2004-2-25 23:45:14 | 显示全部楼层
当然说的是磁盘的,或者应该叫缓冲区?!
不是cache,cache和memory物理上不是一种材料,
但是磁盘的数据缓存就是物理上memory中的一部分
我个人觉得并没有必要,linux和windows在这上面的处理方法完全不同,
我想linux的磁盘性能好,但为什么好,没有从原理上看出来,
请高手指点!
回复

使用道具 举报

发表于 2004-2-26 11:34:43 | 显示全部楼层
我理解的是所谓的缓存是将已经没有用处的内存块不马上释放,而是放在缓存中,它的数据结构都存在只是其内容没有意义。当再次需要这样的一个数据结构时直接从缓存中取出,填充其数据结构就可以了,而不用从slab或者buddy再次分配
回复

使用道具 举报

发表于 2004-2-26 12:23:35 | 显示全部楼层
[quote:2349a6b6de="smartlu"]
不是cache,cache和memory物理上不是一种材料,
[/quote]
不是一种材料有什么关系,一样可以map到4g的地址空间里。
[quote:2349a6b6de="smartlu"]
但是磁盘的数据缓存就是物理上memory中的一部分
[/quote]

什么意思呢?你是说用统一的地址空间访问吗? 如果想让cpu直接访问一块数据,这是必须的阿。
回复

使用道具 举报

 楼主| 发表于 2004-2-28 16:55:40 | 显示全部楼层
感谢两位的回复,我有点明白了,针对硬盘的缓冲区可以是硬盘自带的,也可以使操作系统划分的内存中的一部分,这样做主要是因为硬盘的读写大部分时间用于寻道,充分的利用缓冲区,一次读写做大数据量的操作。也就是说一次读写10k的数据要比10次分别读写1k的数据访问硬盘的时间要少很多。
个人理解,欢迎讨论
回复

使用道具 举报

发表于 2004-3-1 17:25:19 | 显示全部楼层
磁盘高速缓冲主要是为了减少物理寻道时间,
充分利用对连续扇区重复访问率高的优势打造的
如果磁盘没有磁头移动象ram那样,那高速缓冲就没必要了
回复

使用道具 举报

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

本版积分规则

GMT+8, 2024-11-16 10:21 , Processed in 0.058652 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

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