第二章 进程与线程
- 进程:分配资和独立运行的最小单位
- 线程:程序独立运行的最小单位
- 操作系统四个特征:并发,共享,虚拟,异步
程序执行
- 单道批处理程序
顺序执行:
S1 :a=x+y ,S2:b=a-5,S3:c=b+5
I1 —> C1 —> P1 —>I2 —> C2 —> P2
I 为输出
C 为程序执行的阶段
P 为输出
前驱图:(一个有向无循环图DAG)
- 特征:
顺序性、封闭性(进程之间无法通信)、可再现性(可重复性)
Ii —> Ci —> Pi 因为输入(I)与运行(C)时间比较短,输出时间比较长,所以写成:
P1 —> P2 ,P1 —> P3,P1 —> P4,…
I —> C —> P 都相当于程序
- 程序并发执行特征:
- 间断性:程序并发执行程序之间,形成了相互制约关系,所以“执行—暂停—执行”
- 失去封闭性:多个程序共享系统中的各种资源
(单道批处理执行时间是确定的,多道批处理执行上无法确定) - 不可再现性:并发执行时,由于失去封闭性,导致不可再现性
进程特征
在多道程序环境下,程序的并发执行破坏了程序的封闭性和再现性,使得程序和计算不再一一对应,出现了许多新特征,程序静态,计算无法控制结果,由此引入了进程来控制程序执行。
进程的概念
-
进程实体:进程=程序+PCB(进程控制块)+数据
用户级上下文:由用户数据段和用户堆栈(程序)组成
系统级上下文:静态(PCB和资源)、动态(核心栈、现场信息)、系统堆栈等组成进程地址空间
寄存器上下文:各类寄存器 -
进程定义:可并发执行的程序在一个数据集合(程序运行的环境)上的运行过程
-
进程结构特征:
- 创建进程—> 实质创建进程PCB PCB控制程序执行
- 撤销进程 —> 撤销进程的PCB
动态性:进程由创建而产生,由调度而执行,由撤销而消亡 —— 进程实体有一定的生命周期
并发性:进程实体同存于内存中,且能在一段时间内同时运行
进程是动态的,程序是静态的,进程是程序的一次执行过程
一个程序包含多个进程,一个进程可以包含多个程序,进程可以创建其他进程
进程三种状态及转换
- 新状态:
进程刚建立,但还未将它送入就绪队列中状态 - 终止状态:
进程已经正常结束或异常结束,OS将其从就绪队列移出,但尚未将它撤销。 - 挂起状态:
执行的进程暂执行,静止下来,静止状态称挂起状态
挂起原因:- 终端用户
- 父进程请求
- 操作系统需要:操作系统对进程挂起
- 对换的需要
- 负荷调节的需要:实时系统中工作负荷较重,把一些不重要的进程挂起
活动阻塞——>静止阻塞 阻塞
静止阻塞——>活动阻塞 激活
只有活动时候才能请求
时间片:是把计算机的系统资源(尤其是 CPU时间)进行时间上的分割,每个时间段称为一个时间片,每个用户依次轮流使用时间片。
进程管理
PCB是进程控制块,为了管理进程设置的一个专门的数据结构
- 目的:使一个在多道程序环境下不能独立运行的程序(含数据),成为一个能独立运行的基本单位或与其它进程并发执行的进程。
- PCB是进程存在的唯一标志
-
-
进程控制块中的信息:
-
进程标识符:
- 内部标识符:为每一个进程赋予一个唯一数字标识符
- 外部标识符:用户设置的标识符
-
处理机状态:
- 状态信息由处理机和各种寄存器(通用寄存器,指令寄存器,程序状态PSW寄存器)
状态信息:如条件码,执行方式,中断屏蔽等标志 - 用户栈指针:调用参数及调用地址(栈——用来运行程序的)
- 进程进入处理机 等待程序排序用的——队列
- 状态信息由处理机和各种寄存器(通用寄存器,指令寄存器,程序状态PSW寄存器)
-
进程调度信息
- 进程当前状态
- 进程优先级
- 进程调度时间信息
- 事件:由执行转为阻塞时的等待状态即阻塞原因
-
进程控制信息
- 程序与数据地址
- 资源清单:所需全部资源及已经分配到该进程的资源清单
- 链接指针
-
PCB组织方式
- 队列形式
- 索引表
- 执行:同一个程序下只能运行一个程序
-
进程标识符: