xv6设计

一个进程只有三种状态,在用户空间运行,或者在内核空间运行,或者不运行(可以理解为两个线程?)

spinlock要处理两个事

一个是cpu与cpu之间的并行

一个是1个cpu上内核(这里特指中断程序)和用户之间的并行,关中断

设备驱动分为两块

top部分 read/write接口

bottom部分 中断处理程序

这两个部分可以并行,需要锁来保护