【5分题】
一种。某个处理器提供了一个“测试和设置”指令,其用法如下:
TEST register, flag
该指令原子地将标志复制到寄存器并将标志设置为 1。提供伪代码以使用该指令将进入和退出代码实现到临界区。
湾考虑以下使用大小为 1 的缓冲区解决生产者-消费者问题的解决方案。假设 count 的初始值为 0。还假设对 count 的测试和对 count 的赋值是原子操作。
Producer:
Repeat
Produce an item;
if count = 1 then sleep;
place item in buffer.
count = 1;
Wakeup(Consumer);
Forever
Consumer:
Repeat
if count = 0 then sleep;
Remove item from buffer;
count = 0;
Wakeup(Producer);
Consume item;
Forever;
表明在此解决方案中,两个进程可能同时处于休眠状态。回答:
解释:
这个问题的测验
如果您发现上面的帖子有任何错误,请在下面评论