操作系统 单选专项练习(70题)

覆盖第1~9章全部内容,难度包含基础定义、概念辨析与应用分析三类。


核心难度:
6. 以下关于中断(Interrupt)与异常(Exception)的说法,错误的是?
A. 中断通常由 CPU 外部设备触发,异常由 CPU 内部指令执行引发
B. 中断和异常发生后,CPU 都会进入内核态进行处理
C. 缺页错误(Page Fault)属于中断而非异常
D. 中断处理完成后通常返回到被中断指令的下一条指令继续执行
13. 以下关于位置无关代码(Position Independent Code, PIC)的描述,正确的是?
A. PIC 必须被加载到固定的内存地址才能正确执行
B. PIC 通过基址寄存器或 PC 相对寻址实现,可以在内存中的任意位置运行
C. PIC 只能用于静态链接的可执行文件
D. PIC 不需要 GOT(全局偏移表)和 PLT(过程链接表)支持
21. 以下关于多级反馈队列调度的描述,错误的是?
A. 进程可以在不同的队列之间动态移动
B. 通常高优先级队列分配的时间片较短
C. 所有队列都采用相同的调度算法
D. 可以有效兼顾交互型进程和计算型进程
//高优先级队列(交互型)通常时间片较短(如8ms),低优先级队列(CPU密集型)时间片较长。
22. 内核级线程与用户级线程相比,其优势在于?
A. 线程切换不需要陷入内核,开销更小
B. 同一进程中一个线程阻塞不会导致整个进程阻塞
C. 创建和销毁线程的开销更小
D. 不需要操作系统的支持

36.在请求分页系统中,页表中通常不包含以下哪一项?
A. 页框号(物理块号)
B. 有效/无效位(存在位)
C. 访问权限位
D. 文件的 inode 编号

  1. 在 Unix/Linux 文件系统中,inode(索引节点)不包含以下哪项信息?
    A. 文件的磁盘数据块指针
    B. 文件的访问权限和所有者信息
    C. 文件名
    D. 文件大小和时间戳

  2. 一个文件系统的磁盘块大小为 4KB,块地址指针占 4B,使用直接索引 + 单级间接索引 + 双级间接索引的结构(直接索引为 10 个块)。问单个文件的最大文件大小大约为多少?(二级间接索引按满计算)
    A. 4KB
    B. 64KB + 4MB + 4GB
    C. 40KB + 4MB + 4GB
    D. 44KB + 4MB + 4GB(细讲)
    就是说,二级索引实际上指的是第一级只存指针不存数据,因此是一级的1024个4KB块每个都存1024个二级指针

[ 直接索引 ] (格子0~9)
├── 指向 块号 0~9        → 10个数据块 (计入文件大小:40KB)

[ 单级索引 ] (格子10)
├── 指向 块号 101个一级索引块 (不计入大小!)
│   └── 块号10里存了1024个指针 → 指向 块号11~1034
│       └── 块号11~1034  → 1024个数据块 (计入大小:4MB)

[ 双级索引 ] (格子11)
├── 指向 块号 10351个二级索引块 (不计入大小!)
│   └── 块号1035里存了1024个指针 → 指向 块号1036~2059
│       └── 块号1036~2059 → 1024个一级索引块 (不计入大小!)
│           └── 每个一级索引块里存1024个指针
│               └── 总共 1024×1024 个指针 → 指向 块号2060~...
│                   └── 这些块才是真正的数据块 (计入大小:4GB)
  1. 关于符号链接(软链接)与硬链接的叙述,正确的是?
    A. 硬链接可以跨文件系统创建
    B. 删除源文件后,符号链接将失效(成为悬挂链接),硬链接依然有效
    C. 符号链接的 inode 与被链接文件的 inode 相同
    D. 硬链接只能用于目录,不能用于普通文件

A 错:硬链接不能跨文件系统(因为inode编号只在同一文件系统内唯一)。软链接可以跨文件系统。

B 对:✅ 删除源文件后:

软链接:变成悬挂链接(指向一个不存在的路径),访问会报错。

硬链接:因为inode的引用计数减1但仍大于0,文件数据还在,仍然有效。

C 错:软链接有自己的inode(是一个独立的小文件,存的是路径字符串),和被链接文件的inode不同;硬链接才共享同一个inode。

D 错:硬链接只能用于普通文件,不能用于目录(防止目录环)。

  1. 关于 Peterson 算法,以下说法正确的是?
    A. 只能解决两个进程的互斥问题
    B. 不需要任何硬件支持即可保证互斥,但可能发生忙等
    C. 同时依赖于 flag 数组和 turn 变量来保证互斥与有限等待
    D. 以上所有选项均正确

  2. 使用信号量(Semaphore)实现互斥时,通常将信号量初始值设为?
    A. 0
    B. 1 如果初始值为 0:第一个进程就阻塞了,谁也进不去(死锁)。
    C. n(n 为进程数)
    D. 任意值

  3. 以下关于管程(Monitor)的描述,错误的是?(细讲)
    A. 管程是一种高级同步原语,将共享数据结构和对其的操作封装在一起
    B. 管程保证了同一时刻只有一个进程在管程内部执行
    C. 管程中的条件变量可以配合 wait 和 signal 操作使用,且与信号量语义完全相同
    D. 管程可以帮助程序员避免因误用信号量而导致的死锁和同步错误

在这里插入图片描述

  1. 关于死锁的必要条件"循环等待",以下说法正确的是?
    A. 破坏循环等待即可预防死锁
    B. 只有循环等待条件成立就必然发生死锁
    C. 循环等待是指每个进程都在等待另一个进程释放资源,且形成一个闭环
    D. 循环等待条件成立时,系统中一定存在两个及以上进程都在同时运行

  2. 关于"生产者-消费者"问题中使用信号量机制,以下哪项是必要的?
    A. 一个互斥信号量和一个资源信号量
    B. 一个互斥信号量(用于缓冲区互斥)和两个资源信号量(用于计数空与满)
    C. 两个互斥信号量
    D. 只用全局变量,不需要信号量

生产者-消费者问题必须管理两类资源:

缓冲区空位数量(生产者关心)——资源信号量 empty,初始值为 n

缓冲区满位数量(消费者关心)——资源信号量 full,初始值为 0

缓冲区本身互斥(防止同时读写)——互斥信号量 mutex,初始值为 1

所以总共需要:1个互斥信号量 + 2个资源信号量,选 B。在这里插入图片描述

第1~2章 操作系统概述(10题)

1. 操作系统的主要职责是下列哪一项?
A. 确保计算机硬件不会发生物理损坏
B. 为用户应用程序提供与硬件交互的接口,并管理计算机资源
C. 只负责编译和执行用户编写的程序
D. 替代 BIOS 完成计算机开机自检

2. 以下关于操作系统内核态(管态)与用户态的叙述,正确的是?
A. 用户态下可以执行所有指令,包括 I/O 操作
B. 内核态与用户态的主要区别在于能否访问磁盘文件
C. 通过"陷入"(trap)指令可以从用户态切换到内核态
D. 操作系统本身完全在用户态下运行以提高安全性

3. 当用户程序执行系统调用时,硬件所发生的事件顺序是?
A. 直接跳转到系统调用处理函数 → 保存上下文 → 返回用户态
B. CPU 执行陷入指令 → 硬件将 CPU 模式切换为内核态 → 跳转到中断/异常向量表对应入口
C. 操作系统自动保存用户程序的所有寄存器 → 执行系统调用 → 恢复寄存器
D. 用户程序通过函数库直接调用内核代码,无需模式切换

4. 在分时操作系统中,CPU 调度的基本策略是?
A. 先来先服务,直到进程主动释放 CPU
B. 每个进程被分配一个时间片,轮流使用 CPU
C. 优先级高的进程一直占用 CPU 直到完成
D. 同一时刻允许多个进程同时使用 CPU

5. 实时操作系统与通用操作系统最主要的区别在于?
A. 实时操作系统不需要文件系统
B. 实时操作系统的调度必须满足任务的截止时间要求
C. 实时操作系统只能运行在单核 CPU 上
D. 通用操作系统不能运行实时任务

6. 以下关于中断(Interrupt)与异常(Exception)的说法,错误的是?
A. 中断通常由 CPU 外部设备触发,异常由 CPU 内部指令执行引发
B. 中断和异常发生后,CPU 都会进入内核态进行处理
C. 缺页错误(Page Fault)属于中断而非异常
D. 中断处理完成后通常返回到被中断指令的下一条指令继续执行

7. 关于微内核(Microkernel)架构,下列描述正确的是?
A. 将尽可能多的功能放入内核,减少用户态与内核态的切换
B. 内核只提供最基本的机制(如进程间通信、地址空间管理),其余服务在用户态运行
C. 微内核的 IPC 开销小于宏内核
D. Linux 操作系统采用的是纯微内核架构

8. 以下哪一项不是操作系统提供的服务?
A. 为用户程序创建和删除进程
B. 提供文件读写操作的 API
C. 自动检测程序中的语法错误并修复
D. 分配和管理内存资源

9. 特权级(Privilege Level)机制的主要目的是?
A. 提高 CPU 的时钟频率
B. 区分不同用户的使用权限,防止越权访问敏感数据
C. 将 CPU 的指令划分为不同等级,阻止用户程序执行可能破坏系统的指令
D. 优化编译器生成的代码性能

10. 以下关于操作系统启动过程的描述,正确的是?
A. 通电后 CPU 直接从硬盘读取操作系统内核并运行
B. BIOS/UEFI 加载引导程序,引导程序再将操作系统内核从磁盘加载到内存并跳转执行
C. 操作系统由 BIOS 直接复制到内存中并自动运行
D. 引导程序被加载后立即将控制权交给用户程序


第3章 程序结构与运行(7题)

11. 从 C 语言源程序到可执行文件,正确的处理步骤是?
A. 汇编 → 编译 → 链接 → 加载
B. 编译 → 汇编 → 链接 → 加载
C. 汇编 → 链接 → 编译 → 加载
D. 链接 → 编译 → 汇编 → 加载

12. 静态链接与动态链接的关键区别是?
A. 静态链接只能在 Windows 上使用,动态链接只能在 Linux 上使用
B. 静态链接在程序运行前将所有依赖的库函数代码合并到可执行文件中;动态链接则在程序加载或运行时才将共享库装入内存
C. 静态链接不需要链接器,动态链接需要链接器
D. 动态链接生成的可执行文件比静态链接更大

13. 以下关于位置无关代码(Position Independent Code, PIC)的描述,正确的是?
A. PIC 必须被加载到固定的内存地址才能正确执行
B. PIC 通过基址寄存器或 PC 相对寻址实现,可以在内存中的任意位置运行
C. PIC 只能用于静态链接的可执行文件
D. PIC 不需要 GOT(全局偏移表)和 PLT(过程链接表)支持

14. 在程序的链接过程中,符号解析(Symbol Resolution)的主要任务是?
A. 将程序中的变量名替换为对应的数值
B. 将目标文件中的符号引用与符号定义关联起来
C. 将代码中的注释删除以减小文件体积
D. 将汇编指令翻译为机器码

15. 以下关于加载器(Loader)的叙述,正确的是?
A. 加载器负责将源文件编译为目标文件
B. 加载器将可执行文件从磁盘读入内存,并完成地址重定位
C. 加载器只在操作系统安装时运行一次
D. 加载器是 CPU 硬件的一部分

16. 动态链接库(如 Linux 的 .so 文件)在内存中被多个进程共享时,以下说法正确的是?
A. 每个进程在内存中都会保留一份动态链接库的完整副本
B. 代码段常被共享(只读),但数据段通常采用写时复制(Copy-on-Write)机制
C. 动态链接库既不能共享代码段也不能共享数据段
D. 动态链接库的代码段和数据段在所有进程中完全共享,包括可写部分

17. 使用 gcc 编译时,仅完成预处理、编译和汇编三个阶段,不进行链接,应使用的选项是?
A. gcc -E
B. gcc -S
C. gcc -c
D. gcc -o


第4章 调度(10题)

18. 在进程调度中,“饥饿”(Starvation)现象最可能出现在以下哪种调度算法中?
A. 先来先服务(FCFS)
B. 轮转(Round Robin)
C. 优先级调度(Priority Scheduling)
D. 多级反馈队列(需结合具体参数判断)

19. 假设三个进程 P1、P2、P3 的到达时间均为 0,服务时间分别为 24、3、3。使用最短作业优先(SJF)非抢占调度,其平均周转时间约为?
A. 17
B. 13
C. 10
D. 30

20. 轮转(RR)调度算法中,时间片的大小对系统性能的影响是?
A. 时间片越大越好,可以减少上下文切换次数
B. 时间片越小越好,可以提高响应速度
C. 时间片过大则退化为 FCFS;时间片过小则上下文切换开销过大
D. 时间片大小只影响 I/O 密集型进程,不影响 CPU 密集型进程

21. 以下关于多级反馈队列调度的描述,错误的是?
A. 进程可以在不同的队列之间动态移动
B. 通常高优先级队列分配的时间片较短
C. 所有队列都采用相同的调度算法
D. 可以有效兼顾交互型进程和计算型进程
//高优先级队列(交互型)通常时间片较短(如8ms),低优先级队列(CPU密集型)时间片较长。

22. 内核级线程与用户级线程相比,其优势在于?
A. 线程切换不需要陷入内核,开销更小
B. 同一进程中一个线程阻塞不会导致整个进程阻塞
C. 创建和销毁线程的开销更小
D. 不需要操作系统的支持

23. 以下哪种情况会导致 CPU 从当前进程切换到另一个进程(即上下文切换)?
A. 当前进程执行了一条加法指令
B. 当前进程发起了一次系统调用,因等待 I/O 而进入阻塞状态
C. 当前进程在用户态读取了一个全局变量
D. 当前进程调用了一次库函数却未触发系统调用

24. 关于 TLB(Translation Lookaside Buffer)的叙述,正确的是?
A. TLB 是 CPU 芯片内部的高速缓存,用于缓存最近使用的页表项
B. TLB 是磁盘上的一块特殊区域,用于加速文件访问
C. TLB 命中率与调度算法无关
D. TLB 使⽤ LRU 替换算法时效率总是最高的

25. 时间局部性(Temporal Locality)的含义是?
A. 最近被访问过的内存地址,在不久的将来很可能再次被访问
B. 程序总是顺序执行指令,不会跳转
C. 数据倾向于集中存储在磁盘的连续扇区中
D. 被访问的地址附近的内存位置将很快被访问

26. 以下关于调度指标"吞吐量"(Throughput)的描述,正确的是?
A. 从进程提交到进程完成所经过的时间
B. 单位时间内完成的进程数量
C. 进程从提交到首次被调度执行的时间
D. 进程在就绪队列中等待的时间

27. 在对称多处理(SMP)系统中,调度需要考虑的一个额外问题是?
A. 是否存在足够的硬盘空间
B. CPU 亲和性(CPU Affinity),即尽量使进程在同一个 CPU 上运行以利用缓存
C. 所有进程的主优先级必须相同
D. 必须使用实时调度算法


第5章 内存管理(10题)

28. 以下哪种内存分配方式最容易产生外部碎片?
A. 固定分区分配
B. 分页存储管理
C. 分段存储管理
D. 段页式存储管理

29. 在可变分区分配中,最佳适应(Best Fit)算法的特点是?
A. 每次从最低地址开始查找第一个满足要求的空闲分区
B. 每次查找能满足要求的最大空闲分区
C. 每次查找能满足要求的最小空闲分区,避免大块空间被分割
D. 将空闲分区按地址顺序排列,查找速度最快

30. 分页存储管理中,逻辑地址到物理地址的转换是通过以下哪一项完成的?
A. 段表
B. 页表 + 页内偏移量
C. 直接由 CPU 通过总线寻址
D. 由编译器在编译时计算

31. 某系统采用分页存储管理,页大小为 4KB,逻辑地址为 20 位,则逻辑地址空间最多可包含多少页?
A. 512 页
B. 256 页
C. 1024 页
D. 2048 页

32. 当程序访问的页面不在内存中时,硬件会触发什么事件?
A. 段错误(Segmentation Fault)
B. 缺页中断(Page Fault)
C. 系统重启
D. 总线错误(Bus Error)

33. 关于页面置换算法,下列描述正确的是?
A. FIFO 算法总是产生最少的缺页次数
B. LRU 算法实现简单,硬件开销很小
C. 时钟(Clock/NRU)算法是对 FIFO 的一种改进,通过使用位来优先保留最近被访问的页面
D. OPT(最优)算法在实际系统中广泛使用,因为它可以最小化缺页率

34. 系统发生"抖动"(Thrashing)的原因是?
A. CPU 温度过高导致性能下降
B. 进程频繁缺页,导致系统将大部分时间花在页面换入换出上,CPU 利用率急剧下降
C. 内存中空闲页面过多
D. 磁盘发生了物理损坏

35. 以下关于分段与分页的对比,正确的是?
A. 分页是物理上的划分,对程序员透明;分段是逻辑上的划分,通常对程序员可见
B. 分段没有外部碎片问题
C. 分页和分段都要求将整个程序一次性加载到内存中
D. 段的大小是固定的,页的大小可以不同

36. 在请求分页系统中,页表中通常不包含以下哪一项?
A. 页框号(物理块号)
B. 有效/无效位(存在位)
C. 访问权限位
D. 文件的 inode 编号

37. 假设 FIFO 页面置换算法发生 Belady 异常,这表明?
A. 增加分配给进程的物理块数反而导致缺页次数增加
B. 减少分配给进程的物理块数导致缺页次数减少
C. 页面置换算法出现了死循环
D. 缺页次数与物理块数呈单调递减关系


第6章 文件系统(8题)

38. 在 Unix/Linux 文件系统中,inode(索引节点)不包含以下哪项信息?
A. 文件的磁盘数据块指针
B. 文件的访问权限和所有者信息
C. 文件名
D. 文件大小和时间戳

39. 文件控制块(FCB)的主要作用是?
A. 存储文件的实际数据内容
B. 描述和管理文件的元数据信息
C. 负责文件的加密和解密
D. 缓存最近访问的文件数据

40. 一个文件系统的磁盘块大小为 4KB,块地址指针占 4B,使用直接索引 + 单级间接索引 + 双级间接索引的结构(直接索引为 10 个块)。问单个文件的最大文件大小大约为多少?(二级间接索引按满计算)
A. 4KB
B. 64KB + 4MB + 4GB
C. 40KB + 4MB + 4GB
D. 44KB + 4MB + 4GB

41. 关于符号链接(软链接)与硬链接的叙述,正确的是?
A. 硬链接可以跨文件系统创建
B. 删除源文件后,符号链接将失效(成为悬挂链接),硬链接依然有效
C. 符号链接的 inode 与被链接文件的 inode 相同
D. 硬链接只能用于目录,不能用于普通文件

42. 虚拟文件系统(VFS)的主要作用是?
A. 将文件数据缓存在内存中以提高读写速度
B. 在不同物理文件系统(如 ext4、NTFS)之上提供一个统一的抽象层
C. 对磁盘进行分区和格式化
D. 监视所有文件访问操作以进行安全审计

43. 以下关于空闲磁盘空间管理的叙述,错误的是?
A. 空闲链表法管理简单,但分配连续空间时效率较低
B. 位示图(Bitmap)法可以方便地找到连续的空闲块
C. 成组链接法是对空闲链表法的改进,减少了链表的长度
D. 无论使用哪种方法,空闲空间管理的开销总是可以忽略不计

44. 在文件系统中,"访问控制列表(ACL)"用于?
A. 指定文件在磁盘上的物理存储位置
B. 限制特定用户或组对文件或目录的访问权限
C. 列出系统中所有正在使用的文件
D. 控制文件系统占用的磁盘空间上限

45. 关于文件分配方式,以下说法正确的是?
A. 连续分配不允许文件动态增长
B. 链接分配支持随机访问,效率高
C. 索引分配可以支持文件的动态增长,且适合随机访问
D. 连续分配不存在外部碎片问题


第7章 输入/输出系统(8题)

46. 以下哪一类设备属于块设备(Block Device)?
A. 键盘
B. 鼠标
C. 磁盘
D. 显示器

47. 关于 SPOOLING(假脱机)技术,以下描述正确的是?
A. SPOOLING 技术仅适用于块设备
B. 通过磁盘作为缓冲区,将独占设备改造为共享设备,实现虚拟设备功能
C. SPOOLING 技术会显著降低系统的 I/O 吞吐量
D. SPOOLING 技术只用在早期的批处理系统中

48. 磁盘调度算法中,可能发生"饥饿"现象的是?
A. 先来先服务(FCFS)
B. 最短寻道时间优先(SSTF)
C. 扫描算法(SCAN / 电梯算法)
D. 循环扫描算法(C-SCAN)

49. 假设磁头当前在 50 号磁道,以下请求序列为 [30, 75, 45, 90, 60]。使用最短寻道时间优先(SSTF)算法,磁头访问磁道的顺序是?
A. 45, 60, 75, 90, 30
B. 60, 45, 75, 30, 90
C. 45, 60, 75, 30, 90
D. 45, 60, 30, 75, 90

50. 关于缓冲(Buffer)与缓存(Cache)的对比,以下正确的是?
A. 缓冲的主要目的是提高数据访问速度,缓存的主要目的是协调速度不同的设备
B. 缓冲通常用于协调不同设备间的数据流速差异,缓存用于存储频繁访问的数据副本以加速访问
C. 缓冲与缓存是同一个概念的不同称呼
D. 缓冲只能使用 RAM 实现,缓存只能使用 CPU 寄存器实现

51. 以下哪种 I/O 控制方式中,CPU 需要在数据传输过程中不断轮询设备状态寄存器?
A. 程序直接控制方式(轮询)
B. 中断驱动 I/O
C. DMA(直接内存访问)
D. 通道控制方式

52. 关于中断驱动 I/O 与 DMA 方式的比较,描述正确的是?
A. 中断驱动 I/O 在每次传输一个字或一个字节后都需要 CPU 干预;DMA 在整块数据传输完成后才中断 CPU
B. DMA 方式不需要 CPU 参与任何操作,完全独立运行
C. 中断驱动 I/O 适用于高速块设备,DMA 适用于低速字符设备
D. DMA 传输过程中 CPU 不能执行其他程序

53. 同步 I/O 与异步 I/O 的关键区别是?
A. 同步 I/O 速度更快,异步 I/O 速度更慢
B. 同步 I/O 中,发出 I/O 请求的进程需等待操作完成;异步 I/O 中,进程可以继续执行,在 I/O 完成时收到通知
C. 同步 I/O 只适用于块设备,异步 I/O 只适用于字符设备
D. 同步 I/O 不需要操作系统的支持,异步 I/O 需要


第8章 并发(10题)

54. 关于竞争条件(Race Condition)的描述,正确的是?
A. 当多个进程同时访问同一个 CPU 时就可能产生竞争条件
B. 竞争条件是指多个进程并发访问和操作共享数据,其结果取决于访问的特定顺序
C. 竞争条件只会在多核系统中出现,单核系统不会出现
D. 竞争条件会导致程序编译错误

55. 满足以下哪四个条件就可能导致死锁?
A. 互斥、持有并等待、非抢占、循环等待
B. 互斥、并发、共享、阻塞
C. 互斥、优先级反转、饥饿、循环等待
D. 共享、可抢占、线性增长、循环等待

56. 关于 Peterson 算法,以下说法正确的是?
A. 只能解决两个进程的互斥问题
B. 不需要任何硬件支持即可保证互斥,但可能发生忙等
C. 同时依赖于 flag 数组和 turn 变量来保证互斥与有限等待
D. 以上所有选项均正确

57. 自旋锁(Spin Lock)的特点描述正确的是?
A. 自旋锁在等待锁时会阻塞进程,让出 CPU
B. 自旋锁适用于预期等待时间很短的场景,且通常在多核系统中更有效
C. 自旋锁不会浪费 CPU 时间片
D. 自旋锁只能在内核态使用

58. 使用信号量(Semaphore)实现互斥时,通常将信号量初始值设为?
A. 0
B. 1
C. n(n 为进程数)
D. 任意值

59. 以下关于管程(Monitor)的描述,错误的是?
A. 管程是一种高级同步原语,将共享数据结构和对其的操作封装在一起
B. 管程保证了同一时刻只有一个进程在管程内部执行
C. 管程中的条件变量可以配合 wait 和 signal 操作使用,且与信号量语义完全相同
D. 管程可以帮助程序员避免因误用信号量而导致的死锁和同步错误

60. 关于死锁的必要条件"循环等待",以下说法正确的是?
A. 破坏循环等待即可预防死锁
B. 只有循环等待条件成立就必然发生死锁
C. 循环等待是指每个进程都在等待另一个进程释放资源,且形成一个闭环
D. 循环等待条件成立时,系统中一定存在两个及以上进程都在同时运行

61. 安全状态与死锁的关系是?
A. 安全状态一定不会发生死锁,不安全状态一定发生死锁
B. 安全状态一定不会发生死锁,但不安全状态不一定发生死锁
C. 安全状态也可能发生死锁
D. 安全状态和不安全状态与死锁无关

62. 银行家算法通过以下哪种方式来避免死锁?
A. 破坏互斥条件,允许所有资源共享
B. 在资源分配前检查是否存在安全序列,若不存在则拒绝分配
C. 一旦检测到死锁立即终止所有进程
D. 限制系统中最大进程数量

63. 关于"生产者-消费者"问题中使用信号量机制,以下哪项是必要的?
A. 一个互斥信号量和一个资源信号量
B. 一个互斥信号量(用于缓冲区互斥)和两个资源信号量(用于计数空与满)
C. 两个互斥信号量
D. 只用全局变量,不需要信号量


第9章 进程间通信(7题)

64. 匿名管道(Pipe)与命名管道(FIFO)的主要区别是?
A. 匿名管道只能用于有亲缘关系(如父子)的进程间通信;命名管道可用于无亲缘关系的进程间通信
B. 匿名管道是双向的,命名管道是单向的
C. 匿名管道的传输速度比命名管道快很多
D. 命名管道只能在 Windows 系统中使用

65. 关于信号(Signal)机制,下列说法正确的是?
A. 信号是一种用于进程间传输大量数据的通信方式
B. 信号是一种异步事件通知机制,进程收到信号后可以执行预设的处理函数
C. 信号只能由操作系统内核发出,用户进程不能发送信号
D. 进程收到信号后必须立即终止运行

66. 在消息队列(Message Queue)通信中,消息通常具备以下哪个特点?
A. 消息是以字节流的形式传输,没有边界
B. 消息是有格式、有边界的结构化数据块
C. 消息只能由系统内核进行格式转换
D. 消息在传递过程中会直接写入接收进程的地址空间

67. 关于共享内存(Shared Memory)的叙述,错误的是?
A. 共享内存是最快的 IPC 方式,因为数据不需要在进程间复制
B. 共享内存本身不提供同步机制,通常需要配合信号量或互斥锁使用
C. 使用共享内存时,不同进程将同一块物理内存映射到各自的地址空间
D. 共享内存由于数据不经过内核,因此不需要任何同步机制即可安全使用

68. 以下关于 socket 通信的描述,正确的是?
A. socket 只能用于不同机器之间的网络通信,不能用于同一台机器的进程间通信
B. socket 通信只能使用 TCP 协议,不能使用 UDP
C. socket 既可用于同一台主机内的进程间通信,也可用于网络间不同主机的进程通信
D. socket 不依赖于 IP 地址和端口号

69. 以下 IPC 机制中,传输大量数据时效率最高的是?
A. 信号
B. 共享内存
C. 命名管道
D. 消息队列

70. 关于管道通信的叙述,正确的是?
A. 管道是双向的,两个进程可以同时通过同一个管道收发数据
B. Linux 命令 ls | grep "txt" 中,shell 创建了一个管道,将 ls 的标准输出连接到 grep 的标准输入
C. 管道内部使用共享内存实现数据传输,因此不需要在内核和用户空间之间复制数据
D. 匿名管道的容量是无限的


参考答案(Answer Key)

题号 答案 题号 答案 题号 答案 题号 答案 题号 答案
1 B 2 C 3 B 4 B 5 B
6 C 7 B 8 C 9 C 10 B
11 B 12 B 13 B 14 B 15 B
16 B 17 C 18 C 19 B 20 C
21 C 22 B 23 B 24 A 25 A
26 B 27 B 28 C 29 C 30 B
31 B 32 B 33 C 34 B 35 A
36 D 37 A 38 C 39 B 40 C
41 B 42 B 43 D 44 B 45 C
46 C 47 B 48 B 49 A 50 B
51 A 52 A 53 B 54 B 55 A
56 D 57 B 58 B 59 C 60 C
61 B 62 B 63 B 64 A 65 B
66 B 67 D 68 C 69 B 70 B

说明: 上述答案为编者参考标准操作系统教材(如《Operating System Concepts》Silberschatz 等、《Computer Systems: A Programmer’s Perspective》等)制定的参考答案。如有争议,建议以授课教师的讲解为准。

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐