计算机基础 · 考点总结
知识图谱
计算机基础
├── 1. 操作系统基础
│ ├── 操作系统作用
│ ├── 分时 / 实时 / 网络操作系统
│ └── 用户、应用、硬件之间的接口
├── 2. 进程管理 ⭐⭐⭐
│ ├── 进程状态转换
│ ├── 进程与线程
│ ├── 同步与互斥
│ ├── 临界资源
│ └── PV 操作
├── 3. 死锁与银行家算法 ⭐⭐
│ ├── 死锁概念
│ ├── 死锁必要条件
│ └── 安全状态判断
├── 4. 存储管理 ⭐⭐
│ ├── 页式存储
│ ├── 段式存储
│ └── 段页式存储
├── 5. 文件系统 ⭐⭐
│ ├── 索引文件
│ ├── 直接索引
│ ├── 一级间接索引
│ └── 二级间接索引
└── 6. 磁盘管理 ⭐⭐
├── 存取时间
├── 磁盘读取时间
└── 磁盘移臂调度算法
一、操作系统基础
1.1 操作系统的作用
操作系统是计算机系统中最核心的系统软件。
| 作用 | 说明 |
|---|---|
| 管理资源 | 管理硬件、软件、数据资源 |
| 控制程序运行 | 负责进程调度、内存分配、I/O 控制 |
| 人机接口 | 为用户提供命令、图形界面等操作方式 |
| 软硬件接口 | 为应用程序屏蔽硬件细节,提供系统调用 |
一句话: 操作系统向下管理硬件,向上服务应用。
1.2 特殊操作系统
| 类型 | 核心特点 | 关键词 |
|---|---|---|
| 分时操作系统 | 采用时间片轮转,为多个用户服务 | 多路性、独立性、及时性 |
| 实时操作系统 | 必须在规定时间内响应 | 时间约束、实时控制 |
| 网络操作系统 | 提供网络通信和资源共享能力 | 共享资源、网络服务 |
易考点:
- 分时系统强调多个用户共享系统资源。
- 实时系统强调在规定时间内完成响应。
- 网络操作系统强调网络资源共享和网络服务。
二、进程管理 ⭐⭐⭐
2.1 进程状态转换
进程常见三态:
| 状态 | 含义 |
|---|---|
| 运行态 | 正在 CPU 上执行 |
| 就绪态 | 已具备运行条件,只等 CPU |
| 等待态 / 阻塞态 | 等待某个事件发生,暂时不能运行 |
状态转换:
就绪态 --调度--> 运行态
运行态 --时间片到--> 就绪态
运行态 --等待事件--> 等待态
等待态 --事件发生--> 就绪态
易错点: 等待态不能直接进入运行态,必须先变成就绪态,再由调度程序分配 CPU。
2.2 进程与线程
| 对比项 | 进程 | 线程 |
|---|---|---|
| 定义 | 资源分配的基本单位 | CPU 调度的基本单位 |
| 拥有资源 | 拥有独立地址空间和资源 | 共享进程资源 |
| 切换开销 | 较大 | 较小 |
| 通信方式 | 进程间通信较复杂 | 同进程线程共享内存,通信方便 |
| 安全性 | 相互隔离较强 | 一个线程异常可能影响整个进程 |
记忆要点:
进程管资源,线程管执行。
2.3 同步与互斥
| 概念 | 含义 | 关系类型 |
|---|---|---|
| 互斥 | 多个进程竞争同一临界资源,同一时刻只允许一个进程访问 | 间接制约 |
| 同步 | 多个进程为了协作,需要按照一定先后顺序执行 | 直接制约 |
临界资源:一次只允许一个进程访问的资源,例如打印机、共享变量、共享文件。
临界区:进程中访问临界资源的那段代码。
2.4 信号量与 PV 操作
信号量可以表示资源数量:
S > 0:可用资源数量S = 0:没有可用资源S < 0:等待该资源的进程数量
| 操作 | 含义 | 本质 |
|---|---|---|
P(S) | 申请资源 / 等待 | S-- |
V(S) | 释放资源 / 通知 | S++ |
记忆:
P = 申请资源,可能阻塞
V = 释放资源,可能唤醒
2.5 前驱图与 PV 操作
前驱图表示任务之间的先后关系。
| 图中关系 | PV 操作思路 |
|---|---|
| A 指向 B | A 是 B 的前驱,B 是 A 的后继 |
| A 执行完 | 对后继关系执行 V,通知后继 |
| B 执行前 | 对前驱关系执行 P,检查前驱是否完成 |
技巧:
- 有几个箭头,就通常对应几个同步信号量。
- 有后继就
V,有前驱就P。 - 用于同步的信号量初值一般为
0。
三、死锁与银行家算法 ⭐⭐
3.1 死锁概念
死锁:多个进程因竞争资源而相互等待,导致每个进程都在等待一个不可能发生的事件。
3.2 死锁的四个必要条件
| 条件 | 含义 |
|---|---|
| 互斥条件 | 资源一次只能被一个进程使用 |
| 请求与保持条件 | 进程已占有资源,同时又请求新资源 |
| 不剥夺条件 | 进程已获得的资源不能被强行剥夺 |
| 循环等待条件 | 存在进程资源的循环等待链 |
考点: 只要破坏四个必要条件中的任意一个,就可以预防死锁。
3.3 银行家算法
银行家算法用于避免死锁,核心思想是:系统只在分配后仍处于安全状态时才真正分配资源。
基本规则:
- 进程最大需求量不能超过系统资源总数。
- 进程可以分期请求资源。
- 总请求数不能超过最大需求量。
- 若当前资源不能满足安全分配,则可以推迟请求。
常见变量:
| 名称 | 含义 |
|---|---|
Max | 进程对资源的最大需求 |
Allocation | 已经分配给进程的资源 |
Need | 进程还需要的资源 |
Available | 系统当前可用资源 |
核心公式:
Need = Max - Allocation
安全性判断思路:
- 找到一个
Need <= Available的进程。 - 假设该进程顺利执行完成并释放资源。
- 更新
Available = Available + Allocation。 - 重复直到所有进程都能完成。
- 如果能找到完整安全序列,则系统安全。
四、存储管理 ⭐⭐
4.1 页式存储
页式存储:把程序和内存划分为大小相同的块,以页为单位把程序调入内存。
| 优点 | 缺点 |
|---|---|
| 内存利用率高 | 增加系统开销 |
| 碎片小 | 可能产生抖动 |
| 分配和管理简单 | 不符合用户逻辑结构 |
关键词: 页大小固定,逻辑地址分为页号和页内地址。
4.2 段式存储
段式存储:按照用户作业中的自然段划分逻辑空间,例如代码段、数据段、堆栈段。
| 优点 | 缺点 |
|---|---|
| 便于程序共享 | 内存利用率较低 |
| 便于保护 | 容易产生外部碎片 |
| 符合用户逻辑结构 | 管理复杂 |
关键词: 段长度可变,符合程序逻辑结构。
4.3 段页式存储
段页式存储:先分段,再分页。一个程序有多个段,每个段再划分为多个页。
| 优点 | 缺点 |
|---|---|
| 空间浪费小 | 系统复杂性增加 |
| 存储共享容易 | 管理开销增加 |
| 存储保护容易 | 占用空间增加 |
| 能动态链接 | 执行速度可能下降 |
4.4 三种存储方式对比
| 对比项 | 页式 | 段式 | 段页式 |
|---|---|---|---|
| 划分依据 | 物理等长页 | 逻辑功能段 | 先逻辑分段,再物理分页 |
| 大小 | 页大小固定 | 段长可变 | 段可变,页固定 |
| 碎片 | 内部碎片 | 外部碎片 | 内部碎片较小 |
| 用户可见性 | 用户不易感知 | 用户可见 | 用户可见段,系统管理页 |
| 主要优势 | 管理简单、利用率高 | 共享和保护方便 | 兼顾页式和段式优点 |
五、文件系统 ⭐⭐
5.1 索引文件
索引文件通过索引节点记录文件数据块的位置。
常见索引方式:
| 类型 | 指向内容 | 作用 |
|---|---|---|
| 直接索引 | 直接指向数据块 | 访问小文件快 |
| 一级间接索引 | 指向一个地址块,地址块再指向数据块 | 扩大文件大小 |
| 二级间接索引 | 指向一级间接索引块 | 支持更大文件 |
5.2 索引文件计算
已知:
物理块大小 = 1KB = 1024B
地址项长度 = 4B
一个索引块可存放地址项数量:
1024 / 4 = 256
如果有 10 个直接索引项:
| 索引类型 | 可指向数据块数量 | 可表示文件大小 |
|---|---|---|
| 直接索引 | 10 | 10 × 1KB = 10KB |
| 一级间接索引 | 256 | 256 × 1KB = 256KB |
| 二级间接索引 | 256 × 256 | 65536 × 1KB = 65536KB |
总文件大小:
10KB + 256KB + 65536KB = 65802KB
答题套路:
- 先算一个索引块能放多少地址项。
- 直接索引:索引项个数 × 块大小。
- 一级间接:地址项数 × 块大小。
- 二级间接:地址项数 × 地址项数 × 块大小。
- 多级索引总容量相加。
5.3 位示图
位示图:用每一个 bit 表示一个磁盘块是否空闲。
| 位值 | 含义 |
|---|---|
0 | 空闲 |
1 | 占用 |
如果机器字长为 16 位,则一个字可以表示 16 个磁盘块的使用情况。
六、磁盘管理 ⭐⭐
6.1 磁盘存取时间
磁盘存取时间主要包括:
存取时间 = 寻道时间 + 旋转延迟时间 + 传输时间
| 时间 | 含义 |
|---|---|
| 寻道时间 | 磁头移动到目标磁道所需时间 |
| 旋转延迟时间 / 等待时间 | 等待读写扇区旋转到磁头下方所需时间 |
| 传输时间 | 真正读写数据所需时间 |
考试简化: 有些题会把存取时间简化为 寻道时间 + 等待时间,具体按题目条件计算。
6.2 磁盘移臂调度算法
| 算法 | 全称 | 思想 | 特点 |
|---|---|---|---|
| FCFS | 先来先服务 | 按请求到达顺序服务 | 公平,效率可能较低 |
| SSTF | 最短寻道时间优先 | 优先服务离当前磁头最近的请求 | 平均寻道短,可能饥饿 |
| SCAN | 扫描算法 / 电梯算法 | 磁头按一个方向移动,沿途服务请求,到端点再反向 | 兼顾效率与公平 |
| CSCAN | 循环扫描算法 | 只沿一个方向服务,到端点后快速回到起点 | 等待时间更均匀 |
记忆:
FCFS = 排队
SSTF = 就近
SCAN = 电梯来回扫
CSCAN = 单向循环扫
七、易错点总结
| 易错点 | 正确理解 |
|---|---|
| 等待态直接变运行态 | 等待态事件发生后先进入就绪态,再被调度运行 |
| 混淆同步和互斥 | 同步是协作顺序,互斥是竞争临界资源 |
| 混淆 P/V 操作 | P 是申请资源 S--,V 是释放资源 S++ |
| 信号量为负数不知道含义 | 负数绝对值表示等待该资源的进程数 |
| 线程和进程混淆 | 进程是资源分配单位,线程是 CPU 调度单位 |
| 只记死锁概念,不记四条件 | 互斥、请求保持、不剥夺、循环等待 |
| 页式和段式混淆 | 页固定大小,段按逻辑功能划分且长度可变 |
| 索引文件少算间接层级 | 一级是 256,二级是 256 × 256 |
| 磁盘存取时间只算传输时间 | 通常还要考虑寻道时间和旋转延迟时间 |
| SSTF 以为最公平 | SSTF 可能导致远处请求长期等待 |
八、考前速背
操作系统:管理资源、控制程序、人机接口、软硬件接口
进程三态:
就绪 --调度--> 运行
运行 --时间片到--> 就绪
运行 --等待事件--> 等待
等待 --事件发生--> 就绪
进程管资源,线程管执行
互斥:竞争临界资源
同步:协作先后顺序
P(S):申请资源,S--
V(S):释放资源,S++
死锁四条件:
互斥、请求与保持、不剥夺、循环等待
Need = Max - Allocation
页式:固定页,利用率高
段式:逻辑段,共享保护方便
段页式:先分段,再分页
索引块地址项数 = 物理块大小 / 地址项长度
1KB / 4B = 256
磁盘存取时间 = 寻道时间 + 旋转延迟时间 + 传输时间
FCFS:先来先服务
SSTF:最短寻道时间优先
SCAN:电梯算法
CSCAN:循环扫描