1 基本概念
操作系统是管理计算机硬件和软件资源的计算机程序
计算机系统构成
- 用户
- 应用程序
- 操作系统
- 硬件(CPU/内存/键盘/鼠标等)
OS是一种系统软件
- 与硬件交互
- 对资源共享进行调度管理
- 解决并发操作处理中存在的协调问题
- 数据结构复杂,外部接口多样化,便于用户反复使用
作为系统软件,OS的作用有:
- 管理与配置内存
- 决定系统资源供需的优先次序
- 控制输入输出设备
- 操作网络与管理文件系统等基本事务
- 提供让用户与系统交互的操作界面
2 目标与功能
在计算机上配置操作系统的目标:
- 有效性
- 提高系统资源利用率
- 提高系统吞吐量
- 方便性
- 可扩充
- 开放性
OS的功能:
- 计算机系统资源的管理者
- 用户与计算机硬件系统之间的接口
- 对计算机资源进行抽象
计算机系统资源的管理者:
- 处理器管理
- 进程控制
- 进程同步
- 进程通信
- 调度
- 存储器管理
- 内存分配
- 内存保护
- 地址映射
- 内存扩充
- I/O设备管理
- 缓冲管理
- 设备分配
- 设备处理
- 文件管理
- 文件存储空间管理
- 目录管理
- 文件读写管理和保护
用户与计算机硬件系统之间的接口:
- 程序接口
- 命令接口
- GUI(Graphical User Interface)
对计算机资源进行抽象:
- 将具体的计算机硬件资源抽象成软件资源从而方便用户使用
- 开放简单的访问方式,隐藏具体的实现细节
3 特征
OS的四大基本特征:
- 并发
- 共享
- 虚拟
- 异步
OS的并发性(Concurrence):
- 同一时间间隔内执行和调度多个程序的能力
- 宏观上处理器同时执行多道程序
- 微观上处理器在多道程序之间高速切换(分时交替执行)
- 关注单个处理机在同一时间段内处理任务数量的能力
并行:
同一时刻发生的事件数量(存在物理极限)
OS的共享性(Sharing):
资源共享:系统中的资源供给多个并发执行的应用程序共同使用
- 同时访问方式:同一时段允许多个程序同时访问共享资源(磁盘、内存、CPU等)
- 互斥共享方式:允许多个程序在同一共享资源上独立不互扰工作(打印机、音频、视频等)
并发与共享互为前提:
- 共享要求OS同时并发运行多道程序
- 并发难免导致多道程序同时访问同一资源
OS的虚拟性(Virtual):
使用某种技术将一个物理实体变成多个逻辑上的对应物
- 时分复用技术(TDM, Time Division Multiplexing)
- 虚拟处理机技术:四核八线程
- 虚拟设备技术:虚拟打印机
- 空分复用技术(SDM, Space Division Multiplexing)
- 虚拟磁盘技术: 将一块硬盘虚拟出若干个卷
- 虚拟存储器技术
OS的异步性(Asynchronism)
多道程序环境下,允许多个程序并发执行
单处理机环境下,多个程序分时交替执行
- 程序执行的不可预知性
- 获得运行的时机
- 因何运行
- 每道程序需要执行多少时间
- 不同程序的性能
4 发展
手工操作阶段:无操作系统的计算机系统
批处理阶段:同时处理多道程序
分时操作系统(Time Sharing System)
实时操作系统(Real Time System)
微机操作系统
其他操作系统:网络操作系统(支持网络、资源共享、远程通信),分布式操作系统(分布性、并行性)
5 运行机制
操作系统:
- 用户空间:
- 非内核功能
- 应用程序
- 内核空间:
- 进程管理服务器 - 进程(线程)调度
- 存储器服务器 - 低级存储器管理
- 文件管理服务器 - 中断和陷入管理
- 裸机系统/宿主系统/硬件系统
-
1 时钟管理
- 计时:提供系统时间
- 时钟中断:例如进程切换
-
2 中断机制
- 提高多道程序环境下的CPU利用率
- 外中断:中断信号来源于外部设备
- 内中断(异常/陷入/例外):中断信号来源于当前指令(三种情况)
- 陷阱/陷入(Trap):由应用程序主动引发
- 故障(fault):错误条件引发
- 终止(abort):致命错误引发
中断处理过程:
- 关中断(CPU不响应高级中断请求)
- 保存断点(程序计数器PC)
- 引出中断服务程序
- 保存现场和屏蔽字
- 开中断
- 执行中断服务程序
- 关中断
- 恢复现场和屏蔽字(PSWR和通用寄存器内容)
- 开中断
- 中断返回
-
3 原语
- 由若干指令组成的程序段
- 用于完成某个特定功能(进程调度部分or文件读写部分等)
- 具有原子性(执行过程不会被中断,底层实现依赖关中断与开中断)
- 原语运行在内核空间
-
4 系统数据结构(一般只涉及对数据结构的操作而不涉及硬件)
- 进程管理:作业控制块、进程控制块
- 存储器管理:存储器分配与回收
- 设备管理:缓冲区、设备控制块
-
5 系统调用(通过应用程序内中断陷入指令(用户空间),后续处理运行在内核态)
- 由操作系统实现从而给应用程序调用
- 是一套接口的集合
- 应用程序访问内核服务的方式
用户空间与内核空间的切换
内核程序 - 核心态/管态/内核态/系统态/特权态
用户程序 - 用户态/目态
目态切换至管态只用中断一种方式(访管指令or系统调用or陷入指令)
6 设计结构
大内核与微内核
传统OS结构
-
第一代:无结构OS
- 一系列过程(程序)的集合,过程间可以互相调用
- 结构复杂混乱,难以调试阅读与维护
-
第二代:模块化结构OS
- 分解/模块化(网络收发/进程调度/文件读写等)
- 规定模块/子模块间的接口
- 高内聚,低耦合
- 优缺点:
- 提高OS设计的正确性、可理解性与可维护性
- 增强OS的适应性
- 加速开发
- But
- 模块接口设计难以扩展后续需求
- 模块设计没有统一决策标准导致接口设计不可靠
-
第三代:分层式结构OS
- 有序分层,自顶向下依次依赖
- 设计之时自底向上,每一步都建立在可靠基础上
- 优缺点:
- 系统正确性
- 易于扩充维护
- But
- 层次通信降低效率
-
第四代:微内核结构OS
- 内核足够小,只实现OS核心功能
- 机制与策略分离
- 面向对象
- 优缺点:
- 系统正确性
- 易于扩充维护移植
- 更加支持分布式系统
- 面向对象(封装、继承、多态)
- But
- 降低效率