中断
cpu空闲时,内核就运行一个空进程,出于检查上下文,但运行于内核空间。
单内核和微内核的设计比较
- 单内核:把它从整体上作为一个单独的大的过程来实现,同时也运行在一个单独的地址空间上。所以所有的内核服务都运行在一个大内核的地址空间上。内核之间的通信是微不足道的,因为大家同时运行在内核态,并身处同一个地址空间,所以内核可以直接调用函数,因此单内核具有简单和性能高的特点
- 微内核:微内核并不作为一个单独的大的过程来实现。相反,微内核的功能被划分为多个独立的过程,每个过程叫做一个服务器。因为每个服务器都保持独立并且运行在各自的地址空间中,所以就不可能像单内核一样直接调用函数,而是通过消息传递处理内核之间的通信(IPC)
linux对线程支持的实现
linux内核并不区分线程和其他的一般进程。对于内核来说,所有进程(包括线程)都是一样的,只不过其中一些共享资源而已(共享资源的就看作线程)。