[31][12][单选]对于如下银行存款的程序:
- typedef semaphore;
- semaphore dblock;
- dblock = 0;
-
- int deposit(id, int c) // 存款例程,id是用户号,c为存入现金额
- {
- int n;
- P(dblock); // P操作(申请信号量)
- n = fetch(balance); // 从服务器取存款余额
- n = n + c; // 存款余额加存入现金额
- send(n); // 送回新余额
- V(dblock); // V操作(释放信号量)
- output(n); // 打印余额凭条
- }
其中,P(dblock)语句的作用是
访问临界资源
将“正在访问临界区”的标志清除
访问临界资源之外的其余部分
测试是否能正确进入临界区
答案
测试是否能正确进入临界区
解析
程序中的 P(sblock语句属于对资源进行操作,主要是申请进入临界区的资格,所以主要作用是测试是否能正确进入临界区。涉及考点为第 2 章进程管理。
转载请注明出处。