32位机器的LowMemory


    今天在和供应商交流的过程中,被严重鄙视了,竟然认为我连“LowMemory”都没有听说过。感觉很郁闷,好歹我也搞过一段时间memory Management,怎么可能连LowMemory都不知道,难道能怪别人发音不标准好不好。
    唉,总之还是因为自己对LowMemory了解不深入哪。

    何为low memory?说到low memory,不得不说memory zone(内存分区)这个概念。
     内存分区,Linux对内存再进行划分,分为不同的分区。内核以struct zone来描述内存分区。通常一个节点分为DMA、Normal和High Memory内存区。 (详见http://blog.csdn.net/younger_china/article/details/17556055)
    在32位CPU下寻址范围是有限的,Linux内核定义了下面三个区域:
    (1) DMA内存区:即直接内存访问分区,通常为物理内存的起始16M。主要是供一些外设使用,外设和内存直接访问数据访问,而无需系统CPU的参与;   0x00000000 -  0x00999999 (0 - 16 MB) 
    (2) Normal内存区:从16M到896M内存区; 0x01000000 - 0x037999999 (16 - 896 MB) - size: 880MB
    (3)  HighMemory内存区:896M以后的内存区; 0x038000000 - <硬件特定> 

    那么,到底何为 low memory???
    LowMem区(也叫NORMAL ZONE)共880MB,并且是固定不能变的(除非使用hugemem内核),对于高负荷的系统,可能因为LowMem使用不好而触发了OOM Killer机制。因为内存分配是一个连续的区域,在此时,如果LowMem里存在很多碎片或者LowFree太少,此时无法分配到一块连续的内存区域,就触发了OOM Killer。

   

转载于:https://www.cnblogs.com/youngerchina/p/5624515.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值