进程控制块(PCB)和进程映像(Process Image)
PCB–进程控制块
进程控制块(PCB = Process Control Block)是进程状态信息的集合,用来描述进程和用于进程的管理和调度,用PCB可以区分不同的进程
PCB主要包含的信息有
- 标识符(identifier)——唯一标识进程
- 状态(state)——进程的当前状态(运行/就绪/等待)
- 优先级(priority)——相对于其他进程的优先级别
- 程序计数器(PC = Program Counter)——即将被执行的下一条程序指令的地址
- 内存指针(memory pointers)——包括指向程序代码、相关数据和共享内存的指针
- 上下文数据(context data)——进程被中断时处理器寄存器中的数据,可以用于进程的恢复
- I/O状态信息(I/O status information)——包括显式I/O请求、分配给进程的I/O设备、被解除使用的文件列表等
- 记帐信息(accounting information)——包括占用处理器时间、时钟数总和、时间限制、账号等,比如在进程处于退出态时可以取出PCB的记账信息来做性能分析
https://basicittopic.com/process-control-block/
Process Image–进程映像
进程是程序的动态执行过程,进程映像是存储在硬盘中的可执行文件,运行进程映像时,os把进程影映像部分或全部装载到内存中,运行后就产生了一个进程
进程映像的一般组成:代码段、数据段、栈段、PCB
代码段不一定会被全部装进内存中,在需要的时候再装载进去,代码段可能会被不同进程共享
数据段可能会划分为初始化的全局和静态变量以及未初始化的全局和静态变量两部分,后者在Unix系统中称为BSS区。数据段默认不被进程共享
栈段一般有两个,一个用户模式下的用户栈和一个内核模式下的内核栈
PCB就是上述的进程控制块
http://www.tldp.org/LDP/LG/issue23/flower/psimage.html