2.操作系统结构

2.1策略Policy和机制Mechanism相分离。

策略:要做什么?e.g.先到先服务First Come First Service;时间片轮转Round Robin;最短截止时间优先 Earliest Deadline First ;完全公平调度 Completely Fair Scheduling etc.

机制:如何做到?e.g. 调度队列的设计,调度实体的表示(如线程)与时钟的中断处理等。

2.2M.A.L.H:

模块化 modularity:分而治之 divide and conquer

抽象化 abstraction:接口和内部实现分离

分层 layering:将module按照一定的原则进行层次划分,约束每层内模块间与跨层次模块间的交互方式,有效减少模块间的交互。

层级 hierarchy :模块组织方式,将一些功能相近的模块组成一个具有清晰接口的自包含子系统,将这些子系统递归式地组成一个具有清晰接口的更大的子系统。

2.3内核架构

简要结构

宏内核monolithic kernel:单内核,所有模块均运行在内核态。

--模块化

--抽象

--分层

--层级

微内核microkernel:最小化原则尽可能将os的功能放置在内核态外。

IPC inter process communication

外核:操作系统内核在硬件管理方面的两个主要功能是资源抽象和多路复用multiplexing ,其中对硬件资源的抽象存在两方面的问题:1过度的硬件资源抽象可能会带来较大的性能损失,违反“abstract but do not hide power”原则;2操作系统所提供的硬件资源抽象是针对所有应用的通用抽象,这些抽象对于一些具体的应用比如数据库、web服务器等来说往往不是最优选择。

--libOS 库操作系统:将对硬件的抽象封装到libos中,并与应用直接链接。

--data panel和control panel分离。

多内核multikernel:将一个众核(8个以上)系统看成由多个独立处理器核通过网络互联而成的分布式系统。

混合内核架构

2.4操作系统框架结构

2.4.1 Android

基于linux内核

--Android硬件抽象层 Hardware Abstract Layer HAL

--Android库 library

--Android 运行时 Android Runtime ART

--Android 应用框架 Application Framework