操作系统设计

一、操作系统的本体(Ontology)

1.1 操作系统的本质定义

操作系统是一个:

资源虚拟化系统 + 并发控制系统 + 保护系统 + 抽象层 + 协调器

其核心职责:

  1. 将有限硬件资源抽象为可管理对象
  2. 在多个执行实体之间安全共享资源
  3. 控制执行顺序与竞争关系
  4. 提供稳定编程接口
  5. 隔离故障与权限

1.2 操作系统的基本问题空间

操作系统要解决五类不可避免的问题:

问题本质解决方向
资源有限需求无限虚拟化
执行并发竞争冲突调度 + 同步
多主体相互干扰隔离 + 权限
硬件复杂编程困难抽象层
规模增长复杂度爆炸分层 + 模块化

1.3 操作系统的资源视角

所有操作系统都围绕四类资源展开:

计算资源(CPU)存储资源(Memory)持久资源(Storage)外设资源(I/O)

操作系统本质:

对资源进行命名、分配、调度、回收、保护、抽象


二、操作系统设计公理(Design Axioms)

这些原则在不同实现中长期稳定存在。

2.1 机制与策略分离

机制:如何实现能力策略:如何使用能力

目标:


2.2 抽象分层

复杂系统必须分层:

高层依赖抽象低层实现机制层间通过接口交互

作用:


2.3 最小特权原则

实体仅拥有完成任务所需最小权限。

作用:


2.4 正交性

系统能力可独立组合:

功能空间 = 子功能空间的组合

结果:


2.5 延迟绑定

尽可能推迟决策时间:

绑定时间特点
编译期高性能,低灵活
启动期平衡
运行期高灵活,复杂

2.6 资源虚拟化优先

用户看到的是逻辑资源,而非物理资源。

示例:


三、操作系统结构模型

3.1 典型分层结构

应用程序系统调用接口内核服务层资源管理层硬件抽象层物理硬件

3.2 执行空间划分

空间职责
用户态应用逻辑
内核态资源控制

边界:特权转换


3.3 内核组织范式

单体内核

优点:

缺点:


微内核

优点:

缺点:


外内核

原则:

用户空间直接管理资源,内核只做保护。


四、操作系统四大资源子系统

4.1 进程与执行管理

核心问题:

调度目标:


4.2 内存管理

核心机制:

关键抽象:

虚拟地址空间


4.3 文件与持久存储

目标:


4.4 设备管理

目标:


五、接口与抽象模型

5.1 系统调用

系统调用是:

设计目标:


5.2 命名系统

命名 = 标识符 → 资源

作用:


5.3 统一表示

示例:

UNIX:一切皆文件

目标:

降低接口种类。


六、并发与通信模型

6.1 同步通信

特点:


6.2 异步通信

特点:


6.3 同步机制

典型工具:


七、数据结构与绑定策略

7.1 静态结构

优点:

缺点:


7.2 动态结构

优点:

缺点:


7.3 绑定时间对比

早绑定晚绑定
灵活

八、性能模型

8.1 性能目标

不是最优,而是可接受。


8.2 时间空间权衡

所有优化本质:

时间 ↔ 空间

8.3 局部性原理


8.4 缓存与线索

缓存:保证正确线索:需验证


九、工程设计方法

9.1 自底向上 vs 自顶向下

方法特点
自底向上易测试
自顶向下易规划

9.2 防御式编程

假设错误必然发生。


9.3 可重入设计

函数可被并发执行。


9.4 可复用性

模块化 + 解耦。


十、设计取舍框架

维度选项A选项B权衡
内核结构单体微内核性能 vs 隔离
通信同步异步简单 vs 扩展
绑定性能 vs 灵活
数据结构静态动态确定性 vs 适应性

十一、系统复杂度控制

操作系统复杂性的来源:

控制手段:


十二、演化趋势

计算模型驱动系统结构变化:

批处理分时多用户网络化分布式虚拟化云计算多核并行移动计算嵌入式

十三、操作系统设计能力树

操作系统设计├── 资源虚拟化├── 并发控制├── 保护机制├── 接口语义├── 架构组织├── 性能工程└── 可扩展性

十四、核心结论

操作系统设计不是实现技术集合,而是:

资源控制理论 + 并发协调理论 + 抽象工程学

任何具体实现,都是这些原理在特定约束下的投影。

关联内容(自动生成)