- High memory
High Memory is the part of physical memory in a
computer which is not directly mapped by the page tables of itsoperating system kernel. The phrase is also sometimes used as shorthand for theHigh Memory Area , which is a different concept entirely.Some operating system kernels, such as
Linux , divide their virtual address space into two regions, devoting the larger to user space and the smaller to the kernel. In current 32-bitx86 computers, this takes the form of a 3GB/1GB split of the 4GB address space, so kernel virtual addresses start at 0xC0000000 and go to 0xFFFFFFFF. When in user mode, translations are only effective for the first region, thus protecting the kernel from user programs, but when in kernel mode, translations are effective for both regions, thus giving the kernel an easy way to refer to the buffers of processes -- it just uses the process' own mappings.However, if the kernel needs to refer to physical memory for which a userspace translation has not already been provided, it has only 1GB (for example) of virtual memory to use. On computers with a lot of physical memory, this can mean that there exists memory that the kernel cannot refer to directly -- this is called high memory. When the kernel wishes to address high memory, it creates a mapping on the fly and destroys the mapping when done, which incurs a performance penalty.
Sources and External Links
http://lwn.net/Articles/75174/
Wikimedia Foundation. 2010.