You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

原子操作假设下,判断两个进程是否违反互斥性?

双进程互斥性验证问题

假设所有操作均为原子操作,现需验证以下两个进程是否能维护互斥性。初始变量定义:int ba = 0, int bt = 0。

进程D的代码

while(true) {
    D1: non critical section
    D2a: if (bt == -1) {  // 注:原代码疑似笔误,将判断运算符`==`写为赋值`=`,此处修正为逻辑判断
        D2b: ba = -1;
    } else {
        ba = 1;
    }
    D3: while (ba == bt) {}
    D4: critical section
    D5: ba = 0;
}

进程E的代码

while(true) {
    E1: non critical section
    E2a: if (ba == -1) {  // 注:原代码疑似笔误,将判断运算符`==`写为赋值`=`,此处修正为逻辑判断
        E2b: bt = 1;
    } else {
        bt = -1;
    }
    E3: while (bt == -ba) {}
    E4: critical section
    E5: bt = 0;
}

我已尝试多种执行顺序(如D1→D2c后执行E1→E2c等),均未发现互斥性被违反的情况,但怀疑是否存在遗漏的执行场景。

内容的提问来源于stack exchange,提问作者sharkey101

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 11:09:56