操作系统——同步与互斥

1、临界资源与共享资源的区别在于: 在一段时间内能否允许被多个进程访问(能否并发使用)。磁盘存储介质属于 共享设备;公用队列是临界资源,可供多个进程使用,但一次只能供一个进程使用; 私有数据仅供一个进程使用;可重入的程序代码一次可供多个进程使用。

临界资源:每次仅允许一个进程访问的资源。

是互斥共享资源,打印机、共享变量、共享缓冲区一次只能供一个进程使用,属于临界资源;非共享资源不属于临界资源。

临界区:每个进程中访问临界资源的那一段代码。

2、并发进程要进行同步的原因: 并发进程是异步的。

同步是一种协同合作的关系,但是这些并发进程是异步的,它们通过相互合作,共同完成一项任务。

3、管程 ( P107)

①定义:定义了共享数据结构和各重进程在该数据结构上的全部操作,这组操作能同步进程并且改变管程中的数据。

②组成:由局限于管程的共享变量说明,对管程内的数据结构进行操作的一组过程,对局限于管程的数据设置初始值的语句 组成

③辨析:

管程中的signal操作:是针对某一个条件变量的,若不存在因该条件而阻塞的进程,则不会产生任何影响。

信号量机制中的V操作:一定会改变信号量的值,使得S=S+1。

4、PV操作实现互斥、同步

①互斥: 互斥信号量初始值=1;P成功则-1;V成功则+1

②同步:信号量的初始值由用户决定。若期望的信息未产生则置为0;若已存在则设置为一个非0的正整数。

5、可重入代码:也称纯代码,允许多个进程同时访问的代码,不允许任何修改的代码。

6、**信号量含义:

①对于两个并发进程,设互斥信号量为mutex(初值为1),若mutex=0,则表示(B)

A 没有进程进入临界区

B 有一个进程进入临界区

C 有一个进程进入临界区,另一个进程在等待进入

D 有一个进程在等待进入

解析:

mutex初值为1,表示有一个进程能够进入临界区;当有一个进程进入临界区&没有进程在等待,则mutex=0。《==》 |mutex|=等待进入进程的数目,即阻塞队列中进程的个数。

②对于两个并发进程,设互斥信号量为mutex(初值为1),若mutex=-1,则表示(C)

A 没有进程进入临界区

B 有一个进程进入临界区

C 有一个进程进入临界区,另一个进程在等待进入

D 有一个进程在等待进入

解析:

mutex<0 表示阻塞队列中有进程&临界区已经占满,其绝对值=阻塞的个数;

③ 要实现两个进程互斥,设一个互斥信号mutex,当mutex=0时,表示(B)

A 没有进程进入临界区

B 有一个进程进入临界区

C 有一个进程进入临界区,另一个进程在等待进入

D 两个进程都进入临界区

解析:
本题考查互斥信号量的性质,mutex初值为1,表示允许一个进程进入临界资源,当由一个进程进入临界区且没有进程等待进入时,mutex减1,变为0,|mutex|为等待进入的进程数。

就此题而言,当mutex=1时表示允许进入但是没有进程进入临界区;当mutex=0时,表示有一个进程进入了临界区并且没有进程在等待;当mutex=-1时表示有一个进程进入临界区并且另一个进程等待进入

7、若OS有n个进程,则就绪队列中进程的个数最多有(n-1)个;阻塞队列中进程个数最多有(n)个。

解析:

**(易错项)OS中有n个进程,其中至少有1个进程正在执行(处理器至少有一个),所以就绪队列中进程的个数最多有(n-1)个。[ 处理器为空、就绪队列为满 的情况在实际调度中不会出现这两种状态 ]

注意:“OS中有n个进程,其中至少有1个进程正在执行(处理器至少有一个)”这话对于一般情况来说是错误的,但是只考虑就绪队列这种特殊情况时可以。

②阻塞队列最多为n时对应OS出现死锁状态,n个进程都被阻塞,所以,阻塞队列中进程个数最多有(n)个。

8、信号量相关计算:

① 有一个计数信号量S:(1)假设若干进程对S执行了28次P操作、18次V操作,信号量S的值=0;(2)假设若干进程对信号量S进行了15次P操作,2次V操作。问:此时有(3)个进程等待在信号量S的队列中?

解析:

由(1)得到,S的初始值=10;(2):10-15+2=-3 所以此时应该有3个进程在等待队列中

② 若有4个进程共享同一程序段,每次允许3个进程进入该程序段,若用PV操作作为同步机制,则信号量的取值范围为(3,2,1,0,-1)

解析:

当pv操作作为同步机制的时候,初始值由用户确定。

上述4进3时会出现以下几种可能的情况:

a. 没有进程进入 3

b. 有一个进程进入 2

c.有两个进程进入 1

d. 有三个进程进入 0

e. 有三个进程进入并且有一个进程在等待阻塞 -1

9、同步机制条件

① 在以下同步机制中,可以实现让权等待的是(C)

A Peterson 算法 B swap 指令 C 信号量方法 D TS 指令

解析:

硬件方法实现进程同步都不满足“让权等待”

Peterson算法 满足有限等待但是不满足 让权等待

记录信号量由于引入了阻塞机制,消除了不让权等待的情况

10、互斥机制

A选项,a1、a2均为线程内的临时变量,赋值依旧也不改变最终结果。
B选项,a=x、b=x要求 “b=x”发生在之后,要求的是需要同步执行
D选项,x+=1、x+=3并不在同一个进程之中,两个x并不相同,故无任何关联

11题解析:参考进程P1和P2均包含并发执行的线程,部分伪代码描述如下所示,下列选项中,需要互斥执行的操作是( )。[同步与互斥问题]_Gaolw1102的博客-CSDN博客_进程p1和p2均包含并发执行的线程,部分伪代码

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值