操作系统期末考试基础知识点速成:高频考点与题集精要

前言:本章是基于我们的期末考试范围以及高频考点总结的markdown版本

还有对应的每一章PPT和一部分例题,以及简单题与大题

我分开来发,分别为 基础知识点速览(本章),高频大题解题,ppt与例题.三篇版本

最后祝大家期末考试顺利 o.0

第一章 操作系统引论 - 极速冲刺版

一、操作系统的目标(单选/简答题点)

核心答案:

  • 方便性:让计算机更容易使用(提供图形界面、命令行等)
  • 有效性:提高资源利用率(CPU、内存、设备),提高系统吞吐量
  • 可扩充性:容易增加新功能(比如从单核到多核的支持)
  • 开放性:能兼容不同硬件和软件标准

速记口诀 :"便(方便)有(有效)可(可扩充)开(开放)"

二、操作系统的作用(多选题重点)

核心答案:

  1. 作为用户与计算机硬件之间的接口 (桥梁)
    • 提供三种接口:命令接口、图形接口、程序接口
  2. 作为计算机资源的管理者
    • 管理四大资源:CPU、内存、设备、文件
  3. 作为计算机系统的扩充(扩展机)
    • 把硬件包装成更方便使用的形式(比如把硬盘抽象成文件)

速记 :"接口、管家、扩展机"

三、操作系统的发展过程(单选考点)

时间线:

  1. 手工操作(无OS)→ 效率极低
  2. 单道批处理(一次一个作业)→ 有OS雏形,但CPU和I/O串行
  3. 多道批处理 (内存中多个作业)→ 现代OS真正开始,CPU和I/O可以并行
  4. 分时系统(多用户共享)→ 可以交互了
  5. 实时系统(及时响应)→ 用于控制领域
  6. 现代OS(多种技术融合)

关键 :多道程序设计的出现是OS发展的里程碑

四、操作系统的基本类型及其特点(必背表格)

类型 目标 特点 缺点
批处理系统 提高资源利用率、吞吐量 自动成批处理、无交互 无交互、响应慢
分时系统 提供交互性、及时响应 多用户、时间片轮转、交互强 不能及时处理紧急任务
实时系统 在规定时间内可靠完成 及时响应、高可靠性、专用 资源利用率可能不高

五、分时系统 vs 实时系统(必考区别)

分时系统追求的目标:

  • 及时响应(秒级,比如2-3秒内响应命令)
  • 交互性(用户可以随时输入命令)
  • 多路性(多个用户同时使用)
  • 独立性(每个用户感觉独占计算机)

实时操作系统主要追求目标:

  • 实时性(毫秒/微秒级,必须在截止时间内完成)
  • 可靠性(不能出错,比如导弹控制)
  • 确定性(响应时间可预测)

一句话区别 :分时系统要"快",实时系统要"准时+可靠"

六、批处理系统的缺点(简答题点)

  1. 无交互性:作业提交后用户不能干预
  2. 平均周转时间长:短作业可能要等长作业完成
  3. 作业调试困难:出错后要重新排队

七、操作系统提供的接口(简答题重点)

三类接口:

  1. 命令接口:

    • 联机命令接口(命令行,如Linux shell)
    • 脱机命令接口(批处理脚本,如.bat文件)
  2. 图形用户接口(GUI):

    • 窗口、图标、菜单(如Windows桌面)
  3. 程序接口(系统调用):

    • 最重要! 应用程序请求OS服务的唯一方式
    • 例如:打开文件(open)、创建进程(fork)

系统调用详细说明(简答题模板):

问:什么是系统调用?它的作用是什么?
答:

  1. 定义:系统调用是操作系统提供给应用程序的接口,用于请求内核服务。
  2. 作用:应用程序通过系统调用访问系统资源(如文件、设备),执行特权操作。
  3. 特点 :
    • 每个系统调用有唯一编号
    • 执行时从用户态切换到内核态
    • 是应用程序与OS的边界
  4. 例子:读写文件、创建进程、申请内存等。

八、微内核操作系统的特征(多选题必考)

记住这5点,多选题看到就选:

  1. 内核非常小(只包含最基本功能:进程调度、低级存储管理、中断处理)
  2. 大多数OS功能作为独立服务进程运行在用户态(文件系统、设备驱动等都放在内核外)
  3. 服务之间通过消息传递通信(不是直接函数调用)
  4. 优点:高可靠性(一个服务崩溃不影响内核)、易扩展、易移植
  5. 缺点:性能较低(因为消息传递开销大)

典型例子:Windows NT早期版本、Mach、Minix


题型应对策略(针对你的一天半)

单选题(5题)预测:

  1. 问OS的目标(选"有效性"或"方便性")
  2. 问OS的作用(选"资源管理者")
  3. 问分时系统的特点(选"交互性")
  4. 问实时系统的目标(选"实时性"或"可靠性")
  5. 问系统调用相关(选"程序接口")

多选题(2题)预测:

  1. 微内核特征(选:内核小、服务外移、消息通信)
  2. OS的作用(选:接口、资源管理者、扩展机)

简答题(3题)预测:

  1. 操作系统提供的接口(系统调用) ← 极大概率考!
  2. 分时系统和实时系统的比较
  3. 批处理系统的缺点 或 微内核的特点

5分钟极速记忆法

  1. 目标:便(方便)有(有效)可(可扩充)开(开放)
  2. 作用:我是桥梁(接口)、我是管家(管理者)、我是魔术师(扩展机)
  3. 类型 :
    • 批处理:工厂流水线,只求产量
    • 分时:网吧,大家轮流玩,要响应快
    • 实时:导弹控制系统,必须准时+可靠
  4. 微内核:小政府,大社会(内核小,服务外移)

第二章 进程的描述与控制 - 极速冲刺版

一、进程的概念与引入目的(单选/简答题点)

1. 进程的定义

核心答案 :进程是程序的一次执行过程,是系统进行资源分配和调度的独立单位。

关键理解:

  • 进程 ≠ 程序 :
    • 程序是静态的代码文件
    • 进程是动态的执行过程
  • 类比 :
    • 程序 = 菜谱(静态)
    • 进程 = 按照菜谱做菜的过程(动态)

2. 为什么要引入进程?

引入目的 :为了实现多道程序的并发执行,提高系统资源利用率。

解释:

  • 单道程序:CPU和I/O串行,CPU经常闲着等I/O
  • 多道程序:多个程序在内存中,A程序等I/O时,CPU去执行B程序
  • 问题:多个程序同时运行,需要管理每个程序的执行状态、资源等
  • 解决:引入"进程"概念,为每个程序的执行实例建立一个管理实体

速记 :因为要"并发执行",所以需要"进程"来管理

二、进程状态转换(必考,尤其单选)

1. 三状态模型(最基本)

复制代码
        ┌───────────┐
        │   就绪     │
        └─────┬─────┘
              │ 调度
              ▼
        ┌───────────┐
        │   运行     │
        └─────┬─────┘
       阻塞↑    │时间片用完/被抢占
              │
        ┌─────▼─────┐
        │   阻塞     │
        └───────────┘

三个状态:

  1. 就绪(Ready):进程已分配到除CPU外的所有资源,只等CPU
  2. 运行(Running):正在CPU上执行
  3. 阻塞(Blocked):等待某事件(如I/O完成),即使给CPU也无法运行

2. 关键转换(单选高频考点)

  • 就绪 → 运行 :被进程调度程序选中(调度)
  • 运行 → 就绪:时间片用完、被更高优先级进程抢占
  • 运行 → 阻塞:请求I/O、等待某事件发生(如等待键盘输入)
  • 阻塞 → 就绪 :I/O操作完成、等待的事件发生

特别注意:

  • I/O操作完成后,进程状态从"阻塞"变为"就绪"(不是直接到运行!)
  • 因为还要等调度程序分配CPU

三、进程控制块(PCB)的作用与存储内容(多选重点)

1. PCB的作用

  • 进程存在的唯一标志:没有PCB,就没有这个进程
  • OS管理进程的依据:所有进程管理功能都基于PCB
  • 进程切换时的现场保存:保存CPU寄存器等现场信息

2. PCB存储内容(多选题看到就选)

必须记住的分类:

  1. 进程标识信息

    • 进程ID(PID)
    • 父进程ID(PPID)
    • 用户ID
  2. 处理机状态信息(现场信息)

    • 程序计数器(下条指令地址)
    • CPU寄存器(通用寄存器、栈指针等)
    • 程序状态字(PSW)
  3. 进程调度信息

    • 进程状态(就绪/运行/阻塞)
    • 进程优先级
    • 调度所需其他信息(如等待时间)
  4. 进程控制信息

    • 内存分配信息(基址、限长)
    • 打开文件列表
    • 使用的I/O设备信息
    • 进程间通信信息

速记口诀 :"标识、现场、调度、控制"四类信息

四、进程的创建(操作系统创建新进程的操作)

创建步骤(简答题模板)

  1. 申请空白PCB:为新进程分配唯一的进程标识符
  2. 分配资源:为进程分配内存空间、文件、I/O设备等
  3. 初始化PCB :
    • 设置进程标识信息
    • 设置处理机状态信息(如程序计数器指向程序入口)
    • 设置进程状态为"就绪"
    • 设置优先级等调度信息
  4. 插入就绪队列:将新进程的PCB插入就绪队列,等待调度

创建原因(什么情况下会创建进程)

  1. 系统初始化
  2. 用户请求创建新进程
  3. 正在运行的进程创建子进程(如fork()调用)

五、原语的概念(单选考点)

定义

原语是由若干条指令组成的、用于完成特定功能的一个过程,且执行过程不可被中断。

特点

  1. 原子性:要么全做,要么全不做,不可分割
  2. 在核心态执行:属于操作系统内核功能
  3. 不可被中断:执行期间不允许响应中断

常见原语

  • 创建进程原语
  • 撤销进程原语
  • 阻塞原语
  • 唤醒原语

速记 :原语 = 不可中断的原子操作

六、进程的并发与并行(单选/判断题)

1. 并发(Concurrency)

  • 定义:多个进程在同一时间间隔内交替执行
  • 特点:宏观上同时,微观上交替
  • 例子:单核CPU上运行多个程序
  • 判断题考点 :"并发是指多个进程在同一时间段内同时执行"是错的(应该是交替执行)

2. 并行(Parallelism)

  • 定义:多个进程在同一时刻同时执行
  • 特点:需要多核/多CPU硬件支持
  • 例子:多核CPU上每个核运行一个程序

3. 关键区别

  • 并发:逻辑上的同时(单核可实现)
  • 并行:物理上的同时(需要多核)

速记:

  • 并发:轮流使用CPU(如一人同时玩三个手机,其实是快速切换)
  • 并行:每人一个CPU同时玩(如三人各玩一个手机)

题型预测与答题技巧

单选题(7题)预测:

  1. 进程定义:选"程序的一次执行过程"
  2. 状态转换:I/O完成后,进程从阻塞→就绪
  3. PCB作用:选"进程存在的唯一标志"
  4. 进程创建:第一步是"申请空白PCB"
  5. 原语概念:选"不可中断的原子操作"
  6. 并发定义:选"同一时间间隔内交替执行"
  7. 状态转换:时间片用完,进程从运行→就绪

多选题(3题)预测:

  1. PCB存储内容:选标识信息、现场信息、调度信息、控制信息(四类全选)
  2. 进程创建步骤:选申请PCB、分配资源、初始化PCB、插入就绪队列
  3. 进程状态:选就绪、运行、阻塞(三状态)

判断题(1题)预测:

  • 可能考点1:"进程是程序的执行过程"(√)
  • 可能考点2:"并发是指多个进程同时执行"(×,应该是交替执行)
  • 可能考点3:"原语执行过程中可以被中断"(×,不可中断)

5分钟极速记忆法

  1. 进程是什么:动态的程序执行,为了并发
  2. 三状态 :就绪(等CPU)、运行(用CPU)、阻塞(等事件)
    • 关键转换:I/O完成 → 阻塞变就绪
  3. PCB:进程的身份证,存四类信息(标识、现场、调度、控制)
  4. 创建步骤:申请PCB → 分资源 → 初始化 → 入队列
  5. 原语:不可中断的原子操作
  6. 并发 vs 并行 :
    • 并发:逻辑同时,单核就能实现(快速切换)
    • 并行:物理同时,需要多核

实战答题模板

如果考简答题"进程状态转换":

答:进程有三种基本状态:就绪、运行、阻塞。转换关系如下:

  1. 就绪→运行:进程被调度程序选中
  2. 运行→就绪:时间片用完或被更高优先级进程抢占
  3. 运行→阻塞:请求I/O或等待某事件
  4. 阻塞→就绪:I/O完成或等待事件发生
    特别注意:I/O完成后,进程从阻塞状态变为就绪状态,等待调度。

如果考简答题"PCB作用与内容":

答:PCB是进程存在的唯一标志,是OS管理进程的依据。包含四类信息:

  1. 进程标识信息(PID、PPID等)
  2. 处理机状态信息(程序计数器、寄存器等)
  3. 进程调度信息(状态、优先级等)
  4. 进程控制信息(内存分配、打开文件等)

第三章 进程的同步与通信 - 极速冲刺版

一、同步与互斥的概念(单选/判断/简答)

1. 互斥(Mutual Exclusion)

  • 定义:多个进程不能同时访问同一个共享资源
  • 特点:竞争关系,只有一个进程能进入临界区
  • 例子:打印机、共享变量
  • 制约关系来源:对共享资源的排他性使用要求

2. 同步(Synchronization)

  • 定义:多个进程按特定顺序执行,一个进程必须等待另一个进程的消息
  • 特点:合作关系,进程间有明确的先后顺序
  • 例子:生产者生产后消费者才能消费
  • 制约关系来源:进程间的直接合作关系

3. 关键区别

  • 互斥:强调"不能同时"(排他性)
  • 同步:强调"先后顺序"(协调性)

速记 :互斥是"不能一起进",同步是"你先我后"

二、PV操作(综合题必考!)

1. 基本概念

  • P操作(wait/wait操作) :申请资源

    c 复制代码
    P(S) {
        S = S - 1;
        if (S < 0) {
            当前进程阻塞,进入等待队列;
        }
    }
  • V操作(signal/signal操作) :释放资源

    c 复制代码
    V(S) {
        S = S + 1;
        if (S <= 0) {
            从等待队列唤醒一个进程;
        }
    }

2. 信号量含义

  • 信号量S的初始值:表示可用资源数量
  • S > 0:可用资源数
  • S = 0:无可用资源,也无等待进程
  • S < 0 :|S| 表示等待该资源的进程数(重要!)

3. PV操作应用场景

场景一:实现互斥
c 复制代码
semaphore mutex = 1;  // 互斥信号量,初值为1

Process P_i() {
    P(mutex);      // 进入临界区前
    // 临界区代码
    V(mutex);      // 离开临界区后
}
场景二:实现同步(前趋关系)
复制代码
    P1
     |
     V
    P2
c 复制代码
semaphore S = 0;  // 同步信号量,初值为0

// P1进程
P1() {
    // ... 执行代码
    V(S);  // 通知P2可以执行了
}

// P2进程
P2() {
    P(S);  // 等待P1的通知
    // ... 执行代码
}

4. 经典问题模板(必须掌握!)

生产者-消费者问题
c 复制代码
semaphore mutex = 1;    // 互斥访问缓冲区
semaphore empty = n;    // 空缓冲区数量
semaphore full = 0;     // 满缓冲区数量

生产者() {
    while(1) {
        生产产品;
        P(empty);      // 申请空缓冲区
        P(mutex);      // 申请缓冲区访问权
        产品放入缓冲区;
        V(mutex);      // 释放缓冲区访问权
        V(full);       // 增加满缓冲区数
    }
}

消费者() {
    while(1) {
        P(full);       // 申请满缓冲区
        P(mutex);      // 申请缓冲区访问权
        从缓冲区取产品;
        V(mutex);      // 释放缓冲区访问权
        V(empty);      // 增加空缓冲区数
        消费产品;
    }
}
读者-写者问题(读者优先)
c 复制代码
semaphore rw_mutex = 1;  // 读写互斥
semaphore mutex = 1;     // 更新read_count的互斥
int read_count = 0;      // 读者数量

写者() {
    P(rw_mutex);      // 申请写权限
    // 写操作
    V(rw_mutex);      // 释放写权限
}

读者() {
    P(mutex);         // 更新read_count前互斥
    read_count++;
    if (read_count == 1) {
        P(rw_mutex);  // 第一个读者锁定写权限
    }
    V(mutex);
    
    // 读操作
    
    P(mutex);
    read_count--;
    if (read_count == 0) {
        V(rw_mutex);  // 最后一个读者释放写权限
    }
    V(mutex);
}

三、优先级倒置及解决方法(单选/简答)

1. 优先级倒置现象

  • 定义:高优先级进程被低优先级进程间接阻塞的现象
  • 发生场景 :
    1. 低优先级进程L占有资源R
    2. 高优先级进程H申请资源R被阻塞
    3. 中优先级进程M抢占CPU,导致L无法执行从而无法释放R
    4. 结果:H被M间接阻塞(H优先级 > M优先级 > L优先级)

2. 解决方法

  • 优先级继承 :当高优先级进程等待低优先级进程占有的资源时,低优先级进程临时继承高优先级,防止被中优先级进程抢占
  • 优先级天花板 :为每个资源设置一个优先级天花板(可能使用该资源的最高优先级),当进程获得资源时,将其优先级提升到天花板优先级

四、死锁(简答题必考!)

1. 死锁概念

  • 定义:多个进程因竞争资源而造成的一种互相等待,若无外力作用,这些进程都无法向前推进
  • 产生原因 :
    1. 资源竞争
    2. 进程推进顺序不当

2. 死锁的四个必要条件(必须同时满足)

  1. 互斥条件:资源一次只能被一个进程使用
  2. 请求与保持条件:进程在请求新资源时,保持对已有资源的占有
  3. 不可剥夺条件:进程已获得的资源在未使用完之前不能被强行剥夺
  4. 循环等待条件:存在一个进程-资源的循环等待链

速记口诀 :"互请勿循"(互斥、请求与保持、不可剥夺、循环等待)

3. 死锁的预防(破坏必要条件)

  • 破坏互斥条件:将独占资源改造成共享资源(不现实,如打印机无法共享)
  • 破坏请求与保持条件 :一次性分配策略(静态分配),进程运行前申请所有资源
  • 破坏不可剥夺条件:允许抢占资源(进程资源可被剥夺)
  • 破坏循环等待条件 :顺序资源分配法(给资源编号,进程必须按编号顺序申请)

4. 死锁的避免(银行家算法)

  • 安全状态:系统能按某种顺序为每个进程分配资源,直至满足所有进程的最大需求,使每个进程都能顺利完成
  • 银行家算法步骤 :
    1. 检查请求是否超过进程的最大需求
    2. 检查请求是否超过系统可用资源
    3. 试探性分配,修改系统状态
    4. 执行安全性算法,检查是否安全
    5. 安全则分配,不安全则让进程等待

5. 死锁的检测与解除

  • 检测:资源分配图化简法
  • 解除 :
    1. 资源剥夺法:从其他进程剥夺资源给死锁进程
    2. 撤销进程法:撤销部分或全部死锁进程
    3. 进程回退法:让进程回退到避免死锁的状态

题型预测与答题技巧

单选题(5题)预测:

  1. 同步与互斥的区别
  2. 信号量S<0时的含义(绝对值表示等待进程数)
  3. 死锁的必要条件之一(如循环等待条件)
  4. 优先级倒置的解决方法(优先级继承)
  5. PV操作中P、V的含义

判断题(1题)预测:

  • 可能考点:死锁的必要条件(如"死锁产生的原因是资源不足",×,还有进程推进顺序不当)
  • 可能考点:信号量初值含义(如"信号量初值为负数表示有进程等待",×,初值不能为负)

简答题(3题)预测:

  1. 死锁的四个必要条件(极高概率)
  2. 如何预防死锁(破坏四个条件的方法)
  3. 同步与互斥的区别 或 优先级倒置及解决方法

综合题(2题)预测:

  1. PV操作题:生产者-消费者、读者-写者、前趋图(必须掌握模板!)
  2. 银行家算法题:判断安全状态、处理资源请求

5分钟极速记忆法

  1. 同步 vs 互斥

    • 同步:你先我后(合作关系)
    • 互斥:不能一起用(竞争关系)
  2. PV操作

    • P:申请资源(-1操作)
    • V:释放资源(+1操作)
    • 信号量S:正数=可用资源,负数=等待进程数
  3. 死锁四条件 :"互请勿循"

    • 互斥、请求与保持、不可剥夺、循环等待
  4. 预防死锁:

    • 破坏请求与保持:一次性分配
    • 破坏循环等待:按序申请
  5. 优先级倒置:高优先级被低优先级间接阻塞

    • 解决:优先级继承(低优先级临时继承高优先级)

综合题答题模板

PV操作题答题步骤:

  1. 分析关系:找出同步关系和互斥关系
  2. 定义信号量 :
    • 互斥信号量:mutex,初值1
    • 同步信号量:根据条件设置,初值通常为0或n
  3. 写出伪代码:按模板填写
  4. 检查:确保P、V操作成对出现

银行家算法题答题步骤:

  1. 列出已知:可用资源、最大需求、已分配、还需资源
  2. 安全性检查 :
    • 找还需资源 ≤ 可用资源的进程
    • 假定完成,释放资源,更新可用资源
    • 重复直到所有进程完成(安全)或找不到(不安全)
  3. 资源请求处理 :
    • 检查请求 ≤ 还需资源
    • 检查请求 ≤ 可用资源
    • 试探分配后检查安全性

第四章 处理机调度 - 极速冲刺版

一、调度算法分类与特点(简答题必考!)

1. 先来先服务(FCFS)

算法规则 :按作业/进程到达顺序排队,先到先服务
特点:

  • 最简单的调度算法
  • 不可抢占
  • 对长作业有利,对短作业不利
  • 可能产生"饥饿"现象吗?不会!(但短作业要等长作业)

缺点:

  1. 平均等待时间较长
  2. 不利于短作业(短作业可能等待很长时间)
  3. 不利于I/O型作业(CPU密集型作业会长时间占用CPU)

例子:

复制代码
作业到达顺序:P1(24ms)、P2(3ms)、P3(3ms)
执行顺序:P1→P2→P3
等待时间:P1=0, P2=24, P3=27
平均等待时间:(0+24+27)/3=17ms

2. 短进程优先(SPF)/短作业优先(SJF)

算法规则 :选择预计运行时间最短的作业/进程
特点:

  • 可抢占 (最短剩余时间优先,SRTF)和不可抢占两种
  • 平均等待时间最短(理论最优)
  • 对长作业不利,可能产生"饥饿"现象

缺点:

  1. 需要预知作业运行时间(实际难以准确估计)
  2. 长作业可能永远得不到调度(饥饿)

例子:

复制代码
作业:P1(6ms)、P2(8ms)、P3(7ms)、P4(3ms)
按SPF顺序:P4(3ms)→P1(6ms)→P3(7ms)→P2(8ms)

3. 时间片轮转(RR)

算法规则 :将CPU时间分成固定大小的时间片,按FCFS排队,每个进程执行一个时间片
特点:

  • 专为分时系统设计
  • 可抢占
  • 时间片大小影响性能:
    • 时间片太大→退化为FCFS
    • 时间片太小→上下文切换开销过大

优点:

  1. 公平性好
  2. 响应时间快,适合交互式系统

缺点:

  1. 平均等待时间可能较长
  2. 上下文切换开销

4. 高响应比优先(HRRN)

算法规则 :选择响应比最高的进程
响应比公式:

复制代码
响应比 = (等待时间 + 要求服务时间) / 要求服务时间
        = 1 + (等待时间 / 要求服务时间)

特点:

  • 非抢占式
  • 兼顾了FCFS和SPF的优点
    • 短作业等待时间短→响应比高
    • 长作业等待时间增加→响应比提高,避免饥饿
  • 不会产生饥饿

5. 多级反馈队列(MFQ)

算法规则(必须背熟,简答题高频!):

  1. 设置多个就绪队列,每个队列优先级不同
  2. 队列优先级越高,时间片越小(如Q1: 8ms, Q2: 16ms, Q3: FCFS)
  3. 新进程进入最高优先级队列(队列1)
  4. 进程用完当前队列时间片还未完成,则降到下一级队列
  5. 只有高优先级队列为空时,才调度低优先级队列
  6. 在低优先级队列中等待时间过长的进程可能被提升优先级(防止饥饿)

特点:

  • 综合了多种算法优点
  • 对交互型作业友好(短作业快速完成)
  • 对CPU密集型作业友好(长作业最终能得到执行)
  • 现代操作系统常用(如UNIX、Windows)

二、调度相关指标计算(必考计算)

关键指标:

  1. 周转时间 = 完成时间 - 到达时间
  2. 带权周转时间 = 周转时间 / 服务时间
  3. 平均周转时间 = 所有作业周转时间之和 / 作业数
  4. 平均带权周转时间 = 所有带权周转时间之和 / 作业数

带权周转时间意义:衡量作业的相对等待时间,值越小越好(≥1)

计算例子(FCFS算法):

复制代码
作业  到达时间  服务时间  开始时间  完成时间  周转时间  带权周转时间
P1     0        8         0        8        8        1.0
P2     1        4         8        12       11       2.75
P3     2        9         12       21       19       2.11

平均周转时间 = (8+11+19)/3 = 12.67
平均带权周转时间 = (1.0+2.75+2.11)/3 = 1.95

计算步骤:

  1. 按算法确定执行顺序
  2. 计算开始时间(上一个的完成时间,但要考虑到达时间)
  3. 完成时间 = 开始时间 + 服务时间
  4. 周转时间 = 完成时间 - 到达时间
  5. 带权周转时间 = 周转时间 / 服务时间

三、进程调度的任务与方式

1. 进程调度的任务

  • 保存当前运行进程的现场(PCB)
  • 按调度算法从就绪队列选择下一个进程
  • 为选中进程恢复现场

2. 调度方式

  1. 非抢占式:

    • 进程主动放弃CPU(完成、等待I/O)
    • 实现简单,系统开销小
    • 响应时间可能较长
    • 例子:FCFS、SPF(非抢占)、HRRN
  2. 抢占式:

    • 系统可强行剥夺正在运行进程的CPU
    • 响应时间快,适合交互系统
    • 实现复杂,系统开销大
    • 例子:RR、SPF(抢占式)、多级反馈队列

四、调度算法对作业的影响

不同算法比较表(简答题模板)

算法 特点 优点 缺点 适用场景
FCFS 先到先服务,不可抢占 简单、公平 平均等待时间长,不利于短作业 早期批处理系统
SJF/SPF 最短作业优先,可抢占/不可抢占 平均等待时间最短 需要预知时间,长作业可能饥饿 批处理系统
RR 时间片轮转,可抢占 响应快、公平 时间片大小敏感,上下文切换开销 分时系统
HRRN 高响应比优先,不可抢占 兼顾长短作业,无饥饿 需要计算响应比 批处理系统
MFQ 多级队列,可抢占 综合性能好,灵活 算法复杂,参数设置影响大 通用操作系统

题型预测与答题技巧

单选题(3题)预测:

  1. 问某种算法的特点(如"RR算法中,时间片太大时相当于什么算法?"→FCFS)
  2. 问调度方式(抢占式 vs 非抢占式)
  3. 问带权周转时间的计算或含义

简答题(3题)预测:

  1. 比较FCFS和RR算法(或比较几种算法)
  2. 多级反馈队列的工作原理(极高概率!)
  3. 高响应比优先算法的原理和优点

判断题(1题)预测:

  • 可能考点:SJF算法能保证最短平均等待时间(√)
  • 可能考点:时间片轮转算法会产生饥饿现象(×,不会)
  • 可能考点:多级反馈队列中,低优先级队列的时间片更小(×,应该是更大或FCFS)

5分钟极速记忆法

  1. 五个算法特点:

    • FCFS:排队买票,先来先买
    • SJF:谁快谁先(但长的可能饿死)
    • RR:轮流坐庄,每人一小会儿
    • HRRN:等得越久,优先级越高(照顾老人)
    • 多级反馈:新人优先,做不完降级
  2. 关键公式:

    • 周转时间 = 完成 - 到达
    • 带权周转时间 = 周转时间 / 服务时间
    • 响应比 = 1 + 等待时间/服务时间
  3. 重要结论:

    • SJF平均等待时间最短(理论上)
    • RR适合交互系统
    • 多级反馈是现代OS常用的
    • HRRN不会饿死长作业

简答题答题模板

模板1:比较两种算法

复制代码
一、算法原理
  FCFS:按到达顺序排队...
  RR:将CPU时间分成时间片...

二、主要区别
  1. 调度方式:FCFS非抢占,RR抢占
  2. 响应时间:FCFS可能较长,RR响应快
  3. 适用场景:FCFS适合批处理,RR适合分时

三、优缺点
  FCFS优点:简单、公平;缺点:平均等待时间长
  RR优点:响应快;缺点:上下文切换开销大

模板2:多级反馈队列工作原理

复制代码
一、队列设置
  设置多个优先级不同的就绪队列,优先级越高时间片越小。

二、调度规则
  1. 新进程进入最高优先级队列
  2. 进程用完当前队列时间片未完成,则降级到下一队列
  3. 高优先级队列为空时,才调度低优先级队列
  4. 可设置老化机制,防止低优先级队列进程饥饿

三、优点
  1. 综合多种算法优点
  2. 短作业快速响应
  3. 长作业最终能完成
  4. 灵活可配置

模板3:高响应比优先算法

复制代码
一、响应比公式
  响应比 = 1 + 等待时间/要求服务时间

二、调度规则
  每次选择响应比最高的进程运行

三、优点
  1. 兼顾长短作业:短作业等待时间短,响应比高;长作业等待时间增加,响应比提高
  2. 不会产生饥饿现象
  3. 无需预知作业运行时间

四、缺点
  需要计算响应比,增加系统开销

计算题步骤

已知: 作业到达时间、服务时间、调度算法
求: 平均周转时间、平均带权周转时间

步骤:

  1. 确定顺序:根据算法决定作业执行顺序
  2. 画时间线 :
    • 开始时间 = max(到达时间, 上一个作业完成时间)
    • 完成时间 = 开始时间 + 服务时间
  3. 计算 :
    • 周转时间 = 完成时间 - 到达时间
    • 带权周转时间 = 周转时间 / 服务时间
  4. 求平均 :
    • 平均周转时间 = 总和 / 作业数
    • 平均带权周转时间 = 总和 / 作业数

第五章 存储器管理 - 极速冲刺版

一、地址重定位(逻辑地址转物理地址)

1. 概念:

  • 逻辑地址:程序编译链接后生成的地址,从0开始编址。
  • 物理地址:内存中的实际地址。
  • 地址重定位:将逻辑地址转换为物理地址的过程。

2. 两种重定位方式:

  • 静态重定位:

    • 在程序装入内存时一次性完成地址转换
    • 程序运行期间不能在内存中移动
    • 实现简单,无硬件支持要求
  • 动态重定位:

    • 在程序执行期间进行地址转换(每条指令执行时)
    • 需要硬件支持(基址寄存器)
    • 程序可在内存中移动,便于内存管理
    • 现代操作系统常用方式

考试重点 :动态重定位更灵活,支持程序移动和内存紧凑

二、存储管理方案分类

(一)连续分配:程序在内存中连续存放

1. 固定分区:
  • 内存预先划分为若干个固定大小的分区
  • 内部碎片:分区内未被利用的空间(分区已分配但作业较小)
  • 例子:分区大小分为小、中、大三种
2. 可变分区:
  • 根据作业大小动态创建分区
  • 外部碎片:分区之间的零散小空间,无法被利用
  • 分配算法 :
    • 首次适应:从低地址开始找第一个够用的分区(速度快)
    • 最佳适应:找大小最接近的分区(产生小碎片多)
    • 最坏适应:找最大的分区(减少小碎片)
3. 拼接技术(紧凑):
  • 将内存中多个分散的空闲区合并成一个大的空闲区
  • 需要动态重定位支持(因为程序地址会改变)
  • 开销大,不宜频繁进行

(二)非连续分配:程序分散在内存中

1. 页式存储管理(重点!)
  • 基本思想 :
    • 逻辑空间和物理空间都划分为固定大小的页(页面)
    • 页面大小通常为2的幂(如4KB)
  • 逻辑地址结构 :页号P + 页内偏移W
  • 页表:实现页号→物理块号的映射
  • 特点 :
    • 无外部碎片,有内部碎片(平均半页)
    • 内存利用率高,管理简单
    • 需要两次访存(查页表+取数据),用快表TLB加速
2. 段式存储管理
  • 基本思想:按逻辑单位(模块)划分,每段长度可变
  • 逻辑地址结构 :段号S + 段内偏移W
  • 段表:包含段基址和段长(用于越界检查)
  • 特点 :
    • 有外部碎片,无内部碎片
    • 便于共享和保护(以段为单位)
    • 符合程序逻辑结构
3. 段页式存储管理(结合两者优点)
  • 基本思想:先分段,每段内再分页
  • 逻辑地址结构 :段号S + 段内页号P + 页内偏移W
  • 需要段表 和页表(每个段一个页表)
  • 特点 :
    • 结合段式和页式优点
    • 便于共享保护,且无外部碎片
    • 地址转换复杂,开销大

【页式 vs 段式 对比表】(简答题高频!)

对比项 页式管理 段式管理
划分单位 物理单位(固定大小) 逻辑单位(可变长度)
地址空间 一维 二维
碎片 内部碎片 外部碎片
共享保护 不易实现 容易实现
表结构 页表(页号→块号) 段表(段基址、段长)
优势 内存利用率高,管理简单 符合程序结构,便于共享

三、虚拟存储的特征(简答题必背!)

三大特征:

  1. 多次性:一个作业被分成多次调入内存运行(区别于传统的一次性装入)
  2. 对换性:允许在运行过程中换进换出(作业不必常驻内存)
  3. 虚拟性:从逻辑上扩充内存容量,使用户感觉内存远大于实际

一句话 :虚拟存储是基于局部性原理,通过请求调入和置换功能实现的逻辑内存扩充技术

四、局部性原理及其应用

两种局部性:

  1. 时间局部性 :刚被访问的单元不久可能再次被访问
    • 原因:循环、递归等程序结构
  2. 空间局部性 :刚被访问单元附近的单元不久可能被访问
    • 原因:顺序执行、数组访问

应用:

  • 虚拟存储技术的基础
  • 高速缓存(Cache)的设计依据
  • 预取技术(Prefetching)

五、请求分页系统

1. 页表字段扩展:

在基本页表(页号→块号)基础上增加:

  • 状态位/有效位:表示该页是否在内存中
  • 访问字段:记录访问次数或时间,用于页面置换
  • 修改位(脏位):表示该页是否被修改过(置换时是否需要写回外存)
  • 外存地址:该页在外存中的位置

2. 抖动(颠簸)

  • 定义:进程频繁进行页面置换,大部分时间花在页面调入调出,系统效率急剧下降
  • 原因:进程分配的物理块太少,无法容纳其工作集
  • 防止方法 :
    1. 采用局部置换策略(只置换自己的页面)
    2. 引入工作集模型,保证足够物理块
    3. 调整多道程序度(减少并发进程数)
    4. 使用合适的页面置换算法(如LRU)

六、页面置换算法(综合题可能考!)

1. 最佳置换算法(OPT)

  • 规则:淘汰未来最长时间内不再被访问的页面
  • 特点:理论最优,无法实际实现(需要预知未来)
  • 用途:作为评价其他算法的基准

2. 先进先出(FIFO)

  • 规则:淘汰最早进入内存的页面
  • 特点 :
    • 实现简单(队列)
    • 可能产生Belady异常:增加物理块数,缺页率反而上升
    • 性能较差

3. 最近最久未使用(LRU)

  • 规则:淘汰最近最长时间未被访问的页面
  • 特点 :
    • 性能接近OPT
    • 实现复杂(需要硬件支持:移位寄存器或栈)
    • 不会出现Belady异常

4. 时钟置换算法(Clock/NRU)

  • 规则 :
    1. 每页设置一个访问位,被访问时置1
    2. 指针循环扫描,访问位=0则淘汰,=1则置0并继续
  • 特点:LRU的近似实现,开销较小,实际系统常用

【算法对比表】

算法 规则 特点 实现难度 是否Belady异常
OPT 未来最久不用 理论最优 不可实现 否
FIFO 先进先出 简单,性能差 易 是
LRU 最近最久未用 性能好 难 否
Clock 访问位为0淘汰 近似LRU 中等 否

七、页式存储地址转换计算(综合题必考!)

1. 基本转换步骤:

已知 :逻辑地址LA,页面大小L,页表
求:物理地址PA

步骤:

  1. 计算页号和页内偏移 :
    • 页号 P = LA / L
    • 页内偏移 W = LA % L
  2. 查页表:用P查页表,得物理块号B
  3. 计算物理地址:PA = B × L + W

注意:页面大小L通常是2的幂,如4KB=4096=2^12,则偏移占12位

2. 带快表(TLB)的地址转换:

  • 快表:高速缓存,存放最近使用的页表项

  • 有效访问时间(EAT)计算 :

    复制代码
    EAT = 命中率 × (访问快表时间 + 访问内存时间)
          + 未命中率 × (访问快表时间 + 访问页表时间 + 访问内存时间)
  • 通常假设 :

    • 访问快表时间忽略不计(或很小)
    • 访问页表需要一次内存访问
    • 访问数据需要一次内存访问

举例 :

快表命中率80%,访问内存时间100ns,访问快表时间20ns

复制代码
EAT = 0.8×(20+100) + 0.2×(20+100+100) = 0.8×120 + 0.2×220 = 96+44=140ns

3. 缺页中断处理:

如果页面不在内存中(状态位=0),则发生缺页中断:

  1. 从外存调入所需页面
  2. 如果内存满,按置换算法淘汰一页
  3. 如果淘汰页被修改过(脏位=1),需写回外存
  4. 更新页表
  5. 重新执行被中断的指令

缺页处理时间包括磁盘I/O时间,通常很长(毫秒级)


题型预测与答题技巧

单选题(9题)预测:

  1. 地址重定位方式(动态重定位特点)
  2. 碎片类型(固定分区→内部碎片,可变分区→外部碎片)
  3. 分配算法特点(首次适应、最佳适应比较)
  4. 页式管理优点(无外部碎片)
  5. 段式管理优点(便于共享)
  6. 虚拟存储特征(三大特征)
  7. 局部性原理(时间局部性 vs 空间局部性)
  8. 页面置换算法(FIFO的Belady异常)
  9. 快表作用(减少访存次数)

多选题(3题)预测:

  1. 虚拟存储的特征(多次性、对换性、虚拟性)
  2. 页面置换算法对比(哪些会产生Belady异常)
  3. 存储管理方案分类(连续、非连续)

简答题(4题)预测:

  1. 虚拟存储器的特征(极高概率)
  2. 分页和分段的主要区别(极高概率)
  3. 抖动的原因和防止方法
  4. 页面置换算法原理(如LRU、Clock)

综合题(1题)预测:

  1. 页式地址转换计算(给逻辑地址、页表、页面大小,求物理地址,可能含快表)
  2. 页面置换算法应用(给访问序列和物理块数,计算缺页次数和缺页率)

5分钟极速记忆法

  1. 地址重定位:

    • 静态:装入时转换,不能移动
    • 动态:执行时转换(基址寄存器),能移动
  2. 存储管理:

    • 连续分配:固定分区(内碎片)、可变分区(外碎片)
    • 非连续:页式(固定大小,页表)、段式(变长,段表)、段页式(结合)
  3. 虚拟存储三大特征 :多(多次性)对(对换性)虚(虚拟性)

  4. 局部性原理:

    • 时间局部性:刚用的再用(循环)
    • 空间局部性:用旁边的(数组)
  5. 页面置换算法:

    • OPT:未来最久不用(理论最优)
    • FIFO:先进先出(Belady异常)
    • LRU:最近最久未用(性能好)
    • Clock:看访问位,为0淘汰
  6. 地址转换步骤:

    • 算页号、偏移
    • 查页表得块号
    • 物理地址=块号×页面大小+偏移

简答题答题模板

模板1:虚拟存储器的特征

复制代码
一、多次性:一个作业被分成多次调入内存运行,区别于传统的一次性装入。
二、对换性:允许作业在运行过程中换进换出,作业不必常驻内存。
三、虚拟性:从逻辑上扩充内存容量,使用户感觉到的内存容量远大于实际内存容量。

虚拟存储是基于局部性原理,通过请求调入和置换功能实现的逻辑内存扩充技术。

模板2:分页和分段的主要区别

复制代码
1. 划分单位:页是信息的物理单位,大小固定;段是信息的逻辑单位,长度可变。
2. 地址空间:页式地址空间是一维的;段式地址空间是二维的(段号+段内偏移)。
3. 碎片问题:页式有内部碎片,无外部碎片;段式有外部碎片,无内部碎片。
4. 共享保护:页式不易实现共享保护;段式便于实现,可以以段为单位进行共享和保护。
5. 管理方式:页式通过页表映射;段式通过段表映射(含段基址和段长)。

模板3:抖动的原因和防止方法

复制代码
抖动是指进程频繁进行页面置换,系统大部分时间花在页面调入调出上,效率急剧下降的现象。

主要原因:系统分配给进程的物理块太少,无法容纳其工作集。

防止方法:
1. 采用局部置换策略,避免一个进程的抖动影响其他进程。
2. 引入工作集模型,确保每个进程有足够的物理块。
3. 调整多道程序度,减少系统中并发执行的进程数。
4. 采用合适的页面置换算法,如LRU等。

模板4:LRU置换算法原理

复制代码
LRU(最近最久未使用)置换算法选择最近最长时间未被访问的页面予以淘汰。

原理依据:程序的局部性原理,认为过去一段时间内未访问的页面,在将来也可能不会被访问。

实现方法:
1. 计数器法:为每页设置计数器,访问时更新,选择计数器值最大的页面淘汰。
2. 栈法:维护一个访问顺序栈,访问页面时移到栈顶,淘汰栈底页面。

特点:性能接近最佳置换算法,但实现开销较大,需要硬件支持。

综合题解题步骤

类型一:地址转换计算

题目示例:逻辑地址0x3A7F,页面大小4KB,页表如下,求物理地址。

解题步骤:

  1. 确定页面大小:4KB=4096字节=2^12,所以页内偏移占12位
  2. 分离页号和偏移 :
    • 逻辑地址0x3A7F = 0011 1010 0111 1111(二进制)
    • 后12位是偏移:1010 0111 1111 = 0xA7F
    • 前几位是页号:0011 = 3(假设地址空间32位,具体看题目)
  3. 查页表:页号3对应的物理块号(假设为5)
  4. 计算物理地址 :
    • 物理块号5,偏移0xA7F
    • 物理地址 = 5×4096 + 0xA7F = 20480 + 2687 = 23167 = 0x5A7F

类型二:页面置换算法应用

题目示例:页面访问序列:1,2,3,4,1,2,5,1,2,3,4,5,物理块数=3,用FIFO算法求缺页次数和缺页率。

解题步骤:

  1. 画表:按访问顺序,记录物理块中页面变化

  2. 规则:先进先出,缺页时淘汰最早进入的

  3. 计算 :

    复制代码
    访问序列:1 2 3 4 1 2 5 1 2 3 4 5
    物理块3个:
    1: 1 (缺)   [1]
    2: 2 (缺)   [1,2]
    3: 3 (缺)   [1,2,3]
    4: 4 (缺)   淘汰1 → [2,3,4]
    1: 1 (缺)   淘汰2 → [3,4,1]
    2: 2 (缺)   淘汰3 → [4,1,2]
    5: 5 (缺)   淘汰4 → [1,2,5]
    1: 1 (在)   [1,2,5]
    2: 2 (在)   [1,2,5]
    3: 3 (缺)   淘汰1 → [2,5,3]
    4: 4 (缺)   淘汰2 → [5,3,4]
    5: 5 (在)   [5,3,4]
    
    缺页次数:9次
    缺页率:9/12=75%

LRU算法:记录最近访问时间,淘汰最久未访问的


第六章 设备管理 - 极速冲刺版

一、I/O设备控制方式(单选/判断/简答)

四种控制方式(按性能从低到高):

1. 程序直接控制方式(轮询)
  • 工作原理:CPU不断查询设备状态,直到设备准备好才进行数据传输。
  • 特点 :
    • CPU利用率极低(大量时间在等待和查询)
    • 实现简单
    • 适用于慢速设备
  • 数据流向:设备 → CPU寄存器 → 内存
2. 中断驱动方式
  • 工作原理:CPU发出I/O命令后继续执行其他任务,设备准备好后发出中断信号,CPU响应中断处理数据传输。
  • 特点 :
    • 提高了CPU利用率(不必轮询等待)
    • 但每次传输一个数据单位(字/字节)就要中断一次,开销仍然较大
  • 数据流向:设备 → CPU寄存器 → 内存
  • 适用场景:低速设备,如键盘、鼠标
3. DMA方式(直接存储器访问)
  • 工作原理 :在DMA控制器控制下,设备与内存直接交换数据,不需要CPU干预传输过程。
  • 特点 :
    • 数据传输单位是数据块
    • 仅在开始(设置参数)和结束(处理中断)时占用CPU
    • 需要DMA控制器硬件支持
  • 数据流向 :设备 ↔ DMA控制器 ↔ 内存(不经过CPU)
  • 适用场景:高速设备,如磁盘、光盘
4. 通道控制方式
  • 工作原理:通道是专门处理I/O的处理器,可执行通道程序,控制多台设备。
  • 特点:CPU干预最少,性能最高,实现最复杂。

速记口诀 :"轮询(程序控制) → 中断 → DMA → 通道"(性能越来越高,CPU干预越来越少)


二、中断驱动方式与DMA方式的应用场景(单选/判断)

中断驱动方式适用场景:

  • 低速设备:键盘、鼠标、串口
  • 数据量小:每次传输数据量不大
  • 原因:每传输一个单位数据就中断一次,如果数据量大,中断次数过多会严重降低CPU效率。

DMA方式适用场景:

  • 高速设备:磁盘、光盘、网卡(高速)
  • 数据量大:需要传输大量连续数据
  • 原因:以数据块为单位传输,传输过程不需要CPU参与,大大减少中断次数。

重要判断题:

  • "DMA方式下数据传输完全不需要CPU干预"(×,需要CPU初始化和结束处理)
  • "中断驱动方式适合高速设备"(×,适合低速设备)

三、设备控制器的基本功能(单选/简答)

设备控制器是CPU与设备之间的接口,接收CPU命令控制设备。六大功能:

  1. 接收和识别CPU命令:有命令寄存器存储命令,并能识别不同命令。
  2. 数据交换:实现CPU与控制器、控制器与设备之间的数据交换。
  3. 设备状态的了解和报告:状态寄存器记录设备状态(忙/闲/就绪/错误)。
  4. 地址识别:识别设备地址,让CPU能选择特定设备。
  5. 数据缓冲:提供数据缓冲区,缓解速度差异。
  6. 差错控制:检测和纠正数据传输中的错误。

速记口诀 :"接命令、换数据、报状态、认地址、缓数据、查错误"


四、设备标识(逻辑设备名、物理设备名)(单选)

物理设备名:

  • 系统用于唯一标识设备的名称
  • 与硬件直接相关,如/dev/sda1、COM1
  • 缺点:用户难以记忆,设备更换后名称可能变化

逻辑设备名:

  • 用户或程序使用的抽象设备名称
  • 与具体物理设备无关,如打印机1、显示器
  • 优点 :实现设备独立性,程序不用修改就能使用不同物理设备

映射关系:

复制代码
应用程序 → 逻辑设备名 → 设备无关软件 → 物理设备名 → 设备驱动程序 → 物理设备

关键点 :逻辑设备名到物理设备名的映射由设备无关软件完成,不是设备驱动程序。


五、设备无关软件的作用(简答题重点)

设备无关软件(设备独立性软件)位于设备驱动程序之上,主要作用:

  1. 统一接口:向上层提供统一的系统调用接口,隐藏设备细节。
  2. 设备命名与映射:管理逻辑设备名到物理设备名的映射,实现设备独立性。
  3. 设备保护:检查用户对设备的访问权限。
  4. 提供与设备无关的块大小:屏蔽不同设备的物理块大小差异。
  5. 缓冲区管理:提供缓冲区,协调CPU与设备速度差异。
  6. 错误报告:处理设备驱动程序返回的错误。
  7. 设备分配与释放:管理共享设备的分配和回收。

设备独立性的好处:

  • 方便编程:用户使用逻辑设备名,不用关心物理设备。
  • 易于扩展:增加新设备只需增加驱动程序,不影响上层。
  • 提高利用率:动态映射可将逻辑设备映射到空闲物理设备。

六、DMA方式的数据通路(单选/判断)

关键概念:

  • 数据流向 :设备 ↔ DMA控制器 ↔ 内存
  • 不经过CPU :数据传输过程中,数据不经过CPU寄存器,直接在设备和内存间传输。

DMA控制器与CPU共享内存的冲突解决:

  1. 停止CPU访问内存:DMA传输时,CPU停止访存(简单,但CPU性能受影响)。
  2. 周期窃取:DMA在CPU不访存的周期访问内存(常用)。
  3. 交替访存:将存储周期分成两个时间片,一个给CPU,一个给DMA。

DMA传输过程:

  1. 初始化:CPU设置DMA控制器参数(内存起始地址、设备地址、传输字节数)。
  2. 启动传输:CPU启动DMA,继续执行其他任务。
  3. 数据传输 :DMA控制器管理数据传输,一个字/字节地传输,但不需要CPU干预。
  4. 结束处理:传输完成,DMA控制器发中断给CPU,CPU进行后续处理。

重要区别:

  • 中断方式:数据经过CPU(设备→CPU→内存)。
  • DMA方式:数据不经过CPU(设备→内存)。

题型预测与答题技巧

单选题(4题)预测:

  1. 问哪种I/O控制方式CPU利用率最低(程序直接控制/轮询)。
  2. 问DMA方式的特点(数据传输不经过CPU,但需要初始化)。
  3. 问设备控制器的功能(如数据缓冲)。
  4. 问逻辑设备名的优点(设备独立性)。

判断题(2题)预测:

  1. "DMA方式下,数据传输完全不需要CPU干预"(×,需要初始化和结束处理)。
  2. "中断驱动方式适用于磁盘等高速设备"(×,适用于低速设备)。
  3. "设备无关软件位于设备驱动程序之上"(√)。
  4. "逻辑设备名到物理设备名的映射由设备驱动程序完成"(×,由设备无关软件完成)。

简答题(2题)预测:

  1. 设备无关软件的作用(极高概率!)
  2. 比较中断驱动方式和DMA方式(或问DMA工作原理)

5分钟极速记忆法

  1. I/O控制方式四兄弟:

    • 轮询(程序控制):CPU傻等,效率最低
    • 中断:设备叫CPU一下,但太频繁(每传一个就叫)
    • DMA:雇了个管家,CPU只需要吩咐,管家自己搬数据
    • 通道:雇了个专业经理,能管多个设备
  2. 设备控制器功能 :"接命令、换数据、报状态、认地址、缓数据、查错误"

  3. 设备标识:

    • 物理设备名:身份证号(唯一但难记)
    • 逻辑设备名:外号(好记,可以换人对应)
  4. 设备无关软件作用:

    • 统一接口、设备映射、设备保护
    • 缓冲区、错误处理、设备分配
  5. DMA数据通路 :设备 ↔ DMA ↔ 内存(不经过CPU)


简答题答题模板

模板1:设备无关软件的作用(必背!)

复制代码
设备无关软件,也称为设备独立性软件,位于设备驱动程序之上,其主要作用包括:

一、提供统一接口:向上层应用程序提供统一的系统调用接口,隐藏不同设备的细节差异。

二、设备命名与映射:管理逻辑设备名到物理设备名的映射,实现设备独立性。用户使用逻辑设备名,系统自动映射到具体物理设备。

三、设备保护:检查用户对设备的访问权限,防止非法访问。

四、提供与设备无关的块大小:屏蔽不同设备的物理块大小差异,向上提供统一的逻辑块大小。

五、缓冲区管理:提供缓冲区,协调CPU与设备之间的速度差异,提高系统性能。

六、错误报告:处理设备驱动程序返回的错误,并以统一方式向上层报告。

七、设备分配与释放:管理共享设备的分配和回收,提高资源利用率。

设备独立性的好处:方便用户编程、提高系统可扩展性、提高资源利用率。

模板2:比较中断驱动方式和DMA方式

复制代码
中断驱动方式和DMA方式的主要区别如下:

一、数据传输单位:
   - 中断驱动方式:每次传输一个数据单位(字或字节)。
   - DMA方式:每次传输一个数据块。

二、CPU介入程度:
   - 中断驱动方式:每传输一个单位数据都需要CPU介入(执行中断服务程序)。
   - DMA方式:仅在传输开始前(CPU设置DMA控制器参数)和传输结束后(DMA控制器发中断)需要CPU介入,数据传输过程由DMA控制器管理,不需要CPU干预。

三、适用场景:
   - 中断驱动方式:适用于低速设备,如键盘、鼠标。
   - DMA方式:适用于高速设备,如磁盘、光盘。

四、系统开销:
   - 中断驱动方式:中断次数多,CPU开销大。
   - DMA方式:大大减少了CPU开销,提高了系统并行性。

五、实现复杂度:
   - 中断驱动方式:实现相对简单。
   - DMA方式:需要DMA控制器硬件支持,实现复杂。

模板3:DMA方式的工作原理

复制代码
DMA(直接存储器访问)方式是一种高效的I/O控制方式,其工作原理如下:

一、传输前准备:
   1. CPU设置DMA控制器参数:内存起始地址、设备地址、传输字节数等。
   2. CPU启动DMA传输,然后继续执行其他任务。

二、数据传输过程:
   1. DMA控制器接管总线控制权。
   2. 数据直接在设备和内存之间传输,不经过CPU。
   3. 每传输一个单位(字或字节),DMA控制器修改地址和计数器。

三、传输结束处理:
   1. 传输完成,DMA控制器向CPU发出中断请求。
   2. CPU响应中断,进行后续处理(如校验数据等)。

DMA方式的特点:
   1. 数据传输以数据块为单位。
   2. 传输过程中不需要CPU干预,大大减少了CPU开销。
   3. 需要DMA控制器硬件支持。
   4. 适用于高速、大数据量传输。

相关推荐
killerbasd17 小时前
总结 10.09
考研
流浪00117 小时前
Linux系统篇47——线程(十二) POSIX 信号量与环形队列,把判空判满提前到访问之前
linux·操作系统·线程·信号量·环形队列
openEuler社区2 天前
openEuler 26.09创新版本发布,深化全场景创新
开源·操作系统·openeuler
m0_565827373 天前
定语从句,考研长难句头号考点
考研
m0_565827373 天前
名词性从句,考研长难句核心考点
考研
killerbasd3 天前
总结 10.08
考研
云计算练习生3 天前
什么是操作系统的体系结构?宏内核、微内核与外核
操作系统·内核·外核·操作系统结构
南风微微吹4 天前
考研数学一、二、三历年真题及答案解析PDF(1987-2026年)
考研·pdf
killerbasd4 天前
总结 10.07
考研
流浪0014 天前
Linux系统篇44——线程(九) 互斥锁的接口与原理,从 xchgb 的原子交换说起
linux·操作系统·线程·互斥锁·互斥锁原理