2024-2025-1 山东大学操作系统期末试题回忆版
计算机科学与技术学院:潘润宇老师
单选题
- 按照一定顺序,逐一执行事先编组好的成批计算任务的系统是?
- 批处理系统
- 可执行文件中不包含哪个段的内容?
- .text/.rodata/.rwdata/.bss?
- Linux 中最常见的线程和指令流对应关系?
- 一对一?一对多?多对多?多对一?
- 内核级线程运行时 CPU 处于什么模式?
- 内核模式?用户模式?都有可能?都不是?
- 都有可能。
- "内核线程/用户线程"不要和"内核级线程(Kernel-Level Thread)/用户级线程(User-Level Thread)"搞混了,前者是指线程运行时的 CPU 模式,而后者则是指操作系统是否知道它们的存在。内核线程和用户线程都是内核级线程,而所谓的"用户级线程"则是指协程和纤程。
- 有三级索引,一级索引指向文件,二级索引指向一级索引,三级索引指向二级索引,问哪一级索引表含有数量最多的文件块?
- 三级
- 单固定块分区法产生什么碎片?
- 内部碎片
- 文件系统提供按什么存取文件?
- 文件名?所有者?
- 文件名
- PCB 至少包含什么?
- 进程号?进程名?地址空间描述符表?
- 地址空间描述符表
- 可能导致饥饿的机械磁盘寻道算法?
- SSTF 最短寻道时间优先(选项是四个算法的英文缩写,所以请熟悉各算法英文缩写)
- 一个好的自旋锁不包括哪个标准?
- 让权等待
- 好的自旋锁标准:
- 互斥访问/忙则等待
- 全局进展/空闲让进
- 局部进展/有限等待
- 好的阻塞锁标准:在好自旋锁的标准上增加一条"让权等待"
填空题
- 常见操作系统结构有哪四个?
- 库结构/单核结构/简要结构、宏内核结构、微内核结构、外核结构
- 指令流状态?
- 就绪、运行、阻塞
- 条件变量的三个基本操作是?
- 阻塞(并入队)、唤醒(并出队)、唤醒全部
- 有 14 个进程,最多 5 个进程同时访问,信号量初值为?取值范围为?
- 5、[0, 5]
- 外设接口三个寄存器?
- 数据寄存器、状态寄存器、命令寄存器
- 死锁条件?
- 互斥条件、持有条件(保持请求、无法剥夺)、循环等待
- Dijkstra 提出的解决死锁问题的算法名称是?它通过检查分配请求并仅批准那些不会让系统进入什么状态的请求来完全避免死锁风险?
- 银行家算法、不安全状态
- 接口按阻塞性分为哪两类接口?按同步性分呢?
- 阻塞接口、非阻塞接口;同步接口、异步接口
- 用以缓和通信双方 I/O 速度、数据传输单位和并发性上的差异的临时存储区称为?增加了数据存留的功能的称为?
- 缓冲区(Buffer)、(缓冲)缓存(Buffer-Cache)
- 在文件系统数据结构层面实现的是什么链接?由应用程序操作的是什么链接?
- 硬链接、软链接
- 适合数据备份和归档等倾向于单次写多次读的文件系统的存储方法是?
- 连续分配法
名词题
- 操作系统?(4 点,每点 1 分)
- 并发?并行?
- 合作执行:将每个指令流打断成多份,每一份之内都顺序执行,但背靠背执行的两份不一定来自同一个指令流。在每份指令流的末尾,都通知操作系统主动放弃 CPU,CPU 将转去执行下一份指令流。
- 并发执行:将合作执行的条件放宽一点,允许一个指令流在任何时候被打断,并且新的指令流插入进来。又叫抢占式执行。每个指令流都在自己的虚拟 CPU 上执行,而且虚拟 CPU 的先后没法预测。
- 并行执行:多个指令流依附于多个位于不同物理处理器上线程,做到了多个指令流的真正同时执行。并行是并发的一种特殊场合,它只有在多核处理器上才有可能实现。
- 并发与并行:并行是并发的一种具体实现,在并行环境中,不仅并发程序的各个指令流的指令执行的先后顺序无法预测,而且这些指令流实现了真正的同时、一齐执行。在单核处理器的并发环境中,无法实现并行,因为只有一个 CPU,不可能同时执行多道程序,仅仅是交替执行多道程序让它们看上去在同时运行。
- 某任务的响应比表达式?饥饿?
- 响应比 = T / R,其中 T = 从就绪态到阻塞或停止态所花的时间,R = 运行时间
- 饥饿:依照某种资源分配策略,某些请求无限增加时,另一些请求将永远得不到分配的现象。
- 相对路径?绝对路径?
- 相对路径:从某个目录 D 起始经由逐步查找能找到某文件 F 的路径,称为 F 相对于 D 的路径。
- 绝对路径:某文件 F 相对于系统根目录的路径。也即从系统根目录出发,一步步跟随查找,能找到该文件 F 的路径。
- Belady 异常?LFD 算法?
- Belady 异常:在某些资源分配策略下增加资源总量反而导致性能下降和效率降低的现象。
- 最长前向距离算法 LFD(Longest Forward Distance):一种页面替换算法。当每次替换时,都寻找当前页面中在最远的未来才会再次使用的那个页面,并替换掉它。特别地,若一个页不再使用,则其对应的未来可以看作无穷远,应被首先淘汰。这是一个贪心算法,并且是一种最优算法,但是由于各种不确定性,该算法是不现实的。
解答题
一、线程调度相关
题面描述中的优先级:(学术意义上的)优先级
线程 | 到达时间 | 运行时间 | 优先级 |
---|---|---|---|
A | 2 | 4 | 1 |
B | 5 | 10 | 3 |
C | 11 | 6 | 2 |
D | 12 | 3 | 2 |
- FIFO 调度算法、非抢占式 FP 调度算法是什么?
- 按 FIFO 写出题目中的线程执行时间
- 按抢占式 FP 写出题目中的线程执行时间
- 注意,这里是抢占式 FP,第 1 问是非抢占式 FP
- FIFO 中最大周转时间?
- 抢占式 FP 中平均周转时间?
二、索引节点相关计算
编程题
- 写出图中一个正确的函数执行顺序
- 再写出一个正确的函数执行顺序
- 一共有多少个能够正确执行的顺序?
- 5 个(拓扑排序)
- ABDCEF
- ABDECF
- ADBCEF
- ADBECF
- ADEBCF
- 5 个(拓扑排序)
- 按要求编程
注:
- 算法要记中文名和英文名缩写(知道全称最好),当然还有具体的算法内容
- 期中试卷认真完成
- 索引节点要掌握多级索引表的相关计算
- 建议提前一周开始复习(或预习)
- 以上回答仅供参考
以上回忆版仅供参考,预祝各位都能取得自己理想的成绩!