进程控制块(PCB)
简单的来说他的每一个节点就是结构体,每一个节点与一个进程绑定在一起。所有的PCB在一起又组成新的一种数据结构
决定了操作系统进程管理的所有的东西
Task stat
进程的状态
-1
0
大于0
327行结构体代码
通过PCB可以了解进程的所有情况
在进程切换时,PCB的作用
保存状态,是为了恢复状态,当前进程运行下所有的信息(涉及到的寄存器的信息),存到PCB中。
保证下次运行时的状态与它停止的时候的状态是一样的。
操作系统会跑一个调度算法,选中后假如p1,然后加载p1上次停止时的状态,p1会感觉没发生过什么变化。有种沉舟侧畔千帆过,病树前头万木春的感觉。----简单的概述
PCB一起构成的数据结构
不同的"队列"
就绪队列
运行队列
等待队列(设备队列),每一个设备,每一个IO,每一个事件,这些需要的进程挂在后面,一个个等待
进程主动的或被动的在不同的对列之间来回的迁移,一个个挂上去,不同的设备上也挂着有该设备需求的进程。
底层数据结构:数组是核心(简单的技术极致的体现) Linux 用数组实现管理所有的PCB,然后单独的对列需要的时候,单独建一个指针,利用指针“挂在数组相应的索引位置”