操作系统的概念(定义)、功能和目标
概念
- 负责管理协调硬件、软件等计算机资源的工作
- 为上层用户、应用程序提供简单易用的服务
- 是一种系统软件
功能和目标
- 资源的调度者
- 处理机管理
- 存储器管理
- 文件管理
- 设备管理
- 向上层提供服务
- 给普通用户用的
- GUI用户界面
- 命令接口
- 联机命令接口(交互式命令接口):用户说一句,系统跟着做一句。比如在
Windows的cmd中输入time命令 - 脱机命令接口(批处理命令接口):用户说一句,系统跟着做一堆。如执行
bat文件
- 联机命令接口(交互式命令接口):用户说一句,系统跟着做一句。比如在
- 给软件/程序员用的
- 程序接口(即系统调用)
- 和
命令接口统称为用户接口
- 给普通用户用的
- 对硬件机器扩展
- 扩充机器
操作系统的四个特征
- 并发
- 两个或多个事件在同一时间间隔内发生
- ==宏观==上同时发生
- ==微观==上交替发生
- 并行:同一时刻同时进行
- 共享
- 互斥共享方式
- 一个时间段内只允许一个进程访问该资源
- 如对摄像头设备的共享使用
- 同时共享方式
- 一个时间段内允许多个进程“同时”对他们进行访问
- 如对硬盘资源的共享使用
- 并发和共享==互为存在条件==
- 互斥共享方式
- 虚拟
- 空分复用技术
- 用户看来的内存远大于实际内存
- 如虚拟存储技术
- 时分复用技术:
- 微观上处理机在各个微小的时间段内交替着为各个进程服务
- 如虚拟处理机技术
- ==没有并发性,就谈不上虚拟性==
- 空分复用技术
- 异步
- 进程的执行不是一贯到底的,而是走走停停,以不可预知的速度向前推进,这就是进程的异步性
- ==只有系统拥有并发性,才有可能导致异步性==
操作系统的发展与分类
- 手工操作阶段
- 缺点
- 用户独占全机
- 人机速度矛盾导致资源利用率极低
- 缺点
- 批处理阶段
- 单批道处理系统
- 引入==脱机输入/输出技术==(外围机+磁带完成),并由==监督程序==负责控制作业的输入、输出
- 简单来说,通过外围机把程序提前存到磁带里
- 优点:缓解人机速度矛盾
- 缺点:资源利用率依然很低
- 多批道处理系统
- 优点
- 多道程序==并发==执行,==共享==计算机资源
- ==资源利用率大幅提升==
- 缺点
- 没有人机交互功能
- 优点
- 单批道处理系统
- 分时操作系统
- 计算机以==时间片==为单位==轮流为各个用户/作业服务==
- 优点:提供人机交互功能
- 缺点:不能优先处理紧急任务
- 实时操作系统
- 硬实时系统:必须在绝对严格的规定时间内完成处理
- 软实时系统:能接手偶尔违反时间规定
- 优点:能优先处理紧急任务,某些紧急任务不需时间片排队
- 主要特点是==及时性==和==可靠性==
- 网络操作系统:实现网络中各种资源的共享(如文件共享)和各台计算机之间的通信
- 分布式操作系统
- 系统中各台计算机地位相同
- 任何工作都可以分布在这些计算机上,由他们并行、协同完成这个任务
- 主要特点是==分布性==和==并行性==
- 个人计算机操作系统
操作系统的运行机制
- 简单了解程序的运行原理
- 高级语言编写代码:机器指令
- 程序运行的过程就是CPU执行指令的过程
- 两类程序
- 内核程序
- 由很多内核程序组成了==操作系统内核==,或简称为==内核==
- 操作系统==最重要最核心==的部分
- 也是==最接近硬件的部分==
- 操作系统的功能未必都在内核中,如GUI
- ==应用程序==
- 内核程序
- 两类指令
- 特权指令(只能是内核程序)
- 非特权指令
- 两种处理机状态
- 内核态/核心态/管态(只能是特权指令,内核程序)
- 运行内核程序
- 可以执行特权指令
- 用户态/目态
- 运行应用程序
- 只能执行非特权指令
- 内核态/核心态/管态(只能是特权指令,内核程序)
- 内核
- 内核是操作系统最重要最核心的部分
- 由很多内核程序组成操作系统内核
- 如何变态
- 内核态$\Longrightarrow$ 用户态
- 一条修改==程序状态字寄存器==(PSW)的特权指令
- 操作系统主动让出CPU使用权
- 用户态$\Longrightarrow$内核态
- 由中断引起,硬件自动完成
- 硬件自动完成变态过程
- 操作系统强行夺回CPU使用权
- 但凡需要操作系统接入的地方,都会触发中断信号
- 内核态$\Longrightarrow$ 用户态
中断和异常
- 中断的作用
- 让操作系统内核强行夺回CPU的控制权
- 使CPU从用户态变为内核态
- 中断的分类
- 内中断/异常/例外
- 与当前执行的指令有关
- 中断信号来源于CPU内部
- 陷阱、陷入(trap):如系统调用
- 故障(fault):如缺页故障
- 终止(abort):如整数除0
- 外中断/中断
- 与当前执行的指令无关
- 中断信号来源于CPU外部
- 时钟中断
- I/O请求中断
- 内中断/异常/例外
大多数教材、试卷中,“中断”特指狭义的中断,即“外中断”。而内中断一般称为“异常”
- 中断机制的基本实现原理
- 检查中断信号
- 内中断:CPU在执行指令时会检查是否有异常发生
- 外中断:每个指令周期末尾,CPU都会检查是否有外中断信号需要处理
- 找到相应的中断处理程序
- 通过==中断向量表==实现
- 检查中断信号
系统调用
- 什么是系统调用
- 操作系统对应用程序/程序员提供的接口
- 系统调用与库函数的区别
- 有的库函数是对系统调用的进一步封装:如创建一个新文件的函数
- 有的库函数没有使用系统调用:如取绝对值的函数
- 什么功能要用系统调用实现
- 设备管理:完成设备的请求/释放/启动等功能
- 文件管理:完成文件的读/写/创建/删除等功能
- 进程控制:完成进程的创建/撤销/阻塞/唤醒等功能
- 进程通信:完成进程之间的消息传递/信号传递等功能
- 内存管理:完成内存的分配/回收等功能
- 系统调用的过程
- 传参
- 陷入指令/Trap/访管
- 由操作系统内核程序处理系统调用请求
- 返回应用程序
- 即:传递系统调用参数$\Rightarrow$执行陷入指令(==用户态==)$\Longrightarrow$执行相应的内请求
操作系统的体系结构
- 操作系统内核
- 时钟管理:实现计时功能
- 中断处理:负责实现中断机制
- 原语
- 一种特殊的程序
- 处于操作系统==最底层==,是==最接近硬件==的部分
- 这种程序的运行具有原子性:其运行只能一气呵成,不可中断
- 运行时间较短、调用频繁
- (以上与硬件关联紧密,以下更多的是对数据结构的操作,不会直接涉及硬件)
- 对系统资源进行管理的功能
- 进程管理
- 存储器管理
- 设备管理
- 大内核
- 将操作系统的主要功能模块都作为系统内核,运行在核心态
- 优点:高性能
- 缺点:内核代码庞大,结构混乱,难以维护
- 微内核
- 只把最基本的功能保留在内核
- 优点:内核功能少,结构清晰,方便维护
- 缺点:需要频繁地在核心态和用户态之间切换,性能低

- 操作系统包括
- 非内核功能
- 进程管理、存储器管理、设备管理等功能
- 时钟管理、中断处理、原语
- 大内核包括
- 进程管理、存储器管理、设备管理等功能
- 时钟管理、中断处理、原语
- 微内核包括
- 时钟管理、中断处理、原语

- 变态的过程是==有成本的==,频繁的变态会==降低系统性能==
操作系统引导
- CPU从一个特定主存地址开始,取指令,执行ROM中的引导程序(先进行硬件自检,再开机)
- 将磁盘的第一块——
主引导记录读入内存,执行磁盘引导程序,扫描分区表 - 从活动分区(又称主分区,即安装了操作系统的分区)读入分区引导记录,执行其中的程序
- 从根目录下找到完整的操作系统初始化程序(即
启动管理器)并执行,完成“开机”的一系列动作

虚拟机
- 虚拟机:使用虚拟化技术,将一台物理机器虚拟化为多台虚拟机器(Virtual Machine, VM),每个虚拟机器都可以独立运行一个操作系统

- 两类虚拟机管理程序VMM的对比
| 第一类VMM | 第二类VMM | |
|---|---|---|
| 对物理资源的控制权 | 直接运行在硬件之上,能直接控制和分配物理资源 | 运行在Host OS之上,依赖于Host OS为其分配物理资源 |
| 资源分配方式 | 在安装Guest OS时,VMM要在原本的硬盘上自行分配存储空间,类似于“外核”的分配方式,分配未经抽象的物理硬件 | GuestOS拥有自己的虚拟磁盘,该盘实际上是Host OS文件系统中的一个大文件。Guest OS分配到的内存是虚拟内存 |
| 性能 | 性能更好 | 性能更差,需要HostOS作为一个“中介” |
| 可支持的虚拟机数量 | 更多,不需要和HostOS竞争资源,相同硬件资源可以支持更多的虚拟机 | 更少,HostOS本身需要使用物理资源,HostOS上运行的其他进程也需要物理资源 |
| 虚拟机的可迁移性 | 更差 | 更好 |
| 运行模式 | 运行在最高特权级(Ring 0),可以执行最高特权的指令 | 部分运行在用户态、部分运行在内核态。GuestOS发出的系统调用会被VMM截获,并转化为VMM对HostOS的系统调用 |