2为什么进程在进入临界区之前应先执行进入区代码?而在退出前又要执行退出区代码?.docx

上传人:小飞机 文档编号:3146333 上传时间:2023-03-11 格式:DOCX 页数:3 大小:37.55KB
返回 下载 相关 举报
2为什么进程在进入临界区之前应先执行进入区代码?而在退出前又要执行退出区代码?.docx_第1页
第1页 / 共3页
2为什么进程在进入临界区之前应先执行进入区代码?而在退出前又要执行退出区代码?.docx_第2页
第2页 / 共3页
2为什么进程在进入临界区之前应先执行进入区代码?而在退出前又要执行退出区代码?.docx_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《2为什么进程在进入临界区之前应先执行进入区代码?而在退出前又要执行退出区代码?.docx》由会员分享,可在线阅读,更多相关《2为什么进程在进入临界区之前应先执行进入区代码?而在退出前又要执行退出区代码?.docx(3页珍藏版)》请在三一办公上搜索。

1、2为什么进程在进入临界区之前应先执行进入区代码?而在退出前又要执行退出区代码?1、进程在运行时存在哪两种形式的制约?并举例说明之。 间接相互制约关系:例:有两个进程A和B,如果在A进程提出打印请求时,系统已将唯一的一台打印机分配给了进程B,则此时进程A只能阻塞,一旦进程B将打印机释放,则A进程才能由阻塞改为就绪状态。 直接相互制约关系:例:有一输入进程A通过单缓冲向进程B提供数据。当该缓冲空时,计算进程因不能获得所需数据而阻塞,而当进程A把数据输入缓冲区后,便将进程B唤醒;反之当缓冲区已满时,进程A因不能再向缓冲区投放数据而阻塞当进程B将缓冲区数据取走后便可唤醒。 2、为什么进程在进入临界区之

2、前应先执行“进入区”代码?而在退出前又要执行“退出区”代码? 为了实现多个进程对临界资源的互斥访问,必须在临界区之前加一段用于检查临界资源是否正在被访问的代码,如未被访问,该进程可进入临界区对此临界资源进行访问;如正被访问则该进程不能进入临界区访问临界资源。在退出临界区后,执行恢复访问标志的代码为“退出去”,而在退出前执行“退出区”代码主要是为了使其他进程能再访问此临界资源。 3、在生产者-消费者问题中,如果缺少了signal(full)或signal(empty),对执行结果将会有何影响? 缺少signal,那么表明从第一个生产者进程开始就没有对信号量full值改变,即使缓冲池存放的产品已满

3、了,但full的值还是0,这样消费者进程在执行wait时会认为缓冲池是空的而取不到产品,那么消费者进程则会一直处于等待状态。缺少了signal,例如在生产者进程向n个缓冲区投满产品后消费者进程才开始从中取产品,这时empyt=0,full=n ,那么每当消费者进程取走一个产品时empty并没有被改变,直到缓冲池中的产品都取走了,empty的值也一直是0即使目前缓冲池有n个投放产品空缓冲区,生产者进程要想再往缓冲池中投放产品会因会因申请不到空缓冲区而被阻塞。 4、在生产者-消费者问题中,如果将两个wait操作互换位置,或将两个signal操作互换位置,结果会如何? 将wait(full)和wai

4、t互换位置后,可能引起死锁,考虑系统中缓冲区全满时,若一生产者进程先执行了wait操作并获得成功,则再执行wait操作时,他将因失败而进入阻塞状态它期待消费者进程执行signal来唤醒自己,在此之前他不可能执行signal操作从而使试图通过执行wait操作而进入自己的临界区的其他生产者和消费者进程全部进入阻塞状态这样容易引起系统反锁。若signal和signal互换位置后只是影响进程对临界资源的释放次序,而不会引起系统死锁,因此可以互换位置。 5、课本P82 22题 Var a,b,c,d,e,f,g,h,i,j;semaphore:=0,0,0,0,0,0,0,0,0,0,: begin p

5、arbegin begin S1; signal(a):signal(b);end; begin wait(a);S2;signal(c);signal(d);end; begin wait(b);S3;signal(e);signal(f);end; begin wait(c);S4;signal(g);end; begin wait(d);S5;signal(h);end; begin wait(e);S6;signal(i);end; begin wait(f);S7;signal(j);end; begin wait(g);wait(h);wait(i);wait(j);S8;end; parend end

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号