第4-进程.ppt

上传人:本田雅阁 文档编号:2498220 上传时间:2019-04-03 格式:PPT 页数:66 大小:1.04MB
返回 下载 相关 举报
第4-进程.ppt_第1页
第1页 / 共66页
第4-进程.ppt_第2页
第2页 / 共66页
第4-进程.ppt_第3页
第3页 / 共66页
亲,该文档总共66页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《第4-进程.ppt》由会员分享,可在线阅读,更多相关《第4-进程.ppt(66页珍藏版)》请在三一文库上搜索。

1、进程及进程管理,进程及进程管理,进程的引入 进程概念 进程控制 进程的相互制约关系 进程同步机构 进程互斥与同步的实现,1,进程及进程管理 主要内容,2,1. 顺序程序及特点 计算 程序的一次执行过程称为一个计算,它由许多简单操作 所组成。 程序的顺序执行 一个计算的若干操作必须按照严格的先后次序顺序地执 行,这类计算过程就是程序的顺序执行过程。,进程及进程管理 进程的引入,3,单道系统的工作情况 对用户作业的处理 首先输入用户的程序和数据;然后进行计算;最后打印计算结果即有三个顺序执行的操作: I:输入操作 C:计算操作 P:输出操作,进程及进程管理 进程的引入,4,进程及进程管理 进程的引

2、入,顺序程序的特点 顺序性 处理机的操作严格按照程序所规定的顺序执行。 封闭性 程序一旦开始执行,其计算结果不受外界因素的影响。 可再现性 程序执行的结果与它的执行速度无关(即与时间无关),而只与初始条件有关。,5,2. 并发程序 多道系统的工作情况,哪些程序段的执行必须是顺 序的?为什么? 哪些程序段的执行是并行 的?为什么?,操作的先后次序图,对n个用户作业的处理 作业1: I1 C1 P1 作业2: I2 C2 P2 作业n: In Cn Pn,进程及进程管理 进程的引入,6,什么是程序的并发执行 若干个程序段同时在系统中运行,这些程序段的执行在时间上是重叠的,一个程序段的执行尚未结束,

3、另一个程序段的执行已经开始,即使这种重叠是很小的一部分,也称这几个程序段是并发执行的。 三个并发执行的程序段 并行语句记号 cobegin S1;S2; ;Sn ; coend,进程及进程管理 进程的引入,7,3. 并发程序的特点 失去程序的封闭性和可再现性 若一个程序的执行可以改变另一个程序的变量,那么,后者的输出就可能有赖于各程序执行的相对速度,即失去了程序的封闭性特点。 例:讨论共享公共变量的两个 程序,执行时可能产生的不同 结果。程序A执行时对n做加1 的操作;程序B打印出n值,并 将它重新置为零。,进程及进程管理 进程的引入,8,失去程序的封闭性和可再现性的讨论,程序A的n :=n+

4、1与 程序B的两个语句 的关系 n的赋值 打印的结果 n的最终赋值,之前 10 11 0,之后 10 10 1,之间 10 10 0,进程及进程管理 进程的引入,什么是与时间有关的错误 程序并发执行时,若有公共变量,其执行结果与各并发程序的相对速度有关,即给定相同的初始条件,若不加以控制,也可能得到不同的结果,此为与时间有关的错误。,9,程序与计算不再一一对应 一个程序可以对应多个计算。,例1: I1 输入程序段 I2 In,例2: 编译1 C编译程序 编译2 编译n,程序并发执行的相互制约 间接的相互制约关系 资源共享 直接的相互制约关系 公共变量,进程及进程管理 进程的引入,10,1. 进

5、程定义 运行 暂停 运行,进程及进程管理 进程概念,什么是进程 所谓进程,就是一个程序在给定活动空间和初始环境下, 在一个处理机上的执行过程。 进程与程序的区别 程序是静态的概念;进程是动态的概念 进程是一个独立运行的活动单位 进程是竞争系统资源的基本单位 一个程序可以对应多个进程;一个进程至少包含一个程序。,11,2. 进程的状态,进程及进程管理 进程概念,等待状态(wait) 进程正等待着某一事件的发生而暂时停止执行。这时, 即使给它CPU控制权,它也无法执行。,就绪状态(ready) 进程已获得除CPU之外的运行所必需的资源,一旦得到 CPU控制权,立即可以运行。,进程的基本状态 运行状

6、态(running) 该进程已获得运行所必需的资源,它的程序正在处理机 上执行。,12,进程状态的变迁 进程状态的几种可能变迁,进程及进程管理 进程概念,运 行,服务请求 (请求I/O等),服务完成/ 事件来到,进程调度,时间片到,等 待,就 绪,个别系统提供,13,具有进程基本状态的变迁图,进程及进程管理 进程概念,14,进程状态变迁的讨论,进程及进程管理理 进程概念,变迁1 变迁3,是否会发生?需要什么条件?,变迁4 变迁3,是否会发生?需要什么条件?,15,例1:讨论3个排序程序在不同的操作系统环境中执行结果 程序A:冒泡排序算法,在屏幕的左1/3处开设窗口显示其排序过程; 程序B:堆排

7、序算法,在屏幕的中1/3处开设窗口显示其排序过程; 程序C:快速排序算法,在屏幕的右1/3处开设窗口显示其排序过程。 在不支持多进程的操作系统下运行; 在支持多进程的操作系统下运行。,进程及进程管理 进程概念,16,例1解答 在不支持多进程的操作系统下运行 依次运行程序A、程序B、程序C。 在支持多进程的操作系统下运行 建立进程A、B、C;对应的程序分别是程序A、B、C; 若系统采用时间片轮转的调度策略,则在屏幕上有3个窗口,同时显示3个排序过程。 实际上这3个程序在轮流地占用CPU时间,由于CPU的高速度,使我们看到的是这3个程序在同时执行。,进程及进程管理 进程概念,17,例2:讨论2个程

8、序在不同的操作系统环境中执行结果。 程序C:打印工资报表的程序; 程序D:计算1000以内所有素数并显示最后结果。 在不支持多进程的操作系统下运行; 在支持多进程的操作系统下运行。,进程及进程管理 进程概念,18,例2解答 在不支持多进程的操作系统下运行 依次运行程序C、程序D,可以看到,先是打印机不停地打印工资报表,打完后,接着运行程序C,不停地计算,最后显示所计算的结果。 在支持多进程的操作系统下运行 建立进程C、D;对应的程序分别是程序C、D; 由于进程C是I/O量较大的进程,而进程D是计算量较大的进程,故在系统进程调度的控制下,两个进程并发执行。可以看到打印机不断打印工资报表;而处理机

9、不停地计算,最后屏幕显示计算的结果。,进程及进程管理 进程概念,19,3. 进程描述 什么是进程控制块 描述进程与其他进程、系统资源的关系以及进程在各个不同时期所处的状态的数据结构,称为进程控制块PCB(process control block)。 进程的组成,进程及进程管理 进程概念,程序与数据 描述进程本身所应完成的功能 PCB 进程的动态特征,该进程与其他进程和系统资源的关系。,进程控制块的主要内容,进程及进程管理 进程概念,进程标识符 进程符号名或内部 id号 进程当前状态 本进程目前处于何种状态 (运行、就绪、等待) 大量的进程如何组织?,21,进程及进程管理 进程概念,当前队列指

10、针next 该项登记了处于同一状态的下一个进程的 pcb地址 进程优先级 反映了进程要求CPU的紧迫程度 CPU现场保护区 当进程由于某种原因释放处理机时,CPU现场信息被保存在pcb的该区域中。 通信信息 进程间进行通信时所记录的有关信息 家族联系 指明本进程与家族的联系 占有资源清单,22,4. 线程,线程定义 线程是比进程更小的活动单位,它是进程中的一个执行 路径。 线程可以这样来描述,进程中的一条执行路径; 它有自己私用的堆栈和处理机执行环境 ; 它与父进程共享分配给父进程的主存; 它是单个进程所创建的许多个同时存在的线程中的 一个。,进程及进程管理 进程概念,23,线程的特点,创建一

11、个线程比创建一个进程开销要小得多; 实现线程间通信十分方便,因为一个进程创建的多个 线程可以共享地址区域和数据。,线程是一个动态的概念。在进程内创建多线程,可以提高系统的并行处理能力,加快进程的处理速度。,线程状态的变化,进程及进程管理 进程概念,24,1. 进程控制的概念 进程控制的职责 对系统中的进程实施有效的管理,负责进程状态的改变。 进程状态变化:,进程及进程管理 进程控制,创建,撤销,等待,唤醒,常用的进程控制原语 创建原语、撤消原语、阻塞原语、唤醒原语,25,2. 进程创建 进程创建原语的形式 create (name,priority),name为被创建进程的标识符 priori

12、ty为进程优先级,进程创建原语的功能 创建一个具有指定标识符的进程,建立进程的PCB结构。,进程及进程管理 进程控制,26,PCB池,进程创建原语的实现,进程创建原语的实现框图,进程及进程管理 进程控制,27,3. 进程撤销 进程撤销原语的形式 当进程完成任务后希望终止自己时使用进程撤消原语。 Kill (或exit),进程撤销原语的功能 撤消当前运行的进程。将该进程的PCB结构归还到PCB资 源池,所占用的资源归还给父进程,然后转进程调度程序。,进程及进程管理 进程控制,28,进程撤销原语的实现,进程及进程管理 进程控制,29,4. 进程等待 进程等待原语的形式 当进程需要等待某一事件完成时

13、,它可以调用等待原语挂 起自己。 susp(chan) 入口参数chan:进程等待的原因,进程等待原语的功能 中止调用进程的执行,并加入到等待chan的等待队列中;最 后使控制转向进程调度。,进程及进程管理 进程控制,30,进程等待原语的实现,进程及进程管理 进程控制,31,5. 进程唤醒 进程唤醒原语的形式 当处于等待状态的进程所期待的事件来到时,由发现者进 程使用唤醒原语叫唤醒它。 wakeup(chan) 入口参数chan:进程等待的原因。,进程唤醒原语的功能 当进程等待的事件发生时,唤醒等待该事件的进程。,进程及进程管理 进程控制,32,进程唤醒原语的实现,进程及进程管理 进程控制,3

14、3,1. 进程互斥的概念 临界资源,进程及进程管理 进程相互制约关系,例1:两个进程A、B共享一台打印机 设:x代表某航班机座号,p1和p2两个售票进程,售票 工作是对变量x加1。这两个进程在一个处理机C上并 发执行,分别具有内部寄存器r1和r2。,34,例2:两个进程共享一个变量x 两个进程共享一个变量x时,两种可能的执行次序: A: p1: r1 := x;r1:= r1+1; x := r1 ; p2: r2:= x;r2 := r2+1; x := r2 ;,设x的初值为10,两种情况下的执行结果: 情况A: x = 10+2 情况B: x = 10+1,进程及进程管理 进程相互制约关

15、系,B: p1: r1 := x; r1:= r1+1; x := r1 ; p2: r2:= x;r2 := r2+1; x := r2 ;,35,临界区是进程中对公共变量(或存储区)进行审查与修改 的程序段,称为相对于该公共变量的临界区。,一次仅允许一个进程使用的资源称为临界资源。 硬件:如输入机、打印机、磁带机等 软件:如公用变量、数据、表格、队列等,临界区,进程及进程管理 进程相互制约关系,36,互斥,在操作系统中,当某一进程正在访问某一存储区域时, 就不允许其他进程来读出或者修改存储区的内容,否 则,就会发生后果无法估计的错误。进程间的这种相 互制约关系称为互斥。,进程及进程管理 进

16、程相互制约关系,37,2. 进程同步的概念 什么是进程同步 并发进程在一些关键点上可能需要互相等待与互通消息, 这种相互制约的等待与互通消息称为进程同步。,进程同步的例,病员就诊,进程及进程管理 进程相互制约关系,38,共享缓冲区的计算进程与打印进程的同步 计算进程 cp和打印进程 iop公用一个单缓冲,A,B,C,D,A,B,C,D,进程及进程管理 进程相互制约关系,39,1. 锁和上锁、开锁操作 什么是锁 用变量w代表某种资源的状态,w称为“锁” 。 上锁操作和开锁操作,进程及进程管理 进程同步机构,检测w的值 (是0还是1); 如果w的值为1,继续检测; 如果w的值为0,将锁位置1 (表

17、示占用资源),进入临界区执行。 (此为上锁操作) 临界资源使用完毕,将锁位置0。 (此为开锁操作),40,进程使用临界资源的操作,进程及进程管理 进程同步机构,41,上锁原语和开锁原语 上锁原语 算法 lock 输入:锁变量w 输出:无 test: if (w为1) goto test; * 测试锁位的值* else w=1; *上锁* ,进程及进程管理 进程同步机构,开锁原语 算法 unlock 输入:锁变量w 输出:无 w=0;*开锁* ,42,2. 信号灯和P、V操作 什么是信号灯 信号灯是一个确定的二元组(s,q),s是一个具有非负 初值的整型变 量,q是一个初始状态为空的队列。操 作

18、系统利用信号灯的状态对并发进程和共享资源进行 控制和管理。 信号灯是整型变量。 变量值 0 时,表示绿灯,进程执行; 变量值 0 时,表示红灯,进程停止执行。 注意:创建信号灯时,应准确说明信号灯 s 的意义和初值 (这个初值 绝不能为负值)。,进程及进程管理 进程同步机构,43,P 操作,P 操作的定义 对信号灯s的 p操作记为 p(s)。p(s)是一个不可分割的原语操作,即取信号灯值减1,若相减结果为负,则调用p(s)的进程被阻,并插入到该信号灯的等待队列中,否则可以继续执行。,P 操作的实现,进程及进程管理 进程同步机构,44,V 操作,V 操作的定义 对信号灯s的 v操作记为 v(s)

19、。v(s)是一个不可分割的原语操作,即取信号灯值加1,若相加结果大于零,进程继续执行,否则,要帮助唤醒在信号灯等待队列上的一个进程。,V 操作的实现,进程及进程管理 进程同步机构,45,1. 用上锁原语和开锁原语实现进程互斥 框图描述,进程及进程管理 进程互斥与同步的实现,46,进程及进程管理 进程互斥与同步的实现,程序描述 程序 task1 main( ) pa( ) pb( ) int w=1; * 互斥锁 * cobegin lock(w); lock(w); pa( ); csa ; csb ; pb( ); unlock(w); unlock(w); coend ,47,2. 用信号

20、灯的P、V操作实现互斥 框图描述 设:mutex为互斥信号灯,初值为1。,进程及进程管理 进程互斥与同步的实现,程序描述,48,程序 task2 main( ) int mutex=1; * 互斥信号灯 * cobegin pa( ); pb( ); coend pa( ) pb( ) p(mutex); p(mutex); csa ; csb ; v(mutex); v(mutex); ,信号灯可能的取值 两个并发进程,互斥信号灯的值仅取1、0和 1三个值。 mutex=1 表示没有进程进入临界区; mutex=0 表示有一个进程进入临界区; mutex= 1 表示一个进程进入临界区, 另一

21、个进程等待进入。,进程及进程管理 进程互斥与同步的实现,49,例: x代表某航班机座号,pa和pb两个售票进程,售票工作是对变量x加1。试用信号灯的P、V操作实现这两个进程的互斥。 设:mutex为互斥信号灯,初值为1。,pa( ) pb( ) p(mutex); p(mutex); x:=x+1 ; x:=x+1 ; v(mutex); v(mutex); ,进程及进程管理 进程互斥与同步的实现,50,3. 两类同步问题的解法 合作进程的执行次序,进程流图,进程及进程管理 进程互斥与同步的实现,51,例:pa、pb、pc为一组合作进程,其进程流图如图所 示,试用信号灯的p、v操作实现这三个进

22、程的同步。,分析任务的同步关系 任务启动后 pa先执行,当它结束后,pb、pc可以开始执行, pb、pc 都执行完毕后,任务终止。,信号灯设置 设两个同步信号灯sb、sc分别表示进程pb和pc能否开始执行,其初值均为0。,同步描述 pa pb pc p(sb ); p(sc ); v(sb ); v(sc ); ,进程及进程管理 进程互斥与同步的实现,52,程序 task4 main( ) int sb=0; *表示pb进程能否开始执行* int sc=0; *表示pc进程能否开始执行* cobegin pa( ); pb( ); pc( ); coend pa( ) pb( ) pc( )

23、p(sb); p(sc); v(sb); v(sc); ,进程及进程管理 进程互斥与同步的实现,53,共享缓冲区的合作进程的同步的解法 计算进程 cp和打印进程 iop公用一个单缓冲,为了完成正确的计算与打印,试用信号灯的p、v操作实现这两个进程的同步。,两个进程的任务 计算进程cp经过计算,将计算结果送入buf; 打印进程iop把buf中的数据取出打印。,进程及进程管理 进程互斥与同步的实现,54,信号灯设置 sa:表示缓冲区中是否有可供打 印的计算结果,其初值为0。 sb:表示缓冲区有无空位置存放 新的信息,其初值为1。,分析任务的同步关系 当cp进程把计算结果送入buf时,iop进程才能

24、从buf中取 出结果去打印,否则必须等待。 当iop进程把buf中的数据取出打印后,cp进程才能把下 一个计算结果数据送入buf中,否则必须等待。,进程及进程管理 进程互斥与同步的实现,55,同步描述 cp: iop: p(sa); 产生一个数据; 从buf中取 数据; p(sb); v(sb); 将数据放入buf 打印; v(sa); 程序描述,进程及进程管理 进程互斥与同步的实现,56,程序 task5 main( ) int sa=0; *表示buf中有无信息 * int sb=1; *表示buf中有无空位置* cobegin cp( );iop( ); coend cp( ) iop(

25、 ) while(计算未完成) while(打印工作未完成) 得到一个计算结果; p(sa); p(sb); 从缓冲区中取一数; 将数送到缓冲区中; v(sb); v(sa); 从打印机上输出; ,进程及进程管理 进程互斥与同步的实现,57,4. 生产者消费者问题 生产者消费者问题的例,计算进程和打印进程 计算进程 cp不断产生数据,是生产者; 打印进程 iop不断打印数据,是消费者。,通信问题 发消息进程 send不断产生消息,是生产者; 收消息进程 receive不断接收消息,是消费者。,进程及进程管理 进程互斥与同步的实现,58,生产者消费者问题的一般解答,生产者消费者问题图示,生产者与

26、消费者的同步关系 生产者:当有界缓冲区中无空位置时,要等待; 向有界缓冲区放入物品后,要发消息。 消费者:当有界缓冲区中无物品时,要等待; 从有界缓冲区取出物品后,要发消息。,进程及进程管理 进程互斥与同步的实现,59,信号灯设置 两个同步信号灯 sb :表示空缓冲区的数目,初值 = n sa : 表示满缓冲区(即信息)的数目,初值 = 0 一个互斥信号灯 mutex:表示有界缓冲区是否被占用,初值 = 1,进程及进程管理 进程互斥与同步的实现,60,同步描述 生产者: 消费者: p(sa) p(sb); p(mutex); p(mutex); 从有界缓冲区中取数据; 将数据放入有界缓冲区;

27、v(mutex); v(mutex); v(sb); v(sa); 消费;,进程及进程管理 进程互斥与同步的实现,61,程序描述 程序 prod_cons main( ) int sa=0; *满缓冲区的数目* int sb=n; *空缓冲区的数目* int mutex=1; *对有界缓冲区进行操作的互斥信号灯* cobegin p1 ( ); p2 ( ); pm ( ); c1 ( ); c2 ( ); ck ( ); coend ,进程及进程管理 进程互斥与同步的实现,62,pi( ) cj( ) while(生产未完成) while(还要继续消费) p(sa); 生产一个产品; p(m

28、utex); p(sb); 从有界缓冲区中取产品; p(mutex); v(empty); 送一个产品到有界缓冲 v(sb); v(mutex); 消费一个产品; v(sa); ,进程及进程管理 进程互斥与同步的实现,63,进程概念 进程引入 程序的顺序执行 定义 特点 程序的并发执行 定义 特点 进程定义 定义 进程与程序的区别 进程状态 三个基本状态、状态变迁图 不同操作系统类型的进程状态变迁图 进程描述 PCB的定义与作用 进程的组成 线程定义,进程及进程管理 小结,64,进程控制 进程控制原语 基本进程控制原语 进程控制原语的执行与进程状态的变化 进程创建、进程撤销原语的功能 进程等待、进程唤醒原语的功能 进程的相互制约关系 进程互斥 临界资源 互斥 临界区,进程及进程管理 小结,65,进程同步 进程同步的概念 进程同步的例 进程同步机构 锁、上锁原语、 开锁原语 信号灯及P、V操作 进程同步与互斥的实现 用信号灯的P、V操作实现进程互斥 两类同步问题的解答 合作进程的执行次序 共享缓冲区的合作进程的同步 生产者消费者问题及解答,进程及进程管理 小结,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1