首页 > 代码库 > Linux进程的虚拟存储器知识点

Linux进程的虚拟存储器知识点

http://blog.csdn.net/yxccc_914/article/details/52665713

技术分享

用libreoffice画表真时有点蛋疼,效率很低..

深入理解计算机系统->虚拟存储器

内核虚拟存储器

操作系统处理进程时分为用户态和内核态.虚拟存储器中,进程虚拟存储器占大部分空间,内核虚拟存储器占小部分空间.

与进程相关的数据结构

每个进程都不相同.所以并不是每个进程的内核虚拟存储器都相同,里边有各个进程不同的部分.

这块区域相关联: 
1.task_struct 
(1) state:进程状态 
(2)thread_info:进程信息和内核堆栈 
(3)run_list,array:用于进程调度 
(4)mm:进程地址空间 
(5)pid:进程id 
(6)group_info:群组管理 
(7)user:用户管理 
(8)fs:工作目录,根目录 
(9)signal:信号信息 
(10)sighand:信号处理 
(11)程序计数器 
等等…. 
其中最重要的时mm,就是mm_struct

2.mm_struct 
(1)pgd:指向第一级页表基址 
(2)mmap:指向一个vm_area_struct(区域结构)的链表,每个vm_area_struct都描述了当前虚拟地址空间的一个区域(area). 
等等… 
重点mmap.

3.vm_area_struct 
(1)vm_end 
(2)vm_start 
(3)vm_prot:读写许可权限 
(4)vm_flags:是私有还是共享的 
(5)vm_next:指向链表中的下一个区域结构

Linux进程的虚拟存储器知识点