O Implementation of Semaphores 在顺序同一性模型中,信号量( mutual exclusion)可以 用常规的Load和 Store指令实现,但是互斥的协议很 难设计。一种简单的解决方案是提供: atomic read-modify-write instructions Examples: m is a memory location, R is a register est&set(m,R: Fetch&Add(m), Ry, R:Swap(m),R: R←M[m]; R←M[m]; Rt∈M[m]; if r==o then M[m]←R+Rv M[m]←-R; M[m]←-1; R←R 2021/2/11 计算机体系结构Implementation of Semaphores 2021/2/11 计算机体系结构 27 在顺序同一性模型中,信号量 (mutual exclusion) 可以 用常规的 Load 和 Store 指令实现,但是互斥的协议很 难设计。一种简单的解决方案是提供: atomic read-modify-write instructions Test&Set (m), R: R M[m]; if R==0 then M[m] 1; Swap (m), R: Rt M[m]; M[m] R; R Rt; Fetch&Add (m), RV, R: R M[m]; M[m] R + RV; Examples: m is a memory location, R is a register