操作系统学习笔记(十二)~临界区+信号量+生产者消费者问题

6.1 临界区

1、下面有关数据不一致性的论述中,错误的是()。C
A.存在于并发运行的协同进程之间
B.同一进程在同一批数据上多次运行的结果可能不一样
C.一个进程在同一批数据上的运行结果每次都不一样
D.单任务操作系统不存在数据不一致性

2、防止竞争条件出现的有效方法有()。A、C
A.同步
B.调度
C.互斥
D.不共享数据

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

3、临界区使用准则包括()。A、B、D
A.互斥
B.有限等待
C.同步
D.有空让进

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

4、临界区是涉及临界资源的数据区。×

解释:在这里插入图片描述
5、一次只允许一个进程使用的资源称为互斥资源。

补充:
在这里插入图片描述

6.2 信号量

1、如P和V操作的信号量S初值为4,则现在S=-1,表示有()个进程在等待该信号量。B
A.0
B.1
C.2
D.4

2、用V操作可以唤醒一个进程,被唤醒的进程状态可能会变为()。A
A.就绪
B.运行
C.等待
D.结束

3、S必须置一次且只能置一次初值。

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

4、记录型信号量S的当前值为0,一个进程调用wait(S)会把自己阻塞并挂到S的等待队列上。

5、记录型信号量的值不可能为负数。×

6.3 生产者消费者问题

1、有两个并发进程,设置了互斥信号量mutex,现在mutex=0,则表示()。C
A.两个进程均进入临界区
B.没有进程进入临界区
C.一个进程进入临界区
D.一个进程进入临界区,另一个在等待

解释:mutex初值为1,表示允许一个进程进入临界资源,当由一个进程进入临界区且没有进程等待进入时,mutex减1,变为0,|mutex|为等待进入的进程数。就此题而言,当mutex=1时表示没有进程进入临界区;当mutex=-1时表示有一个进程进入临界区,另一个进程等待进入。 —来源:牛客网

2、所有的生产者必须等待消费者先运行的前提条件是()。B
A.缓冲区为空
B.缓冲区为满
C.缓冲区不可用
D.缓冲区半满

3、所有的消费者必须等待生产者先运行的前提条件是()。A
A.缓冲区空
B.缓冲区满
C.缓冲区不可用
D.缓冲区半空

4、消费者阻塞在wait(m)(m是互斥信号量)的条件是()。C、D
A.没有空缓冲区
B.没有满缓冲区
C.有其它生产者已经进入临界区存放产品
D.有其它消费者已经进入临界区取产品

5、在生产者消费者问题中,以下关于唤醒操作正确的是()。A、B、C、D
A.生产者唤醒其它生产者
B.生产者唤醒消费者
C.消费者唤醒其它消费者
D.消费者唤醒生产者

更多

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

发布了213 篇原创文章 · 获赞 545 · 访问量 13万+

猜你喜欢

转载自blog.csdn.net/weixin_44225182/article/details/105218770
今日推荐