Appearance
sleeplock.h
TIP
睡眠锁(Long-term locks for processes) 当进程需要持有锁相当长一段时间时,应使用睡眠锁。 睡眠锁在等待时会放弃CPU,允许其他进程运行。 这与自旋锁形成对比,自旋锁会一直“旋转”直到锁被释放,期间会独占CPU。
struct sleeplock {
uint locked;
struct spinlock lk;TIP
在检查或修改 sleeplock 状态时,必须持有这个自旋锁 以防止多个进程同时操作 sleeplock 导致竞态条件。
TIP
用于调试:
char *name;
int pid;
};