![]()
详细讨论高端内存和低端内存一、高端内存和低端内存的划分Linux物理内存空间分为DMA内存区域(DMA Zone),低端内存区域(普通区域)和高端内存区域(Highmem)区域三部分。 DMA区域通常很小,只有几十个M。低端内存区域和高端内存区域的划分来自Linux内核空间大小的限制。二、来源:过去,CPU的地址总线只有32位,而32位地址总线只能在逻辑上和物理上描述4G地址空间。 32 = 4Gbit)从物理理论上讲(最多2个)4G内存(IO地址空间除是0到3G,内核地址范围是3G到4G。也就是说,内核空间只有1G的逻辑线性地址空间。如果Linux物理内存小于1G,通常内核会在物理内存与其地址空间之间进行线性映射,即映射,这可以提高访问速度。但是,当Linux物理内存超过1G时,线性访问机制是不够的,因为只能映射1G内存,而内核无法管理剩余的物理内存。因此,为了解决这个问题,Linux将内核地址分为线性和非线性区域。最大线性区域为896M,其余128M为非线性区域。

因此,映射性区域中的物理存储器成为低端存储器,而剩余的物理存储器成为高端存储器。与线性区域不同,非线性区域不会预先进行内存映射,而是在使用过程中动态映射。三、示例假设物理内存为2G,则低端896M是低端内存,内核通过线性映射使用它。另一个1128M物理内存是高端内存,可以被内核的非线性区域使用。由于128M非线性区域用于管理超过1G的高端内存,因此通常不进行映射,而kmap仅在使用时才进行映射,并且必须在使用后尽快与kunmap一起释放。对于物理内存为1G的内核,系统不会真正为线性空间分配896M,这是最大限制。以下是Linux系统中1.5G物理内存的实际分配。低端存储区仅分配了721M。如果是1G linxu系统,则分配甚至更少。 MemTotal 1547MB HighTotal 825MBLowTotal721MB当申请高端内存时,如果高端内存不足,Linux也会转到低端内存区域进行申请,反之亦然。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shoujiruanjian/article-326967-1.html
只是认得崇洋媚外的心理在作怪
对你来说
只用一招
吗哦