第一章 操作系统引论
5 分钟阅读2,037 字21 个小节
第一章 操作系统引论
1.1 操作系统的目标和作用
操作系统的四个目标
| 目标 | 说明 |
|---|---|
| 方便性 | 提供良好用户接口,使计算机更易使用 |
| 有效性 | 提高系统资源利用率和系统吞吐量 |
| 可扩充性 | 能方便地增加新功能模块,适应硬件和应用发展 |
| 开放性 | 遵循国际标准,通过兼容层实现软件互操作 |
操作系统的作用
- OS是用户与计算机硬件之间的接口
- OS是计算机系统资源的管理者(处理机、存储器、I/O设备、文件)
- OS实现了对计算机资源的抽象(隐藏硬件细节,提供虚拟机)
推动OS发展的主要动力
- 不断提高计算机资源利用率
- 方便用户使用
- 器件的不断更新换代
- 计算机体系结构的不断发展和更新
- 不断提出新的应用需求
1.2 操作系统的发展过程
| 阶段 | 特点 | 优缺点 |
|---|---|---|
| 人工操作 | 用户独占全机 | CPU利用率极低,人机矛盾 |
| 脱机I/O | 引入磁带,外围机处理I/O | 减少CPU空闲时间 |
| 单道批处理 | 监督程序控制作业自动处理 | 自动性,顺序性,内存始终一道作业 |
| 多道批处理 | 内存中同时驻留多道程序 | 多道性、无序性、调度性;缺乏交互能力 |
| 分时系统 | 多用户同时联机交互 | 多路性、独立性、及时性、交互性;不能满足实时需求 |
| 实时系统 | 在规定时间内完成处理并给出响应 | 及时性、可靠性 |
| 微机操作系统 | 单用户单任务(MS-DOS)→单用户多任务(Windows)→多用户多任务(UNIX/Linux) | 广泛普及 |
| 嵌入式操作系统 | 微型化、可定制、实时性、可靠性 | 资源受限环境 |
| 网络操作系统 | 提供网络服务(文件/打印/通信) | C/S模式 |
| 分布式操作系统 | 多台计算机协同工作,统一管理 | 透明性、模块化 |
⚠️ 关键辨析:
- 多道批处理 vs 分时系统:多道批处理追求吞吐量,分时系统追求响应时间
- 硬实时 vs 软实时:硬实时必须在截止时间内完成(如武器控制),否则灾难性后果;软实时偶尔超时可接受(如视频播放)
1.3 操作系统的基本特性(重点⭐)
四大基本特性
| 特性 | 定义 | 关键点 |
|---|---|---|
| 并发 | 宏观上多个事件在同一时间段发生 | ≠并行(并行是同一时刻,需多CPU);并发是OS最基本特征 |
| 共享 | 系统资源可供多个并发进程共同使用 | 互斥共享(临界资源一个时刻只一个进程用)/ 同时共享(宏观同时微观交替) |
| 虚拟 | 通过某种技术变一个物理设备为多个逻辑设备 | 时分复用(虚拟处理机/虚拟设备)/ 空分复用(虚拟存储器) |
| 异步 | 进程以不可预知的速度走走停停地推进 | 并发执行导致;OS须保证运行结果可再现 |
⚠️ 关系:并发和共享是OS两个最基本特征,互为存在条件。虚拟以并发为前提,异步以并发为前提。没有并发和共享就谈不上虚拟和异步。
1.4 操作系统的运行环境
处理器的双重工作模式
- 用户态(目态):普通用户程序运行的状态,不能执行特权指令
- 核心态(管态/内核态):OS内核运行的状态,可执行全部指令
特权指令与非特权指令
- 特权指令:仅在核心态可执行(如I/O指令、置中断指令、存取特殊寄存器指令等)
- 非特权指令:在用户态和核心态均可执行
中断与异常
- 中断(外中断):由CPU外部I/O设备引起(如I/O完成中断、时钟中断)
- 异常(内中断/陷入/陷阱):由CPU内部事件引起(如除零、缺页、系统调用trap指令)
⚠️ 用户态→核心态:唯一途径是中断或异常(也包括系统调用,实质是通过trap指令触发中断) 核心态→用户态:通过设置程序状态字PSW即可
1.5 操作系统的主要功能
| 功能 | 子功能 | 说明 |
|---|---|---|
| 处理机管理 | 进程控制、进程同步、进程通信、调度 | 最核心的管理功能 |
| 存储器管理 | 内存分配与回收、地址映射、内存保护、内存扩充 | 逻辑→物理地址变换 |
| 设备管理 | 缓冲管理、设备分配、设备处理 | 隐藏设备细节 |
| 文件管理 | 文件存储空间管理、目录管理、读写管理、保护 | 方便用户使用 |
| 接口管理 | 命令接口(CLI)、程序接口(系统调用)、图形接口(GUI) | 面向用户和程序 |
现代OS的新功能
- 安全保障:认证技术、密码技术、访问控制技术、反病毒技术
- 联网和服务功能
- 多媒体支持
1.6 操作系统的结构(重点⭐)
| 结构 | 优点 | 缺点 | 典型代表 |
|---|---|---|---|
| 简单结构 | 简单,执行效率高 | 无模块划分,难维护 | MS-DOS |
| 模块化结构 | 模块-接口法,模块间以接口通信 | 模块划分标准不统一,接口不清晰 | — |
| 分层式结构 | 自底向上逐层构建,正确性易保证,维护性好 | 效率较低(每层都有额外开销) | THE系统 |
| 微内核结构 | 足够小的内核+客户-服务器模式,可扩展/可靠/可移植/支持分布式/面向对象 | 上下文切换开销大(原需4次切换,微内核需8次) | Mach, Windows NT |
| 外核结构 | 物理资源直接隔离与复用,减少映射层,库OS实现抽象 | 兼容性差 | Exokernel(MIT) |
微内核结构
- 微内核功能仅包含:①进程(线程)管理 ②低级存储器管理 ③中断和陷入处理
- 基本概念:足够小的内核 + 客户-服务器模式 + 策略与机制分离 + 面向对象
- 应用机制与策略分离:内核中只有机制(如进程调度机制),策略在用户进程中
1.7 系统调用
系统调用:OS提供给应用程序使用OS服务的接口(唯一接口)。
系统调用与一般过程调用的4个主要区别
| 方面 | 系统调用 | 一般过程调用 |
|---|---|---|
| 运行状态 | 用户态→核心态→用户态 | 保持在用户态 |
| 状态转换 | 通过中断机构进入核心态(INT 80H或trap) | 无状态转换 |
| 返回问题 | 可能不返回调用进程(如被更高优先级抢占) | 总是返回调用者 |
| 嵌套 | 嵌套深度有限 | 可任意嵌套/递归 |
系统调用的类型
- 进程控制类:创建/终止进程、加载/执行程序
- 文件操纵类:创建/删除/打开/关闭/读/写文件
- 进程通信类:发送/接收消息
- 设备管理类:请求/释放设备
- 信息维护类:获取/设置时间日期、系统数据
Linux系统调用补充:早期x86可通过
INT 0x80,现代x86-64主要使用syscall指令进入内核。
🎯 本章真题锚点与最短模板
- 高频题号(2009-2025):2012Q23、2015Q24、2019Q25、2023Q23/Q24/Q26、2024Q23、2025Q23/Q24
- 优质例题:给定事件“除零、DMA完成、系统调用、缺页”,判断其属于中断/异常及是否会导致用户态→核心态。
- 最短解题模板:
- 先判来源:外设=外中断;CPU内部=异常。
- 再判态切换:发生中断/异常→必入核心态处理。
- 最后排除干扰:普通算术/逻辑指令通常不触发态切换。
⚡ 秒杀版口令卡(10秒回忆)
- 口令:外设中断、内部异常、trap入核。
- 口令:用户态禁特权,系统调用走内核。
- 口令:判题三步:来源→态切换→干扰项。