假设某计算机系统中资源R的可用数为6,系统中有3个进程竞争R,且每个进程都需要i个R,该系统可能会发生死锁的最小i值是(1)。若信号量S的当前值为-2,则R的可用数和等待R的进程数分别为(2)。
空白(1)处应选择()
A.1
B.2
C.3
D.4
参考答案:C
解析:本题考查对操作系统进程管理信号量方面的基础知识。选项A是错误的,因为每个进程都需要1个资源R,系统为3个进程各分配1个,系统中资源R的可用数为3,3个进程都能得到所需资源,故不发生死锁:选项B是错误的,因为,每个进程都需要2个资源R,系统为3个进程各分配2个,系统中资源R的可用数为6,3个进程都能得到所需资源,故也不发生死锁;选项C是正确的,因为,每个进程都需要3个资源R,系统为3个进程各分配2个,系统中资源R的可用数为6,3个进程再申请1个资源R得不到满足,故发生死锁;选项D显然是错误的,分析略。第2小题的正确的答案为选项D。因为,早在1965年荷兰学者Dijkstra提出信号量机制是一种有效的进程同步与互斥工具。目前,信号量机制有了很大的发展,主要有整型信号量、记录型信号量和信号量集机制。对于整型信号量,可以根据控制对象的不同被赋予不同的值。通常将信号量分为公用信号量和私用信号量两类。其中,公用信号量用于实现进程间的互斥,初值为1或资源的数目;私用信号量用于实现进程间的同步,初值为0或某个正整数。信号量s的物理意义是S≥0表示某资源的可用数,若S<0,则其绝对值表示阻塞队列中等待该资源的进程数。本题由于信号量s的当前值为-2,则意味着系统中资源R的可用个数M=0,等待资源R的进程数N=2。