进程互斥硬件实现方法

中断屏蔽方法 🔒

中断屏蔽方法 🔒

⚙️实现原理
通过"关中断""开中断"指令实现,与原语实现思想相同
📝执行流程
关中断 → 临界区 → 开中断
优点
• 实现简单高效
• 逻辑清晰
缺点
• 仅适用于单处理机系统
• 需要特权指令(只能在操作系统内核态下运行)
• 不适用于用户进程

TestAndSet指令 💻

TestAndSet(TS/TSL)指令 💻

📛别名
TS指令/TSL指令(TestAndSetLock)
⚙️硬件特性
由硬件实现,执行过程不可中断
🔧实现逻辑
• 使用布尔型共享变量lock表示临界区状态
• 原子操作:读取原状态 → 设置新状态 → 返回原状态
优点
• 实现简单
• 适用于多处理机环境
• 检查和上锁一气呵成
缺点
• 不满足"让权等待"原则(进程会忙等待)

Swap指令 🔄

Swap(XCHG)指令 🔄

📛别名
Exchange指令/XCHG指令
⚙️硬件特性
由硬件实现,执行过程不可中断
🔧实现逻辑
交换两个变量的值
🆚与TS指令比较
• 逻辑功能相同(都是检查原状态并设置新锁)
• 硬件实现方式不同
✅❌优缺点
同TS指令(实现简单、适用多处理机、但不满足让权等待)

方法比较 📊

三种方法比较 📊

🔒中断屏蔽
• 适用环境: 单处理机
• 特权要求: 需要(内核态)
• 让权等待: 满足
• 多处理机支持: 不支持
💻TS/TSL指令
• 适用环境: 单/多处理机
• 特权要求: 不需要
• 让权等待: 不满足
• 多处理机支持: 支持
🔄Swap指令
• 适用环境: 单/多处理机
• 特权要求: 不需要
• 让权等待: 不满足
• 多处理机支持: 支持