使用TSL(Test and Set Lock)指令实现进程互斥的伪代码如下所示。关于王道操作系统2016年这道题,解析如下

文章讲述了在处理进程同步时,TSL如何导致不满足让权等待原则,特别是当使用整型信号量而非记录型信号量时。讨论了让权等待原理以及记录型信号量如何支持阻塞队列,确保资源公平分配。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先是A选项退出临界区的进程负责唤醒阻塞态进程,错的原因是,TSL不满足让权等待原则,即当进程不能进入临界区时,不立即释放处理器,反而会一直在while循环里运行,此时如果退出临界区,将会使另一个同步运行的进程跳出while循环进入操作,此时这个进程处于就绪态。所以B对,因为while循环不会结束,所以进程不会主动放弃CPU。所以C错。最后是D,虽然TSL指令要在关中断状态下执行,但是最后一个选项给的是while(TSL&lock)所以如果循环一直运行,将不会开中断,如果换成是while括号里面的就对了。

这里讲一下让权等待的原理,对于记录型信号量,除了整型的信号量外还有一个链表,作为阻塞队列,所以,当用记录型信号量时,可以满足让权等待的原则,此时,阻塞的进程会进入阻塞态。这里要与整型信号量进行区分,当只用整型信号量时,while循环不会结束。包括用软件和硬件实现的互斥,都不满足让权等待的原则

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值