前序
- 进程概念的提出:多道程序技术的采用,多个程序同时装入内存中
- 概念:内存中,作为资源分布和独立运行的基本单位
前趋图
- 描述程序执行的顺序,是一个有向无循环图(DAG,Directed Acyclic Graph)
- 以下前趋图可以表示为 P = {p1,p2,p3,p4,p5} = {(p1,p3),(p2,p4),(p4,p5),(p3,p5)}
Note
简而言之,前趋图就是一个顺序图而已,但是要保证有向无循环的特征
执行顺序
顺序执行
- 单道批处理系统
- 特征
- 顺序性:只能按照一定的顺序执行
- 封闭性:一个程序独占所有资源
- 可再现性:只要条件允许,程序反复执行,结果都一致
并发执行
- 多道程序技术
- 特征
- 间断性
- 无封闭性
- 不可再现性
进程的描述
程序进程块
- 程序进程快(PCB,Process Control Block):是一个配置的数据结构,用于控制和管理进程
- 进程实体(简称进程)= 程序段+相关数据段+PCB
进程的定义
进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位
进程的特征
- 动态性:进程是一次执行过程
- 并发性
- 独立性
- 异步性
Note:进程的特征可以看成是与程序的区别,程序是静态的,没有建立 PCB 的程序不能说是独立性,也就不能参与并发执行
三种基本状态和两种常用状态
基本状态
- 就绪(Ready)状态 : 只差获得 CPU,进入就绪队列排队
- 执行(Running)状态 : 获得 CPU 并执行
- 阻塞(Block)状态 :执行时因某些原因而暂停,进入阻塞队列排队
两种常用状态
- 创建状态 : 申请空白 PCB 并填写相关信息 –> 分配资源 –> 转入就绪状态
- 终止状态 :清零 PCB,返回其空间
五种状态之间的关系图
两种操作
- 挂起操作
- 激活操作
Note:这两种操作是相反的,挂起相当于进入阻塞状态,激活相当于取消阻塞状态
进程管理中的数据结构
管理控制的数据结构
- 在 os 中,用数据结构来表征每个资源和进程的实体,便于管理
- os 管理的这些数据结构一般分为:内存表,设备表,文件表和进程表
- 其中,进程表就是我们上面所说到的进程控制块 PCB,实打实的大佬
PCB 的作用
- 作为独立运行基本单位的标志 – 是进程存在的唯一标识
- 提供进程管理所需要的信息
- 能实现间断性的运行方式
- 实现与其他进程的同步和通信
PCB 中的信息
PCB 的控制方式
线性方式
- 将所有的 PCB 都组织在一张线性表中,虽实现简单,开销小,但是每次查找需要遍历整张表,只适合进程数目不多的系统
链接方式
- 将具有相同状态进程的 PCB 分别通过 PCB 中的链接字接成一个队列,形成若干个就绪队列,阻塞队列等,并根据优先级、阻塞原因等要素排好队
索引方式
- 系统根据所有进程状态的不同,建立索引表,每个索引表记录具有相应状态的某个 PCB 在 PCB 表中的地址
总结
- 前趋图表示程序执行的顺序
- 进程的特征是区别进程和程序的一个工具
- 进程有三种基本状态、两种常见状态,两种操作
- 程序块(PCB)是进程中重要的数据结构
- 了解 PCB 的作用,信息以及组织方式