Linux_PCB

进程控制块 PCB 
每个进程在内核中都有一个进程控制块(Processing Control Block),Linux内核的进程控制块是task_struct结构体,用来维护进程相关的信息,主要表示进程状态。其作用是使一个在多道程序环境下不能独立运行的程序,成为一个能独立运行的基本单位或与其它进程并发执行的进程。PCB通常是系统内存占用区中的一个连续存区,它存放着操作系统用于描述进程情况及控制进程运行所需的全部信息。

进程控制块(PCB)是系统为了管理进程设置的一个专门的数据结构。系统用它来记录进程的外部特征,描述进程的运动变化过程。同时,系统可以利用PCB来控制和管理进程,所以说,PCB(进程控制块)是系统感知进程存在的唯一标志。

PCB包含信息:
                       进程id、用户id和组id
                       程序计数器
                       进程的状态(有就绪、运行、阻塞)
                       进程切换时需要保存和恢复的CPU寄存器的值
                       描述虚拟地址空间的信息
                       描述控制终端的信息
                       当前工作目录
                       文件描述符表,包含很多指向file结构体的指针
                       进程可以使用的资源上限(ulimit –a命令可以查看)
                       输入输出状态:配置进程使用I/O设备,如磁带机。

进程控制块PCB的组织方式:双向循环链表
1.线性表方式:不论进程的状态如何,将所有的PCB连续地存放在内存的系统区。适用于系统中进程数目不多。
2.索引表方式:该方式是线性表方式的改进,系统按照进程的状态分别建立就绪索引表、阻塞索引表。
3.链接表方式:系统按照进程的状态将进程的PCB组成队列,从而形成就绪队列、阻塞队列、运行队列等。

新创建的一个进程:先生成PCB,再生成进程主题
销毁一个进程:先销毁进程主题,再销毁PCB

pcb源码:https://blog.csdn.net/mcl2840072208/article/details/88309037

相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页