Today, when I was talking to suppliers, I was so despised that I never even heard of "LowMemory. I feel very depressed. I have also been engaged in memory Management for a while. How can I not even know LowMemory? Can I blame others for poor pronunciation. Alas, in short, it is because you have no deep understanding of LowMemory.
What is low memory? Speaking of low memory, we have to say the concept of memory zone. Memory partition: Linux divides the memory into different partitions. The kernel uses struct zone to describe the memory partition. Generally, a node is divided into DMA, Normal, and High Memory areas. (See http://blog.csdn.net/younger_china/article/details/17556055) The addressing range under 32-bit CPU is limited, Linux kernel defines the following three areas: (1) DMA memory zone: that is, Direct Memory Access partition, it is usually the starting 16 MB of physical memory. It is mainly used by some peripherals. The peripherals and memory access data directly without the involvement of the system CPU. 0x00000000-0x00999999 (0-16 MB) (2) normal memory zone: from 16 MB to 01000000 MB memory zone; 0x037999999-0x896 (16-880 MB)-size: MB (3) HighMemory memory zone: memory area after 038000000 MB; 0 x-So what is low memory ??? LowMem (also called normal zone) is 880 MB in total and cannot be changed unless the hugemem kernel is used). For high-load systems, the OOM Killer mechanism may be triggered due to poor LowMem usage. Memory allocation is a continuous region. If many fragments or LowFree fragments exist in LowMem and cannot be allocated to a contiguous memory area, OOM Killer is triggered.