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

前言:本章是基于我们的期末考试范围以及高频考点总结的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/sda1COM1
  • 缺点:用户难以记忆,设备更换后名称可能变化

逻辑设备名

  • 用户或程序使用的抽象设备名称
  • 与具体物理设备无关,如打印机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. 适用于高速、大数据量传输。

相关推荐
彩妙不是菜喵2 天前
操作系统中的Linux:进程详解--->(深入浅出)从入门到精通
linux·操作系统
农民真快落2 天前
【操作系统】手撸xv6操作系统——types.h/param.h/memlayout.h/riscv.h/defs.h头文件解析
操作系统·risc-v·嵌入式软件·xv6
seasonsyy2 天前
为虚拟机分配内存和磁盘容量
windows·操作系统·内存·vmware·磁盘空间
想用offer打牌2 天前
一站式讲清IO多路复用(轻松愉悦版)
后端·面试·操作系统
seasonsyy3 天前
在虚拟机中安装操作系统需要U盘吗?
windows·操作系统·vmware·虚拟机
羊小猪~~3 天前
数据库学习笔记(十九)--C/C++调用MYSQL接口
数据库·笔记·后端·sql·学习·mysql·考研
fakerth3 天前
【OpenHarmony】升级服务组件(UpdateService)
操作系统·openharmony
XQ丶YTY3 天前
javaee程序设计 中南民族大学 复习
java·程序设计·javaee·期末·复习·速成·中南民族大学
fakerth3 天前
【OpenHarmony】Updater 升级包安装组件
操作系统·openharmony