把操作系统中更多的成分和功能放到更高的层次(即用户模式)中去运行,而留下一个尽量小的
内核,用它来完成操作系统最基本的核心功能,称这种技术为
微内核(Microkernel)技术。
(1)
进程间通信机制:进程的消息通信一般是通过端口(port)的。
(2)
中断处理机制:微内核结构中将
中断机制与中断处理分离,即把中断机制放在微内核中,而把中断处理放到
用户空间相应的服务进程中。
大多数的微内核OS,对于
进程管理功能的实现,都采用“机制与策略分离”的原理。例如,为实现
进程调度功能,须在
进程管理中设置一个或多个进程
优先级队列;能将指定优先级进程从所在队列中取出,并将其投入执行。由于这一部分属于调度功能的机制部分,应将它放入微内核中。
通常在微内核中,只配置最基本的低级
存储器管理 机制。如用于实现将
用户空间的
逻辑地址变换为内存空间的
物理地址的
页表机制和地址变换机制,这一部分是依赖于机器的,因此放入微内核。而实现虚拟
存储器管理的策略,则包含应采取何种
页面置换算法,采用何种
内存分配与回收策略等,应将这部分放在微内核外的存储器管理服务器中去实现。
大多数
微内核操作系统都是将与硬件紧密相关的一小部分放入微内核中处理。此时微内核的主要功能,是捕获所发生的中断和陷入事件,并进行相应的前期处理。如进行中断的现场保护,识别中断的类型,然后将有关的事件的信息转化成消息后,把它发给相关的服务器。由服务器根据中断或陷入的类型,调用相应的处理程序来进行后期处理。
在微内核OS中是将
进程管理、
存储器管理以及I/O管理这些功能一分为二,属于进制的很小一部分放入内核中,另外绝大部分放在微内核外的服务器来实现。事实上,其中大多数服务器做的都比微内核大。这进一步说明了为什么能在客户\u670d务器模式后,还能把微内核做的很小的原因。