Cała przestrzeń adresowa procesu jest określona przez jego deskryptor pamięci będący strukturą wskazywaną przez pole mm deskryptora procesu.
Typ deskryptora pamięci:
struct mm_struct { struct vm_area_struct * mmap, * mmap_avl, * mmap_cache; pgd_t * pgd; atomic_t mm_users, mm_count; int map_count; struct semaphore mmap_sem; spinlock_t page_table_lock; unsigned long context; unsigned long start_code, end_code, start_data, end_data; unsigned long start_brk, brk, start_stack; unsigned long arg_start, arg_end, env_start, env_end; unsigned long rss, total_vm, locked_vm; unsigned long def_flags; unsigned long cpu_vm_mask; unsigned long swap_cnt; unsigned long swap_address; void * segments; };
Aktualnie najważniejszymi polami deskryptora pamięci procesu są:
Do stworzenia nowego deskryptora pamięci sluży funkcja mm_alloc(), która alokuje nowy obiekt w pamięci podręcznej alokatora płytowego.