1 基本概念
1.1 组成(冯·诺伊曼模型)
- 主机部分
- 运算器
- 存储器
- 控制器
- 外部设备
- 输入设备
- 输出设备
1.2 最基本特征
- 并发
- 共享
1.3 功能
- 处理器管理
- 进程控制
- 进程同步
- 进程通信
- 进程调度
- 存储器管理
- 内存分配
- 内存保护
- 内存扩充
- 设备管理
- 设备分配
- 设备传输控制
- 设备独立性
- 文件管理
- 文件存储空间的管理
- 目录管理
- 文件操作管理
- 文件保护
- 提供用户接口
- 命令接口
- 联机命令接口 / 交互式命令接口
- 脱机命令接口 / 批处理命令接口
- 程序接口 / 系统调用
- 图形接口
- 命令接口
1.2 分类
1.2.1 批处理操作系统
- 多个用户将多个作业交给计算机集中处理
- 缺少交互性
- 具体分类
- 单道批处理系统(早期)
- 自动性
- 顺序性
- 单道性
- 多道批处理系统
- 多道
- 宏观上并行
- 微观上串行
- 单道批处理系统(早期)
1.2.2 分时操作系统
多个用户以交互方式使用计算机
具体分类
简单分时操作系统
内存只有一道作业,其他作业在外存
具有“前台”和“后台”的操作系统
- 前台存放作业流,工作方式与简单分时操作系统相同
- 后台存放批处理作业
- 前台正在调入/调出或无调入/调出时,处理后台作业,并为其分配更长时间片
多道分时操作系统
内存中装入多道作业,按队列顺序运行
特征
- 多路性:多个用户同时使用计算机
- 交互性:用户通过终端与程序进行交互
- 独占性:用户感觉自己独占计算机
- 及时性:系统能在较短时间内响应用户请求
1.2.3 实时操作系统
- 对外部输入的信息,操作系统能在规定时间内处理完毕并作出反应
- 及时性 & 高可靠性
1.2.4 其他分类
- 嵌入式操作系统
- 集群系统
1.3 运行环境
1.3.1 内核态 & 用户态
内核态(管态/系统态)
- 操作系统管理程序执行时的状态
- 能执行一切指令,访问所有寄存器和存储区
- 工作内容
- 时钟管理
- 中断机制
- 原语:关闭中断的小程序
- 原子性
- 处于操作系统最底层,最接近硬件
- 运行时间短,调用频繁
- 系统控制的数据结构及处理
用户态(目态)
- 用户程序执行时的状态
- 只能执行规定的指令,访问指定的寄存器和存储区
特权指令
- I/O指令
- 设置中断屏蔽指令
- 清内存指令
- 存储保护指令
- 设置时钟指令
1.3.2 中断 & 异常
中断
- 外中断
- 系统正常功能的一部分
异常
- 内中断
- 由错误引起
通常异常会引起中断,但中断未必时由异常引起的。
1.3.3 系统调用
- 应用程序和系统之间的接口
- 过程
- 系统调用把应用程序的请求传递给内核,通过 trap 指令进入内核(用户态 —> 内核态)
- 调用相应的内核函数完成所需处理
- 将处理结果返回给应用程序(内核态 —> 用户态)
- 包括
- 进程控制
- 文件系统控制
- 系统控制
- 内存管理
- 网络管理
- socket 控制
- 用户管理
- 进程间通信
1.4 体系结构
1.4.1 模块组合结构
- 优点
- 结构紧密
- 接口直接简单
- 系统效率相对较高
- 缺点
- 模块独立性不好把握,系统结构不清晰
- 可扩展性差
- 可适应性差
- 适用于系统小、模块少、使用环境比较稳定的系统
1.4.2 层次结构
- 优点
- 模块间组织和依赖关系清晰明了
- 可读性强
- 可扩展性强
- 可适应性强
- 可靠性好
- 缺点
- 如何有效地进行分层
1.4.3 微内核结构
- 内核中只留下最基本的功能,把其他功能尽可能分离出去,用若干个运行在用户态下的进程(服务器进程)来实现
- 优点
- 可靠性好:某个服务器产生问题,不会影响其他服务器和其他组成部分
- 灵活:增删功能方便
- 便于维护:修改服务器的代码不会影响其他部分
- 适合分布式处理计算环境
- 缺点
- 效率不高:所有用户都要通过微内核进行通信,微内核成为“瓶颈”