🏷️ 知识点:硬件互斥指令

共 2 道相关题目

2016 年第 27 题 操作系统 选择题

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

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

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

硬件互斥指令

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

[tag_link]

正确答案:B

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


2018 年第 32 题 操作系统 选择题

在下列同步机制中,可以实现让权等待的是( )。

硬件互斥指令 信号量

A. Peterson 方法 B. swap 指令 C. 信号量方法 D. TestAndSet 指令

[tag_link]

正确答案:C

硬件方法实现进程同步需要通过 自旋锁 ,不能实现让权等待,故 B、D 错误;Peterson 算法满足有限等待但不满足让权等待,故 A 错误;记录型信号量由千引入阻塞机制,消除了不让权等待的情况,故 C 正确。