【发布时间】:2026-01-30 22:35:02
【问题描述】:
我需要解决以下问题:
一个。展示如何使用 TestandSet 指令实现acquire()和release()锁操作。
b.确定一个性能问题,当它在多处理器上运行时可能出现在您的解决方案中,但在单处理器上不会出现。描述出现性能问题的具体场景。
c。描述减少 b 中性能问题的替代锁实现,并解释它如何帮助您在 b 中提出的具体场景。
我的 acquire() 和 release() 设置如下:
acquire() {
while(TestandSet(true)){
//wait for lock to be released
{
}
release() {
TestandSet(false);
}
但是,我无法确定与多处理器或单处理器有关的任何性能问题。什么是性能问题?或者,我对 acquire() 和 release() 的实现是否正确?
【问题讨论】:
标签: process operating-system thread-synchronization