进程与进程管理
前驱图的定义
用来描述程序(或进程)之间先后执行顺序的有向无环图
简称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是其预测值
线程的定义
引入线程的操作系统中,线程是进程的一个实体,是被系统独立调度和分派的基本单位
引入线程的目的
为了减少程序并发执行时所付出的时空开销,使操作系统具有更好的并发性
引入线程的好处
创建与终止一个线程花费时间少
线程之间切换花费时间少
同一进程内线程共享内存与文件,无须调用系统内核
- 线程能够独立执行
 
线程与进程的比较
- 调度——
 把线程作为调度和分配的基本单位- 并发性——
 使系统具有更好的并发性,从而更加高效地使用系统资源和提高系统吞吐量- 拥有资源——
 进程可以拥有独立资源,线程是共享资源- 系统开销——
 线程的切换、同步和通信都无须操作系统内核的干预



