Skip to content

[Q54] 信号量值含义

若信号量S的初始值为3,当前值为-1,则表示( )个进程正在等待该资源。

  • A. 0
  • B. 1
  • C. 2
  • D. 3
📝答案与解析

答案:B

解析:S<0时,|S|=等待进程数。|-1|=1个进程在等待。

这道题考的是 信号量值的含义,规则很简单:

信号量 S 的含义:

  • S ≥ 0 → S 表示可用资源数
  • S < 0 → |S| 表示等待该资源的进程数

逐步推演:

步骤S 值变化说明
初始S = 33 个资源可用
进程 A 执行 P 操作S = 2占用 1 个,剩 2 个可用
进程 B 执行 P 操作S = 1占用 2 个,剩 1 个可用
进程 C 执行 P 操作S = 0占用 3 个,资源刚好用完
进程 D 执行 P 操作S = -1资源已用完,D 进入等待队列

当 S = -1:

  • 绝对值 |-1| = 1 → 有 1 个进程在等待(进程 D)
  • 同时意味着 3 个资源全被占用

所以选 B(1 个进程等待)


[Q66] 前趋图PV规则

在使用信号量实现前驱关系时,以下哪个步骤是正确的( )。

  • A. 设置的信号量数量等于进程数
  • B. 所有信号量的初始值设为1
  • C. 进程执行前进行V操作,执行后进行P操作
  • D. 信号量数量等于有向边数量,初始值为0
📝答案与解析

答案:D

解析:信号量数=有向边数,初值全0,前驱执行后V,后继执行前P。


[Q64] 死锁条件

在操作系统中,以下哪个条件不是产生死锁的必要条件( )。

  • A. 资源共享
  • B. 保持和等待
  • C. 不可剥夺
  • D. 环路等待
📝答案与解析

答案:A

解析:死锁四条件:互斥、占有等待、不可剥夺、环路等待。"资源共享"不是。

死锁四个必要条件

条件含义
互斥资源一次只能给一个进程用
保持和等待进程占着资源不放,还等别的资源
不可剥夺资源不能被强行抢走
环路等待进程间形成循环等待链
选 A 的原因

A. 资源共享 ❌ — 不是必要条件

  • 死锁需要的是互斥(资源不能共享),而不是共享
  • 如果一个资源可以共享(比如只读文件),多个进程同时用不会死锁
  • 所以「资源共享」恰恰是避免死锁的方向,不是产生死锁的条件

[Q9] 并发+死锁

若一个单处理器的计算机系统中同时存在3个并发进程,则同一时刻允许占用处理器的进程数( );如果这3个进程都要求使用2个互斥资源R,那么系统不产生死锁的最少的R资源数为( )个。

  • A. 至少为1个
  • B. 至少为3个
  • C. 最多为1个
  • D. 最多为3个
📝答案与解析

答案:C(最多1个)

解析:单处理器同一时刻最多1个进程占用CPU。死锁最小资源=3×(2-1)+1=4,选项未给出第二问。


[Q72] 调度

在操作系统中,哪种调度不涉及进程在内存和外存之间的交换( )。

  • A. 高级调度
  • B. 中级调度
  • C. 低级调度
  • D. 实时调度
📝答案与解析

答案:C

解析:低级调度=CPU分配,不涉及内存-外存交换;中级调度才涉及。

这道题选 C(低级调度) ✅。实时调度 不是三级调度中的概念,是两个不同的维度。


三级调度回顾

调度级别别名做什么是否涉及内外存交换
高级调度作业调度决定哪个后备作业调入内存成为就绪进程✅ 是
中级调度对换调度决定交换区中哪个进程换入内存✅ 是
低级调度进程调度决定内存中哪个就绪进程拿到 CPU❌ 

低级调度只看谁上 CPU,进程已经在内存里了,不涉及搬进搬出。所以选 C。


实时调度是调度算法/策略的分类,而不是一个独立的调度级别。

三级调度是按发生的位置和时机分的(作业层→交换层→CPU 层),而实时调度是按调度目标分的:

调度策略分类:  
├── 先来先服务(FCFS)  
├── 时间片轮转(RR)  
├── 优先级调度  
├── 多级反馈队列  
└── 实时调度(保证任务在截止时间前完成)  
        ├── 速率单调调度(RMS)— 静态优先级  
        └── 最早截止时间优先(EDF)— 动态优先级

实时调度关注的是能不能按时完成,它在三级调度中属于低级调度这个层面 — 决定当前哪个进程上 CPU,只是选谁的标准变了(看截止时间而非优先级/时间片)。


高级/中级/低级 = 在哪个阶段做调度 实时调度 = 用什么标准来做调度(按时完成优先)

所以题目中的 D 选项其实是一个分类错误 — 它和 A/B/C 不在同一个维度上。但标准答案还是 C(低级调度),因为它是唯一明确不涉及内外存交换的


经典题目 — 链式存储+成组分解字节定位易错(块号从0计数,整除为边界)

[Q20] 链式存储+成组分解

某文件系统采用链式存储管理方式并应用记录的成组与分解技术,且磁盘块的大小为 4096 字节。若文件 license.doc 由 7 个逻辑记录组成,每个逻辑记录的大小为 2048字节,并依次存放在 58、89、96 和 101 号磁盘块上,那么要存取文件的第 12288 逻辑字节处的信息,应访问( )号磁盘块。

  • A. 58
  • B. 89
  • C. 96
  • D. 101
📝答案与解析

答案:D

解析:每块存2个记录(4096/2048=2)。12288/4096=3,第3块(从0计)→101号块。

已知条件:

  • 磁盘块大小 = 4096 字节
  • 每个逻辑记录 = 2048 字节
  • 所以 每块存 2 个记录(4096 ÷ 2048 = 2)
  • 文件存于 4 个盘块(链式):58 → 89 → 96 → 101

目标:访问逻辑字节 12288

第一步:确定在第几个磁盘块

每块 4096 字节,用逻辑字节数除以块大小:

12288 ÷ 4096 = 3 (整除,无余数)
块号(从0计)字节范围物理块
第0块0 ~ 409558
第1块4096 ~ 819189
第2块8192 ~ 1228796
第3块12288 ~ 16383101

12288 正好是第 3 块的起始位置(第0块是 0~4095 别忘了)。

第二步:链式存储 → 逐块跟踪

链式存储下物理块不连续,靠指针串联:

  • 文件第1块 → 58
  • 第2块 → 89(58指向89)
  • 第3块 → 96(89指向96)
  • 第4块 → 101(96指向101)

所以第 3 块(从0计)对应物理块 101

简单说:12288 ÷ 4096 = 3 → 第 3 块(0-indexed)→ 链式第四个节点 → 101


[Q57] 连续结构

( )文件组织方式支持快速随机访问但易产生碎片。

  • A. 连续结构
  • B. 链接结构
  • C. 索引结构
  • D. 哈希结构
📝答案与解析

答案:A

解析:连续结构=文件块连续存放→随机访问快;但增删文件易产生外碎片。


[Q59] 文件属性

在文件管理系统中,以下哪个文件属性表示该文件是一个系统文件( )。

  • A. R
  • B. A
  • C. S
  • D. H
📝答案与解析

答案:C

解析:R=只读(Read-only),A=归档(Archive),S=系统(System),H=隐藏(Hidden)。


[Q85] 硬链接

关于文件的硬链接,下列描述正确的是( )。

  • A. 创建新的文件实体
  • B. 两个文件目录项指向同一个索引节点
  • C. 建立文件路径的映射关系
  • D. 必须位于同一个文件系统
📝答案与解析

答案:B

解析:硬链接=多个目录项指向同一inode,不创建新实体,共享同一索引节点。

D 的描述也是对的,不过更多是约束条件,选择B描述更准确一些。


经典题目 — 索引地址计算核心题(直接/一级间接/二级间接的边界定位)

设文件索引节点有 8 个地址项(每项 4 字节):5 个直接地址索引,2 个一级间接索引,1 个二级间接索引。磁盘索引块和数据块大小均为 1KB。

Q1:访问逻辑块号 5 和 518,分别采用什么索引?

📝答案与解析

答案:一级间接地址索引和二级间接地址索引

解析:

  • 直接索引:0~4(5 个)
  • 一级间接索引:每节点 1KB/4B=256 个块,2 个节点覆盖 5~516
  • 二级间接索引:517 以上
  • 逻辑块 5 在 5~516 范围 → 一级间接;518 > 516 → 二级间接

答案:逻辑块 5 → 一级间接地址索引,逻辑块 518 → 二级间接地址索引

这题是索引结构的经典计算,一步步拆:


已知条件

地址项总数8 个(iaddr[0]~iaddr[7])
直接索引5 个(iaddr[0]~iaddr[4])
一级间接索引2 个(iaddr[5]~iaddr[6])
二级间接索引1 个(iaddr[7])
磁盘块大小1KB = 1024 字节
每个地址占4 字节

第一步:每个间接节点能管多少块?

每个磁盘块可存地址数 = 1024 ÷ 4 = 256 个
  • 直接索引:1 个节点管 1 块
  • 一级间接:1 个节点管 256 块
  • 二级间接:1 个节点管 256 × 256 = 65536 块

第二步:画逻辑块号区间图

地址项        类型          覆盖逻辑块号范围       块数  
─────────────────────────────────────────────────────────  
iaddr[0]  ─ 直接            0                       1  
iaddr[1]  ─ 直接            1                       1  
iaddr[2]  ─ 直接            2                       1  
iaddr[3]  ─ 直接            3                       1  
iaddr[4]  ─ 直接            4                       1  
                              ────────  
                              0 ~ 4                 5 块  
─────────────────────────────────────────────────────────  
iaddr[5]  ─ 一级间接         5 ~ 260               256 块  
iaddr[6]  ─ 一级间接         261 ~ 516              256 块  
                              ────────  
                              5 ~ 516              512 块  
─────────────────────────────────────────────────────────  
iaddr[7]  ─ 二级间接         517 起                 65536 块

第三步:定位

逻辑块号落在区间索引类型
55~260(iaddr[5])一级间接索引
518517 以上(iaddr[7])二级间接索引

答案:逻辑块 5 → 一级间接地址索引,逻辑块 518 → 二级间接地址索引

注意边界:逻辑块 4 还是直接索引(iaddr[4]),逻辑块 5 就进入了一级间接

Q2:单个文件最大长度是多少 KB?

📝答案与解析

答案:66053 KB

解析:5(直接) + 256×2(一级间接,2个节点各256块) + 256×256(二级间接,256个一级节点各256块)= 5 + 512 + 65536 = 66053 KB


[Q18] 索引节点-地址计算

假设文件系统采用索引节点管理,且索引节点有8个地址项iaddr[0]~iaddr[7],每个地址项大小为4字节,iaddr[0]~iaddr[4]采用直接地址索引,iaddr[5]和iaddr[6]采用一级间接地址索引,iaddr[7]采用二级间接地址索引。假设磁盘索引块和磁盘数据块大小均为1KB字节。若用户访问文件File1中逻辑块号为5和261的信息,则对应的物理块号分别为( )。

image.png

  • A. 89和90
  • B. 89和136
  • C. 58和187
  • D. 90和136
📝答案与解析

答案:C

解析:直接索引0~4(5块)覆盖逻辑块0~4;一级间接=256块/节点。逻辑块5→iaddr[5]一级间接第0项→58;逻辑块261→261-5=256→iaddr[6]一级间接第0项→187。


[Q19] 索引节点-间接索引

同上题条件。101号物理块存放的是( )。

  • A. File1的信息
  • B. 直接地址索引表
  • C. 一级地址索引表
  • D. 二级地址索引表
📝答案与解析

答案:D

解析:iaddr[7]二级间接→先读一级索引块→再读二级索引块。101号块是二级地址索引表。


[Q3] 段式存储-越界原因

假设系统采用段式存储管理方法。逻辑地址不能转换为对应的物理地址;不能转换的原因是进行( )。

  • A. 除法运算时除数为零
  • B. 算术运算时有溢出
  • C. 逻辑地址到物理地址转换时地址越界
  • D. 物理地址到逻辑地址转换时地址越界
📝答案与解析

答案:C

解析:偏移>段长→地址越界,发生在逻辑地址→物理地址转换过程中。


[Q51] 段页式地址

在段页式存储管理中,逻辑地址由( )组成。

  • A. 段号、页号和页内偏移量
  • B. 段号和段内偏移量
  • C. 页号和页内偏移量
  • D. 段号和页号
📝答案与解析

答案:A

解析:段页式=先分段再分页,逻辑地址=段号+页号+页内偏移。


某系统页面大小为 4K,进程页面变换表如下,逻辑地址为十六进制 1D16H,求物理地址。

页号物理块号
01
13
24
36
📝答案与解析

答案:3D16H

核心原理:页内偏移不动,页号查表替换成物理块号。

分页地址转换的本质是逻辑地址 → 物理地址时,页内偏移直接搬运,只有页号被替换。因为页面大小就是物理块大小,页内偏移在逻辑地址和物理地址中是相同的。

步骤拆解:

① 页面大小 4K = 2^12 → 页内偏移占 12 位(低 12 位),剩余高位是页号

② 拆分 1D16H:

1D16H = 0001  1101 0001 0110  
        ↑___  ↑________________  
       页号1    页内偏移 D16H
  • 低 12 位 = D16H(页内偏移,直接保留
  • 高 4 位 = 1(逻辑页号,待映射

③ 查页表:页号 1 → 物理块号 3(页号被替换)

④ 拼物理地址:物理块号 3 + 页内偏移 D16H = 3D16H

验证公式:物理地址 = 物理块号 × 页面大小 + 页内偏移

3 × 4096 + D16H = 3 × 1000H + D16H = 3000H + D16H = 3D16H

某进程 4 个页面(0~3),分配 3 个存储块,访问前页面 1 不在内存。根据状态位/访问位/修改位,淘汰哪个页面代价最小?

页面表

📝答案与解析

答案:3

解析:淘汰原则—优先淘汰最近未被访问的,再淘汰最近未被修改的。页 0、2、3 最近都被访问过,但只有页 3 最近未被修改,淘汰代价最小。


[Q56] 缺页中断

以下情况会触发缺页中断(Page Fault)的是( )。

  • A. 进程访问的页在物理内存中
  • B. 进程访问的页被标记为只读
  • C. 进程访问的页既不在内存也不在磁盘
  • D. 进程访问的页不在物理内存但存在于磁盘
📝答案与解析

答案:D

解析:缺页=页不在内存但在磁盘,需要调入。A 正常访问;B 是保护异常;C 是非法访问。


[Q106] 页面置换

当CPU要访问的页面不在内存中时,会引发(1)中断,系统处理该中断的过程称为(2)。

  • A. 页面置换
  • B. 页面调入
  • C. 地址变换
  • D. 页面分配
📝答案与解析

答案:A

解析:缺页中断发生后,处理过程 = 页面置换(选一页换出→调入所需页)。各选项辨析:

选项是什么和缺页处理的关系
A. 页面置换缺页时选一页换出、调入新页的完整过程正确答案,就是中断处理过程本身
B. 页面调入从磁盘读页面进内存❌ 只是置换中的一个动作环节,缺了"换出"不完整
C. 地址变换MMU把逻辑地址翻译成物理地址❌ 它是每次内存访问都做的,缺页时它只是触发者,不是处理者
D. 页面分配决定进程拥有多少个物理页框❌ 属于内存管理策略,不参与缺页中断处理

关系图

地址变换(C)→ 发现页不在内存 → 触发缺页中断  

                                页面置换(A)  
                                 ├─ 选一页换出  
                                 └─ 页面调入(B)← 读入目标页

[Q40] 系统监视

第二问

进行系统监视通常有三种方式:一是通过( ),如UNIX/Linux系统中的ps、last等;二是通过系统记录文件查阅系统在特定时间内的运行状态;三是集成命令、文件记录和可视化技术的监控工具,如( )。

  • A. Windows的netstat
  • B. Linux的 iptables
  • C. Windows的 Perfmon
  • D. Linux的top
📝答案与解析

答案:C

解析:题目第三空考的是"集成命令、文件记录和可视化技术"的监控工具,关键词在"可视化"——只有 C 是图形化工具。

选项是什么为什么不对/对
A. netstatWindows 命令行网络统计工具❌ 命令行,无图形化
B. iptablesLinux 防火墙规则配置工具❌ 防火墙,不是监视工具
C. PerfmonWindows 图形化性能监视器,有图表、曲线、日志集成命令行+记录+可视化
D. topLinux 命令行实时进程查看❌ 虽然有界面但依然是命令行交互,不算图形化"可视化技术"

[Q99] 应用软件

下列软件中,属于应用软件的是( )。

  • A. 操作系统
  • B. 设备驱动程序
  • C. 财务软件
  • D. 编译程序
📝答案与解析

答案:C

解析:财务软件为特定领域设计→应用软件;其余三项都是系统软件。


[Q98] 内核特征

关于操作系统内核的特征,下列说法错误的是( )。

  • A. 内核以CPU的最高优先级运行
  • B. 内核可以执行特权指令
  • C. 内核不需要常驻内存
  • D. 内核可以直接访问全部主存空间
📝答案与解析

答案:C

解析:内核是操作系统的核心,必须常驻内存,关机才能卸下。选项辨析:

选项判断原因
A. 内核以CPU最高优先级运行✅ 正确内核运行在核心态(管态),优先级高于所有用户进程
B. 内核可以执行特权指令✅ 正确核心态下可执行所有指令,包括启动I/O、修改页表等特权指令;用户态则禁止
C. 内核不需要常驻内存错误内核负责进程调度、内存管理、中断处理等基础功能,一旦缺页自身都无法运行,因此必须常驻
D. 内核可以直接访问全部主存空间✅ 正确核心态下地址空间不受限制,内核可以访问和管理所有物理内存(包括用户进程的内存区域),用于进程切换、内存分配等操作

[Q4] COP基本支持

面向构件的编程(COP)关注于如何支持建立面向构件的解决方案。面向构件的编程所需要的基本支持包括( )。

  • A. 继承性、构件管理和绑定、构件标识、访问控制
  • B. 封装性、信息隐藏、独立部署、模块安全性
  • C. 多态性、模块封装性、后期绑定和装载、安全性
  • D. 构件抽象、可替代性、类型安全性、事务管理
📝答案与解析

答案:C

解析:COP四个基本支持=多态性+模块封装性+后期绑定和装载+安全性。B选项的封装性没错,但缺少多态性和后期绑定和装载,且混入了"独立部署"(这是构件特性,不是COP语言级支持)。


[Q79] CORBA软总线

CORBA架构中,作为"软总线"的是( )。

  • A. 公共设施
  • B. 公共对象服务
  • C. 对象请求代理
  • D. 对象适配器
📝答案与解析

答案:C

解析:ORB(对象请求代理)=CORBA核心,相当于"软总线",负责透明传递请求,将客户端调用路由到服务端的Servant。


[Q6] 构件描述

关于构件的描述,正确的是( )。

  • A. 构件包含了一组需要同时部署的原子构件
  • B. 构件可以单独部署,原子构件不能被单独部署
  • C. 一个原子构件可以同时在多个构件家族中共享
  • D. 一个模块可以看作带有单独资源的原子构件
📝答案与解析

答案:A

解析:构件(Component)和原子构件(Atomic Component)的关系:

  • 构件 = 包含一组需同时部署的原子构件,可单独部署
  • 原子构件 = 构件内部的组成单元,不能单独部署(必须和同组其他原子构件一起部署)
  • ❌ B说法本身没错但不够精确——如果构件只含一个原子构件,该原子构件本身也就是构件,可单独部署
  • ❌ C原子构件不能同时在多个构件家族中共享(共享应通过接口实现)
  • ❌ D"模块"是代码组织单位,"原子构件"是部署单位,两者维度不同

记忆:构件=整包快递(可单独寄),原子构件=包裹里的物品(不能单独寄,要整包走)

理解两个概念

┌──────────────────────────┐  
│        构件               │  
│  ┌─────┐ ┌─────┐ ┌─────┐ │  
│  │原子  │ │原子  │ │原子  │ │  ← 一组原子构件打包在一起  
│  │构件A │ │构件B │ │构件C │ │     必须同时部署  
│  └─────┘ └─────┘ └─────┘ │  
└──────────────────────────┘  
    可以单独部署 ✓          不可单独部署 ❌
  • 构件(Component):自包容的程序集,可以单独部署
  • 原子构件(Atomic Component):构件内部的组成单元,不能单独部署,必须和同组的其他原子构件一起部署

[Q7] 中断

第二问

嵌入式系统中采用中断方式实现输入输出的主要原因是( )。在中断时,CPU断点信息一般保存到( )中。

  • A. 通用寄存器
  • B. 堆
  • C. 栈
  • D. I/O接口
📝答案与解析

答案:C

解析:

第一空(题干未列选项):嵌入式用中断方式输入输出的主要原因是提高CPU利用率——避免轮询(Polling)空转,设备准备好在通知CPU。

第二空:CPU断点信息(PC/PSW等)保存到中。

各选项分析:

选项判断原因
A. 通用寄存器数量有限,嵌套中断不够用
B. 堆用于动态内存分配,不是压栈出栈场景
C. 栈后进先出,天然支持中断嵌套
D. I/O接口外设接口,不存程序状态

为什么栈适合:中断嵌套时,后发生的中断先处理、先压栈的后出栈,栈的LIFO特性完美匹配中断恢复顺序。


[Q15] 紧耦合SMP

紧耦合多机系统一般通过( )实现多机间的通信。对称多处理器结构(SMP)属于( )系统。

  • A. 因特网
  • B. 共享内存
  • C. 进程通信
  • D. 共享寄存器
📝答案与解析

答案:B

解析:紧耦合=共享内存通信;松耦合=消息传递。SMP=多个CPU对称访问共享内存。


[Q45] 多核调度

关于多核CPU环境下进程的调度算法,以下说法正确的是( )。

  • A. 全局队列调度优点是缓存利用率高
  • B. 全局队列调度缺点是CPU利用率低
  • C. 局部队列调度优点是从全局任务等待队列中选取就绪任务并执行
  • D. 局部队列调度缺点是CPU利用率低
📝答案与解析

答案:D

解析:全局队列=CPU利用率高+缓存利用率低;局部队列=缓存利用率高+CPU利用率低。


[Q94] 网络OS

网络操作系统的硬件独立性是指( )。

  • A. 只能在特定硬件平台上运行
  • B. 可以运行在不同网络硬件上并能与其他网络连接
  • C. 必须使用专用的网络设备
  • D. 不需要考虑硬件兼容性问题
📝答案与解析

答案:B

解析:硬件独立性=网络OS不依赖特定硬件平台,可运行在不同网络硬件上并能互通。

选项判断原因
A. 只能在特定硬件运行这是"硬件依赖",和"独立"反着来
B. 可运行在不同网络硬件上并连接正确定义,不绑定网卡/交换机品牌
C. 必须用专用网络设备也是依赖,不是独立
D. 不需要考虑硬件兼容性太绝对——NOS通过驱动层屏蔽差异,不是"不考虑"

[Q35] 工作流

工作流表示的是业务过程模型,通常使用图形形式来描述,以下不可用来描述工作流的是( )。

  • A. 活动图
  • B. BPMN
  • C. 用例图
  • D. Petri-Net
📝答案与解析

答案:C

解析:用例图描述系统功能和参与者,不描述业务流程。其余三项均可描述工作流:

选项能否原因
A. 活动图UML活动图,专画业务流程和并发
B. BPMN业务流程建模标注,就是干这个的
C. 用例图描述功能需求,不画流程
D. Petri-Net数学建模工具,能描述并发/同步/冲突等流程特性

[Q37] 数据资产

数据资产的特征包括( )。①可增值 ②可测试 ③可共享 ④可维护 ⑤可控制 ⑥可量化

  • A. ①②③④
  • B. ①②③⑤
  • C. ①②④⑤
  • D. ①③⑤⑥
📝答案与解析

答案:D

解析:数据资产特征:可增值、可共享、可控制、可量化。不含"可测试"和"可维护"。


[Q91] 键值数据库

关于键值数据库的特点,下列描述正确的是( )。

  • A. 数据以二维表形式存储
  • B. 数据以列形式存储
  • C. 数据以键值对集合形式存储
  • D. 数据以文档格式存储
📝答案与解析

答案:C

解析:键值数据库=key-value对集合;A 是关系型;B 是列存储;D 是文档数据库。


[Q92] 早期数据库

下列选项中,不属于早期数据库三种主要类型的是( )。

  • A. 层次式数据库
  • B. 网络式数据库
  • C. 键值数据库
  • D. 关系型数据库
📝答案与解析

答案:C

解析:早期三种:层次、网络、关系型。键值数据库是NoSQL时代的产物。