The process table has a pointer to an mm_struct for each process.
The mm_struct:
- pgd: address of the process's page table
- mmap: pointer to linked list of the process's area structs
mmap points to a linked list of vm_area_struct's stored in the kernel portion of the process's virtual memory.
One vm_area_struct for each segment
- user stack
- heap
- unitialized data
- initialized data
- program text