第2章进程管理21课件.pptx
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《第2章进程管理21课件.pptx》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 进程 管理 21 课件
- 资源描述:
-
1、2.22.2进程控制进程控制 进程控制就是对系统中的所有进程实施管进程控制就是对系统中的所有进程实施管理,进程控制一般用理,进程控制一般用原语来实现。一般由来实现。一般由OS内核来实现。内核来实现。所谓原语是一种特殊的系统功能调用,它所谓原语是一种特殊的系统功能调用,它可以完成一个特定的功能,其特点是原语执可以完成一个特定的功能,其特点是原语执行时不可被中断,既具有行时不可被中断,既具有“原子性原子性”。2023-1-251n因为:因为:为了对进程进行有效的管理和控制,操为了对进程进行有效的管理和控制,操作系统要提供若干基本的操作,以便能创建进作系统要提供若干基本的操作,以便能创建进程、撤消进
2、程、阻塞进程和唤醒进程。这些操程、撤消进程、阻塞进程和唤醒进程。这些操作对于操作系统来说是最为基本、最为重要的。作对于操作系统来说是最为基本、最为重要的。为了保证执行时的绝对正确,要求它们以一个为了保证执行时的绝对正确,要求它们以一个整体出现,不可分割。也就是说,一旦启动了整体出现,不可分割。也就是说,一旦启动了它们的程序,就要保证做完,中间不能插入其它们的程序,就要保证做完,中间不能插入其他程序的执行序列。这就是所谓的原语。他程序的执行序列。这就是所谓的原语。2023-1-252常用的进程控制原语常用的进程控制原语n创建原语创建原语n终止终止原语原语n阻塞原语、唤醒原语阻塞原语、唤醒原语20
3、23-1-2532.2.1进程的创建进程的创建 n进程图(Process Graph)n进程图是用于描述一个进程的家族关系的有向树(子进程,父进程)n子进程可以继承父进程所拥有的资源DEFGHBCIJKLMA2023-1-2542.2.1进程的创建进程的创建 n引起进程创建的事件引起进程创建的事件 u用户登录用户登录 u作业调度作业调度 u提供服务提供服务 u应用请求应用请求 n进程创建的过程进程创建的过程 u为新进程分配唯一的为新进程分配唯一的进程标识符进程标识符,并从,并从PCB队列中申请一个空闲队列中申请一个空闲PCB。u为新进程的程序和数据,以及用户栈分配相应的内存空间及其它为新进程的
4、程序和数据,以及用户栈分配相应的内存空间及其它必要分配必要分配资源资源。u初始化初始化PCB中的相应信息,如标识信息、处理器信息、进程控制中的相应信息,如标识信息、处理器信息、进程控制信息等。信息等。u如果就绪队列可以接纳新进程,便将新进程加入到如果就绪队列可以接纳新进程,便将新进程加入到就绪队列就绪队列中。中。2023-1-2552.2.2进程的终止进程的终止n引起进程终止的事件引起进程终止的事件 u正常结束正常结束 u异常结束异常结束 u外界干预外界干预 n进程终止的过程进程终止的过程 u根据被终止进程的标识符,从根据被终止进程的标识符,从PCB集合中检索该进程的集合中检索该进程的PCB,
5、读读出进程状态。出进程状态。u若该进程处于执行状态,则立即若该进程处于执行状态,则立即终止终止该进程的执行。该进程的执行。u若该进程有若该进程有子孙进程子孙进程,还要将其子孙进程终止,并准备重新分配,还要将其子孙进程终止,并准备重新分配CPU。u将该进程所占用的将该进程所占用的资源资源回收,归还给其父进程或操作系统。回收,归还给其父进程或操作系统。u将被终止进程的将被终止进程的PCB从所在队列中移出,并从所在队列中移出,并撤消该进程的撤消该进程的PCB。2023-1-2562.2.3进程的阻塞与唤醒进程的阻塞与唤醒n阻塞:阻塞:当一个进程所期待的某一事件尚未出当一个进程所期待的某一事件尚未出现
6、时,该进程调用阻塞原语将自己阻塞。现时,该进程调用阻塞原语将自己阻塞。进程阻塞是进程的自身的一种主动行为。进程阻塞是进程的自身的一种主动行为。n唤醒:唤醒:处于阻塞状态的进程是绝不可能叫醒处于阻塞状态的进程是绝不可能叫醒它自己的,它必须由它的合作进程用唤醒原它自己的,它必须由它的合作进程用唤醒原语唤醒它。语唤醒它。2023-1-257进程的阻塞进程的阻塞n引起进程阻塞的事件引起进程阻塞的事件 u请求系统服务请求系统服务 u启动某种操作启动某种操作 u新数据尚未到达新数据尚未到达 u无新工作可做无新工作可做 n进程阻塞的过程进程阻塞的过程 u立即立即停止执行停止执行该进程。该进程。u修改修改PC
7、B中的相关信息。把进程控制块中的运行状态由中的相关信息。把进程控制块中的运行状态由“执行执行”状态改为状态改为“阻塞阻塞”状态,并填入等待的原因,以及进程的各种状态,并填入等待的原因,以及进程的各种状态信息。状态信息。u把把PCB插入到插入到阻塞队列阻塞队列。根据阻塞队列的组织方式,把阻塞进。根据阻塞队列的组织方式,把阻塞进程的进程控制块插入到阻塞队列中。程的进程控制块插入到阻塞队列中。u转调度程序转调度程序重新调度重新调度,运行就绪队列中的其他进程。,运行就绪队列中的其他进程。2023-1-258进程的唤醒进程的唤醒n引起进程唤醒的事件引起进程唤醒的事件 u请求系统服务得到满足请求系统服务得
8、到满足 u启动某种操作完成启动某种操作完成 u新数据已经到达新数据已经到达 u有新工作可做有新工作可做 n进程唤醒的过程进程唤醒的过程 u从从阻塞队列阻塞队列中找到该进程。中找到该进程。u修改该修改该PCB的相关内容。把阻塞状态改为就绪状态,删的相关内容。把阻塞状态改为就绪状态,删除等待原因等等。除等待原因等等。u把进程控制块插入到把进程控制块插入到就绪队列就绪队列。按照就绪队列的组织方。按照就绪队列的组织方式,把被唤醒的进程的式,把被唤醒的进程的PCB插入到就绪队列中。插入到就绪队列中。2023-1-259进程的唤醒进程的唤醒nBlock原语和原语和wakeup原语是一对作用刚原语是一对作用
9、刚好相反的原语,因此,如果在进程中调好相反的原语,因此,如果在进程中调用了阻塞原语,则必须在与之相合作的用了阻塞原语,则必须在与之相合作的另一进程中或其他相关进程中安排唤醒另一进程中或其他相关进程中安排唤醒原语,以能唤醒阻塞进程。原语,以能唤醒阻塞进程。2023-1-25102.2.4进程的挂起与激活进程的挂起与激活n引起进程挂起的事件引起进程挂起的事件(suspend)u用户进程请求将自己挂起用户进程请求将自己挂起 u父进程请求挂起子进程父进程请求挂起子进程 n进程挂起的过程进程挂起的过程 u检查进程检查进程状态状态:F有活动就绪转为静止就绪F有活动阻塞转为静止阻塞u把该进程的把该进程的PC
10、B复制到某指定的内存区域复制到某指定的内存区域u若进程正在执行,则转调度程序若进程正在执行,则转调度程序重新调度重新调度,运行就绪,运行就绪队列中的其他进程。队列中的其他进程。2023-1-2511进程的激活进程的激活(active)n引起进程激活的事件引起进程激活的事件 u父进程或用户进程请求将挂起进程激活父进程或用户进程请求将挂起进程激活 n进程激活的过程进程激活的过程 u将将进程进程调入内存调入内存u检查进程检查进程状态状态:F有静止就绪转为活动就绪F有静止阻塞转为活动阻塞u在抢占策略中,有可能转调度程序在抢占策略中,有可能转调度程序重新调度重新调度。2023-1-2512练习练习n为使
11、进程由活动就绪转变为静止就绪,应为使进程由活动就绪转变为静止就绪,应用()原语;为使进程由执行状态转变为用()原语;为使进程由执行状态转变为阻塞状态,应利用()原语;为使进程由阻塞状态,应利用()原语;为使进程由静止就绪变为活动就绪,应利用()原语;静止就绪变为活动就绪,应利用()原语;为使进程从阻塞状态变为就绪状态,应利为使进程从阻塞状态变为就绪状态,应利用()原语。用()原语。n对进程的管理和控制使用对进程的管理和控制使用_。A、指令、指令 B、原语、原语 C、信号量、信号量 D、信箱、信箱2023-1-2513练习练习n下面所述步骤中,下面所述步骤中,_不是创建进程所必不是创建进程所必需
12、的。需的。A、由调度程序为进程分配、由调度程序为进程分配CPUB、建立一个进程控制块、建立一个进程控制块C、为进程分配内存、为进程分配内存D、将进程控制块链入就绪队列、将进程控制块链入就绪队列n下述哪一项体现了原语的主要特点下述哪一项体现了原语的主要特点A、并发性、并发性 B、异步性、异步性 C、共享性、共享性 D、不可分割性不可分割性2023-1-2514练习练习n一个进程被唤醒意味着一个进程被唤醒意味着_。A、该进程重新占有了、该进程重新占有了CPUB、它的优先权变为最大、它的优先权变为最大C、其、其PCB移至等待队列队首移至等待队列队首D、进程变为就绪状态、进程变为就绪状态2023-1-
13、25152.3 2.3 进程进程同步同步n2.3.1 2.3.1 基本概念基本概念 n2.3.2 2.3.2 信号量机制信号量机制 n2.3.3 2.3.3 信号量机制的应用信号量机制的应用 2023-1-25162.3.12.3.1基本概念基本概念n与时间有关的错误与时间有关的错误:一飞机订票系统,两个终端,运行一飞机订票系统,两个终端,运行T1T1、T2T2进程进程T1:T2:T1:T2:.Read(x);Read(x);Read(x);Read(x);if x=1 then if x=1 thenif x=1 then if x=1 then x:=x-1;x:=x-1;x:=x-1;x
14、:=x-1;write(x);write(x);write(x);write(x);.2023-1-2517hibdcegfa并发环境下程序间的制约关系并发环境下程序间的制约关系2023-1-25182.3.12.3.1基本概念基本概念n进程同步的主要任务进程同步的主要任务:是使并发执行的诸进程之间能有效地是使并发执行的诸进程之间能有效地共享资源和相互合作,从而使程序的执行共享资源和相互合作,从而使程序的执行具有可再现性具有可再现性2023-1-2519 n多道程序间有两种制约关系:多道程序间有两种制约关系:n间接制约:多个操作不能同时执行,如:操:多个操作不能同时执行,如:操作和操作不能在同
15、时执行。(资源共享作和操作不能在同时执行。(资源共享关系)关系)n直接制约:对于进程操作的时间顺序所加的:对于进程操作的时间顺序所加的某种限制,如操作应在之前执行。(相某种限制,如操作应在之前执行。(相互合作关系)互合作关系)2023-1-2520n临界资源(critical resource):一次仅允许:一次仅允许一个进程访问的资源。一个进程访问的资源。n如:进程共享一台打印机,若让它们交替使用则得到的如:进程共享一台打印机,若让它们交替使用则得到的结果肯定不是我们希望的。结果肯定不是我们希望的。n临界资源可能是硬件,也可能是软件:变量,数据,表格,临界资源可能是硬件,也可能是软件:变量,
16、数据,表格,队列等。队列等。n并发进程对临界资源的访问必须作某种限制,否则就可能出并发进程对临界资源的访问必须作某种限制,否则就可能出与时间有关的错误,如:联网售票。,如:联网售票。n诸进程之间用互斥的方式,实现对这种资源的共享诸进程之间用互斥的方式,实现对这种资源的共享2023-1-2521 生产者-消费者(producer-consumer)问题是一个著名的进程同步问题。它描述的是:有一群生产者进程在生产产品,并将这些产品提供给消费者进程去消费。为使生产者进程与消费者进程能并发执行,在两者之间设置了一个具有n个缓冲区的缓冲池,生产者进程将它所生产的产品放入一个缓冲区中;消费者进程可从一个缓
17、冲区中取走产品去消费。尽管所有的生产者进程和消费者进程都是以异步方式运行的,但它们之间必须保持同步,即不允许消费者进程到一个空缓冲区去取产品;也不允许生产者进程向一个已装满产品且尚未被取走的缓冲区中投放产品。2023-1-2522 我们可利用一个数组来表示上述的具有n个(0,1,n-1)缓冲区的缓冲池。用输入指针in来指示下一个可投放产品的缓冲区,每当生产者进程生产并投放一个产品后,输入指针加1;用一个输出指针out来指示下一个可从中获取产品的缓冲区,每当消费者进程取走一个产品后,输出指针加1。由于这里的缓冲池是组织成循环缓冲的,故应把输入指针加1表示成 in=(in+1)mod n;输出指针
18、加1表示成out=(out+1)mod n。当(in+1)mod n=out时表示缓冲池满;而in=out则表示缓冲池空。此外,还引入了一个整型变量counter,其初始值为0。每当生产者进程向缓冲池中投放一个产品后,使counter加1;反之,每当消费者进程从中取走一个产品时,使counter减1。生产者和消费者两进程共享下面的变量:2023-1-2523Var n,integer;type item=;var buffer:array0,1,n-1 of item;in,out:0,1,n-1;counter:0,1,n;指针in和out初始化为1。在生产者和消费者进程的描述中,no-op
19、是一条空操作指令,while condition do no-op语句表示重复的测试条件(condication),重复测试应进行到该条件变为false(假),即到该条件不成立时为止。在生产者进程中使用一局部变量nextp,用于暂时存放每次刚生产出来的产品;而在消费者进程中,则使用一个局部变量nextc,用于存放每次要消费的产品。2023-1-2524producer:repeat produce an item in nextp;while counter=n do no-op;bufferin =nextp;in =in+1 mod n;counter =counter+1;until f
20、alse;consumer:repeat while counter=0 do no-op;nextc =bufferout;out =(out+1)mod n;counter =counter-1;consumer the item in nextc;until false;2023-1-2525 虽然上面的生产者程序和消费者程序,在分别看时都是正确的,而且两者在顺序执行时其结果也会是正确的,但若并发执行时,就会出现差错,问题就在于这两个进程共享变量counter。生产者对它做加1操作,消费者对它做减1操作,这两个操作在用机器语言实现时,常可用下面的形式描述:register 1 =coun
21、ter;register 2 =counter;register1 =register 1+1;register 2 =register 2-1;counter =register 1;counter =register 2;2023-1-2526 假设:counter的当前值是5。如果生产者进程先执行左列的三条机器语言语句,然后消费者进程再执行右列的三条语句,则最后共享变量counter的值仍为5;反之,如果让消费者进程先执行右列的三条语句,然后再让生产者进程执行左列的三条语句,counter值也还是5,但是,如果按下述顺序执行:register 1 =counter;(register 1
22、=5)register 1 =register 1+1;(register 1=6)register 2 =counter;(register 2=5)register 2 =register 2-1;(register 2=4)counter =register 1;(counter=6)counter =register 2;(counter=4)解决此问题的关键,是应把变量counter作为临界资源处理。令生产者进程和消费者进程互斥地访问变量。2023-1-2527互斥关系互斥关系 n互斥互斥n互斥就是若干进程竞争进入临界段时,互斥就是若干进程竞争进入临界段时,相互之间所形成的排它性关系
23、。相互之间所形成的排它性关系。n对临界段的实现,表现为对互斥关系的对临界段的实现,表现为对互斥关系的实现。实现。n当一个进程处于临界段时,其他的进程当一个进程处于临界段时,其他的进程必须等待,直到临界段中的进程数为零。必须等待,直到临界段中的进程数为零。临界段的设计原则:临界段的设计原则:(1)每次至多只允许一个进程处于临界)每次至多只允许一个进程处于临界段中。段中。(2)对于请求进入临界段的多个进程,)对于请求进入临界段的多个进程,在有限时间内只让一个进入。在有限时间内只让一个进入。(3)进程只应在临界段中停留有限时间。)进程只应在临界段中停留有限时间。要实现临界段,就是要寻找某一种手段来实
展开阅读全文