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并不相同,故无任何关联