进程与进程管理
前驱图的定义
用来描述程序(或进程)之间先后执行顺序的有向无环图
简称DAG
注意:
- 前驱图中,没有前驱的节点称为初始结点,没有后继的节点称为终止结点
- 前驱图中不能存在环
程序顺序执行的特征
- 程序执行的顺序性
- 程序执行的封闭性
- 程序执行结果的确定性
- 程序结果的可再现性
程序并发执行的特征
- 程序执行的间断性
- 程序执行失去封闭性
- 程序执行结果的不可再现性
对比顺序执行与并发执行区别
- 顺序执行拥有一定顺序,而并发没有,程序执行期间可中途间断
- 顺序执行具有封闭性,执行结果不受外部影响,而并发执行没有封闭性
- 由于并发执行失去了封闭性 ,也就失去了可再现性,而顺序执行拥有可再现性
进程是啥
任意选一个自己方便理解好记的
进程(Process)
是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。——百度- 行为的一个规则称为程序,程序在处理机上执行时所发生的活动称为
进程
。——Dijkstra进程
是可以和别的计算并发执行的计算。——Madinick and Donowan进程
是一个程序及其数据在处理机上顺序执行时发生的活动。——A.C.Shaw进程
是程序在一个数据集合上的运行过程,是系统进行资源分配和调度的一个独立单位。——Peter Denning进程
是具有独立功能的可并发执行的运行过程,是系统进行资源分配和调度的独立单位。——操作系统(第四版)
进程的功能
- 资源分配
- 调度
进程的特征
- 动态性——其动态表现为:
由调度而执行,得不到资源而暂停执行,以及撤销而消亡。
- 并发性
- 独立性
- 异步性
- 结构特征
进程映像
/进程实体
的组成
- 程序段
- 数据段
- 进程控制块
进程的基本状态
- 就绪
- 执行
- 阻塞
执行中的程序
主动排队>>阻塞
被动排队>>就绪
进程状态的转换
- 就绪>>执行 (
处于就绪的进程分配到资源后
)- 执行>>阻塞 (
执行的进程请求的临界资源正被其他进程访问
)- 执行>>就绪 (
被优先级高的进程抢占了资源
)- 阻塞>>就绪 (
等待等待
)
图示
程序、进程、线程区别与联系
进程与程序的区别与联系
联系
进程是把程序作为它的运行实体,没有程序,也就没有进程
进程由程序、数据和进程控制块3部分组成
区别
程序是静态的,进程是动态的
程序可以长期保存,而进程有生命周期,是临时的
进程是系统进行资源分配和调度的一个独立单位;而程序不是
线程与进程的区别与联系
联系
进程和线程都是一个时间段的描述,是CPU工作时间段的描述
进程和线程都是由操作系统所体会的程序运行的基本单元
区别
- 进程有独立的地址空间 ,线程有自己的PCB,没有独立的地址空间
进程控制块
PCB——进程控制块
TCB——线程控制块
概念
进程控制块PCB是进程实体的一部分,是操作系统中最重要的数据结构。
作用
对进程的控制与管理
作用的过程
系统创建一个新进程时就为它建立了一个进程控制块PCB;进程结束时又回收其PCB,进程也随之消亡。
也可总结为
创建新进程>>创建PCB
进程结束>>回收PCB
进程控制块中的信息
- 进程标识符的信息
- 外部标识符
- 内部标识符
- 处理机状态信息
- 通用寄存器
- 指令计数器
- 程序状态字PSW
- 用户栈指针
- 进程调度信息
- 进程状态
- 进程优先级
- 进程调度所需的其他信息
- 事件
- 进程控制信息
- 程序和数据的地址
- 进程同步和通信机制
- 资源清单
- 链接指针
操作系统的内核
操作系统内核是指大多数操作系统的核心部分
操作系统内核的核心功能
- 中断处理
- 进程管理
- 进程的建立和撤销
- 进程状态的转换
- 进程调度
- 控制进程的并发执行
- 资源管理中的基本操作
进程的创建
创建原语 create()
记住一句:子死父不一定死,父死子必死
引起创建进程的事件
- 用户登录
- 作业调度
- 提供服务
- 应用请求
进程创建的过程
- 申请空白进程控制块
- 为新进程分配资源
- 初始化进程控制块
- 将新进程插入就绪队列
进程的终止
终止原语 destroy()
引进进程终止的事件
- 正常结束
- 异常结束
- 外界干预
进程终止过程
- 根据被终止进程的标识符从进程控制块PCB集合中检索出该进程的PCB,从中读出该进程的状态
- 若被终止进程正处于执行状态,应立即终止该进程的执行并设置调度标志为真,用于指示该进程被终止后应重新进行调度,选择一新进程,把处理机分配给它
- 若该进程还有子孙进程,还应将其所有子孙进程予以终止,以防它们成为不可控的
- 将该进程所拥有的全部资源或者归还其父进程或者归还给系统
- 将被终止进程的PCB从所在队列中移除,等待其他程序来搜集信息
简述
- 从标识符中读出当前进程的状态
- 若处于执行,则终止该进程,将处理机资源分配给其他新进程
- 若进程包含子孙进程,则终止所有子孙进程
- 将该进程所有资源释放回收
- 将该进程的PCB回收
进程的调度
高级调度
(作业调度)——从外存接纳一个作业,为它创建进程且分配必要的资源,并挂到就绪队列上低级调度
(进程调度)——决定就绪队列哪个进程将获得处理机资源- 中级调度
进程调度方式
- 非剥夺方式
优点:
简单,系统开销小缺点:
短进程周转时间长,紧急任务无法立即投入运行- 剥夺方式
- 剥夺原则
- 优先权原则
- 短进程优先原则
- 时间片原则
进程调度算法
- 先进先出算法
- 短作业优先调度算法(
最短处理机运行期优先调度算法
)
Tn+1=αtn+(1-α)Tn
α
用于预测值,通常在0.5左右
tn
是第n个实际的处理机执行期
Tn
是其预测值
线程的定义
引入线程的操作系统中,线程是进程的一个实体,是被系统独立调度和分派的基本单位
引入线程的目的
为了减少程序并发执行时所付出的时空开销,使操作系统具有更好的并发性
引入线程的好处
创建与终止一个线程花费时间少
线程之间切换花费时间少
同一进程内线程共享内存与文件,无须调用系统内核
- 线程能够独立执行
线程与进程的比较
- 调度——
把线程作为调度和分配的基本单位
- 并发性——
使系统具有更好的并发性,从而更加高效地使用系统资源和提高系统吞吐量
- 拥有资源——
进程可以拥有独立资源,线程是共享资源
- 系统开销——
线程的切换、同步和通信都无须操作系统内核的干预