进程与进程管理.pptx

上传人:莉*** 文档编号:87482248 上传时间:2023-04-16 格式:PPTX 页数:29 大小:1.89MB
返回 下载 相关 举报
进程与进程管理.pptx_第1页
第1页 / 共29页
进程与进程管理.pptx_第2页
第2页 / 共29页
点击查看更多>>
资源描述

《进程与进程管理.pptx》由会员分享,可在线阅读,更多相关《进程与进程管理.pptx(29页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、互斥与同步资源共享 在操作系统中,当多个并发进程使用同一个资源。在操作系统中,当多个并发进程使用同一个资源。而这个资源又不能同时使用,进程间的这种相互制而这个资源又不能同时使用,进程间的这种相互制约关系称为约关系称为互斥互斥 合作合作 并发进程在一些关键点上可能需要互相等待与互并发进程在一些关键点上可能需要互相等待与互通消息,通消息,这种关系称为这种关系称为进程进程同步同步 第1页/共29页进程互斥举例进程互斥举例 例1:两个进程A、B共享一台打印机 例2:两个进程共享一个变量x 设:x代表某航班机座号,p1和p2两个售票进程,售票 工作是对变量x加1。这两个进程在一个处理机C上并发执行 r1

2、:=x;r1:=r1+1;x:=r1;第2页/共29页P1与P2并发执行,两种可能的执行次序: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 B情形 p1:r1:=x;r1:=r1+1;x:=r1;p2:r2:=x;r2:=r2+1;x:=r2;与时间有关的错误:不同的时间执行结果不同互斥第3页/共29页临界区是进程中对临界资源使用的程序段,称为相对于该临界资源的临界区。临界资源一次仅允许一个进程使用的资源称为临界资源。硬件:如输入机、打印机、磁

3、带机等 软件:如公用变量、数据、表格、队列等临界区临界区 x:=x+1;csa 进程P1进程P2 x:=x+1;csb 只要p1和p2不同时进入各自的临界区,就可以互斥使用同一临界资源第4页/共29页例题在下面的叙述中,正确的是()。A.临界资源是非共享资源 B.临界资源是任意共享资源C.临界资源是互斥共享资源 D.临界资源是同时共享资源对进程间互斥地使用临界资源,进程可以()A.互斥地进入临界区 B.互斥地进入各自的临界区C.互斥地进入同一临界区 D.互斥地进入各自的同类资源的临界区第5页/共29页互斥使用资源办法锁信号量第6页/共29页1.1.锁和上锁、开锁操作锁和上锁、开锁操作什么是锁什

4、么是锁用变量w代表某种资源的状态(0表示可用,1表示不可用),w称为“锁”。锁变量由内核维护,只能用内核提供的上锁操作和开锁锁变量由内核维护,只能用内核提供的上锁操作和开锁操作修改操作修改 锁第7页/共29页42上锁原语算法 lock 输入:锁变量w 输出:无 test:if(w为1)goto test;else w=1;*上锁*开锁原语算法 unlock 输入:锁变量w 输出:无 w=0;*开锁*第8页/共29页50用锁改写卖票程序用锁改写卖票程序 x代表某航班机座号,pa和pb两个售票进程,售票工作是对变量x加1。设:mutex为锁pa a()pb b()lock(mutex);lock(

5、mutex);x:=x+1;x:=x+1;unlock(mutex);unlock(mutex);第9页/共29页利用锁实现互斥程序描述利用锁实现互斥程序描述 程序 task1 main()p1()p2()int w=0;*互斥锁*cobegin lock(w);lock(w);p1();csa;csb;p2();unlock(w);unlock(w);coend 代表并发执行上锁开锁临界区临界区第10页/共29页46用用上锁原语和开锁原语实现进程互斥一般程序结构上锁原语和开锁原语实现进程互斥一般程序结构框图描述框图描述 上锁原语进入临界区csa 进程 pa开锁原语上锁原语进入临界区csb 进

6、程 pb开锁原语一个临界资源可以对应多个临界区。一个临界资源可以对应多个临界区。互斥地使用临界资源是通过互斥地进入临界区实现的。互斥地使用临界资源是通过互斥地进入临界区实现的。对不?进程进程A、B共享变量共享变量x,需要互斥执行;进程,需要互斥执行;进程B、C共享变量共享变量y,B、C也需要互斥执行,因此,进程也需要互斥执行,因此,进程A、C必须互斥执行必须互斥执行。第11页/共29页上锁原语的问题:没有让权等待!上锁原语的问题:没有让权等待!1W 进入临界区csa 0W进程AW=1?=0 1W 进入临界区csb 0W进程BW=1?=0进程得不到锁,应该由运行状态转为等待状态第12页/共29页

7、进程进入临界区的准则空闲让进忙则等待有限等待让权等待第13页/共29页43信号灯和信号灯和P P、V V操作操作什么是信号灯什么是信号灯 信号灯是一个确定的二元组信号灯是一个确定的二元组(s(s,q)q),s s是一个具有非负初值是一个具有非负初值的整型变量,的整型变量,q q是一个初始状态为空的队列。操作系统利用信是一个初始状态为空的队列。操作系统利用信号灯的状态对并发进程和共享资源进行控制和管理。号灯的状态对并发进程和共享资源进行控制和管理。信号灯的整型变量s。变量值 0 时,表示绿灯,代表有资源可用;变量值 0当一进程因在记当一进程因在记录型信号量录型信号量S上执上执行行V(S)操作而导

8、致操作而导致唤醒另一进程后,唤醒另一进程后,S的值为(的值为()。)。A.0 B.0 C.0 D.0第16页/共29页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 表示一个进程进入临界区,另一个进程等待进入。用用用用 信 号 灯 的信 号 灯 的信 号 灯 的信

9、 号 灯 的 P P、V V 操 作 实 现 互 斥 的 程 序 描操 作 实 现 互 斥 的 程 序 描操 作 实 现 互 斥 的 程 序 描操 作 实 现 互 斥 的 程 序 描述述述述第17页/共29页用信号量改写卖票程序用信号量改写卖票程序 x代表某航班机座号,pa和pb两个售票进程,售票工作是对变量x加1。设:mutex为互斥信号灯,初值为1。pa a()pb b()p(mutex);p(mutex);x:=x+1;x:=x+1;v(mutex);v(mutex);第18页/共29页同步生产者消费者问题合作进程第19页/共29页54单缓冲区的生产者与消费者问题单缓冲区的生产者与消费者

10、问题 计算进程 cp和打印进程 iop公用一个单缓冲,为了完成正确的计算与打印,试用信号灯的p、v操作实现这两个进程的同步。缓冲区缓冲区bufbufiop cp两个进程的任务 计算进程cp经过计算,将计算结果送入buf;打印进程iop把buf中的数据取出打印。第20页/共29页57main()int sa=0;*表示buf中有无信息 *int sb=1;*表示buf中有无空位置*cobegin cp();iop();coendcp()iop()while(计算未完成)while(打印工作未完成)得到一个计算结果;p(sa);p(sb);从缓冲区中取一数;将数送到缓冲区中;v(sb);v(sa)

11、;从打印机上输出;缓冲区缓冲区bufbufiop cp第21页/共29页59生产者生产者消费者问题的一般解答消费者问题的一般解答 生产者与消费者的同步关系 生产者:当有界缓冲区中无空位置时,要等待;向有界缓冲区放入物品后,要发消息。消费者:当有界缓冲区中无物品时,要等待;从有界缓冲区取出物品后,要发消息。c1p1 c2c3ckp2p3pm第22页/共29页62程序描述main()int sa=0;*满缓冲区的数目*int sb=n;*空缓冲区的数目*int mutex=1;*对有界缓冲区进行操作的互斥信号灯*cobegin p1();p2();pm();c1();c2();ck();coend

12、第23页/共29页pi()cj()while(生产未完成)while(还要继续消费)p(sa);生产一个产品;p(mutex);p(sb);从有界缓冲区中取产品;p(mutex);v(empty);送一个产品到有界缓冲 v(sb);v(mutex);消费一个产品;v(sa);生产者消费者问题是一个既有同步又有互斥的问题。生产者消费者问题是一个既有同步又有互斥的问题。第24页/共29页例子若信号量S初值为2,当前值为1,则表示有()个进程在与S相关的队列上等待。A0 B1C2D3一种资源的数量是8,这个资源对应的信号量的当前值是2,说明:()A.有2个进程等待这个资源B.有2个资源可以使用C.有

13、6个进程等待这个资源D.有6个资源可以使用信号量的物理意义是当信号量值大于零时表示信号量的物理意义是当信号量值大于零时表示 可分配资源的个数可分配资源的个数;当信;当信号量值小于零时,其绝对值为号量值小于零时,其绝对值为 等待使用该资源的进程的个数等待使用该资源的进程的个数。第25页/共29页51合作进程的执行次序表示合作进程的执行次序表示 进程流图 p3 s fp5p1p2p4p6p9p10p8 f sp5p6p7 s f第26页/共29页53pbpcpa f smain()int sb=0;*表示pb进程能否开始执行*int sc=0;*表示pc进程能否开始执行*cobegin pa();pb();pc();coend pa()pb()pc()p(sb);p(sc);v(sb);v(sc);第27页/共29页你可以用以上的算法解决你的程序之你可以用以上的算法解决你的程序之间的同步与互斥的关系间的同步与互斥的关系第28页/共29页感谢您的观看。第29页/共29页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > PPT文档

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com