Appearance
考点清单
- [x] 进程管理(进程状态/PCB/上下文切换/通信)
- [x] 进程同步(信号量/PV 操作/管程)
- [x] 死锁(必要条件/银行家算法/预防与避免)
- [x] 存储管理(分页/分段/段页式/虚拟内存,页面置换算法)
- [x] 文件系统(目录结构/空闲空间管理)
- [x] I/O 管理(SPOOLing/磁盘调度算法)
- [x] 线程 vs 进程
笔记
历年考情:每年都考 3-5 分。第二版教材只有基本概念,但历年真题需要掌握原有全部内容。较为重要:分页存储、I/O 软件。
1. 操作系统概述
定义:能有效地组织和管理系统中的各种软/硬件资源,合理地组织计算机系统工作流程,控制程序的执行,并向用户提供良好的工作环境和友好的接口。
三个作用:
- 管理计算机中运行的程序和分配各种软硬件资源
- 为用户提供友善的人机界面
- 为应用程序的开发和运行提供高效率的平台
四个特征:并发性、共享性、虚拟性、不确定性
- 并发 vs 并行:并发是宏观的(分时调度),并行是微观的
五大功能:
- 进程管理 — 对 CPU 执行"时间"进行管理
- 文件管理 — 文件存储空间管理、目录管理、读写管理和存取控制
- 存储管理 — 对主存储器"空间"进行管理
- 设备管理 — 对硬件设备的管理,包括输入/输出设备的分配、启动、完成和回收
- 作业管理 — 任务、界面管理、人机交互等
操作系统分类:
| 类型 | 特点 |
|---|---|
| 批处理操作系统 | 单道/多道批处理(主机与外设可并行) |
| 分时操作系统 | CPU 时间划分为时间片,轮流为各终端服务 |
| 实时操作系统 | 在被控对象允许的时间范围内快速反应,可靠性要求高 |
| 网络操作系统 | 集中模式 / C/S 模式 / 对等模式 |
| 分布式操作系统 | 多台计算机无主次之分,通过通信交换信息 |
| 微机操作系统 | Windows、Mac OS、Linux |
嵌入式操作系统特点:微型化、可定制、实时性、可靠性、易移植性(采用 HAL 和 BSP 设计)。
初始化过程(自底向上):片级初始化 → 板级初始化 → 系统初始化。
2. 进程管理
进程组成与状态
进程组成:PCB(进程控制块,唯一标识)、程序(描述做什么)、数据(执行所需数据)。
三态模型(必须熟练掌握转换):
运行 → 就绪(时间片到)
运行 → 阻塞(等待某事件)
阻塞 → 就绪(等待的事件发生)
就绪 → 运行(被调度)
前趋图
详见:架构师-备考 综合知识-系统基础-操作系统-前趋图与资源图
进程同步与互斥
- 临界资源:各进程间需要以互斥方式对其进行访问的资源
- 临界区:进程中对临界资源实施操作的那段程序
- 互斥:同一时间只能由一个任务单独使用临界资源,使用时加锁
- 同步:多个任务可并发执行,有速度差异,需要等待协调
信号量:
- 互斥信号量:对临界资源互斥访问,初值为 1
- 同步信号量:对共享资源的访问控制,初值一般是共享资源的数量
P/V 操作:
- P 操作(申请资源):S = S - 1,若 S >= 0 则继续执行;若 S < 0 则阻塞,插入阻塞队列
- V 操作(释放资源):S = S + 1,若 S > 0 则继续执行;若 S <= 0 则从阻塞队列唤醒一个进程
生产者-消费者问题:三个信号量 — 互斥信号量 S0(仓库使用权),同步信号量 S1(空闲位置数),同步信号量 S2(商品个数)。
进程调度
三级调度:
- 高级调度(作业调度):决定哪个后备作业调入系统,成为就绪进程
- 中级调度(对换调度):决定交换区中哪个就绪进程调入内存
- 低级调度(进程调度):决定内存中哪个就绪进程占用 CPU,最活跃、影响最大
调度算法:
| 算法 | 特点 |
|---|---|
| 先来先服务 FCFS | 先到达先分配 CPU,用于宏观调度 |
| 时间片轮转 | 每个进程分配相同时间片轮流使用 CPU,用于微观调度 |
| 优先级调度 | 优先级大的先分配 CPU |
| 多级反馈调度 | 时间片轮转 + 优先级结合,多级队列不同优先级和时间片 |
调度方式:可剥夺(高优先级进程可强行抢占 CPU)vs 不可剥夺(必须等当前进程自动释放 CPU)。
死锁
四个必要条件:资源互斥、占有并等待、不可剥夺、环路等待。
处理策略:
- 死锁预防:破坏四个条件之一
- 死锁避免:银行家算法,提前计算安全序列,不安全则不分配
- 死锁检测:定时运行检测程序
- 死锁解除:强制剥夺资源、撤销进程
死锁资源计算:n 个进程各需 R 个资源,发生死锁的最大资源数 = n × (R-1),不发生死锁的最小资源数 = n × (R-1) + 1。
线程 vs 进程
引入线程原因:进程创建、撤销和切换时空开销大,限制了并发程度。
| 进程 | 线程 | |
|---|---|---|
| 资源 | 独立分配资源的单位 | 基本不拥有资源(仅 PC、寄存器、栈) |
| 调度 | 传统上可独立调度 | 调度和分配的基本单位 |
| 共享 | 进程间资源独立 | 同进程线程共享进程全部资源 |
| 开销 | 创建/切换开销大 | 创建/切换开销小 |
3. 存储管理
分区存储管理
整存,将进程所需内存整体一起分配。
| 方式 | 特点 |
|---|---|
| 固定分区 | 静态分区,产生内部碎片 |
| 可变分区 | 动态分区,产生外部碎片 |
| 可重定位分区 | 移动已分配区域合并碎片,仅在外部请求无法满足时触发 |
可变分区分配算法:
| 算法 | 策略 |
|---|---|
| 首次适应法 | 从头查找,找到第一个 >= 所需空间的空间块 |
| 最佳适应法 | 空闲块按大小排序,找最接近的 |
| 最差适应法 | 找最大的空闲块,防止产生过多细小碎片 |
| 循环首次适应法 | 从上次分配位置继续查找,不每次从头开始 |
分页存储管理
详见:架构师-备考 综合知识-系统基础-操作系统-分页存储管理
逻辑页分为页号和页内地址,通过页表查询页号对应的物理块号。相关概念:页面置换算法(最优算法、先进先出、最近最少使用)、快表。
分段存储管理
将进程空间按逻辑整体分段,段表包含段长和基址两个属性来确定逻辑段在物理段中的位置。
- 优点:多道程序共享内存,各段修改互不影响
- 缺点:内存利用率低,内存碎片浪费大
地址越界判断:逻辑地址 (段号, 偏移) 中偏移 > 段长 则为越界。
段页式存储管理
先分段,后分页。
- 优点:空间浪费小、存储共享容易、存储保护容易、能动态链接
- 缺点:管理软件复杂度和开销增加,执行速度下降
4. 设备管理
设备分类
| 分类维度 | 类型 |
|---|---|
| 按数据组织 | 块设备、字符设备 |
| 按设备功能 | 输入/输出/存储/网络联网/供电设备 |
| 按资源分配 | 独占设备、共享设备、虚拟设备 |
| 按传输速率 | 低速/中速/高速设备 |
I/O 软件
I/O 软件隐藏了 I/O 操作实现的细节,方便用户使用 I/O 设备。
典型流程:用户程序读文件 → 与设备无关软件检查缓存 → 若无则调用设备驱动 → 向 I/O 硬件发请求 → 用户进程阻塞 → 磁盘操作完成 → 硬件产生中断 → 中断处理程序唤醒用户进程。
SPOOLING 技术
在外设上建立两个数据缓冲区(输入井/输出井),多个进程共用一台独占设备(如打印机),数据排队存储在缓冲区中自动按序处理,实现物理设备的虚拟化,每个进程感觉独占使用。
5. 文件管理
文件概述
文件的逻辑结构:有结构的记录式文件、无结构的流式文件。
文件的物理结构(在物理存储设备上的存放方法):
| 结构 | 特点 |
|---|---|
| 连续结构 | 逻辑连续的文件信息依次存放在连续物理块上 |
| 链接结构 | 存放在不连续物理块,每块有指针指向下一块 |
| 索引结构 | 存放在不连续物理块,系统建立索引表记录逻辑块号→物理块号映射 |
| 多级索引 | 索引表占用一个或多个物理块 |
存取方法:顺序存取、随机存取。
索引文件结构
详见:架构师-备考 综合知识-系统基础-操作系统-索引文件结构
文件目录
文件存储空间管理
| 方法 | 原理 |
|---|---|
| 空闲区表 | 为每个连续空闲区建立表项,适用于连续文件结构 |
| 位示图 (Bitmap) | 每一位对应一个物理块,0=空闲,1=占用 |
| 空闲块链 | 每个空闲块指向下一个空闲块,链表头指针放在特定位置 |
| 成组链接法 | 空闲块分组(如 100 块/组),每组第一块登记下一组盘块号和空闲块总数 |
位示图计算:物理块号 N 在第
⌊N/字长⌋个字中描述(从 0 编号即为第⌊N/字长⌋个字)。磁盘容量/物理块大小 = 物理块总数 → 除以字长 = 位示图所需字数。