The Memory Descriptor
All information related to the process address space is
included in an object called the memory descriptor
of type mm_struct
. This object is
referenced by the mm
field of the
process descriptor. The fields of a memory descriptor are listed in
Table 9-2.
Table 9-2. The fields of the memory descriptor
Type | Field | Description |
---|---|---|
| | Pointer to the head of the list of memory region objects |
| | Pointer to the root of the red-black tree of memory region objects |
| | Pointer to the last referenced memory region object |
unsigned long (*)( ) | get_unmapped_area | Method that searches an available linear address interval in the process address space |
void (*)( ) | unmap_area | Method invoked when releasing a linear address interval |
unsigned long | mmap_base | Identifies the linear address of the first allocated anonymous memory region or file memory mapping (see the section "Program Segments and Process Memory Regions" in Chapter 20) |
unsigned long | free_area_cache | Address from which the kernel will look for a free interval of linear addresses in the process address space |
| | Pointer to the Page Global Directory |
| | Secondary usage counter |
| | Main usage counter |
| | Number of memory regions |
| | Memory regions’ read/write semaphore |
| | Memory regions’ and Page Tables’ spin lock |
| | Pointers ... |
Get Understanding the Linux Kernel, 3rd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.