概述
PCB 重要成员
每个进程在内核中都有一个进程控制块(PCB)来维护进程相关的信息,Linux内核的进程控制块是task_struct结构体,定义在 /usr/src/linux-headers-4.15.0-142-generic/include/linux/sched.h
内核头文件中(使用 uname -r
指令查询 linux 版本),其内部有很多成员,我们重点掌握以下几部分即可。
- pid:进程id,系统中每个进程有唯一的id,使用 pid_t 类型表示。注意每个线程的pid都不相同。
- tgid:thread group id,linux引入线程组的概念。一个线程组所有线程与领头线程具有相同的pid,存入tgid字段,getpid()返回当前进程的 tgid 值而不是 pid 的值。
- 进程的状态:
- 就绪(初始+就绪):等CPU分配时间片
- 运行:占用CPU
- 挂起:等待除CPU以外的其它资源,主支放弃CPU
- 停止:程序运行停止
- 进程切换时需要保存和恢复的一些CPU寄存器。
- 描述虚拟地址空间的信息。
- 描述控制终端的信息。
- 当前工作目录。
- umask掩码。
- 文件描述符表,包含很多指向file结构体的指针。
- 和信号相关的信息。
- 用户id和组id。
- 会话(Session)和进程组:
- 进程组:一组相关进程的集合;
- 会话:一组相关进程组的集合;
- 进程可以使用的资源上限(Resource Limit)。
最后
以上就是清新便当为你收集整理的PCB进程控制块的全部内容,希望文章能够帮你解决PCB进程控制块所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复