作者esheep (★~漂亮小喵喵~★)
看板CSSE
标题Re: [问题] 关於记忆体配置
时间Tue Nov 28 14:05:22 2006
※ 引述《mimiosu (倾听)》之铭言:
: 约耳提到:
: 聪明的程式师在配置记忆体时会用2的次方为大小(比如4位元组,8位元组,16位元
: 组,18446744073709551616位元组等等),让malloc的潜在不隐定性降到最低。这样
: 可以让可用链结里小碎块的数量降到最低,而有玩乐高积木的人应该都能直觉理解
: 其原因。虽然似乎有点浪费空间,不过很容易就会看出浪费的空间不会超过总空间
: 的一半。
详见恐龙本:记忆体相关章节,探讨 内部/外部断裂 部分
: -
: 我知道系统中可用记忆体的空间是用一个 list 串起来,要配置给 process 的时候
: 可以用,但是我还是不懂为什麽是 2 的次方比较好,请各位大大指点,或是提供相关
: 文件,谢谢~^^
虽然作业系统中记忆体是用一个list,
但每个prcoess所配到记忆体空间亦为2的次方。(此部分trace kernel可得知)
原因: 软体观点:看恐龙本
硬体观点:白算盘
其实都差不多...
简单来说:
电脑最基本的储存单位为 bit ,1bit只有2种值(0或1)。
所以用2进位方式操作会最符合硬体使用的架构,
如果 1bit能有3种值的话,则用3的次方来操作会最好,其余以此类推。
以上
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 163.25.118.82
1F:推 mimiosu:谢谢~我有看到了~^^ 11/29 16:08