1. Linux Memory Management How does the Linux kernel keep track of the Virtual Memory Areas that each process uses?
2.
3.
4. Source-code organization High-level ‘mm’ code is processor-independent (It’s in the ‘/usr/src/linux/mm’ subdirectory) Low-level ‘mm’ code is processor-specific (It’s in the ‘/usr/src/linux/arch/’ subdirectories) i386/mm ppc/mm mips/mm alpha/mm . . .
5. Our machines have 1GB of RAM Main Memory (1 GB) Intel Pentium CPU 0x00000000 0x3FFFFFFF system bus NIC VGA FIFO (4 KB) VRAM (32 MB) some devices have RAM, too
10. How Linux tracks mappings task_struct mm mm_struct pgd start, end, etc vm_area_struct start, end, etc vm_area_struct start, end, etc vm_area_struct start, end, etc vm_area_struct vma mapping-tables mapping-tables mapping-tables
11.
12.
13.
14. Similar memory-mappings user space kernel space user space text data stack parent-process kernel space text data stack child-process text data data stack stack physical memory virtual memory virtual memory