锁 xv6 运行在多处理器上,即计算机上有多个单独执行代码的 CPU.这些 CPU 操作同一片地址空间并分享其中的数据结构:xv6 必须建立一种合作机制防止它们互相干扰.即使是在单个处理器上,xv6 也必须使用某些机制来防止中断处理程序与非中断代码之间互相干扰.xv6 为这两种情况使用了相同的低层概念:锁.锁提供了互斥功能,保证某个时间点只有一个 CPU 能持有锁.如果 xv6 只能在持有特定的锁时才能使用数据结构,那么就能保证同一时间只有一个 CPU 能使用这个数据结构.这样,我们就称这个锁保…