计算机操作系统第四章习题2(附答案)

文章讨论了在售票厅场景下,如何利用信号量(P/V操作)来管理并发进程,确保不超过20名购票者同时在售票厅内。信号量S用于控制进入售票厅的进程,其初值为20。当S>0时,表示可进入人数;S=0表示已满;S<0则表示有等待进入的购票者。此外,文章还区分了同步和互斥问题,如多进程间的同步协作和资源的互斥访问。最后,给出了父亲、儿子、女儿三个并发进程同步吃苹果和桔子的例子,同样应用了P/V操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第4章2

1某车站售票厅,任何时刻最多可容纳20名购票者进入,当售票厅中少于20购票者时,则厅外的购票者可立即进入,否则需在外面等待。若把一个购票者看作一个进程,请回答下列问题:

(1)用P、V操作管理这些并发进程时,应定义一个(   )类型的信号量S,该信号量的初值为(   )。

(2)请说明信号量表示不同含义时的取值范围:

    当(   )时,S的值表示可继续进入售票厅的人数;

    当(   )时,表示售票厅中已有20名顾客;

    当(   )时,|S|的值为等待进入售票厅中的人数。

(3)根据所定义的信号量S,把应执行的P、V操作填入下述程序中,以保证进程能够正确地并发执行。

cobegin  

    Process  Pi (i=1,2,…..)

         {

            (      );

             进入售票厅;

             购票;

             (      );

             退出;

         }

coend

(4)若欲购票者最多为n个人,则信号量可能的变化范围是:S的最大值为(   ),S的最小值为(   )。

第一空: 互斥

第二空: 20

第三空: S>0

第四空: S=0

第五空: S<0

第六空: P(S)

第七空: V(S)

第八空: 20

第九空: 20-n

2进程间存在着2种相互制约的关系:直接制约关系(即同步问题)和间接制约关系(即互斥问题)。

同步问题是存在逻辑关系的进程之间相互等待所产生的制约关系;

互斥问题是相互无逻辑关系的进程间竞争使用临界资源所发生的制约关系。

请说明下列活动分别属于哪种制约关系。

(1)若干同学去图书馆借书属于(互斥)制约;

(2)两队举行篮球比赛属于(互斥)制约;

(3)流水线生产的各道工序属于(同步)制约;

(4)商品生产和社会消费属于(同步)制约。

3桌上有一只空盘,只允许存放一个水果。爸爸可向盘中放苹果,也可向盘中放桔子。儿子专等吃盘中的桔子,女儿专等吃盘中的苹果。规定当盘中空时一次只能放一只水果供吃者取用,请用P、V原语实现爸爸、儿子、女儿三个并发进程的同步。请根据所定义的信号量,把应执行的P、V操作填入下述程序中,以保证进程能够正确地并发执行。semaphore empty=1;(表示盘空)

semaphore apple=0;(表示盘中无苹果)

int orange=0;(表示盘中无桔子)

main(  )

{

Cobegin

father();

son();

daughter();

Coend

}

father()

{

  while(1)

{

       (      );

                将水果放入盘中;

                if (放入的是桔子) then (        )  else (        );

}

  }

son(  )

{

while(1)

{

       (        );

             从盘中取出桔子;

             (        );

             吃桔子;

}

}

daughter( )

{

while(1)

{

  (        );

              从盘中取出苹果;

              (        );

              吃苹果;

}

}

第一空 P(empty)

第二空: V(orange)

第三空: V(apple)

第四空: P(orange)

第五空: V(empty)

第六空 P(apple)

第七空: V(empty)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zl2187865448

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值