首页 > 试题广场 >

题目来源于王道论坛 使用TSL(Test a

[单选题]
题目来源于王道论坛

使用TSLTest and Set Lock)指令实现进程互斥的伪代码如下所示。

do{
……
 while(TSL(&lock)) ;
 critical section;
 lock=FALSE;
……
} while(TRUE);

下列与该实现机制相关的叙述中,正确的是


  • 退出临界区的进程负责唤醒阻塞态进程
  • 等待进入临界区的进程不会主动放弃CPU
  • 上述伪代码满足“让权等待”的同步准则
  • while(TSL(&lock))语句应在关中断状态下执行
推荐

解析:

当进程退出临界区时置lockFALSE,会负责唤醒处于就绪状态的进程,A错误。若等待进入临界区的进程会一直停留在执行whileTSL&lock))的循环中,不会主动放弃CPUB正确。让权等待,即当进程不能进入临界区时,应立即释放处理器,防止进程忙等待。通过B选项的分析中发现上述伪代码并不满足“让权等待”的同步准则,C错误。若while(TSL(&lock))在关中断状态下执行,当TSL(&lock)一直为true时,不再开中断,则系统可能会因此终止,D错误。

发表于 2018-06-16 11:15:16 回复(8)
这不是操作系统的题吗。。
发表于 2018-11-30 15:58:00 回复(1)
一年前学的操作系统知识,都快忘光了。。。
发表于 2020-04-24 22:03:59 回复(0)
进程因为调度而失去CPU使用权,不能称为【主动】放弃CPU。
发表于 2018-11-24 16:06:28 回复(0)
硬件方法(TSL, Swap等)不能实现让权等待,所以未获得临界资源的进程会一直卡在while循环部分,其他进程退出临界区时唤醒的是就绪态进程。
而互斥锁支持让权等待,进不去临界区的进程会退出CPU,进入阻塞态。
发表于 2022-06-11 08:46:24 回复(0)
补充一下:STL指令属于硬件方法实现临界区访问,它无法满足让权等待原则。使用信号量机制可以满足让权等待原则。
发表于 2021-11-24 23:26:13 回复(0)
这跟网络有一毛关系吗?
发表于 2018-09-14 10:15:21 回复(1)