Appearance
《操作系统》第二学期期末试卷A (精选05)
一、 选择题(每题 1 分,共 25 分)
- 在下列选项中,( )不属于操作系统提供给用户的可使用资源。
- A. 中断机制
- B. 处理机
- C. 存储器
- D. I/O 设备
查看答案与解析
答案:A
解析: 本题考查操作系统的资源管理功能。 操作系统管理的资源主要包括:处理机(CPU)、存储器(内存)、I/O 设备以及文件(数据资源)。
- B, C, D 选项 均属于硬件资源,是由操作系统分配给用户程序使用的。
- A 逆向考查 中断机制是操作系统内部实现并发控制、设备交互和异常处理的硬件与软件交互机制,不属于可分配给用户的“资源”。
故选 A。
难度: ⭐ 考点: #操作系统资源 #中断机制
💡 学习锦囊
📖 相关公式与知识点:
- 操作系统的五大管理功能:处理机管理、存储器管理、设备管理、文件管理、用户接口。
思路分析
区分“机制”与“资源”。资源是实实在在被分配的对象,机制是底层的控制手段。
🔄 举一反三
下列选项中,属于操作系统提供给用户的逻辑资源的是( )。
- A. 打印机
- B. 内存
- C. 共享文件
- D. CPU:::: ::::
查看练习答案与解析
答案:C 解析:文件属于软件/逻辑资源。
实时操作系统必须在( )内处理完来自外部的事件。
- A. 一个机器周期
- B. 被控对象规定时间
- C. 周转时间
- D. 时间片
查看答案与解析
答案:B
解析: 实时操作系统(RTOS)的核心特征是及时性和可靠性。它要求必须在**被控对象规定的时间(截止时间)**内响应并处理完毕。
故选 B。
难度: ⭐ 考点: #实时操作系统 #及时性
💡 学习锦囊
📖 相关公式与知识点:
- 硬实时:绝不能超时。
- 软实时:偶尔可超时。
易错点
易与追求时间片轮转的分时系统混淆。
🔄 举一反三
实时系统最主要的目标是( )。
- A. 提高资源利用率
- B. 保证及时响应与处理
- C. 提升用户交互体验
- D. 节省硬件功耗:::: ::::
查看练习答案与解析
答案:B
下列说法中,正确的是( )。
- A. Linux 系统采用了微内核结构模型
- B. OpenEuler 系统采用了层次结构模型
- C. 华为鸿蒙操作系统是一款面向全场景的分布式操作系统
- D. Windows系统采用了整体式结构模型
查看答案与解析
答案:C
解析:
- A/B 选项:Linux 及 OpenEuler 均属宏内核。
- C 选项:鸿蒙基于微内核,面向全场景分布式。
故选 C。
难度: ⭐⭐ 考点: #操作系统架构 #微内核
💡 学习锦囊
思路分析
关注国产系统及现代分布式架构。
🔄 举一反三
微内核架构的主要缺点是( )。
- A. 灵活性差
- B. 扩展困难
- C. 进程间通信开销大
- D. 硬件移植繁复:::: ::::
查看练习答案与解析
答案:C
操作系统通常为用户提供多种接口,其中( )是专门给批处理系统用户使用。
- A. shell 命令
- B. 图形用户窗口
- C. 系统调用
- D. 作业控制语言
查看答案与解析
答案:D
解析: 作业控制语言(JCL)专门用于脱机批处理作业的控制说明。
故选 D。
难度: ⭐ 考点: #用户接口 #批处理
💡 学习锦囊
📖 相关公式与知识点:
- 操作系统提供的用户接口类型:命令接口(CLI)、图形接口(GUI)、程序接口(系统调用)、批处理接口(JCL)。
- 系统调用是用户程序请求内核服务的唯一入口。
思路分析
区分各类接口的适用场景:JCL 专用于批处理,系统调用供程序员使用。
🔄 举一反三
程序员在编写代码时请求内核服务,需使用( )。
- A. GUI
- B. 系统调用
- C. CLI命令
- D. 汇编指令:::: ::::
查看练习答案与解析
答案:B
在单处理器系统中,不能并行的是( )。
- A. 进程与进程
- B. 处理器与设备
- C. 处理器与通道
- D. 设备与设备
查看答案与解析
答案:A
解析: 单核 CPU 微观上在任一时刻只能执行一条指令,故进程间只能并发,不能并行。
故选 A。
难度: ⭐ 考点: #并发与并行
💡 学习锦囊
📖 相关公式与知识点:
- 并发:逻辑上的同时,单核 CPU 通过快速切换实现。
- 并行:物理上的同时,需要多核 CPU 或多台处理机。
- 单核系统中进程只能并发,不能并行。
易错点
并发是伪同时,并行是真同时。单核无并行。
🔄 举一反三
并行的核心硬件条件是具备( )。
- A. 大容量内存
- B. 多个独立处理器或核心
- C. 高速 I/O 设备
- D. 高级总线:::: ::::
查看练习答案与解析
答案:B
下列指令中,只能在管态下执行的有( )。 Ⅰ. 清空内存 Ⅱ. 设置时钟 Ⅲ. I/O 指令 Ⅳ. 访管指令
- A. Ⅰ、Ⅱ、Ⅲ
- B. Ⅰ、Ⅱ、Ⅲ、Ⅳ
- C. Ⅱ、Ⅲ、Ⅳ
- D. Ⅰ、Ⅱ、Ⅳ
查看答案与解析
答案:A
解析:
- 特权指令:只能在管态(核心态)执行。Ⅰ(涉及内存保护)、Ⅱ(涉及系统时钟)、Ⅲ(涉及设备控制)均为特权指令。
- 非特权指令:用户态即可执行。Ⅳ 访管指令(Trap)是供用户程序发起系统调用的手段,必须在目态执行。
故选 A。
难度: ⭐⭐ 考点: #特权指令 #访管指令
💡 学习锦囊
易错点
误以为发起系统调用的“访管指令”在内核中运行,实际上它在用户态执行,用于触发状态切换。
🔄 举一反三
下列不属于特权指令的是( )。
- A. 关中断
- B. 读系统时钟
- C. 清内存
- D. 修改页表基址:::: ::::
查看练习答案与解析
答案:B 解析:读时钟通常允许用户态执行,但“设置/修改”时钟是特权指令。
处理 I/O 中断时,应该由操作系统保存的是( )。
- A. 程序状态字内容
- B. 通用寄存器的内容
- C. 快表(TLB)中的内容
- D. Cache 中的内容
查看答案与解析
答案:B
解析:
- 硬件隐指令:自动保存程序计数器(PC)和程序状态字(PSW)。
- 操作系统软件:负责在中断服务程序起始阶段,将通用寄存器的内容压栈保存。
故选 B。
难度: ⭐⭐ 考点: #中断上下文 #通用寄存器
💡 学习锦囊
📖 相关公式与知识点:
- 中断发生时,硬件隐指令自动保存:程序计数器(PC)、程序状态字(PSW)。
- 操作系统软件负责保存:通用寄存器内容。
- 中断返回时恢复现场,继续执行被中断的进程。
易错点
硬件保存 PC/PSW,软件保存通用寄存器,两者分工不同,切勿混淆。
🔄 举一反三
发生中断时,用于指示中断返回后继续执行指令的寄存器是( )。
- A. PSW
- B. PC
- C. SP
- D. BR:::: ::::
查看练习答案与解析
答案:B
系统调用的执行过程主要有: $\textcircled{1}$ 返回用户态; $\textcircled{2}$ 执行访管指令; $\textcircled{3}$ 传递系统调用参数;$\textcircled{4}$ 执行相应的服务例程,则正确的执行顺序是( )。
- A. ②③①④
- B. ②④③①
- C. ③②④①
- D. ③④②①
查看答案与解析
答案:C
解析: 系统调用发生的标准时序:传参(③) $\rightarrow$ 通过访管指令发起软中断(②) $\rightarrow$ 内核执行服务程序(④) $\rightarrow$ 恢复用户态并返回(①)。
故选 C。
难度: ⭐ 考点: #系统调用流程
💡 学习锦囊
📖 相关公式与知识点:
- 系统调用标准流程:传递参数 → 执行访管指令(陷入/Trap) → 内核执行服务例程 → 返回用户态。
- 访管指令在用户态执行,用于触发软中断切换到核心态。
思路分析
记住口诀:传参→访管→服务→返回。
🔄 举一反三
用户程序通过执行( )指令来请求操作系统服务。
- A. 访管指令(Trap)
- B. 转移指令
- C. I/O 指令
- D. 停机指令:::: ::::
查看练习答案与解析
答案:A
OpenEuler 系统中的调度类不包括( )。
- A. 空闲调度类
- B. 实时调度类
- C. 公平调度类
- D. 优先调度类
查看答案与解析
答案:D
解析: 现代 Linux/OpenEuler 调度框架中包含 Stop、Deadline、Real-time、CFS(完全公平)、Idle 调度类,不包含“优先调度类”。
故选 D。
难度: ⭐⭐⭐ 考点: #OpenEuler #CFS
💡 学习锦囊
思路分析
属于较偏的内核工程实现题目,主要区分调度算法(如高优先级算法)与内核实现模块。
🔄 举一反三
Linux 中负责调度普通进程的调度类是( )。
- A. Idle
- B. Real-time
- C. CFS
- D. Stop:::: ::::
查看练习答案与解析
答案:C
关于抢占式优先级调度机制,以下说法错误的是( )。
- A. 可以让紧迫任务得到最及时的处理
- B. 适宜用在要求严格的实时系统中
- C. 可以获得比较小的调度开销
- D. 系统调度频率比较高
查看答案与解析
答案:C
解析: 抢占式调度因为允许频繁打断、切换,带来了更大的上下文切换开销(调度开销)。
故选 C。
难度: ⭐ 考点: #抢占式调度
💡 学习锦囊
📖 相关公式与知识点:
- 抢占式调度:高优先级进程可剥夺低优先级进程的 CPU,响应快但调度开销大。
- 非抢占式调度:进程主动释放 CPU 后才切换,调度开销小但响应慢。
- 实时系统通常采用抢占式调度。
思路分析
抢占式 = 响应快 + 开销大;非抢占式 = 响应慢 + 开销小。
🔄 举一反三
非抢占式调度相比抢占式调度的优点是( )。
- A. 响应时间极短
- B. 调度开销小
- C. 适用于硬实时系统
- D. 公平性高:::: ::::
查看练习答案与解析
答案:B
在多对一的线程模型中,当一个多线程进程中的某个线程被阻塞后( )。
- A. 该进程的其他线程仍可继续运行
- B. 整个进程都将阻塞
- C. 该阻塞线程将被撤销
- D. 该阻塞线程将等待所属进程中其他线程运行完成后才能继续运行
查看答案与解析
答案:B
解析: 在多对一模型中,多个用户级线程映射到一个内核级线程。操作系统只感知到内核级线程的存在。
- 当某用户线程发起系统调用导致内核级线程阻塞时,内核会判定整个进程被阻塞。
故选 B。
难度: ⭐⭐ 考点: #线程模型 #用户级线程
💡 学习锦囊
📖 相关公式与知识点:
- 多对一模型:多个用户级线程映射到 1 个内核级线程。一个线程阻塞 → 整个进程阻塞。
- 一对一模型:每个用户线程对应 1 个内核线程,并发性好但开销大。
- 多对多模型:多个用户线程映射到多个内核线程,兼顾并发性与开销。
易错点
多对一模型中,操作系统只感知内核线程,任一用户线程阻塞会导致整个进程被挂起。
🔄 举一反三
- 在多对多模型中,若一个线程阻塞,其他线程( )。
- A. 必然全部阻塞
- B. 仍可继续运行
- C. 自动被撤销
- D. 切换到用户态
查看练习答案与解析
答案:B 解析:多对多模型将多个用户线程映射到同样或更少数量的内核线程。当一个内核线程因所映射的用户线程阻塞时,内核可以调度另一个内核线程来运行其他就绪的用户线程。
::::
下面关于 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。
🔄 举一反三
- fork() 系统调用在子进程中的返回值是( )。
- A. -1
- B. 0
- C. 子进程的 PID
- D. 父进程的 PID
查看练习答案与解析
答案:B 解析:fork() 执行后,操作系统会分裂出一个全新的子进程。为了让父子进程能区分彼此执行不同逻辑,内核规定在子进程中 fork() 的返回值恒为 0,在父进程中返回创建出的子进程 PID。
::::
下面不会引起进程撤销的事件是( )。
- A. 进程正常运行结束
- B. 父进程被撤销
- C. 进程运行过程中发生越界错误
- D. 进程请求资源失败
查看答案与解析
答案:D
解析:
- A, B, C 均会导致进程终止(撤销)。
- D 选项:请求资源失败时,通常会导致进程进入阻塞态(等待资源),不会被操作系统直接撤销。
故选 D。
难度: ⭐ 考点: #进程状态转换
💡 学习锦囊
📖 相关公式与知识点:
- 进程三态模型:运行态、就绪态、阻塞态。
- 状态转换:阻塞 → 就绪(事件发生/唤醒);就绪 → 运行(被调度);运行 → 阻塞(等待 I/O);运行 → 就绪(时间片完)。
- 请求资源失败 → 进入阻塞态(等待),不会被撤销。
思路分析
记住:资源请求失败 = 阻塞等待,不是撤销。只有正常运行结束、父进程撤销、越界错误才会导致进程撤销。
🔄 举一反三
- 处于阻塞态的进程,在等待的事件发生后,将转换为什么状态?( )
- A. 运行态
- B. 就绪态
- C. 撤销态
- D. 挂起态
查看练习答案与解析
答案:B 解析:进程从等待状态(阻塞态)被唤醒(如 I/O 数据就绪)后,由于 CPU 可能正在执行其他进程,该进程必须先进入就绪队列排队,因此状态转换为就绪态。
::::
关于进程同步机制,以下说法中不正确的是( )。
- A. “禁止中断”方式实现互斥,只能用于单处理机系统
- B. swap 指令可方便的实现进程间的互斥
- C. TSL 指令实现互斥时存在“忙等”现象
- D. swap 指令实现互斥时遵循了同步机制的四个原则
查看答案与解析
答案:D
解析:
- D 选项错误:使用
swap或TSL(硬件测试并设置)实现互斥,当未获取到锁时会一直循环检测(忙等),违反了“让权等待”的原则。
故选 D。
难度: ⭐⭐ 考点: #进程同步原则 #硬件同步
💡 学习锦囊
📖 相关公式与知识点:
- 同步机制四大原则:空闲让进、忙则等待、有限等待、让权等待。 :::
🔄 举一反三
- 临界区是指( )。
- A. 进程中访问临界资源的代码段
- B. 操作系统内部的核心数据
- C. 互斥访问的硬件设备
- D. 容易死锁的进程集合
查看练习答案与解析
答案:A 解析:临界资源是必须被互斥共享访问的物理或逻辑对象。而各个并发进程中,用于对这些资源实施读写操作的那部分“程序代码段”,被称为临界区。
::::
下面关于死锁的说法中,正确的是( )。
- A. 进程释放资源时可能导致死锁的发生
- B. 即便系统处于安全状态下,也有可能发生死锁
- C. 多个进程竞争资源出现了循环等待,系统可能出现死锁
- D. 若系统中所有进程都进入阻塞状态,则系统必然发生了死锁
查看答案与解析
答案:C
解析:
- C 选项正确:循环等待是死锁的四个必要条件之一。
- A 选项:申请资源才可能死锁。
- B 选项:安全状态绝无死锁。
- D 选项:阻塞可能是在等 I/O,未必是死锁。
故选 C。
难度: ⭐ 考点: #死锁条件
💡 学习锦囊
📖 相关公式与知识点:
- 死锁四个必要条件:互斥条件、请求并保持条件、不可剥夺条件、循环等待条件。
- 四个条件必须同时满足才会死锁,破坏任一条件即可预防死锁。
- 安全状态一定不会死锁,不安全状态可能死锁。
易错点
注意是"不可剥夺"而非"可剥夺";安全状态绝无死锁。
🔄 举一反三
死锁的四个必要条件不包括( )。
- A. 互斥条件
- B. 请求并保持条件
- C. 可剥夺条件
- D. 循环等待条件:::: ::::
查看练习答案与解析
答案:C 解析:应为“不可剥夺条件”。
操作系统是根据( )来对并发执行的进程进行控制和管理。
- A. 进程的状态
- B. 进程控制块
- C. 信号量
- D. 进程的优先级
查看答案与解析
答案:B
解析: **进程控制块(PCB)**是进程存在的唯一标志,内核通过 PCB 对进程的状态、资源进行全局控制。
故选 B。
难度: ⭐ 考点: #PCB
💡 学习锦囊
📖 相关公式与知识点:
- **PCB(进程控制块)**是进程存在的唯一标志,操作系统通过 PCB 管理进程。
- PCB 包含信息:进程标识符(PID)、处理机状态(通用寄存器、PC、PSW)、进程调度信息(优先级、状态)、进程控制信息(资源清单、链接指针)。
- 进程实体 = 程序段 + 数据段 + PCB。
思路分析
PCB 是"进程的身份证",内核通过 PCB 感知和管理进程。
🔄 举一反三
进程实体由哪几部分组成?( )
- A. 程序段、数据段、PCB
- B. 处理机、内存、外部设备
- C. 栈、堆、代码段
- D. 线程、纤程、进程:::: ::::
查看练习答案与解析
答案:A
若一个进程的程序中有代码 ptr=malloc(1000);则执行后 ptr 得到的是( )。
- A. 进程分配到的内存地址
- B. 进程分配到的虚拟地址
- C. 进程的逻辑地址空间
- D. 进程的物理地址空间
查看答案与解析
答案:B
解析: 现代操作系统采用了虚拟内存管理,用户程序在用户态下通过指针访问的,全部都是由内核映射后的虚拟地址(也称逻辑地址)。
故选 B。
难度: ⭐⭐ 考点: #虚拟内存 #逻辑地址
💡 学习锦囊
📖 相关公式与知识点:
- 用户程序访问的是虚拟地址(逻辑地址),由 **MMU(内存管理单元)**转换为物理地址。
- 虚拟内存使得进程的逻辑地址空间远大于物理内存。
malloc()返回的是虚拟地址,不是物理地址。
易错点
用户态程序永远只能看到虚拟地址,物理地址对用户透明。
🔄 举一反三
将虚拟地址转换为物理地址的硬件机制是( )。
- A. CPU
- B. MMU(内存管理单元)
- C. DMA
- D. 寄存器:::: ::::
查看练习答案与解析
答案:B
以下关于缓冲的说法,错误的是( )。
- A. 缓冲能缓和 CPU 与 I/O 设备间速度不匹配的矛盾
- B. 软件缓冲通常是在磁盘上分配一段空间来实现的
- C. 缓冲能减少 I/O 操作对 CPU 的中断频率
- D. 缓冲能协调数据处理单位和传输单位不匹配的问题
查看答案与解析
答案:B
解析:软件缓冲区通常是在**主存(RAM/内存)**中开辟的一段专用空间,而非磁盘空间。
故选 B。
难度: ⭐ 考点: #缓冲技术
💡 学习锦囊
📖 相关公式与知识点:
- 缓冲的三大作用:缓和 CPU 与 I/O 设备速度不匹配、减少 I/O 对 CPU 的中断频率、协调数据处理单位与传输单位不匹配。
- 软件缓冲区在内存(RAM)中开辟,不在磁盘上。
- 双缓冲可实现设备与 CPU 的并行处理。
易错点
软件缓冲在内存中,不在磁盘!磁盘上的叫 SPOOLing 井。
🔄 举一反三
引入双缓冲机制的主要目的是( )。
- A. 提高设备的物理传输速率
- B. 实现设备与 CPU 的并行处理
- C. 彻底消除数据溢出
- D. 节省内存开销:::: ::::
查看练习答案与解析
答案:B
在以下磁盘驱动调度算法中,( )算法可能会随时改变移动臂的运动方向。
- A.SSTF
- B. SCAN
- C. CSCAN
- D. FSCAN
查看答案与解析
答案:A
解析:
- **SSTF(最短寻找时间优先)**只看哪一个请求离当前磁头最近,因此会不断改变方向。
- SCAN/CSCAN 算法会有规律地向一个方向扫描。
故选 A。
难度: ⭐⭐ 考点: #磁盘调度算法 #SSTF
💡 学习锦囊
📖 相关公式与知识点:
- 常见磁盘调度算法:FCFS(先来先服务,简单但性能差)、SSTF(最短寻道优先,可能饥饿)、SCAN(电梯算法,单向扫描后折返)、CSCAN(单向扫描,到头后快速返回)。
- SSTF 会随时改变磁头方向;SCAN/CSCAN 有规律地单向扫描。
思路分析
SSTF 只看距离最近 → 方向随意;SCAN 像电梯 → 方向规律。
🔄 举一反三
解决了 SSTF 算法中磁头“饥饿”现象的算法是( )。
- A. FCFS
- B. SCAN
- C. 优先级调度
- D. 轮转调度:::: ::::
查看练习答案与解析
答案:B
某文件系统采用位示图法管理外存储空间,每个磁盘块 4KB,已知一块磁盘容量为 40GB,则表示该磁盘所需位示图管理数据需要占用( )的内存空间。
- A. 1280KB
- B. 10240KB
- C. 4096KB
- D. 10MB
查看答案与解析
答案:A
解析:
- 磁盘块数 = $40 \text{ GB} / 4 \text{ KB} = 10 \times 2^{20}$ 块。
- 位示图 1 块对应 1 bit。
- 总占用位数 = $10 \text{ M bit}$。
- 内存占用 = $10 \times 2^{20} / 8 \text{ Byte} = 1.25 \text{ MB} = 1280 \text{ KB}$。
故选 A。
难度: ⭐⭐ 考点: #位示图 #存储管理
💡 学习锦囊
📖 相关公式与知识点:
- 1 GB = 1024 MB, 1 MB = 1024 KB。 :::
🔄 举一反三
磁盘容量为 80GB,块大小 4KB,位示图占用多大空间?( )
- A. 1280KB
- B. 2560KB
- C. 5120KB
- D. 20MB:::: ::::
查看练习答案与解析
答案:B
在下面的 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 逐块 → 通道首尾。
🔄 举一反三
以字节(或字)为单位进行 CPU 与设备间数据交换的控制方式是( )。
- A. 程序 I/O 与中断驱动
- B. DMA 方式
- C. 通道方式
- D. SPOOLing:::: ::::
查看练习答案与解析
答案:A
Linux系统通常使用( )来分配小块内存空间。
- A. 伙伴系统
- B. slab 分配器
- C. 位示图
- D. 首次适应算法
查看答案与解析
答案:B
解析:
- 伙伴系统(Buddy System):负责分配连续的大块物理内存(页框)。
- slab 分配器:基于伙伴系统,用于管理和分配内核中频繁使用的小对象(小块内存)。
故选 B。
难度: ⭐⭐ 考点: #Linux内存管理 #slab
💡 学习锦囊
📖 相关公式与知识点:
- 伙伴系统(Buddy System):负责分配连续的大块物理页框,基本单位是页框。
- slab 分配器:基于伙伴系统,管理和分配内核中频繁使用的小对象(小块内存)。
- 两者分工:伙伴系统管"大块",slab 管"小块"。
思路分析
伙伴系统 = 大块页框分配;slab = 小块内核对象分配。
🔄 举一反三
伙伴系统的内存分配基本单位是( )。
- A. 字节
- B. 页框
- C. 逻辑段
- D. 物理块:::: ::::
查看练习答案与解析
答案:B
以下( )设备适合采用 DMA 的 I/O 控制方式。
- A.打印机
- B. 键盘
- C. 鼠标
- D. 磁盘
查看答案与解析
答案:D
解析: DMA(直接内存访问)适用于传输速率极高、数据量大的块设备。磁盘属于高速块设备,最适合 DMA。
故选 D。
难度: ⭐ 考点: #DMA #块设备
💡 学习锦囊
📖 相关公式与知识点:
- DMA(直接存储器访问):适合高速块设备(磁盘),以数据块为单位在内存与设备间传输数据。
- 字符设备(键盘、鼠标):低速,按字符/字节传输,不适合 DMA。
- 设备分类:块设备(磁盘,可寻址,高速)、字符设备(键盘/鼠标/打印机,低速,流式)。
思路分析
DMA 选高速块设备;键盘鼠标是低速字符设备,用中断驱动即可。
🔄 举一反三
键盘、鼠标属于哪类设备?( )
- A. 高速块设备
- B. 独占高速设备
- C. 低速字符设备
- D. 共享块设备:::: ::::
查看练习答案与解析
答案:C
系统中采用 SPOOLing 技术的主要目的是( )。
- A. 提供内存和磁盘之间的接口
- B. 提高 CPU 和外设信息交换的速度
- C. 减轻用户编程负担
- D. 提高独占设备的利用率
查看答案与解析
答案:D
解析: SPOOLing(假脱机)技术通过在磁盘上设置输入输出井,将独占设备(如打印机)改造为虚拟共享设备,从而允许多个进程并发使用,大幅提高独占设备的利用率。
故选 D。
难度: ⭐⭐ 考点: #SPOOLing #虚拟设备
💡 学习锦囊
📖 相关公式与知识点:
- SPOOLing(假脱机):将独占设备改造为共享虚拟设备,提高设备利用率。
- 核心组成:输入/输出井(磁盘空间)、输入/输出缓冲区(内存)、井管理程序。
- 典型应用:共享打印机。
易错点
SPOOLing 的核心组成不包括"磁盘索引节点"。
🔄 举一反三
- SPOOLing 系统的核心组成部分不包括( )。
- A. 输入井和输出井
- B. 输入缓冲区和输出缓冲区
- C. 井管理程序
- D. 磁盘索引节点:::: :::::
查看练习答案与解析
答案:D

- 若上面资源分配图中的进程之后不再有新的资源申请,则根据上图的状态可知最先能执行结束的进程是( )。
- A. P4 或 P1
- B. P3 或 P4
- C. P2 或 P4
- D. P1 或 P2
查看答案与解析
答案:C
解析:
- 分析当前阻塞状态:
- P4:已占有 R2 和 R3,无后续申请。当前不阻塞,可直接运行完毕。
- P1:申请 R1(无空闲),阻塞。
- P3:申请 R2(无空闲),阻塞。
- P2:申请 R3。此时 R3 有 2 个实例(1 个分给 P4,1 个空闲)。P2 申请空闲的那个实例,不发生阻塞,可以直接获得资源并运行完毕。
- 综上,P2 和 P4 均处于非阻塞状态,可以最先顺利执行结束。
故选 C。
难度: ⭐⭐⭐ 考点: #死锁定理 #资源分配图
💡 学习锦囊
思路分析
仔细看图,重点寻找没有发出“申请边”的进程(如 P4),以及虽然申请但目标资源仍有空闲实例的进程(如 P2)。
🔄 举一反三
- 死锁定理用于( )。
- A. 预防死锁
- B. 避免死锁
- C. 检测死锁
- D. 解除死锁:::: :::::
查看练习答案与解析
答案:C 解析:死锁定理通过简化资源分配图来检测当前是否处于死锁状态。
二、 综合题(共 75 分)
- (6分)“虚拟”体现在操作系统的各方面应用当中,请举出 2 个“虚拟”的例子,要求对各例子分别做简单分析说明。
查看答案与解析
评分标准: 举出合理例子每个 1.5 分,分析说明每个 1.5 分。满分 6 分。
参考答案:
- 虚拟内存:
- 分析:通过页表映射机制,将一部分速度较慢的外存(如硬盘)虚拟为内存使用。使得逻辑地址空间远大于实际物理内存,达到小内存运行大程序的效果。
- 虚拟设备(如 SPOOLing 技术):
- 分析:在磁盘上开辟缓冲区,将独占的物理设备(如打印机)改造成共享的逻辑设备。允许多个进程同时向该设备输出数据,提高了设备利用率。
难度: ⭐ 考点: #操作系统虚拟化 #虚拟内存
💡 学习锦囊
📖 相关公式与知识点:
- 操作系统"虚拟"的核心思想:通过复用(时分/空分)、映射(虚拟内存)等技术,将物理资源抽象为多个逻辑资源。
- 常见虚拟化实例:虚拟内存(外存当内存)、虚拟设备/SPOOLing(独占变共享)、虚拟机(一台物理机运行多 OS)。
思路分析
"虚拟"的本质是"用软件模拟硬件"或"用慢速资源模拟快速资源"。
🔄 举一反三
- 操作系统中除了时间复用,还有哪种复用方式?请举例。
查看练习答案与解析
答案:空间复用。例如把内存分割成多个区域供不同进程使用(内存划分)。
::::
- (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 本身的开销算进去。
🔄 举一反三
- 若盘块号占 8 个字节,一个 4KB 盘块可存放多少盘块号?
查看练习答案与解析
答案:$4 \text{ KB} / 8 \text{ B} = 512$ 个。
::::
- (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_{传输}$。多柱面非连续分布时需累加多次旋转开销。
🔄 举一反三
- 若磁头当前在 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。
- (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 = 用硬件加速弥补时间损失。
🔄 举一反三
- 64位操作系统中,页表通常分几级?
查看练习答案与解析
答案:通常采用 4 级或 5 级页表。
::::
- (11 分)某计算机的逻辑地址空间和物理地址空间均为 64KB,按字节编址。若某进程最多需要 6 页数据存储空间,页的大小为 1KB,操作系统采用固定分配局部置换策略为该进程分配 4个页框。在时刻 260 前的该进程页面访问情况如下表所示。
| 页号 | 页框号 | 装入时刻 | 访问位 |
| 0 | 7 | 130 | 1 |
| 1 | 4 | 230 | 1 |
| 2 | 2 | 200 | 1 |
| 3 | 9 | 160 | 1 |
当该进程执行到 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) 的页面,减少写回磁盘开销。
思路分析
地址转换公式:页号 = 逻辑地址 / 页面大小;页内偏移 = 逻辑地址 % 页面大小。
🔄 举一反三
- 若页面大小为 4KB,17CAH 的页号是?
查看练习答案与解析
答案:$17\text{CAH}/1000\text{H} = 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)调度方案思路:
- 紧迫任务 & 快速响应:新进程统一进入 $Q_0$,抢占式执行。
- I/O 唤醒进程:磁盘 I/O 唤醒后提升至 $Q_1$;其他 I/O 提升至 $Q_2$。
- 计算大进程:时间片耗尽未完成则降级至 $Q_{n}$。
难度: ⭐⭐⭐ 考点: #调度算法设计 #MLFQ
💡 学习锦囊
📖 相关公式与知识点:
- 多级反馈队列(MLFQ):设置多个优先级队列,高优先级短时间片,低优先级长时间片。
- 新进程进入最高优先级队列;时间片用完降级;I/O 完成提升优先级。
- 使用**优先级位图(Bitmap)**可实现 O(1) 调度开销,与就绪进程数量无关。
思路分析
MLFQ 核心思想:优待短进程和 I/O 密集型进程,适当照顾计算密集型进程。
🔄 举一反三
- 多级反馈队列调度算法中,一个长进程最终会进入( )。
- A. 最高优先级队列
- B. 最低优先级队列
- C. 中间优先级队列
- D. 被撤销:::: ::::
查看练习答案与解析
答案:B 解析:长进程每次时间片用完都会被降级,最终落入最低优先级队列,获得最长的时间片。
- (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; }1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
难度: ⭐⭐⭐ 考点: #PV操作 #进程同步
💡 学习锦囊
📖 相关公式与知识点:
- P 操作(申请/等待):S = S - 1;若 S < 0,进程阻塞进入等待队列。
- V 操作(释放/唤醒):S = S + 1;若 S ≤ 0,唤醒等待队列中的一个进程。
- 信号量物理意义:S ≥ 0 表示可用资源数;S < 0 表示等待进程数。
思路分析
PV 操作必须成对出现:前驱关系的 P 对应后继的 V。
🔄 举一反三
- 信号量的物理意义是什么?
查看练习答案与解析
答案:$S \ge 0$ 代表可用资源数;$S < 0$ 代表等待该资源的进程排队数。
📝 答题区域
请考生将最终答案记录于下表中。
一、选择题(每题 1 分,共 25 分)
| 题号 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
|---|---|---|---|---|---|---|---|---|---|---|
| 答案 |
| 题号 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |
|---|---|---|---|---|---|---|---|---|---|---|
| 答案 |
| 题号 | 21 | 22 | 23 | 24 | 25 |
|---|---|---|---|---|---|
| 答案 |
二、综合题
- 详细步骤及答题请书写在纸质答题册上。