使用TSL(Test and Set Lock)指令实现进程互斥的伪代码如下所示。
do{ …… while(TSL(&lock)) ; critical section; lock=FALSE; …… } while(TRUE);
下列与该实现机制相关的叙述中,正确的是 。
退出临界区的进程负责唤醒阻塞态进程
等待进入临界区的进程不会主动放弃CPU
上述伪代码满足“让权等待”的同步准则
while(TSL(&lock))语句应在关中断状态下执行
解析:
当进程退出临界区时置lock为FALSE,会负责唤醒处于就绪状态的进程,A错误。若等待进入临界区的进程会一直停留在执行while(TSL(&lock))的循环中,不会主动放弃CPU,B正确。让权等待,即当进程不能进入临界区时,应立即释放处理器,防止进程忙等待。通过B选项的分析中发现上述伪代码并不满足“让权等待”的同步准则,C错误。若while(TSL(&lock))在关中断状态下执行,当TSL(&lock)一直为true时,不再开中断,则系统可能会因此终止,D错误。
这道题你会答吗?花几分钟告诉大家答案吧!
扫描二维码,关注牛客网
下载牛客APP,随时随地刷题
解析:
当进程退出临界区时置lock为FALSE,会负责唤醒处于就绪状态的进程,A错误。若等待进入临界区的进程会一直停留在执行while(TSL(&lock))的循环中,不会主动放弃CPU,B正确。让权等待,即当进程不能进入临界区时,应立即释放处理器,防止进程忙等待。通过B选项的分析中发现上述伪代码并不满足“让权等待”的同步准则,C错误。若while(TSL(&lock))在关中断状态下执行,当TSL(&lock)一直为true时,不再开中断,则系统可能会因此终止,D错误。