操作系统学习笔记(十三)~读者写者问题+哲学家就餐问题+管程

6.4 读者写者问题

1、在读者写者问题中,能同时执行读写的是()。C
A.读者和写者
B.不同写者
C.不同读者
D.都不能

2、在读者优先的读者写者问题中,读者可以进入读的前提是()。A、B
A.没有读者和写者在读写
B.有读者在读
C.有写者在写
D.有写者在等

3、在读者代码
rc–;
If (rc==0)
V(W)
中V(W)可能唤醒其它读者。
×

解释:执行到这一步 说明已经是最后一个读者

4、读者优先的读者写者问题中,一个写者先来,但有可能比后来的读者后运行。

5、只有没有读者在读,写者就可以进入写。×

解释:如果有另个一个写者在写,这个写者也还是不能进入写。

6.5 哲学家就餐问题

1、哲学家就餐问题的解决方案如下:

semephore *chopstick[5];   
semaphore *seat;   



哲学家 i:
 ……
 P(seat); 
 P(chopStick[i]);
 P(chopStick[(i + 1) % 5]);
  吃饭
  V(chopStick[i]);  
  V(chopStick[(i + 1) % 5]);  
  V(seat);

解释:在这里插入图片描述
其中,信号量seat的初值为()。C
A.0
B.1
C.4
D.5

2、在哲学家就餐问题中,有以下代码:

		 P(m);
        test(i);
        V(m);

在test[i]中的临界资源包括()。B
A.state[i]
B.state[(i+1)%5]
C.ph[i]
D.其它

3、当信号量的值等于2时,表示()。B、C
A.该信号量上有2个进程等待
B.有2个信号量可用
C.该信号量是同步信号量
D.该信号量是二值信号量

4、如果给5个哲学家6根筷子,则不会有死锁发生。

5、互斥信号量的P和V操作一般在不同进程中。×

6.6 管程

1、引入条件变量后的管程内部,不存在()。C
A.条件队列
B.紧急队列
C.入口队列
D.条件变量

2、进程P调用wait操作唤醒进程Q后,P等待直到Q离开管程才允许的管程是()。A
A.Hoare管程
B.MESA管程
C.Hansen管程
D.系统管程

解释:
在这里插入图片描述
3、每个管程中只能有一个条件变量。×

4、在Hoare管程中,当一个管程内的进程P调用x.wait()时,如果紧急队列非空,则会唤醒第一个入口队列中的等待进程,P进入x的条件队列。×

解释:在这里插入图片描述
在这里插入图片描述

5、Linux和Windows系统中都有信号量同步机制。

更多

需要更多学习资料、源码等资源的小伙伴
可以去海轰的微信公众号:海轰Pro
回复:海轰
就可以啦(注意主页的使用说明哦o( ̄︶ ̄)o)

  • 2
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

海轰Pro

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

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

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

打赏作者

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

抵扣说明:

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

余额充值