操作系统是计算机专业核心课程,名校期末试题具有很强的参考价值。以下精选清华大学、北京大学、浙江大学近 3 年典型试题,附详细解题步骤,帮助掌握核心考点。
一、清华大学 2023 年操作系统期末试题(部分)
1. 简答题(15 分):分析银行家算法如何避免死锁,并用实例说明。
参考答案:
银行家算法通过动态检测系统资源分配状态,确保系统始终处于安全状态(存在安全序列),从而避免死锁。
步骤:① 计算每个进程的需求矩阵 Need(Need = Max - Allocation);② 查找满足 Need ≤ Available 的进程,分配资源使其完成,回收资源后更新 Available;③ 重复步骤②,若所有进程均可完成,则系统安全。
实例:系统有 A、B、C 三类资源(10,5,7),进程 P0-P2 的 Max 矩阵为:
P0: (7,5,3) P1: (3,2,2) P2: (9,0,2)
当前 Allocation 矩阵为:
P0: (0,1,0) P1: (2,0,0) P2: (3,0,2)
Available = (3,3,2)
计算得安全序列 P1→P0→P2,系统安全。
2. 计算题(20 分):某系统采用分页存储管理,页面大小 4KB,逻辑地址为 32 位,其中页号占 20 位,页内偏移占 12 位。
(1)求虚拟地址空间大小;(2)若某进程页表项如下,计算逻辑地址 0x123456 对应的物理地址。
页表:页号 0→帧号 5;页号 1→帧号 10;页号 2→帧号 3...
解答:(1)虚拟地址空间 = 2^20 页 × 4KB=4GB;
(2)逻辑地址 0x123456 转换为二进制,前 20 位为页号 0x123(291),查页表得帧号 3,物理地址 = 3×4KB + 0x456=0xC456。
二、北京大学 2022 年操作系统期末试题(部分)
1. 论述题(25 分):比较进程调度算法 FCFS、SJF、RR 的优缺点及适用场景。
参考答案:
FCFS(先来先服务):优点是公平简单,缺点是平均等待时间长,适合 CPU 繁忙型作业;
SJF(短作业优先):优点是平均等待时间最短,缺点是可能导致长作业饥饿,适合能预估运行时间的场景;
RR(时间片轮转):优点是响应快,缺点是上下文切换开销大,适合分时系统(如 Linux 桌面)。
三、浙江大学 2023 年操作系统期末试题(部分)
1. 设计题(30 分):用信号量实现生产者 - 消费者问题,要求缓冲区大小为 n,写出伪代码并说明信号量含义。
参考答案:
semaphore empty = n; // 空缓冲区数量
semaphore full = 0; // 满缓冲区数量
semaphore mutex = 1; // 互斥锁
producer() {
while(1) {
produce item;
wait(empty);
wait(mutex);
add item to buffer;
signal(mutex);
signal(full);
}
}
consumer() {
while(1) {
wait(full);
wait(mutex);
remove item from buffer;
signal(mutex);
signal(empty);
consume item;
}
}
复习建议:重点掌握死锁预防、内存管理、进程同步三大模块,通过真题归纳解题套路,如分页地址转换需注意单位换算(KB 与 B 的转换),信号量问题需明确同步与互斥的区别。
免责声明:本站所提供试题均来源于网友提供或网络搜集,由本站编辑整理,仅供个人研究、交流学习使用,不涉及商业盈利目的。如涉及版权问题,请联系本站管理员予以更改或删除。