问题 单项选择题

对信号量S执行P操作后,使进程进入等待队列的条件是( )。

A.S.value<0
B.S.value<=0
C.S.valtle>0
D.S.value>=0

答案

参考答案:A

解析:参见记录型信号量的解析。此处极易出S.vakle物理概念题,现总结如下:
S.value>0,表示某类可用资源的数量。每次P操作,意味着请求分配一个单位的资源。
S.value<=0,表示某类资源已经没有了,或者说还有因请求该资源而被阻塞的进程。
S.value<=0时的绝对值,表示等待进程数目。
切记看清题目中陈述,是执行P操作前还是P操作后。

填空题
问答题


阅读下列算法说明和算法,将应填入(n)处的字句写在对应栏内。


【算法说明】
为便于描述屏幕上每个像素的位置,在屏幕上建立平面直角坐标系。屏幕左上角的像素设为原点,水平向右方向设为x轴,垂直向下方向设为y轴。
设某显示器在每条水平线和每条垂直线上都有128个像素。这样,屏幕上的每个像素可用坐标(x,y)来描述其位置,其中x和y都是整数,0≤x≤127,0≤y≤127。
现用一维数组MAP来存储整个屏幕显示的位图信息。数组的每个元素有16位二进位,其中每位对应一个像素,“1”表示该像素“亮”,“0”表示该像素“暗”。数组MAP的各个元素与屏幕上的像素相对应后,其位置可排列如下:
MAP(0),MAP(1),……,MAP(7)
MAP(8),MAP(9),....,MAP(15)
MAP(1016),MAP(1017),……,MAP(1023)
下述算法可根据用户要求,将指定坐标(x,y)上的像素置为“亮”或“暗”。
在该算法中,变量X,Y,V,S,K都是16位无符号的二进制整数。数组BIT中的每个元素BIT (K)(K=0,…,15)的值是左起第K位为1,其余位均为0的16位无符号二进制整数,即BIT(K)的值为215-k。
【算法】
第1步、根据用户指定像素的位置坐标(x,y),算出该像素的位置所属的数组元素MAP(V)。
这一步的具体实现过程如下:
1、将x送变量X,将y送变量Y;
2、将Y(1)移3位,仍存入变量Y;
3、将X右移(2)位,并存入变量S;
4、计算Y+S,存入变量V,得到像素的位置所属的数组元素MAP(V)。
第2步、算出指定像素在MAP(V)中所对应的位置K(K=0,…,15)。这一步的具体实现过程如下:将变量X与二进制数1111进行逻辑(3)运算,并存入变量K。
第3步、根据用户要求将数组元素MAP(V)左起第K位设置为“1”或“0”。这一步的具体实现过程如下:
1、为在指定像素置“亮”,应将MAP(V)与(4)进行逻辑或运算,并存入MAP(V)。
2、为在指定像素置“暗”,应先将BIT(K)各位(5),再将MAP(V)与BIT(K)进行逻辑与运算,并存入MAP(V)。