一,虚拟内存管理(进程地址空间)
1,进程地址空间在内核当中使用vm_area_struct数据结构进行描述,简称为VMA,表示进程线性区/进程地址空间。地址空间属于用户进程(用户进程mm_struct数据有对应成员)。
2,PAD是指进程可寻址的虚拟地址空间。如果是64位处理器架构,进程可以寻址256TB的用户态地址空间,但是进程没有权限取寻址内核空间的虚拟地址,我们只能通过系统调用方式取间接访问。linux内核缺页异常处理会报错,严重的情况下:“segment falut”终止进程。
3,内存区域包括项目如下:代码段映射、数据段映射(可执行文件)、用户进程栈、mmap映射区域(映射文件内容)、堆映射区域。
4,mm_struct数据结构
linux内核需要管理每个进程所有的内存区域以及它们对应的也表映射,抽象一个数据结构mm_struct。进程控制块(PCB)数据结构task_struct当中有一个指针mm,该指针指向mm_struct数据结构。