【发布时间】:2011-11-14 15:35:17
【问题描述】:
当一个进程向 Linux 内核请求物理内存页面时,内核会尽最大努力提供一个在内存中物理上连续的页面块。我想知道为什么页面物理上是连续的很重要;毕竟,内核可以通过简单地提供虚拟连续的页面来掩盖这一事实。
然而,内核确实尽最大努力提供物理上连续的页面,所以我试图弄清楚为什么物理上的连续性如此重要。我做了一些研究,并通过几个来源发现了以下原因:
1) 更好地利用缓存并实现更低的平均内存访问时间(GigaQuantum:我不明白:如何?)
2)您必须摆弄内核页表才能映射物理上不连续的页面(GigaQuantum:我不明白这一点:不是每个页面都单独映射吗?必须做些什么摆弄?)
3) 物理上不连续的映射页面会导致更大的 TLB 抖动(GigaQuantum:我不明白:如何?)
根据我插入的 cmets,我不太了解这 3 个原因。我的任何研究资料也没有充分解释/证明这三个原因。谁能更详细地解释一下这些?
谢谢!将帮助我更好地理解内核...
【问题讨论】:
-
你使用哪个函数向内核请求物理内存页?
标签: linux-kernel