桌子上有个盘子_桌子上有一只盘子每次只能放一只水果水果

桌子上有一只盘子每次只能放一只水果水果

21、桌子上有一只盘子每次只能放一只水果,爸爸专向盘子中放苹果,妈妈专向盘子中放橘子,一个儿子专等吃盘子中的橘子,一个女儿专等吃盘子中的苹果。用 PV 操作实现他们之间的同步机制。[分析与解答]设 3 个信号量:对盘子的互斥 S,对苹果的同步 S1,对橘子的同步 S2。semaphore S=1,S1=S2=0;void father (){while (1){准备苹果;wait (S);将苹果放在盘子内;signal (S1);}}void mother (){while (1){准备橘子;wait(S);将橘子放在盘子内;signal (S2);}}void daughter (){while (1){wait(S1);从盘子上拿走苹果;signal (S);吃苹果;}}void son (){while (1){wait(S2); 从盘子里拿走橘子;signal (S);吃橘子;}}main (){cobegin{father();mother();dauyhter();son();}coend;}26、有 4 个进程 P1,P2,P3,P4,它们进入就绪队列的先后次序为 P1、P2、P3、P4,它们的优先数和需要的处理器时间如下表所示。假定这四个进程执行过程中不会发生等待事件,忽略进行调度等所花费的时间,从某个时刻开始进程调度,请回答下列问题:①写出分别采用“先来先服务”调度算法选中进程执行的次序、计算出各进程在就绪队列中的等待时间以及平均等待时间;②写出分别采用“非抢占式的优先数” (固定优先数)调度算法选中进程执行的次序、计算出各进程在就绪队列的等待时间以及平均等待时间;③写出分别采用“时间片轮转” (时间片大小为 5)调度算法选中进程执行的次序,计算出各进程在就绪队列中的等待时间以及平均等待时间。进程 处理器时间(小时) 优先数P1 8 3P2 6 1P3 22 5P4 4 4[分析与解答] 先来先服务算法是把处理机分配给最先进入就绪队列的进程,并且一个进程一旦分得了处理机,便一直执行下去,直到该进程完成或因发生某事件而阻塞时,才释放处理机;非抢占式优先数(优先级)调度算法将CPU分配给就绪队列中优先级最高的进程,就算进程在运行过程中,有更高优先数的进程进入,也要等待运行完毕或阻塞再释放处理机;时间片轮转算法中每个进程轮流运行一个时间片的时间,如果在一个时间片的时间内没有运行完毕,则进入就绪队列,等待下一个时间片继续运行。先来先服务算法选择进程的顺序依次为 P1、P2、P3 、P4 。进程 P1 等待时间为 0;进程 P2 等待时间为 8;进程 P3 等待时间为 8+6=14;进程 P4 等待时间为 8+6+22=36。平均等待时间为(0+8+14+36)/4=14.5非抢占式的优先数算法选择进程的顺序依次为 P3、P4、P1、P2。进程 P1 等待时间为 4+22=26;进程 P2 等待时间为 22+4+8=34;进程 P3 等待时间为 0;进程 P4 等待时间为 22。平均等待时间为(26+34+0+22)/4=20.5时间片轮转进程调度顺序为 P1、P2、P3 、P4、P1、P2、P3、P3、P3、P3。进程 P1 等待两次,时间为 0+(5+5+4)=14;进程 P2 等待两次,5+ (5+4+3)=17;进程 P3 等待两次,时间为(5+5)+ (4+3+1 )=18 ;进程 P4 等待 1 次,时间为 5+5+5=15。平均等待时间为(14+17+18+15)/4=16

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值