多个进程并发执行时,各个进程应互斥进入其临界区,所谓临界区是指
- 一段数据区
- 一种同步机制
- 一个缓冲区
- 一段程序
下列哪一种场景问题只包含进程互斥问题?
- 公共汽车上司机和售票员的工作配合
- 田径场的四百米接力比赛
- 两个进程通过一个缓冲区传递数据
- 一个进程读文件,一个进程写文件
以下是解决进程互斥进入临界区的一种解法。
P:
… …
pturn = true;
while (qturn) ;
临界区操作
pturn = false;
… …
Q:
… …
qturn = true;
while (pturn) ;
临界区操作
qturn = false;
… …
其中,pturn、qturn的初值为false
如果P、Q两个进程同时想进入临界区,那么会发生下面哪一种情形?
- P和Q都进入不了临界区
- P和Q都进入了临界区
- P先进入临界区,Q再进入临界区
- Q先进入临界区,P再进入临界区
解析:p和q可能同时被赋值为true,从而造成双方一直死循环。
若干进程之间相互合作,共同完成一项任务。进程的这种关系称为
-异步
- 同步
- 互斥
- 并发
下列描述的四个现象中,哪一项既具有同步关系又具有互斥关系?
- 多个不同的用户进程编译自己的程序
- 多个不同的用户进程一起玩麻将电子游戏
- 多个不同的用户订票进程访问票额数据库
- 多个不同的用户进程一起玩踢足球电子游戏
解析:可以将足球想象为临界资源,而临界资源不可同时被多个用户进程所占有,这里体现出了互斥关系,而多个用户进程的合作则体现出了同步关系。
在使用信号量及P、V操作机制解决问题时,进程执行一次P操作,意味着该进程
- 准备释放一个资源
- 正在使用一个资源
- 需要共享一个资源
- 申请分配一个资源
在使用信号量及P、V操作机制解决问题时,一个进程执行V操作意味着
- 该进程从磁盘调入内存
- 该进程从等待队列进入就绪队列
- 可能有另一个进程从磁盘被调入内存
- 可能有另一个进程从等待队列进入就绪队列
假设信号量S的当前值为 -3,这就表示
- 在信号量S上不能再执行P操作了
- 系统中有3个等待该信号量的进程
- 系统中还有3个资源可以使用
- 在信号量S上只能执行V操作
用信号量及PV操作管理临界区时,若信号量mutex的初值为1,当mutex的等待队列中有k(k > 1)个进程时,信号量的值为
- 1-k
- k
- k-1
- -k
解析:当第一个进程进入临界区时,mutex的值为0,而其后的所有进程都将被阻塞,因此k个等待进程信号量的值为-k。
用“测试并加锁”(TSL)指令解决进程互斥进入临界区的解决方案不适用于多处理器。
- 错
- 对
解析:TSL指令将一个内存字lock读到寄存器RX中,然后在该内存地址上存一个非零值,读与写操作保证是不可分割的。执行此指令的CPU将锁住内存总线,以禁止其它CPU在本指令结束之前访问内存。