Linux要管理进程,就要对进程要做的所有事情进行描述,因此它用数据结构来代表不同实体,这个数据结构就是进程控制块PCB
它是以链表的方式存在的。
task_struct结构:
1.标识符:区别正在执行的进程和别的进程
2.状态: 进程状态有阻塞、挂起、运行等
3.优先级:如果有多个进程正在执行,就要考虑进程执行的先后顺序
4.程序计数器:程序中即将被执行的下一条地址
5.内存指针:程序代码和进程相关数据的指针
6.上下文信息:进程执行时处理器的寄存器中的数据。
7.I/O状态信息:包括显示I/O请求,分配给进程的I/O设备和被进程使用的文件列表
8.记账信息:包括处理机的时间总和、记账号等
进程标识号:每个进程有唯一的一个标号[0~cat /proc/sys/kernel/pid_max]
0号进程:创建1号进程 ->init (使用完成之后并不会没有用,他会将数据进行交换,磁盘和物理内存之间进行搬运)
进程的3态和7态可以这里看
https://blog.csdn.net/z_juan1/article/details/80721136