https://jyywiki.cn/OS/2023/build/lect7.ipynb
互斥 (mutual exclusion),“互相排斥”
lock_t
数据结构和 lock/unlock
API:typedef struct {
...
} lock_t;
void lock(lock_t *lk);
void unlock(lock_t *lk);
一把 “排他性” 的锁——对于锁对象 lk
lock
不能返回 (Safety)lock
时,至少有一个可以返回 (Liveness)Peterson 算法
因此,假设很重要
允许使用使我们可以不管一切麻烦事的原子指令
void atomic_inc(long *ptr);
int atomic_xchg(int val, int *ptr);