由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - [bssd]memory之一关键问题
进入Programming版参与讨论
1 (共1页)
c*******v
发帖数: 2599
1
说下自己的读后感。不保证准确。欢迎批评指正。
图灵的文章里提过一两句memory page。
但是他可能忽略了一个逻辑问题:查表所需之表头,本身也需要存储起来。
例如我们用naive的办法。例如把表头默认都存储在固定的不需要查表地方。
那么表头不需要查表就能直接access。这样逻辑就解开了。
然而这样做的话,找到内存需要分两步:
1.access 表头,其本身也在内存里
2.access 内存
时间就是两倍。这当然不可接受。改进的办法是表头放在最快的存储单位。
加上一些预测。但是RAM越来越便宜,快速存储单位之价格与RAM之价格变化
是不match的。
RAM越来越大,反而表头会越来越大。带来的问题越来越多。
而不是越来越少。所以这就导致数据结构越来越复杂。多层page,标志位,...
从算法上来讲,为了实用。
现代计算机的办法是最原始的查表信息(表头,或者表头之表头,之根源etc)
存在cpu直接接触之存储单位(cache或者寄存器)。
然后用两个原则来设计算法:
一个原则是时间定域,most recent 访问过的
memory更可能下一次被访问。另一个原则是空间定域,一个被访问过的内存,
其周边内存更可能下一次被访问。
这两个原则,我实在是无力吐槽。有时间再说为什么在一些应用中,
会逻辑上非常荒诞(不是实用性能低,而是逻辑不正确)。
1 (共1页)
进入Programming版参与讨论