PCB(进程控制块)讲解

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/IT_10/article/details/89819138

PCB:进程控制块,实际是一个结构体,放在sched.h文件中,Linux下可以通过whereis sched.h命令查看具体路径
该结构体主要包含:
1.进程id
用于区别进程
2.进程的状态:就绪、运行、挂起、停止
在这里插入图片描述
3.进程切换时需要保存和恢复的一些CPU寄存器
寄存器放在CUP中,A程序和B程序分时执行的时候,A占用CPU执行一定时间,CPU便被B占用了,然后又轮到A执行,A的资源如寄存器如何恢复到挂起时的状态,这时候就需要PCB来记住A停止运行时的寄存器状态,恢复后继续执行。
4.描述虚拟地址空间的信息
虚拟地址和物理地址的对于关系
5.描述控制终端的信息
如xshell打开两个终端连接同一个linux主机,在两个终端中执行同一个程序,这个终端的信息都分别存在PCB中
6.当前工作目录
如分别在/home和/etc目录下分别执行pwd命令,shell进程输出的结果是不一样的,这个工作目录就记录在PCB中
7.umask掩码
保护文件创建和修改的权限
如输入umask命令,默认输出是0022,表示创建一个文件的时候,默认去掉组用户和其他用户对该文件的写权限,如果把umask改为0000,则用户创建的文件可以被文件的所属用户,所属组,其他用户具有可写可读可执行权限。
8.文件描述符
9.和信号相关的信息
10.用户id和组id
11.会话和进程组
12.进程可以使用的资源上限
如输入命令ulimit -a
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/IT_10/article/details/89819138