「这是我参与11月更文挑战的第25天,活动详情查看:2021最后一次更文挑战」
前言
Hello!小伙伴!
非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出~
自我介绍 ଘ(੭ˊᵕˋ)੭
昵称:海轰
标签:程序猿|C++选手|学生
简介:因C语言结识编程,随后转入计算机专业,有幸拿过一些国奖、省奖…已保研。目前正在学习C++/Linux/Python
学习经验:扎实基础 + 多做笔记 + 多敲代码 + 多思考 + 学好英语!
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、哲学家就餐问题的解决方案如下:
1 | bash复制代码semephore *chopstick[5]; |
解释:
其中,信号量seat的初值为()。C
A.0
B.1
C.4
D.5
2、在哲学家就餐问题中,有以下代码:
1 | cpp复制代码 P(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系统中都有信号量同步机制。√
本文转载自: 掘金