13180《操作系统》大题套路手册

综合题 4 道 × 10 分 = 40 分 · 全部基于 2024.10–2026.4 真题规律 · 配合《quiz.html》使用

① 进程调度计算(2026.4 · 2021.10 实考)

必背公式
  1. 周转时间 = 完成时间 − 到达时间
  2. 带权周转时间 = 周转时间 ÷ 运行时间
  3. 平均周转时间 = 周转时间之和 ÷ 进程数
四种算法规则:FCFS 按到达顺序;SJF/SRTF 挑运行(剩余)时间最短的(SRTF 可抢占:新进程到达时比较“剩余时间”);非抢占优先级:选完当前才比优先数(优先数小的优先级高);HRRN:响应比 =(等待+运行)÷运行。

真题详解:2026.4 题36(A/B/C/D,到达 0/1/2/3,运行 12/5/3/8)

(1) FCFS:按到达序执行

进程到达运行开始完成周转
A01201212
B15121716
C23172018
D38202825
平均周转时间 = (12+16+18+25)÷4 = 71÷4 = 17.75

(2) 最短剩余时间优先(SRTF,抢占式):

0 时刻只有 A 运行 → 时刻 1 B 到达,剩余 A=11 > B=5,抢占 → 时刻 2 C 到达,B 剩余 4 > C=3,抢占 → 时刻 3 D 到达,C 剩余 2 < 8,继续 C → 时刻 5 C 完成,剩 A(11)/B(4)/D(8),选 B → 时刻 9 B 完成,选 D(8) → 时刻 17 D 完成,A 跑到 28。
执行顺序:A(0-1) → B(1-2) → C(2-5) → B(5-9) → D(9-17) → A(17-28)
进程完成周转=完成−到达带权=周转÷运行
A282828/12 ≈ 2.33
B988/5 = 1.60
C533/3 = 1.00
D171414/8 = 1.75
变式练习(自创题,先自己算再看答案) 三进程:P1 到达0 运行8;P2 到达1 运行4;P3 到达2 运行2。求 SRTF 的执行顺序与平均周转时间。
解:P1(0-1)→P2(1-2)时P3到,2<4 抢占→P3(2-4)→P2(4-7)→P1(7-15)。周转:P1=15,P2=6,P3=2,平均=23/3≈7.67。
易错:① SRTF 忘记“新到达进程与当前进程的剩余时间比较”要抢占;② 带权周转保留题面要求的小数位;③ 完成时间必须画时间轴,不要心算。

② 虚拟页式存储(2026.4 实考,最“唬人”但最模板化)

万能步骤
  1. 页内偏移位数 = log₂(页面大小)。4KB=2¹² → 12 位
  2. 页号位数 = log₂(逻辑空间÷页面大小)。64KB/4KB=16页=2⁴ → 4 位
  3. 虚拟地址(十六进制):最高几位=页号,低位=页内偏移
  4. 物理地址 = 页框号 拼接 页内偏移(十六进制直接拼接)
  5. 访问时间 = TLB 访问 + (未命中时页表访问)+ [缺页处理时间 + 重新执行的时间],注意题目对 TLB 更新的说明

真题详解:2026.4 题37(64KB 空间、4KB 页、TLB 10ns、内存 150ns、缺页 100ms,内存 2 页:页0→110H 有效,页1 无效,页2→256H 有效)

(1) 页面 4KB=2¹² → 页内地址 12 位;64KB/4KB=16=2⁴ → 页号 4 位。

(2) 虚拟地址 2025H:二进制 0010 0000 0010 0101 → 页号=2,页内偏移=025H。查表页 2 有效,页框 256H → 物理地址 = 256025H(页框号与偏移直接拼接)。

(3) 虚拟地址 1505H:页号=1,有效位 0 → 缺页。LRU:内存中有页 0、页 2,页 2 刚用过 → 淘汰页 0,调入页 1。缺页平均时间 100ms 已含 TLB/页表更新。

缺页中断处理前:TLB(10) + 页表(150) = 160ns;缺页处理 100ms = 10⁸ ns;返回重新执行:TLB 命中(10) + 访内存(150)。
总计 = 10+150+10⁸+10+150 = 100,000,320 ns(约 0.1 秒,缺页开销占绝对大头)

(4) 虚拟地址 25E5H:页号=2,有效 → TLB 命中:10 + 150 = 160 ns。

变式练习(FIFO/LRU 缺页计数,2021.10 也考过) 访问序列 1,2,3,2,4,3,6,2,3,4,5,6,3 个页框,LRU 缺页几次?
解:逐个推演,缺页发生在装入 1,2,3、装入4(淘汰1)、装入6(淘汰2? 注意2刚用过→淘汰3)、再访问2(淘汰4)、访问3(淘汰6)、装入5(淘汰2)、访问6(淘汰3)→ 共 9 次。建议自己画表数一遍。
易错:① 十六进制地址拆分先转二进制再按位数切,别按十进制想;② 物理地址是“拼接”不是相加;③ 缺页后“重新执行该指令”,重执行时间别漏。

③ 磁盘调度(2026.4 实考,10 分钟拿满分)

规则:FCFS 按请求顺序;SSTF 每步选离当前位置最近的请求;SCAN(电梯)沿当前方向扫到头再回头。总量 = 各段移动距离之和(绝对值累加)。注意题面给的当前磁道和刚完成的磁道(后者决定 SCAN 方向)。

真题详解:2026.4 题38(0–199 道,磁头刚完成 30 号、正服务 53 号;请求 98,183,35,120,10,122,64,66)

(1) FCFS:53→98→183→35→120→10→122→64→66
移动量 = 45+85+148+85+110+112+58+2 = 645

(2) SSTF:从 53 出发:64(11) → 66(2) → 35(31) → 10(25) → 98(88) → 120(22) → 122(2) → 183(61)
(易错点:66 之后最近是 35(31) 而不是 98(32),差 1 个磁道决定胜负)
移动量 = 11+2+31+25+88+22+2+61 = 242

变式练习(SCAN) 同题若采用沿增大方向(向大磁道号)的电梯调度 SCAN,移动总量是多少?
解:53→64→66→98→120→122→183(方向上无更大请求即止,本题未要求扫到 199)→再折返 122→120→98→66→64→35→10。总量=(183−53)+(183−10)=130+173=303。若题目要求“扫到磁道 199 才回头”则再加 (199−183)=16,得 319——注意看清题面。

④ 死锁判定与解除(2026.4 实考)

四个必要条件:互斥、请求与保持(占有且等待)、不可剥夺(不可抢占)、循环等待。
判定套路:按请求顺序推演——能分配就分配并登记“谁持有什么”;不能分配则该进程阻塞等待;最后画等待环:A 等 B 持有的资源、B 等 A 持有的资源 → 成环 → 死锁。
解除方法:①资源剥夺(从其他进程抢占足够资源给死锁进程);②撤销(终止)死锁进程,直至死锁解除。

真题详解:2026.4 题39(资源总量 (4,3,2),不可剥夺)

(1) 不可剥夺条件:进程已获得的资源,在未使用完毕之前,不能被其他进程强行夺走,只能由占有者使用完毕后自行释放。它与死锁的关系:不可剥夺是产生死锁的四个必要条件之一,该条件成立时(再叠加其他条件)可能导致死锁;破坏任一必要条件即可预防死锁。

(2) 推演:

步骤请求能否满足说明
(a)P1 请求 (2,3,1)满足P1 持有 R1×2、R2×3、R3×1;剩余 (2,0,1)
(b)P2 请求 (1,0,1)满足P2 持有 R1×1、R3×1;剩余 (1,0,0)
(c)P1 请求 (0,0,1)不满足R3 已分完 → P1 阻塞
(d)P3 请求 (2,0,1)不满足R1 只剩 1、R3 为 0 → P3 阻塞
(e)P2 请求 (0,0,1)不满足R3 为 0 → P2 阻塞
P1 等 R3(被 P2 持有),P2 等 R3(被 P1 持有)→ P1、P2 形成循环等待,系统发生死锁(P3 亦被牵连阻塞)。解除方法:资源剥夺法或撤销(终止)进程法,如强制撤销 P1 或 P2 并回收其资源。
关联考点:银行家算法(安全序列)怎么答 先算 Need = Max − Allocation;把当前可用向量与各进程 Need 比较,找能“先借后还”的进程,执行完释放全部资源、更新可用向量,重复;全部能排出来 → 安全(写出序列如 P1→P3→P2),否则不安全。

⑤ PV 操作模板(2021.10 实考“补充代码”题型)

生产者–消费者(万能底稿):信号量 mutex=1(互斥)、empty=n(空缓冲数)、full=0(满缓冲数)。
生产者:P(empty) → P(mutex) → 放入产品 → V(mutex) → V(full)
消费者:P(full) → P(mutex) → 取出产品 → V(mutex) → V(empty)
易错:① 对同一互斥信号量的 P 操作必须在资源信号量的 P 之后(先 P(mutex) 再 P(empty) 会死锁);② 两个 V 操作顺序可交换,P 不行;③ “容量 50 的体验馆”类题:容量信号量 empty=50,登记/撤销互斥用 mutex=1,进馆 P(empty)+P(mutex),离馆 V(mutex)+V(empty)。

信号量数值口诀:S>0 表示剩余可用资源数;S<0 绝对值 = 等待的进程数;每执行一次 P 减 1、V 加 1。同步信号量初值一般为 0,互斥/资源信号量初值为 1 或资源数。

⑥ 简答题背诵卡(4 分/题,背这 10 条覆盖近年题池)

1. 创建原语的过程(2026.4)①申请空白 PCB;②分配资源(内存空间等);③初始化 PCB(填进程号、就绪状态、优先级、程序入口等);④把新进程插入就绪队列。
2. 速率单调(RMS)调度(2026.4)周期越短(速率越高)的任务优先级越高(静态优先级);周期性任务发生调度冲突时,让周期短的任务优先运行并可抢占周期长者,从而保证高频任务按时完成。
3. 可变分区回收策略(2026.4)检查回收区邻接情况:①上邻空闲→合并,改起始地址、大小相加;②下邻空闲→合并,大小相加;③上下都空闲→三者合一,删除多余表项;④都不邻→在空闲区表中新建一条表项。
4. 用户程序与系统程序传递参数的方法(2026.4)①通过通用寄存器直接传递;②参数较多时在内存中开辟参数表(专用堆栈区),寄存器中只存放参数表指针;③还可通过系统调用号+参数表方式传递。
5. UNIX 文件 i 节点定位(2026.4 题35)根目录常驻内存:①查内存中根目录找到 usr 目录项及 i 节点号;②读入 usr 的 i 节点(第 1 次访盘);③由其地址信息读 usr 目录文件(第 2 次访盘)得 F1 的 i 节点号;④读入 F1 的 i 节点(第 3 次访盘)。
6. SPOOLing 组成与优点(2021.10)组成:输入/输出井(磁盘缓冲)、输入/输出缓冲区(内存)、输入/输出外围控制程序。优点:把独占设备改造成共享的虚拟设备,提高设备利用率与系统吞吐量。
7. 线程两种实现方式及区别用户级线程:内核不可见,切换在用户空间完成、速度快,一个线程阻塞整个进程阻塞;内核级线程:由内核管理,切换需进核心态、开销大,但多线程可并行、阻塞不影响同进程其他线程。
8. 虚拟存储器的主要特征离散性(内存离散分配)、多次性(作业分多次调入)、对换性(运行中可换入换出)、虚拟性(容量=地址空间而非物理内存)。
9. 树形目录的优点①便于分层分类管理、便于实现文件共享与保护;②解决重名问题(不同目录下可同名);③提高检索速度(缩小查找范围)。
10. 提高磁盘 I/O 速度的方法①磁盘高速缓存(内存缓存盘块);②提前读/延迟写;③优化物理分布(文件连续存放、减少寻道);④ RAID 并行访问;⑤良好的磁盘调度算法(SSTF/SCAN)。

⑦ 填空速记表(10 条 = 20 分,2026.4 原卷填空全收录)

提示答案
启动顺序:BIOS自检 → ? → 启动内核 → 初始化系统运行引导程序(BootLoader)
进程三状态:运行态、就绪态、?阻塞(等待)态
Linux 创建子进程的系统调用fork()
单位时间内 CPU 完成的作业数量吞吐量
移动进程合并空闲碎片成大空闲区紧凑(拼接)
虚拟存储之前另一内存扩充技术(与覆盖并列)交换(对换)
若干逻辑记录合成一组存入一个物理块记录成组
控制器寄存器:管理设备收发数据、开关设备控制寄存器
SPOOLing 又称(中文名)假脱机操作
哲学家问题:先申请小号筷子再申请大号筷子资源有序分配
来源:2026.4 / 2025.4 / 2024.10 / 2021.10 自考 13180 真题(自考生网收录版)。客观题练习请打开同目录《quiz.html》。