消息缓冲队列通信机制应具有哪几方面的功能?
第3题
假设当前处于非抢占调度策略,进程只有两种方式可以放弃CPU,一个是主动调用系统调度函数sysnc(),此时进程主动放弃CPU;另一个方式是当进程执行I/O操作时,系统将调度下一个进程。试分析如下三种进程对,何时会出现不符合下列原则,并说明原因: 1)空闲则人;2)有限等待;3)保证互斥。 第一种: Threadl(){ sysnc();—— ——critical section—— g=g+b; f=g—a; //临界区不能被打断 ——critical section—— } Thread2(){ ——critical section—— g=g+b; f=g—a; ——critical section—— } 第二种 Threadl(){ sysnc(); ——critical section—— g=g+b; f=g—a; ——criticaI section—— } Thread2(){ ——critical section—— g=g+b; f=g—a; ——critical section—— sysnc(); } 第三种; Threadl(){ sysnc(); ——critical section—— g=g+b; fstring=printf(…);//调用I/O; f=g—a; ——critical section—— } Thread2(){ Sysnc() ——critical section—— g=g+b; f=g—a; ——critical section—— sysnc(); }
请帮忙给出正确答案和分析,谢谢!
第4题
理发店有一位理发师、一把理发椅及三把供等候理发的顾客坐的椅子。如果没有顾客,理发师就去睡觉。如果顾客来时所有的椅子都有人,那么顾客就离去。如果理发师在忙而有空闲的椅子,那么顾客就会坐在其中的一个空闲的椅子上。如果理发师在睡觉,顾客会唤醒他。请利用信号量(semaphores),写个程序来协调理发师和顾客进程。
请帮忙给出正确答案和分析,谢谢!
为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!