32位的处理器为每个进程分配了4GB的虚拟空间,在linux中1G为内核空间,3G为用户空间;在windows中一般是2:2。在进程执行时,分别将内核空间和用户空间映射到物理内存,用户空间的映射方式要比内核空间的映射方式复杂的多。
一、linux内存中与进程相关的信息
1.在进程信息表有一个表项:指向task_struct结构的指针。
2.一页内存:存放task_struct和内核态堆栈
3.页表和页目录
4.全局描述表中两项:①一项指向进程控制块中任务状态 段②一项指向进程控制块的局部描述符
5.数据段,代码段,堆、栈、全局变量等数据区
二、进程控制块(task_struct)
1.进程标识
2.处理器状态信息
3.进程控制信息
三、windows内存中与进程相关的信息
windows中与linux不同,进程和线程定义分开,线程和进程都有各自的对象。进程负责获取资源,线程是处理器调度的实体。进程有关数据结构被拆分,有的放在用户空间,有的放在内核空间。
内核空间中与之相关的:EPROCESS。即struct _EPROCESS
KPROCESS。这是EPROCESS内部的一个成分,其名称就叫“Pcb”。
W32PROCESS
PEB(Process Environment Block)、即“进程环境块”。