视频加载失败

课程

5747 字
约 17 分钟

操作系统 (OS) 核心知识点精编

操作系统notes·更新于 2026-09-15

操作系统 (OS) 核心知识点精编

重点提示:这些知识点在面试和考研中非常重要。

一、 操作系统概论

1. 操作系统的作用

  • 作为用户与计算机硬件系统之间的接口
    • 命令方式
    • 系统调用方式
    • 图形和窗口方式
  • 作为计算机系统资源的管理者
    • 处理机管理、存储器管理、设备管理、文件管理

2. 基本特征与主要功能

  • 四大基本特征并发性、共享性、虚拟性、异步性
  • 五大主要功能
    1. 处理机管理
    2. 存储器管理
    3. 设备管理
    4. 文件管理
    5. 用户接口

二、 进程管理 (重点)

1. 进程的描述

  • 组成结构:每个进程(进程实体)由程序段相关数据段进程控制块 (PCB) 组成。
  • 进程控制块 (PCB)
    • 定义:OS 为管理和控制进程运行而定义的数据结构,记录了系统管理进程所需的全部信息。
    • 地位:PCB 是进程存在的唯一标志
    • 包含信息:进程标志符、处理机状态、进程调度信息、进程控制信息。

2. 进程的控制

  • 基本操作:创建、撤消、阻塞、唤醒。

  • 创建进程的步骤

    1. 申请一个空闲的 PCB。
    2. 为新进程分配资源。
    3. 初始化 PCB。
    4. 将 PCB 插入就绪队列。
    5. 返回进程标识号

    详细步骤补充

    1. 申请一个空闲的 PCB (系统的 PCB 是有限的,申请不到则出错)。
    2. 为新进程分配资源(静态、动态)。
    3. 对 PCB 初始化:
      • 初始化标识信息:将系统分配的标识符和父进程标识符填入新 PCB。
      • 初始化处理机状态信息:程序计数器指向程序的入口地址,栈指针指向栈顶。
      • 初始化处理机控制信息:设置进程的状态,设置优先级。
    4. 将 PCB 插入就绪队列。
    5. 返回一个进程标识号。

3. 进程同步与并发

  • 程序并发执行条件(Bernstein 条件): 将程序中任一语句 SiS_i 划分为两个变量的集合 R(Si)R(S_i)W(Si)W(S_i),其中 R(Si)={a1,a2,...,am}R(S_i) = \{a_1, a_2, ..., a_m\}W(Si)={b1,...,bn}W(S_i) = \{b_1, ..., b_n\}

    • R(Si)R(S_i):语句 SiS_i 在执行期间必须对其进行参考的变量(读集)。
    • W(Si)W(S_i):语句 SiS_i 在执行期间必须对其进行修改的变量(写集)。

    如果对于语句 S1S_1S2S_2,同时满足以下条件,则语句 S1S_1S2S_2 是可以并发执行的:

    1. R(S1)W(S2)=ΦR(S_1) \cap W(S_2) = \Phi
    2. W(S1)R(S2)=ΦW(S_1) \cap R(S_2) = \Phi
    3. W(S1)W(S2)=ΦW(S_1) \cap W(S_2) = \Phi
  • 同步机制遵循的原则

    1. 空闲让进:临界区空闲时,允许一个请求进程立即进入。
    2. 忙则等待:临界区被访问时,其他试图进入的进程必须等待,保证互斥。
    3. 有限等待:保证进程在有限时间内能进入临界区,避免“死等”。
    4. 让权等待:进程不能进入临界区时,应立即释放处理机,避免“忙等”。

4. 调度算法

  • 作业/进程调度
    • FCFS (先来先服务)

    • SPF (短作业优先 - 非抢占)

    • SRT (最短剩余时间)

    • RR (时间片轮转)

    • 多级反馈队列调度算法

      1. 设置多个就绪队列,并为每个队列赋予不同的优先级。队列 1 的优先级最高,其余队列逐个降低。
      2. 每个队列中进程执行时间片的大小各不相同,进程所在队列的优先级越高,其相应的时间片就越短。
      3. 新进程进入系统时,先放入队列 1 的末尾,按 FCFS 等待调度。如能完成,便可准备撤离系统;反之由调度程序将其转入队列 2 的末尾,按 FCFS 再次等待调度,如此下去,最后进入队列 n 按 RR 算法调度执行。
      4. 仅当队列 1 为空时,才调度队列 2 中的进程运行。若一个队列中的进程正执行,此时有新进程进入高级队列,则新进程抢占运行,原进程转移至本队列队尾。
    • 最低松弛度优先算法 (LLF, Least Laxity First)

      • 低松弛 = 高紧急。
      • 算法是根据任务紧急(或松弛)的程度,来确定任务的优先级。任务的紧急度越高,其优先级越高,并使之优先执行。
      • 算法采用抢占调度方式,可用于调度具有完成截止时间的周期性实时任务。
      • 松弛度 = 必须完成时间 - 本身剩余运行时间 - 当前时间

三、 死锁 (Deadlock)

1. 概述

  • 定义:多个进程因争夺资源而造成的僵局,无外力作用无法推进。
  • 产生的四个必要条件
    1. 互斥条件 (Mutual Exclusion)
    2. 请求和保持条件 (Hold-while-applying)
    3. 不可剥夺条件 (Non-preemption)
    4. 环路等待条件 (Circular Wait)

2. 处理死锁的方法

  • 解决方法一定都要记住,尤其是预防死锁):

    1. 预防死锁
      • 破坏互斥条件
      • 破坏不可剥夺条件
      • 破坏请求和保持条件
      • 破坏循环等待条件
    2. 避免死锁:安全状态、银行家算法
    3. 检测死锁:利用死锁定理
    4. 解除死锁:资源剥夺法、撤销进程法、进程回退法。
  • 银行家算法 (上课时反复练习过):

    • 核心思想:在分配资源前,判断系统是否会进入不安全状态。如果不安全,则不分配。
  • 死锁检测详解

    • 资源分配图 (进程-资源图):描述进程和资源间的申请和分配关系的有向图。
      • 圆圈表示进程节点 P,方框表示资源节点 R,方框中的小黑点数表示资源数。
      • 请求边:PiRjP_i \rightarrow R_j
      • 分配边:PiRjP_i \leftarrow R_j
    • 死锁定理
      • 资源分配图的化简方法:寻找一个既不阻塞又不孤立的进程结点 PiP_i,若无则算法结束;去除 PiP_i 的所有分配边和请求边,使 PiP_i 成为一个孤立结点;转步骤 (1)。
      • 在进行一系列化简后,若能消去图中所有的边,使所有进程都成为孤立结点,则称该图是可完全简化的;反之,称该图是不可完全简化的。
      • 孤立结点:没有请求边和分配边与之相连。
      • 阻塞结点:有请求边但资源无法满足其要求。
      • 定理:出现死锁状态的充分条件是资源分配图不可完全简化。

四、 存储器管理

1. 动态分区分配算法

  • 基于顺序搜索
    • 首次适应算法 (First Fit)
    • 循环首次适应算法 (Next Fit)
    • 最佳适应算法 (Best Fit)
    • 最坏适应算法 (Worst Fit)
  • 基于索引搜索:快速适应算法、伙伴系统、哈希算法。

2. 页面置换算法

  • 最佳置换算法 (OPT)
  • 先进先出置换算法 (FIFO)
  • 最近最久未使用算法 (LRU)
  • 最近最少使用置换算法 (LFU)
  • Clock 置换算法及改进型

五、 设备管理 (I/O)

1. 磁盘管理

  • 磁盘访问时间 = 寻道时间 + 旋转延迟 + 传输时间 + 控制器时间。
  • 磁盘调度算法
    • FCFS (先来先服务)
    • SSTF (最短寻道时间优先)
    • SCAN (扫描/电梯算法)
    • CSCAN (循环扫描)
    • N-STEP-SCAN 和 FSCAN

2. SPOOLing 技术 (假脱机)

  • 定义:External Peripheral Operations On-Line,外部设备联机并行操作。利用多道程序模拟外围控制机,在联机条件下实现脱机 I/O 功能。
  • 功能
    1. 把独占设备改造为逻辑共享设备
    2. 把一台物理 I/O 设备虚拟为多台逻辑 I/O 设备
  • 组成
    1. 输入井和输出井
    2. 输入缓冲区和输出缓冲区
    3. 输入进程和输出进程
    4. 井管理程序

六、 文件系统

  • 定义:OS 中负责操纵和管理文件的软件集合。

  • 公式文件系统 = 文件管理程序 + 它所管理的全部文件(文件和目录的集合)

  • 实例:FAT 文件系统、UNIX 混合索引分配。

  • 增量式索引组织方式(混合索引分配)

    • 基本概念:在采用混合索引分配方式的文件系统(如 UNIX)中,索引结点中设置了 13 个地址项,前 10 个是直接地址项,后 3 个是间接地址项。
    • 直接地址:在索引结点中设置 10 个直接地址项,用来存放直接地址。假如每个盘块的大小为 4KB,当文件不大于 40KB 时,便可直接从索引节点中读出该文件的全部盘块号。
    • 一次间接地址:利用索引结点中的一次间接地址项来提供一次间址。一次间址块中可存放 1K 个盘块号,允许文件长达 4MB。
    • 多次间接地址:利用二次间接地址项提供二次间接地址。在采用二次间址方式时,文件最大长度可达 4GB。同理在采用三次间址方式时,所允许的文件最大长度可达 4TB。

七、 考试题型精练

1. 单项选择题

题目:在计算机系统中,操作系统是( )。

  • A. 处于硬件之下的底层软件
  • B. 处于系统软件之上的用户软件
  • C. 处于应用软件之上的系统软件
  • D. 处于裸机之上的第一层软件

2. 填空题

题目:操作系统的基本特征包括并发性、共享性虚拟性 和异步性。

3. 简答题

题目:什么是操作系统?它有什么基本特征?

参考答案:操作系统是管理计算机硬件与软件资源、控制程序执行、改善人机界面、提供各种服务、合理组织计算机工作流程和为用户有效使用计算机提供良好运行环境的系统软件。基本特征见上文“基本特征”部分。

4. 综合应用题 (银行家算法)

题目:假设系统中有 5 个进程 {P0, P1, P2, P3, P4} 和三类资源 {R1, R2, R3},当前资源分配如下表:

进程已分配 (Allocation)需求 (Need)剩余 (Available)
R1 R2 R3R1 R2 R3R1 R2 R3
P02 1 13 0 12 2 4
P13 2 01 3 2
P21 1 21 1 2
P30 2 01 4 7
P40 1 12 5 0

(注:原表格数据可能存在误差,做题时请以试卷实际数据为准)

问题

  1. 当前状态安全吗?如果安全,请给出安全序列
  2. 当进程 P3 提出资源请求 (1, 1, 2) 后,系统能否满足?请给出计算过程
Profile Image of the Author
Sonder
好想要技术
这是公告标题
这只是一个公告
分类
标签
站点信息
构建平台
GitHub Actions
博客版本
Firefly v6.16.7
文章许可
CC BY-NC-SA 4.0
文章目录