Skip to content

《操作系统》第二学期期末试卷A (精选05)

一、 选择题(每题 1 分,共 25 分)

  1. 在下列选项中,( )不属于操作系统提供给用户的可使用资源。
    • A. 中断机制
    • B. 处理机
    • C. 存储器
    • D. I/O 设备
查看答案与解析

答案:A

解析: 本题考查操作系统的资源管理功能。 操作系统管理的资源主要包括:处理机(CPU)、存储器(内存)、I/O 设备以及文件(数据资源)。

  • B, C, D 选项 均属于硬件资源,是由操作系统分配给用户程序使用的。
  • A 逆向考查 中断机制是操作系统内部实现并发控制、设备交互和异常处理的硬件与软件交互机制,不属于可分配给用户的“资源”。

故选 A


难度: ⭐ 考点: #操作系统资源 #中断机制

💡 学习锦囊

📖 相关公式与知识点:

  • 操作系统的五大管理功能:处理机管理、存储器管理、设备管理、文件管理、用户接口。

思路分析

区分“机制”与“资源”。资源是实实在在被分配的对象,机制是底层的控制手段。

🔄 举一反三
  1. 下列选项中,属于操作系统提供给用户的逻辑资源的是( )。

    • A. 打印机
    • B. 内存
    • C. 共享文件
    • D. CPU
      查看练习答案与解析

      答案:C 解析:文件属于软件/逻辑资源。

      :::: ::::
  1. 实时操作系统必须在( )内处理完来自外部的事件。

    • A. 一个机器周期
    • B. 被控对象规定时间
    • C. 周转时间
    • D. 时间片
查看答案与解析

答案:B

解析: 实时操作系统(RTOS)的核心特征是及时性可靠性。它要求必须在**被控对象规定的时间(截止时间)**内响应并处理完毕。

故选 B


难度: ⭐ 考点: #实时操作系统 #及时性

💡 学习锦囊

📖 相关公式与知识点:

  • 硬实时:绝不能超时。
  • 软实时:偶尔可超时。

易错点

易与追求时间片轮转的分时系统混淆。

🔄 举一反三
  1. 实时系统最主要的目标是( )。

    • A. 提高资源利用率
    • B. 保证及时响应与处理
    • C. 提升用户交互体验
    • D. 节省硬件功耗
      查看练习答案与解析

      答案:B

      :::: ::::
  1. 下列说法中,正确的是( )。

    • A. Linux 系统采用了微内核结构模型
    • B. OpenEuler 系统采用了层次结构模型
    • C. 华为鸿蒙操作系统是一款面向全场景的分布式操作系统
    • D. Windows系统采用了整体式结构模型
查看答案与解析

答案:C

解析:

  • A/B 选项:Linux 及 OpenEuler 均属宏内核
  • C 选项:鸿蒙基于微内核,面向全场景分布式。

故选 C


难度: ⭐⭐ 考点: #操作系统架构 #微内核

💡 学习锦囊

思路分析

关注国产系统及现代分布式架构。

🔄 举一反三
  1. 微内核架构的主要缺点是( )。

    • A. 灵活性差
    • B. 扩展困难
    • C. 进程间通信开销大
    • D. 硬件移植繁复
      查看练习答案与解析

      答案:C

      :::: ::::
  1. 操作系统通常为用户提供多种接口,其中( )是专门给批处理系统用户使用。

    • A. shell 命令
    • B. 图形用户窗口
    • C. 系统调用
    • D. 作业控制语言
查看答案与解析

答案:D

解析: 作业控制语言(JCL)专门用于脱机批处理作业的控制说明。

故选 D


难度: ⭐ 考点: #用户接口 #批处理

💡 学习锦囊

📖 相关公式与知识点:

  • 操作系统提供的用户接口类型:命令接口(CLI)、图形接口(GUI)、程序接口(系统调用)、批处理接口(JCL)。
  • 系统调用是用户程序请求内核服务的唯一入口。

思路分析

区分各类接口的适用场景:JCL 专用于批处理,系统调用供程序员使用。

🔄 举一反三
  1. 程序员在编写代码时请求内核服务,需使用( )。

    • A. GUI
    • B. 系统调用
    • C. CLI命令
    • D. 汇编指令
      查看练习答案与解析

      答案:B

      :::: ::::
  1. 在单处理器系统中,不能并行的是( )。

    • A. 进程与进程
    • B. 处理器与设备
    • C. 处理器与通道
    • D. 设备与设备
查看答案与解析

答案:A

解析: 单核 CPU 微观上在任一时刻只能执行一条指令,故进程间只能并发,不能并行

故选 A


难度: ⭐ 考点: #并发与并行

💡 学习锦囊

📖 相关公式与知识点:

  • 并发:逻辑上的同时,单核 CPU 通过快速切换实现。
  • 并行:物理上的同时,需要多核 CPU 或多台处理机。
  • 单核系统中进程只能并发,不能并行。

易错点

并发是伪同时,并行是真同时。单核无并行。

🔄 举一反三
  1. 并行的核心硬件条件是具备( )。

    • A. 大容量内存
    • B. 多个独立处理器或核心
    • C. 高速 I/O 设备
    • D. 高级总线
      查看练习答案与解析

      答案:B

      :::: ::::
  1. 下列指令中,只能在管态下执行的有( )。 Ⅰ. 清空内存 Ⅱ. 设置时钟 Ⅲ. I/O 指令 Ⅳ. 访管指令

    • A. Ⅰ、Ⅱ、Ⅲ
    • B. Ⅰ、Ⅱ、Ⅲ、Ⅳ
    • C. Ⅱ、Ⅲ、Ⅳ
    • D. Ⅰ、Ⅱ、Ⅳ
查看答案与解析

答案:A

解析:

  • 特权指令:只能在管态(核心态)执行。Ⅰ(涉及内存保护)、Ⅱ(涉及系统时钟)、Ⅲ(涉及设备控制)均为特权指令。
  • 非特权指令:用户态即可执行。Ⅳ 访管指令(Trap)是供用户程序发起系统调用的手段,必须在目态执行。

故选 A


难度: ⭐⭐ 考点: #特权指令 #访管指令

💡 学习锦囊

易错点

误以为发起系统调用的“访管指令”在内核中运行,实际上它在用户态执行,用于触发状态切换。

🔄 举一反三
  1. 下列不属于特权指令的是( )。

    • A. 关中断
    • B. 读系统时钟
    • C. 清内存
    • D. 修改页表基址
      查看练习答案与解析

      答案:B 解析:读时钟通常允许用户态执行,但“设置/修改”时钟是特权指令。

      :::: ::::
  1. 处理 I/O 中断时,应该由操作系统保存的是( )。

    • A. 程序状态字内容
    • B. 通用寄存器的内容
    • C. 快表(TLB)中的内容
    • D. Cache 中的内容
查看答案与解析

答案:B

解析:

  • 硬件隐指令:自动保存程序计数器(PC)和程序状态字(PSW)。
  • 操作系统软件:负责在中断服务程序起始阶段,将通用寄存器的内容压栈保存。

故选 B


难度: ⭐⭐ 考点: #中断上下文 #通用寄存器

💡 学习锦囊

📖 相关公式与知识点:

  • 中断发生时,硬件隐指令自动保存:程序计数器(PC)、程序状态字(PSW)。
  • 操作系统软件负责保存:通用寄存器内容。
  • 中断返回时恢复现场,继续执行被中断的进程。

易错点

硬件保存 PC/PSW,软件保存通用寄存器,两者分工不同,切勿混淆。

🔄 举一反三
  1. 发生中断时,用于指示中断返回后继续执行指令的寄存器是( )。

    • A. PSW
    • B. PC
    • C. SP
    • D. BR
      查看练习答案与解析

      答案:B

      :::: ::::
  1. 系统调用的执行过程主要有: $\textcircled{1}$ 返回用户态; $\textcircled{2}$ 执行访管指令; $\textcircled{3}$ 传递系统调用参数;$\textcircled{4}$ 执行相应的服务例程,则正确的执行顺序是( )。

    • A. ②③①④
    • B. ②④③①
    • C. ③②④①
    • D. ③④②①
查看答案与解析

答案:C

解析: 系统调用发生的标准时序:传参(③) $\rightarrow$ 通过访管指令发起软中断(②) $\rightarrow$ 内核执行服务程序(④) $\rightarrow$ 恢复用户态并返回(①)

故选 C


难度: ⭐ 考点: #系统调用流程

💡 学习锦囊

📖 相关公式与知识点:

  • 系统调用标准流程:传递参数执行访管指令(陷入/Trap)内核执行服务例程返回用户态
  • 访管指令在用户态执行,用于触发软中断切换到核心态。

思路分析

记住口诀:传参→访管→服务→返回。

🔄 举一反三
  1. 用户程序通过执行( )指令来请求操作系统服务。

    • A. 访管指令(Trap)
    • B. 转移指令
    • C. I/O 指令
    • D. 停机指令
      查看练习答案与解析

      答案:A

      :::: ::::
  1. OpenEuler 系统中的调度类不包括( )。

    • A. 空闲调度类
    • B. 实时调度类
    • C. 公平调度类
    • D. 优先调度类
查看答案与解析

答案:D

解析: 现代 Linux/OpenEuler 调度框架中包含 Stop、Deadline、Real-time、CFS(完全公平)、Idle 调度类,不包含“优先调度类”。

故选 D


难度: ⭐⭐⭐ 考点: #OpenEuler #CFS

💡 学习锦囊

思路分析

属于较偏的内核工程实现题目,主要区分调度算法(如高优先级算法)与内核实现模块。

🔄 举一反三
  1. Linux 中负责调度普通进程的调度类是( )。

    • A. Idle
    • B. Real-time
    • C. CFS
    • D. Stop
      查看练习答案与解析

      答案:C

      :::: ::::
  1. 关于抢占式优先级调度机制,以下说法错误的是( )。

    • A. 可以让紧迫任务得到最及时的处理
    • B. 适宜用在要求严格的实时系统中
    • C. 可以获得比较小的调度开销
    • D. 系统调度频率比较高
查看答案与解析

答案:C

解析: 抢占式调度因为允许频繁打断、切换,带来了更大的上下文切换开销(调度开销)

故选 C


难度: ⭐ 考点: #抢占式调度

💡 学习锦囊

📖 相关公式与知识点:

  • 抢占式调度:高优先级进程可剥夺低优先级进程的 CPU,响应快但调度开销大。
  • 非抢占式调度:进程主动释放 CPU 后才切换,调度开销小但响应慢。
  • 实时系统通常采用抢占式调度。

思路分析

抢占式 = 响应快 + 开销大;非抢占式 = 响应慢 + 开销小。

🔄 举一反三
  1. 非抢占式调度相比抢占式调度的优点是( )。

    • A. 响应时间极短
    • B. 调度开销小
    • C. 适用于硬实时系统
    • D. 公平性高
      查看练习答案与解析

      答案:B

      :::: ::::
  1. 在多对一的线程模型中,当一个多线程进程中的某个线程被阻塞后( )。

    • A. 该进程的其他线程仍可继续运行
    • B. 整个进程都将阻塞
    • C. 该阻塞线程将被撤销
    • D. 该阻塞线程将等待所属进程中其他线程运行完成后才能继续运行
查看答案与解析

答案:B

解析:多对一模型中,多个用户级线程映射到一个内核级线程。操作系统只感知到内核级线程的存在。

  • 当某用户线程发起系统调用导致内核级线程阻塞时,内核会判定整个进程被阻塞

故选 B


难度: ⭐⭐ 考点: #线程模型 #用户级线程

💡 学习锦囊

📖 相关公式与知识点:

  • 多对一模型:多个用户级线程映射到 1 个内核级线程。一个线程阻塞 → 整个进程阻塞。
  • 一对一模型:每个用户线程对应 1 个内核线程,并发性好但开销大。
  • 多对多模型:多个用户线程映射到多个内核线程,兼顾并发性与开销。

易错点

多对一模型中,操作系统只感知内核线程,任一用户线程阻塞会导致整个进程被挂起。

🔄 举一反三
  1. 在多对多模型中,若一个线程阻塞,其他线程( )。
    • A. 必然全部阻塞
    • B. 仍可继续运行
    • C. 自动被撤销
    • D. 切换到用户态
    查看练习答案与解析

    答案:B 解析:多对多模型将多个用户线程映射到同样或更少数量的内核线程。当一个内核线程因所映射的用户线程阻塞时,内核可以调度另一个内核线程来运行其他就绪的用户线程。

 ::::
  1. 下面关于 fork()系统调用的说法中,错误的是( )。

    • A. fork()的返回值有三种情况
    • B. fork()创建的子进程复制了父进程的地址空间
    • C. 父进程调用 fork()创建子进程后,将进入睡眠状态等待子进程运行结束
    • D. fork()采用了“写时复制”技术
查看答案与解析

答案:C

解析:

  • A 选项:返回值有三种(-1 出错,0 子进程,正数 父进程中返回子进程 PID)。
  • C 选项错误:fork 后,父子进程是并发独立执行的。若想让父进程等待,必须显式调用 wait()waitpid()

故选 C


难度: ⭐⭐ 考点: #fork #写时复制

💡 学习锦囊

📖 相关公式与知识点:

  • fork() 返回值三种情况:-1(创建失败)、0(子进程)、>0(父进程,返回子进程 PID)。
  • 写时复制(Copy-on-Write):fork 后父子共享物理页,仅当一方写入时才复制,延迟物理拷贝开销。
  • fork 后父子进程并发执行,父进程需显式调用 wait() 才能等待子进程。

易错点

fork 后父进程不会自动等待子进程!必须显式调用 wait/waitpid。

🔄 举一反三
  1. fork() 系统调用在子进程中的返回值是( )。
    • A. -1
    • B. 0
    • C. 子进程的 PID
    • D. 父进程的 PID
    查看练习答案与解析

    答案:B 解析:fork() 执行后,操作系统会分裂出一个全新的子进程。为了让父子进程能区分彼此执行不同逻辑,内核规定在子进程中 fork() 的返回值恒为 0,在父进程中返回创建出的子进程 PID。

 ::::
  1. 下面不会引起进程撤销的事件是( )。

    • A. 进程正常运行结束
    • B. 父进程被撤销
    • C. 进程运行过程中发生越界错误
    • D. 进程请求资源失败
查看答案与解析

答案:D

解析:

  • A, B, C 均会导致进程终止(撤销)。
  • D 选项:请求资源失败时,通常会导致进程进入阻塞态(等待资源),不会被操作系统直接撤销。

故选 D


难度: ⭐ 考点: #进程状态转换

💡 学习锦囊

📖 相关公式与知识点:

  • 进程三态模型:运行态就绪态阻塞态
  • 状态转换:阻塞 → 就绪(事件发生/唤醒);就绪 → 运行(被调度);运行 → 阻塞(等待 I/O);运行 → 就绪(时间片完)。
  • 请求资源失败 → 进入阻塞态(等待),不会被撤销。

思路分析

记住:资源请求失败 = 阻塞等待,不是撤销。只有正常运行结束、父进程撤销、越界错误才会导致进程撤销。

🔄 举一反三
  1. 处于阻塞态的进程,在等待的事件发生后,将转换为什么状态?( )
    • A. 运行态
    • B. 就绪态
    • C. 撤销态
    • D. 挂起态
    查看练习答案与解析

    答案:B 解析:进程从等待状态(阻塞态)被唤醒(如 I/O 数据就绪)后,由于 CPU 可能正在执行其他进程,该进程必须先进入就绪队列排队,因此状态转换为就绪态。

 ::::
  1. 关于进程同步机制,以下说法中不正确的是( )。

    • A. “禁止中断”方式实现互斥,只能用于单处理机系统
    • B. swap 指令可方便的实现进程间的互斥
    • C. TSL 指令实现互斥时存在“忙等”现象
    • D. swap 指令实现互斥时遵循了同步机制的四个原则
查看答案与解析

答案:D

解析:

  • D 选项错误:使用 swapTSL(硬件测试并设置)实现互斥,当未获取到锁时会一直循环检测(忙等),违反了“让权等待”的原则

故选 D


难度: ⭐⭐ 考点: #进程同步原则 #硬件同步

💡 学习锦囊

📖 相关公式与知识点:

  • 同步机制四大原则:空闲让进、忙则等待、有限等待、让权等待。 :::
🔄 举一反三
  1. 临界区是指( )。
    • A. 进程中访问临界资源的代码段
    • B. 操作系统内部的核心数据
    • C. 互斥访问的硬件设备
    • D. 容易死锁的进程集合
    查看练习答案与解析

    答案:A 解析:临界资源是必须被互斥共享访问的物理或逻辑对象。而各个并发进程中,用于对这些资源实施读写操作的那部分“程序代码段”,被称为临界区。

 ::::
  1. 下面关于死锁的说法中,正确的是( )。

    • A. 进程释放资源时可能导致死锁的发生
    • B. 即便系统处于安全状态下,也有可能发生死锁
    • C. 多个进程竞争资源出现了循环等待,系统可能出现死锁
    • D. 若系统中所有进程都进入阻塞状态,则系统必然发生了死锁
查看答案与解析

答案:C

解析:

  • C 选项正确:循环等待是死锁的四个必要条件之一。
  • A 选项:申请资源才可能死锁。
  • B 选项:安全状态绝无死锁。
  • D 选项:阻塞可能是在等 I/O,未必是死锁。

故选 C


难度: ⭐ 考点: #死锁条件

💡 学习锦囊

📖 相关公式与知识点:

  • 死锁四个必要条件:互斥条件请求并保持条件不可剥夺条件循环等待条件
  • 四个条件必须同时满足才会死锁,破坏任一条件即可预防死锁。
  • 安全状态一定不会死锁,不安全状态可能死锁。

易错点

注意是"不可剥夺"而非"可剥夺";安全状态绝无死锁。

🔄 举一反三
  1. 死锁的四个必要条件不包括( )。

    • A. 互斥条件
    • B. 请求并保持条件
    • C. 可剥夺条件
    • D. 循环等待条件
      查看练习答案与解析

      答案:C 解析:应为“不可剥夺条件”。

      :::: ::::
  1. 操作系统是根据( )来对并发执行的进程进行控制和管理。

    • A. 进程的状态
    • B. 进程控制块
    • C. 信号量
    • D. 进程的优先级
查看答案与解析

答案:B

解析: **进程控制块(PCB)**是进程存在的唯一标志,内核通过 PCB 对进程的状态、资源进行全局控制。

故选 B


难度: ⭐ 考点: #PCB

💡 学习锦囊

📖 相关公式与知识点:

  • **PCB(进程控制块)**是进程存在的唯一标志,操作系统通过 PCB 管理进程。
  • PCB 包含信息:进程标识符(PID)、处理机状态(通用寄存器、PC、PSW)、进程调度信息(优先级、状态)、进程控制信息(资源清单、链接指针)。
  • 进程实体 = 程序段 + 数据段 + PCB。

思路分析

PCB 是"进程的身份证",内核通过 PCB 感知和管理进程。

🔄 举一反三
  1. 进程实体由哪几部分组成?( )

    • A. 程序段、数据段、PCB
    • B. 处理机、内存、外部设备
    • C. 栈、堆、代码段
    • D. 线程、纤程、进程
      查看练习答案与解析

      答案:A

      :::: ::::
  1. 若一个进程的程序中有代码 ptr=malloc(1000);则执行后 ptr 得到的是( )。

    • A. 进程分配到的内存地址
    • B. 进程分配到的虚拟地址
    • C. 进程的逻辑地址空间
    • D. 进程的物理地址空间
查看答案与解析

答案:B

解析: 现代操作系统采用了虚拟内存管理,用户程序在用户态下通过指针访问的,全部都是由内核映射后的虚拟地址(也称逻辑地址)。

故选 B


难度: ⭐⭐ 考点: #虚拟内存 #逻辑地址

💡 学习锦囊

📖 相关公式与知识点:

  • 用户程序访问的是虚拟地址(逻辑地址),由 **MMU(内存管理单元)**转换为物理地址。
  • 虚拟内存使得进程的逻辑地址空间远大于物理内存。
  • malloc() 返回的是虚拟地址,不是物理地址。

易错点

用户态程序永远只能看到虚拟地址,物理地址对用户透明。

🔄 举一反三
  1. 将虚拟地址转换为物理地址的硬件机制是( )。

    • A. CPU
    • B. MMU(内存管理单元)
    • C. DMA
    • D. 寄存器
      查看练习答案与解析

      答案:B

      :::: ::::
  1. 以下关于缓冲的说法,错误的是( )。

    • A. 缓冲能缓和 CPU 与 I/O 设备间速度不匹配的矛盾
    • B. 软件缓冲通常是在磁盘上分配一段空间来实现的
    • C. 缓冲能减少 I/O 操作对 CPU 的中断频率
    • D. 缓冲能协调数据处理单位和传输单位不匹配的问题
查看答案与解析

答案:B

解析:软件缓冲区通常是在**主存(RAM/内存)**中开辟的一段专用空间,而非磁盘空间。

故选 B


难度: ⭐ 考点: #缓冲技术

💡 学习锦囊

📖 相关公式与知识点:

  • 缓冲的三大作用:缓和 CPU 与 I/O 设备速度不匹配、减少 I/O 对 CPU 的中断频率、协调数据处理单位与传输单位不匹配。
  • 软件缓冲区在内存(RAM)中开辟,不在磁盘上。
  • 双缓冲可实现设备与 CPU 的并行处理。

易错点

软件缓冲在内存中,不在磁盘!磁盘上的叫 SPOOLing 井。

🔄 举一反三
  1. 引入双缓冲机制的主要目的是( )。

    • A. 提高设备的物理传输速率
    • B. 实现设备与 CPU 的并行处理
    • C. 彻底消除数据溢出
    • D. 节省内存开销
      查看练习答案与解析

      答案:B

      :::: ::::
  1. 在以下磁盘驱动调度算法中,( )算法可能会随时改变移动臂的运动方向。

    • A.SSTF
    • B. SCAN
    • C. CSCAN
    • D. FSCAN
查看答案与解析

答案:A

解析:

  • **SSTF(最短寻找时间优先)**只看哪一个请求离当前磁头最近,因此会不断改变方向。
  • SCAN/CSCAN 算法会有规律地向一个方向扫描。

故选 A


难度: ⭐⭐ 考点: #磁盘调度算法 #SSTF

💡 学习锦囊

📖 相关公式与知识点:

  • 常见磁盘调度算法:FCFS(先来先服务,简单但性能差)、SSTF(最短寻道优先,可能饥饿)、SCAN(电梯算法,单向扫描后折返)、CSCAN(单向扫描,到头后快速返回)。
  • SSTF 会随时改变磁头方向;SCAN/CSCAN 有规律地单向扫描。

思路分析

SSTF 只看距离最近 → 方向随意;SCAN 像电梯 → 方向规律。

🔄 举一反三
  1. 解决了 SSTF 算法中磁头“饥饿”现象的算法是( )。

    • A. FCFS
    • B. SCAN
    • C. 优先级调度
    • D. 轮转调度
      查看练习答案与解析

      答案:B

      :::: ::::
  1. 某文件系统采用位示图法管理外存储空间,每个磁盘块 4KB,已知一块磁盘容量为 40GB,则表示该磁盘所需位示图管理数据需要占用( )的内存空间。

    • A. 1280KB
    • B. 10240KB
    • C. 4096KB
    • D. 10MB
查看答案与解析

答案:A

解析:

  1. 磁盘块数 = $40 \text{ GB} / 4 \text{ KB} = 10 \times 2^{20}$ 块。
  2. 位示图 1 块对应 1 bit。
  3. 总占用位数 = $10 \text{ M bit}$
  4. 内存占用 = $10 \times 2^{20} / 8 \text{ Byte} = 1.25 \text{ MB} = 1280 \text{ KB}$

故选 A


难度: ⭐⭐ 考点: #位示图 #存储管理

💡 学习锦囊

📖 相关公式与知识点:

  • 1 GB = 1024 MB, 1 MB = 1024 KB。 :::
🔄 举一反三
  1. 磁盘容量为 80GB,块大小 4KB,位示图占用多大空间?( )

    • A. 1280KB
    • B. 2560KB
    • C. 5120KB
    • D. 20MB
      查看练习答案与解析

      答案:B

      :::: ::::
  1. 在下面的 I/O 控制方式中,需要 CPU 干预最少的方式是( )。

    • A. 程序 I/O 方式
    • B. 中断驱动 I/O 控制方式
    • C. 直接存储器访问 DMA 控制方式
    • D. I/O 通道控制方式
查看答案与解析

答案:D

解析:

  • 程序 I/O:CPU 轮询,干预最多。
  • 中断驱动:以字为单位,每个字中断一次 CPU。
  • DMA:以数据块为单位,每块中断一次 CPU。
  • I/O 通道:CPU 仅需在整个数据传输的起始与结束时干预,干预最少。

故选 D


难度: ⭐ 考点: #I/O控制方式

💡 学习锦囊

📖 相关公式与知识点:

  • I/O 控制方式(CPU 干预从多到少):程序 I/O(CPU 轮询)> 中断驱动(每字中断)> DMA(每块中断)> I/O 通道(仅首尾中断)。
  • DMA 适合高速块设备(磁盘),以数据块为单位传输。
  • 通道方式 CPU 干预最少,效率最高。

思路分析

记住顺序:程序轮询 → 中断逐字 → DMA 逐块 → 通道首尾。

🔄 举一反三
  1. 以字节(或字)为单位进行 CPU 与设备间数据交换的控制方式是( )。

    • A. 程序 I/O 与中断驱动
    • B. DMA 方式
    • C. 通道方式
    • D. SPOOLing
      查看练习答案与解析

      答案:A

      :::: ::::
  1. Linux系统通常使用( )来分配小块内存空间。

    • A. 伙伴系统
    • B. slab 分配器
    • C. 位示图
    • D. 首次适应算法
查看答案与解析

答案:B

解析:

  • 伙伴系统(Buddy System):负责分配连续的大块物理内存(页框)。
  • slab 分配器:基于伙伴系统,用于管理和分配内核中频繁使用的小对象(小块内存)

故选 B


难度: ⭐⭐ 考点: #Linux内存管理 #slab

💡 学习锦囊

📖 相关公式与知识点:

  • 伙伴系统(Buddy System):负责分配连续的大块物理页框,基本单位是页框。
  • slab 分配器:基于伙伴系统,管理和分配内核中频繁使用的小对象(小块内存)
  • 两者分工:伙伴系统管"大块",slab 管"小块"。

思路分析

伙伴系统 = 大块页框分配;slab = 小块内核对象分配。

🔄 举一反三
  1. 伙伴系统的内存分配基本单位是( )。

    • A. 字节
    • B. 页框
    • C. 逻辑段
    • D. 物理块
      查看练习答案与解析

      答案:B

      :::: ::::
  1. 以下( )设备适合采用 DMA 的 I/O 控制方式。

    • A.打印机
    • B. 键盘
    • C. 鼠标
    • D. 磁盘
查看答案与解析

答案:D

解析: DMA(直接内存访问)适用于传输速率极高、数据量大的块设备。磁盘属于高速块设备,最适合 DMA。

故选 D


难度: ⭐ 考点: #DMA #块设备

💡 学习锦囊

📖 相关公式与知识点:

  • DMA(直接存储器访问):适合高速块设备(磁盘),以数据块为单位在内存与设备间传输数据。
  • 字符设备(键盘、鼠标):低速,按字符/字节传输,不适合 DMA。
  • 设备分类:块设备(磁盘,可寻址,高速)、字符设备(键盘/鼠标/打印机,低速,流式)。

思路分析

DMA 选高速块设备;键盘鼠标是低速字符设备,用中断驱动即可。

🔄 举一反三
  1. 键盘、鼠标属于哪类设备?( )

    • A. 高速块设备
    • B. 独占高速设备
    • C. 低速字符设备
    • D. 共享块设备
      查看练习答案与解析

      答案:C

      :::: ::::
  1. 系统中采用 SPOOLing 技术的主要目的是( )。

    • A. 提供内存和磁盘之间的接口
    • B. 提高 CPU 和外设信息交换的速度
    • C. 减轻用户编程负担
    • D. 提高独占设备的利用率
查看答案与解析

答案:D

解析: SPOOLing(假脱机)技术通过在磁盘上设置输入输出井,将独占设备(如打印机)改造为虚拟共享设备,从而允许多个进程并发使用,大幅提高独占设备的利用率。

故选 D


难度: ⭐⭐ 考点: #SPOOLing #虚拟设备

💡 学习锦囊

📖 相关公式与知识点:

  • SPOOLing(假脱机):将独占设备改造为共享虚拟设备,提高设备利用率。
  • 核心组成:输入/输出井(磁盘空间)、输入/输出缓冲区(内存)、井管理程序。
  • 典型应用:共享打印机。

易错点

SPOOLing 的核心组成不包括"磁盘索引节点"。

🔄 举一反三
  1. SPOOLing 系统的核心组成部分不包括( )。
    • A. 输入井和输出井
    • B. 输入缓冲区和输出缓冲区
    • C. 井管理程序
    • D. 磁盘索引节点
      查看练习答案与解析

      答案:D

      :::: :::::

  1. 若上面资源分配图中的进程之后不再有新的资源申请,则根据上图的状态可知最先能执行结束的进程是( )。
    • A. P4 或 P1
    • B. P3 或 P4
    • C. P2 或 P4
    • D. P1 或 P2
查看答案与解析

答案:C

解析:

  1. 分析当前阻塞状态
    • P4:已占有 R2 和 R3,无后续申请。当前不阻塞,可直接运行完毕。
    • P1:申请 R1(无空闲),阻塞。
    • P3:申请 R2(无空闲),阻塞。
    • P2:申请 R3。此时 R3 有 2 个实例(1 个分给 P4,1 个空闲)。P2 申请空闲的那个实例,不发生阻塞,可以直接获得资源并运行完毕。
  2. 综上,P2 和 P4 均处于非阻塞状态,可以最先顺利执行结束。

故选 C


难度: ⭐⭐⭐ 考点: #死锁定理 #资源分配图

💡 学习锦囊

思路分析

仔细看图,重点寻找没有发出“申请边”的进程(如 P4),以及虽然申请但目标资源仍有空闲实例的进程(如 P2)。

🔄 举一反三
  1. 死锁定理用于( )。
    • A. 预防死锁
    • B. 避免死锁
    • C. 检测死锁
    • D. 解除死锁
      查看练习答案与解析

      答案:C 解析:死锁定理通过简化资源分配图来检测当前是否处于死锁状态。

      :::: :::::

二、 综合题(共 75 分)

  1. (6分)“虚拟”体现在操作系统的各方面应用当中,请举出 2 个“虚拟”的例子,要求对各例子分别做简单分析说明。
查看答案与解析

评分标准: 举出合理例子每个 1.5 分,分析说明每个 1.5 分。满分 6 分。

参考答案:

  1. 虚拟内存
    • 分析:通过页表映射机制,将一部分速度较慢的外存(如硬盘)虚拟为内存使用。使得逻辑地址空间远大于实际物理内存,达到小内存运行大程序的效果。
  2. 虚拟设备(如 SPOOLing 技术)
    • 分析:在磁盘上开辟缓冲区,将独占的物理设备(如打印机)改造成共享的逻辑设备。允许多个进程同时向该设备输出数据,提高了设备利用率。

难度: ⭐ 考点: #操作系统虚拟化 #虚拟内存

💡 学习锦囊

📖 相关公式与知识点:

  • 操作系统"虚拟"的核心思想:通过复用(时分/空分)、映射(虚拟内存)等技术,将物理资源抽象为多个逻辑资源。
  • 常见虚拟化实例:虚拟内存(外存当内存)、虚拟设备/SPOOLing(独占变共享)、虚拟机(一台物理机运行多 OS)。

思路分析

"虚拟"的本质是"用软件模拟硬件"或"用慢速资源模拟快速资源"。

🔄 举一反三
  1. 操作系统中除了时间复用,还有哪种复用方式?请举例。
    查看练习答案与解析

    答案:空间复用。例如把内存分割成多个区域供不同进程使用(内存划分)。

::::

  1. (14 分)在某个混合索引文件系统中,FCB 中有 iaddr[0]~iaddr[8] 共 9 个物理地址项,其中 iaddr[0]~iaddr[6]是 7 个直接地址项,iaddr[7]是 1 个一级索引项,iaddr[8]是 1 个二级索引项,一个盘块的大小是 4KB,每个盘块号占 4 个字节。假设需要读取的文件都已经打开,请回答以下问题:

(1)如果要读取 F1 文件 500KB 位置后的 1 个物理块数据,请问要启动多少次磁盘 I/O 操作?给出推算过程。 (2)如果要读取 F2 文件 16MB 位置后的 1 个物理块数据,需要用哪级索引?给出计算过程。 (3)分析这个混合索引系统的优缺点,并给出一种合理的改进思路。

查看答案与解析

评分标准:

  • (1)小题推导 3 分,答案 1 分。共 4 分。
  • (2)小题计算 3 分,答案 1 分。共 4 分。
  • (3)优缺点各 2 分,改进思路 2 分。共 6 分。

参考答案:

  • 基本数据推导

    • 盘块大小 = $4 \text{ KB}$
    • 每个盘块能存放的盘块号数量 = $4 \text{ KB} / 4 \text{ B} = 1024$ 个。
    • 直接地址寻址范围:$7 \times 4 \text{ KB} = 28 \text{ KB}$
    • 一级索引寻址范围:$28 \text{ KB} + 1024 \times 4 \text{ KB} = 28 \text{ KB} + 4096 \text{ KB} = 4124 \text{ KB}$
  • (1)解答

    • $500 \text{ KB}$ 介于 $28 \text{ KB}$$4124 \text{ KB}$ 之间,属于一级索引范围。
    • 读取一级索引范围的数据块,需要首先从磁盘调入该一级索引块(第 1 次 I/O),再通过索引号读取目标数据块(第 2 次 I/O)。
    • 结论:共需启动 2 次 磁盘 I/O 操作。
  • (2)解答

    • $16 \text{ MB} = 16384 \text{ KB}$
    • 寻址越过了一级索引的上限($4124 \text{ KB}$)。
    • 结论:需要使用 二级索引
  • (3)解答

    • 优点:对于小文件寻址速度极快,无需额外读取索引块。
    • 缺点:大文件读取越往后寻址越慢,且单个文件体积存在上限(本例中约为 $4 \text{ GB}$)。
    • 改进思路:增加直接地址项的个数,或者引入三级索引及 Extent(区)管理。

难度: ⭐⭐⭐ 考点: #混合索引 #磁盘I/O

💡 学习锦囊

易错点

注意区分“已打开的文件”说明 FCB 在内存,计算索引 I/O 时千万不要再把读 FCB 本身的开销算进去。

🔄 举一反三
  1. 若盘块号占 8 个字节,一个 4KB 盘块可存放多少盘块号?
    查看练习答案与解析

    答案$4 \text{ KB} / 8 \text{ B} = 512$ 个。

::::

  1. (11 分)一个 10MB 文件平均存储在磁盘第 50,78,121,24 和 116 号磁盘柱面的 12 个盘面上。假设当前磁头的位置在 100 磁盘柱面,磁头移动一个磁道柱面需要时间为 1ms,磁盘的转速为 7200rpm,磁盘的读取速度为 100MB/s,忽略其他需要的时间。请回答以下问题,要求给出计算过程:

(1)写出采用 FCFS 的寻道轨迹,并计算完全读取文件需要花费的时间。 (2)如果该文件平均存储在磁盘第 50,112,15,98,78,215,35,121,24 和 116 号磁盘柱面的 12 个盘面上,写出采用 SCAN 的寻道轨迹,并计算完全读取文件需要花费的时间。

查看答案与解析

评分标准:

  • (1)小题轨迹 2 分,时间计算 3 分。共 5 分。
  • (2)小题轨迹 2 分,时间计算 4 分。共 6 分。

参考答案:

  • 常量准备

    • 旋转周期 = $60 / 7200 = 8.33 \text{ ms}$,平均旋转延迟 $L = 8.33 / 2 \approx 4.17 \text{ ms}$
    • 传输时间 $T = 10 \text{ MB} / 100 \text{ MB/s} = 0.1 \text{ s} = 100 \text{ ms}$
  • (1)FCFS 算法

    • 轨迹:$100 \rightarrow 50 \rightarrow 78 \rightarrow 121 \rightarrow 24 \rightarrow 116$
    • 寻道距离:$|100-50|+|50-78|+|78-121|+|121-24|+|24-116| = 50+28+43+97+92 = 310$ 柱面。
    • 寻道总时间:$310 \times 1 = 310 \text{ ms}$
    • 总读取时间 = 寻道时间 + 5次平均延迟 + 传输时间 = $310 + 5 \times 4.17 + 100 = 430.85 \text{ ms}$
  • (2)SCAN(LOOK)算法(假设朝柱面号递增方向):

    • 柱面集排序:15, 24, 35, 50, 78, 98, 112, 116, 121, 215。
    • 轨迹:$100 \rightarrow 112 \rightarrow 116 \rightarrow 121 \rightarrow 215 \rightarrow 98 \rightarrow 78 \rightarrow 50 \rightarrow 35 \rightarrow 24 \rightarrow 15$
    • 寻道距离:$(215-100) + (215-15) = 115 + 200 = 315$ 柱面。
    • 寻道总时间:$315 \times 1 = 315 \text{ ms}$
    • 涉及柱面数共 10 个。
    • 总读取时间 = $315 + 10 \times 4.17 + 100 = 456.7 \text{ ms}$

难度: ⭐⭐⭐ 考点: #磁盘调度 #FCFS #SCAN

💡 学习锦囊

思路分析

磁盘总时间公式:$T = T_{寻道} + T_{旋转} + T_{传输}$。多柱面非连续分布时需累加多次旋转开销。

🔄 举一反三
  1. 若磁头当前在 50 号柱面,请求序列为 30、70、90、20,采用 SCAN 算法(向增大方向),寻道轨迹是( )。
    • A. 50→70→90→30→20
    • B. 50→70→90→20→30
    • C. 50→30→20→70→90
    • D. 50→20→30→70→90
      查看练习答案与解析

      答案:A 解析:SCAN 向增大方向扫描:50→70→90(到头),然后折返:90→30→20。

      :::: ::::
  1. (12 分)在一个 32 位分页内存管理系统中,有内存 1GB 被操作系统和多个进程共用,考虑进程需要的内存大小不确定,希望能尽可能多地并发运行进程,页面大小为 4KB,每次访存时间为 100ns,请分析回答如下问题:

(1)该系统是否需要采用多级页表机制,为什么? (2)若采用二级页表,则逻辑地址结构是怎样的? (3)请分别计算采用一级和二级页表时,一次访存的时间。 (4)基于(3)的计算结果,分析多级页表对系统有怎样的不良影响? (5)请你提出一种解决或者改善(4)中问题的方案?

查看答案与解析

评分标准: (1)(2)(3)(4)(5)小题各 2-3 分。满分 12 分。

参考答案:

  • (1)解答需要。32位地址空间中,单级页表共包含 $2^{32}/4\text{KB} = 10^6$ 个页表项,需要连续的 $4\text{MB}$ 物理空间存放。这与多进程并发对离散分配的要求相违背。
  • (2)解答: 二级页表逻辑地址划分:页目录索引(10位) + 页表索引(10位) + 页内偏移(12位)。
  • (3)解答
    • 一级页表访存:1次查页表 + 1次查物理地址 = $100\text{ns} \times 2 = 200\text{ns}$
    • 二级页表访存:2次查页表 + 1次查物理地址 = $100\text{ns} \times 3 = 300\text{ns}$
  • (4)解答: 降低了内存访问的速率(由 $200\text{ns}$ 退步至 $300\text{ns}$)。
  • (5)解答: 引入 TLB(快表),将近期使用的页表映射缓存在高速缓冲寄存器中。

难度: ⭐⭐ 考点: #多级页表 #访存时间

💡 学习锦囊

📖 相关公式与知识点:

  • N 级页表访存时间 = (N+1) × 单次访存时间(N 次查页表 + 1 次查物理地址)。
  • 多级页表优点:离散存放页表,节省连续内存;缺点:增加访存次数,降低速度。
  • TLB(快表/转换后备缓冲器):缓存近期页表映射,大幅减少页表查询开销。

思路分析

多级页表 = 用时间换空间;TLB = 用硬件加速弥补时间损失。

🔄 举一反三
  1. 64位操作系统中,页表通常分几级?
    查看练习答案与解析

    答案:通常采用 4 级或 5 级页表。

::::

  1. (11 分)某计算机的逻辑地址空间和物理地址空间均为 64KB,按字节编址。若某进程最多需要 6 页数据存储空间,页的大小为 1KB,操作系统采用固定分配局部置换策略为该进程分配 4个页框。在时刻 260 前的该进程页面访问情况如下表所示。
页号页框号装入时刻访问位
071301
142301
222001
391601

当该进程执行到 260 时刻时,要访问逻辑地址为 17CAH 的数据,请回答下列问题:

(1)该逻辑地址对应的页号是多少?(给出计算过程) (2)若此时查询指针指向 0 号页面,采用 Clock 置换算法,则该逻辑地址对应的物理地址是多少?(给出计算过程) (3)如果期望进一步改进 Clock 置换算法的性能,请给出一种改进方案,并分析你的方案对系统性能有何改进。

查看答案与解析

评分标准: (1)题 3 分,(2)题 5 分,(3)题 3 分。

参考答案:

  • (1)解答

    • 逻辑地址:$17\text{CAH} = 0001\ 0111\ 1100\ 1010\text{B}$
    • 页面大小:$1\text{KB} = 2^{10}\text{B}$
    • 取高 6 位为页号:$000101\text{B} = 5$
    • 页号为 5
  • (2)解答

    • 页号 5 不在内存中,触发缺页中断。
    • 采用 Clock 算法,从 0 号页开始扫描。因为初始所有页访问位均为 1:
      • 第一轮:0、1、2、3 页访问位均由 1 改为 0。指针回到 0。
      • 第二轮:0 页访问位为 0,选中 0 页进行置换
    • 0 页原对应页框 7,故页框 7 被分配给页号 5。
    • $17\text{CAH}$ 页内偏移 = $17\text{CAH} \pmod{400\text{H}} = 3\text{CAH}$
    • 物理地址 = 页框号 7 $\times 400\text{H} + 3\text{CAH} = 1\text{C00H} + 3\text{CAH} = 1\text{FCAH}$
  • (3)解答

    • 改进型 Clock 算法:引入“修改位 M”。扫描时按 $(A=0, M=0) \rightarrow (A=0, M=1)$ 顺序寻找。优先淘汰未被修改的页面,可有效减少写回外存的磁盘 I/O 次数。

难度: ⭐⭐⭐ 考点: #Clock置换 #地址转换

💡 学习锦囊

📖 相关公式与知识点:

  • 逻辑地址 = 页号 + 页内偏移;物理地址 = 页框号 × 页面大小 + 页内偏移
  • Clock 置换算法:循环扫描访问位 A,A=1 则置 0 并跳过,A=0 则选中淘汰。
  • 改进型 Clock:引入修改位 M,优先淘汰 (A=0, M=0) 的页面,减少写回磁盘开销。

思路分析

地址转换公式:页号 = 逻辑地址 / 页面大小;页内偏移 = 逻辑地址 % 页面大小。

🔄 举一反三
  1. 若页面大小为 4KB,17CAH 的页号是?
    查看练习答案与解析

    答案$17\text{CAH}/1000\text{H} = 1$

::::

  1. (11 分)某系统的调度设计目标是:1)紧迫性任务能得到最及时的处理;2)优先照顾磁盘 I/O 完成的进程;3)其次照顾其他 I/O 完成的进程;4)适当照顾计算量大的进程;5)系统应尽可能快的响应用户的请求;6)调度算法的运行开销与就绪进程数量无关。请设计满足该目标的调度方案,要求:

(1)说明系统中进程状态设置、调度相关进程队列设置情况; (2)详细描述调度方案的思路,并说明你的方案是如何满足上面各项调度性能要求的。

查看答案与解析

评分标准: (1)题 5 分,(2)题 6 分。

参考答案:

  • (1)状态及队列设置

    • 进程状态:运行态、就绪态、阻塞态。
    • 就绪队列:设置多级就绪队列($Q_0, Q_1, Q_2 \dots$),各队列优先级从高到低,时间片从小到大。
    • 映射机制:为保证 $O(1)$ 调度开销,使用优先级位图(Bitmap)检索非空队列。
  • (2)调度方案思路

    1. 紧迫任务 & 快速响应:新进程统一进入 $Q_0$,抢占式执行。
    2. I/O 唤醒进程:磁盘 I/O 唤醒后提升至 $Q_1$;其他 I/O 提升至 $Q_2$
    3. 计算大进程:时间片耗尽未完成则降级至 $Q_{n}$

难度: ⭐⭐⭐ 考点: #调度算法设计 #MLFQ

💡 学习锦囊

📖 相关公式与知识点:

  • 多级反馈队列(MLFQ):设置多个优先级队列,高优先级短时间片,低优先级长时间片。
  • 新进程进入最高优先级队列;时间片用完降级;I/O 完成提升优先级。
  • 使用**优先级位图(Bitmap)**可实现 O(1) 调度开销,与就绪进程数量无关。

思路分析

MLFQ 核心思想:优待短进程和 I/O 密集型进程,适当照顾计算密集型进程。

🔄 举一反三
  1. 多级反馈队列调度算法中,一个长进程最终会进入( )。
    • A. 最高优先级队列
    • B. 最低优先级队列
    • C. 中间优先级队列
    • D. 被撤销
      查看练习答案与解析

      答案:B 解析:长进程每次时间片用完都会被降级,最终落入最低优先级队列,获得最长的时间片。

      :::: ::::
  1. (10 分)系统中有两个进程 P1 和 P2 并发执行,p1 完成 A、E、F 三个操作,P2 完成 B、C、D 三个操作。6 个操作间的执行顺序如下图所示,请回答下列问题:

(1)分析 P1 与 P2 两个进程间的同步关系,并说明信号量的作用及其初值。 (2)使用信号量机制实现 P1 和 P2 间的同步关系,写出伪代码,要求 P1 和 P2 的运行效率尽可能高。

查看答案与解析

评分标准: (1)小题 4 分,(2)小题 6 分。

参考答案:

  • (1)同步关系
    • 操作 A $\rightarrow$ 操作 C:跨进程同步,需信号量 $S_{AC}$(初值为 0)。
    • 操作 C $\rightarrow$ 操作 E:跨进程同步,需信号量 $S_{CE}$(初值为 0)。
  • (2)伪代码实现
    c
    semaphore S_AC = 0;
    semaphore S_CE = 0;
    
    void P1() {
        执行 A;
        V(S_AC);
        P(S_CE);
        执行 E;
        执行 F;
    }
    
    void P2() {
        执行 B;
        P(S_AC);
        执行 C;
        V(S_CE);
        执行 D;
    }

难度: ⭐⭐⭐ 考点: #PV操作 #进程同步

💡 学习锦囊

📖 相关公式与知识点:

  • P 操作(申请/等待):S = S - 1;若 S < 0,进程阻塞进入等待队列。
  • V 操作(释放/唤醒):S = S + 1;若 S ≤ 0,唤醒等待队列中的一个进程。
  • 信号量物理意义:S ≥ 0 表示可用资源数;S < 0 表示等待进程数。

思路分析

PV 操作必须成对出现:前驱关系的 P 对应后继的 V。

🔄 举一反三
  1. 信号量的物理意义是什么?
    查看练习答案与解析

    答案$S \ge 0$ 代表可用资源数;$S < 0$ 代表等待该资源的进程排队数。


📝 答题区域

请考生将最终答案记录于下表中。

一、选择题(每题 1 分,共 25 分)

题号12345678910
答案
题号11121314151617181920
答案
题号2122232425
答案

二、综合题

  • 详细步骤及答题请书写在纸质答题册上。
你正在阅读的是会员专属文档,💕 限时特惠进行中
你尚未登录,目前新用户可获3天体验会员,去登录