李元金 计算机与信息工程学院 E-mail: liyuanjin10@126.com 第 3 讲 进程管理(1) 李元金 计算机与信息工程学院 E-mail: liyuanjin10@126.com 1/
进程管理 教学目的 教学内容 掌握前趋图,顺序执行和并发执行的特征; 掌握进程的基本状态及其转换; 掌握进程与程序的联系与区别; 理解进程的创建、撤销、阻塞、唤醒、挂起、激活等过程; 教学内容 进程的基本概念 进程控制 计算机科学与技术系 信息与教育技术中心 2/
复习 操作系统的基本特征 操作系统的主要功能 OS结构设计 3/
进程的基本概念 程序的顺序执行及特征 程序的顺序执行 一个程序段的多条语句的顺序执行: 特征: 顺序性、封闭性、可再现性 S1: a:=x+y S2: b:=a-5 S3: c:=b+1 特征: 顺序性、封闭性、可再现性 I1 C1 P1 I2 C2 P2 S1 S2 S3 4/
前趋图 前趋图是一个有向无循环图,用于描述进程之间执行的前后关系。 节点表示:一条语句,一个程序段,一个进程 p1--->p2 --->={(p1,p2)| p1 必须在p2开始前完成} P1 P2 P3 P4 5/
程序的并发执行及其特征 程序的并发执行 I1 I2 I3 I4 C1 C2 C3 C4 P1 P2 P3 P4 t 6/
程序并发执行时的特征 特征 间断性 失去封闭性:主要由共享资源引起 不可再现性 例有2个循环程序A和B,它们共享一个变量N,设N的初值为n。程序A每执行一次时,都要做N:=N+1; B则每次要执行Print(N), 然后再做N:=0. 若程序A,B以不同的速度运行有以下三种不同的结果 7/
程序的并发执行 N:=N+1在print(N)和N:=0之前,则N值分别为n+1,n+1,0. 8/
进程的特征和状态 进程的特征和定义 进程的特征 结构特征 动态性 进程实体:由程序段、数据段及进程控制块三部分构成。 由“创建”而产生,由“调度”而执行;由撤消而消亡。(而程序是静态的)。 9/
进程的特征和状态 并发性 只有建立了进程,才能并发执行。 独立性 独立运行,独立分配资源和独立接受调度的基本单位。 异步性 进程按各自独立的、不可预知的速度向前推进。 10/
进程的特征和状态 进程的定义 进程是程序的一次执行。 进程是一个程序及其数据在处理机上顺序执行时所发生的活动。 进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。 引入进程实体的概念后,进程定义为:进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。 11/
进程的特征和状态 进程的三种基本状态 就绪状态 执行状态 阻塞状态 就绪 阻塞 执行 图2-5 进程的三种基本状态及其转换 时间片完 I/O完成 进程调度 阻塞 执行 I/O请求 图2-5 进程的三种基本状态及其转换 12/
进程的特征和状态 挂起状态 引入原因 进程状态的转换(图2-6) 终端用户请求 父进程请求 负荷调节需要 操作系统需要 活动就绪 静止就绪 活动阻塞 静止阻塞 静止就绪 活动就绪 静止阻塞 活动阻塞 13/
进程的特征和状态 图2-6 具有挂起状态的进程状态图 执行 活动 就绪 静止 阻塞 激活 挂起 释放 请求I/O 14/
进程的特征和状态 创建状态和终止状态 就绪 阻塞 执行 创建 终止 图2-7 进程的五种基本状态及其转换 许可 时间片完 I/O完成 进程调度 I/O请求 I/O完成 创建 终止 许可 释放 图2-7 进程的五种基本状态及其转换 15/
图2-8 具有创建、终止和挂起状态的进程状态图 释放 图2-8 具有创建、终止和挂起状态的进程状态图 执行 活动 就绪 静止 阻塞 激活 挂起 释放 请求I/O 创建 许可 许可 16/
思考题 如果系统中有N个进程,运行的进程最多几个,最少几个;就绪进程最多几个,最少几个;等待进程最多几个,最少几个?(单处理机) 1个、0个、N-1个、0个、N个、0个 17/
进程控制块 pid 进程状态 现场 优先级 阻塞原因 程序地址 同步机制 资源清单 链接指针 进程控制块的作用 进程控制块中的信息 其作用是将一个不能独立运行的程序变成一个可以独立运行的基本单位,一个能与其他进程并发执行的进程。 OS利用PCB来对并发执行的进程进行控制和管理,PCB是进程存在的唯一标志。 进程与PCB是一一对应的。 PCB(process control block)常驻内存。 进程控制块中的信息 标识、处理机状态,进程调度信息,进程控制信息 pid 进程状态 现场 优先级 阻塞原因 程序地址 同步机制 资源清单 链接指针 18/
进程控制块 PCB的组织 链接 索引 图 2-9 PCB链接队列示意图 19/
进程控制块 PCB的组织 索引 图 2-10 按索引方式组织PCB 20/
进 程 控 制 进程控制就是对系统中的所有进程实施管理,进程控制一般有原语来实现。 所谓原语是一种特殊的系统功能调用,它可以完成一个特定的功能,其特点是原语执行时不可被中断。 常用原语: 创建原语 终止原语 阻塞原语、唤醒原语 21/
进 程 控 制 进程的创建 进程图(Process Graph) 图 2-11 进程树 D E F G H B C I J K L M A 22/
进 程 控 制 引起创建进程的事件 用户登录 作业调度 提供服务 应用请求 23/
进 程 控 制 进程的创建(Creation of Progress) 申请空白PCB。 为新进程分配资源。 初始化进程控制块。 将新进程插入就绪队列,如果进程就绪队列能够接纳新进程, 便将新进程插入就绪队列。 24/
进 程 控 制 25/
进 程 控 制 进程的终止 引起进程终止(Termination of Process)的事件 正常结束 异常结束 外界干预 26/
进 程 控 制 进程的终止过程 根据被终止进程的标识符,从PCB集合中检索出该进程的PCB,从中读出该进程的状态。 若被终止进程正处于执行状态,应立即终止该进程的执行,并置调度标志为真,用于指示该进程被终止后应重新进行调度。 若该进程还有子孙进程,还应将其所有子孙进程予以终止,以防他们成为不可控的进程。 将被终止进程所拥有的全部资源,或者归还给其父进程, 或者归还给系统。 将被终止进程(它的PCB)从所在队列(或链表)中移出, 等待其他程序来搜集信息。 27/
进 程 控 制 28/
进 程 控 制 进程的阻塞与唤醒 引起进程阻塞和唤醒的事件 请求系统服务 启动某种操作 新数据尚未到达 无新工作可做 29/
进 程 控 制 进程阻塞过程 进程唤醒过程 阻塞原语与唤醒原语 进入block过程后,把处于执行状态的进程先停止,然后修改进程控制块中的现行状态由“执行” 改为“阻塞”,并将PCB插入阻塞队列,最后转调度程序进程重新调度。 进程唤醒过程 首先把被阻塞的进程从等待该事件的阻塞队列中移出,将其PCB中的现行状态由阻塞改为就绪,然后再将该PCB插入就绪对列中。 阻塞原语与唤醒原语 30/
进 程 控 制 31/
进 程 控 制 进程的挂起与激活 进程的挂起 进程的激活过程 首先检查被挂起进程的状态,若处于活动就绪状态,便将其改为静止就绪;对于活动阻塞状态的进程,则将之改为静止阻塞。为了方便用户或父进程考查该进程的运行情况而把该进程的PCB复制到指定的内存区域。最后,若被挂起的进程正在执行,则转向调度程序重新调度。 进程的激活过程 现将进程从外存调入内存,检查进程的现行状态,若是静止就绪,便将之改为活动就绪;若静止阻塞,便将之改为活动阻塞。 32/
作业 P84 2-6 33/