一.主从处理器设计和短期互斥
短期互斥依赖于内核中绝不会有一个以上的进程同时执行,在MP上实现这一点最简单的技术是要求所有的内核活动都在一个物理处理器上执行,这个处理器为主处理器(master),其余为从处理器(slave),从处理器只能执行用户代码,以用户态执行的进程可以在系统中的任何处理器上执行。但是一旦进入到内核活动,则只能切换到主处理上执行。
主从处理器设计的中如何做到讲进程分配到各个处理器,有个简单的办法就是使用两个独立的运行队列。一个包含必须运行在主处理器上的内核进程,一个包含运行在从处理器的用户态进程。运行在从处理器上的进程需要进入到内核态时,如系统调用或者trap时将进程添加到主处理器的运行队列中。在主处理做现场切换的时候,如果执行的老进程原来是在用户态执行的,则放到从队列中,否则返回到主队列。
维护这两个主从队列的互斥使用的是spin lock.自旋锁可