03 操作系统体系结构

体系结构

怎么设计

大内核、微内核

层次结构

层次

层次,大体上是比较一致的

用户 应用程序 非内核功能(eg:GUI) 进程管理、存储器管理、设备管理等 时钟管理、中断处理、原语(设备驱动、CPU切换等) 裸机(纯硬件)

结构

具体的实现,或者说结构,主要有如下几种: 微内核、大内核; 层次结构; 模块化结构; 外核结构。

微内核

只把最基本的功能保留在内核(时钟管理、中断处理、原语)

优点:内核功能少,结构清晰,方便维护。其他微内核模块的崩溃不一定会引起整个系统的崩溃。

缺点:需要频繁在内核态和用户态之间切换,性能低;微内核之间通过消息传递方式,性能低。

大内核

把操作系统的主要功能模块(时钟管理、中断管理、原语;进程管理,存储管理,设备管理等)都作为系统内核,运行在核心态。

优点:高性能,各功能间直接调用。

缺点:内核代码庞大,结构混乱,难以维护。内核某处崩溃会引起整个系统的崩溃。

分层结构

洋葱结构。每层只能调用更低一层提供的功能。

优点:方便调试和验证(分层调试,分层测试)。层间的调用结构设计时已经固定,在两层间加新层比较方便。

缺点:难以定义层次或边界(接口含义,传参,返回内容),eg:可能两个层次或模块间存在互调;跨层调用效率低

模块化结构

将内核分为多个模块,每个模块又分为子模块。各模块间互相协作。

内核 = 主模块 + 可加载模块

主模块:核心模块

可加载模块:可动态加载到内核中

优点:模块间逻辑清晰,易于维护。确定模块间接口后,多模块可同时开发。可加载模块可增强操作系统功能和适应性。任何模块之间可以直接函数调用,不是消息传递,效率高。

缺点:模块间接口定义未必合适或者适用。多模块调试验证和测试不方便

外核

给用户分配未经抽象和硬件资源。

结构: 硬件 kernel| 外核 Librarys Programs

优点:效率提升;灵活

缺点:降低系统的一致性;使系统更复杂


评论

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注