进程切换ing

进程控制块(PCB)

简单的来说他的每一个节点就是结构体,每一个节点与一个进程绑定在一起。所有的PCB在一起又组成新的一种数据结构

决定了操作系统进程管理的所有的东西

Task stat

进程的状态
-1
0
大于0

327行结构体代码

通过PCB可以了解进程的所有情况

在进程切换时,PCB的作用

保存状态,是为了恢复状态,当前进程运行下所有的信息(涉及到的寄存器的信息),存到PCB中。
保证下次运行时的状态与它停止的时候的状态是一样的。

操作系统会跑一个调度算法,选中后假如p1,然后加载p1上次停止时的状态,p1会感觉没发生过什么变化。有种沉舟侧畔千帆过,病树前头万木春的感觉。----简单的概述

PCB一起构成的数据结构

不同的"队列"

就绪队列
运行队列
等待队列(设备队列),每一个设备,每一个IO,每一个事件,这些需要的进程挂在后面,一个个等待

进程主动的或被动的在不同的对列之间来回的迁移,一个个挂上去,不同的设备上也挂着有该设备需求的进程。

底层数据结构:数组是核心(简单的技术极致的体现) Linux 用数组实现管理所有的PCB,然后单独的对列需要的时候,单独建一个指针,利用指针“挂在数组相应的索引位置”

原文地址:https://www.cnblogs.com/AmosAlbert/p/12832179.html