多对多线程模型设计
nCore 混合内核为了将非核心系统服务(如文件系统服务)与内核核心服务 相互隔离,降低非核心系统服务的特权,将非核心系统服务放在独立的内核服务线程中执行。为了处理内核中产生的异步请求和系统调用,利用 Rust async 机制设计一个协程执行线程用于执行内核产生的所有异步任务。两种内核线程的功能总结如下:
• 内核服务线程:提供非核心服务的内核服务
• 协程执行器线程:其负责协作式调度内核中的所有用户线程
两种内核线程协作起来,共同服务所有用户线程,从而实现了一个多对多线程模型。本节我们分别介绍两种内核线程。