山东大学软件学院2026操作系统期末(回忆版)
考试时间:2026年7月10日上午8:30~10:30
(最后一门了怎么文字量这么大啊啊啊啊,只能凭印象了,好多可能一个小题有好几问的我真记不起来了,要不靠其他人的版本吧)
一、分析(10分)
1.The modern operating system is interrupt-driven.(blablabla)
解释这句话的意思。(3分)
2.简述中断处理的过程,以及保存和恢复上下文的意义。(3分)
3.系统调用和一般函数调用的核心区别。(这一问应该是还问了一个但我想不起来了)(4分)
二、分析(10分)
1.进程有哪些状态?用文字表示它们之间的转化关系。(3分)
2.PCB包含哪些信息?如何使用这些信息实现进程转换?(3分)
3.下面这个程序输出多少个字符A?(好像是这样?记不清了看个意思吧,反正和fork有关)(4分)
for (int i=0;i<2;i++){
pid=fork();
if (pid==0){
cout<<"A";
}else{
cout<<"A";
}
}
三、分析(10分,后面的各个小题的具体分配全忘了)
1.用户级线程和内核级线程的区别,以及为什么用户级线程不是内核驱动的。
2.如果一个线程阻塞了,使用多对一和一对一的操作系统会发生什么变化?
3.结合进程和线程的差异,简述引入线程的意义。
四、计算(10分)

1.使用SJF调度,计算每个进程的完成时间、平均周转时间、平均等待时间。(5分)
1.使用SRTF调度,计算每个进程的完成时间、平均周转时间、平均等待时间。(5分)
五、分析(10分)
1.临界区问题的特征并简述
2.死锁的四个特征
3.给了一组最大所需资源和已分配资源的表格,问是不是安全状态(数据忘了,总共9个同类资源)
4.哲学家问题的一个解决方法是每个哲学家先拿左手边的筷子,这个方法有什么问题?有什么解决方法?
六、分析(10分)
1.对几种内存分配方式根据以下标准进行评价:
(1)空间利用率
(2)地址转换的复杂性
2.简述基本分页方法的过程
七、分析(10分)
1.空闲空间管理有哪些方法,并评价。
2.FCB需要的信息,缺页中断的处理。
3.树状文件管理的好处,open和close的意义。
八、分析与计算(10分)
1.给了一个页表和两个逻辑地址(十六进制),页面大小为2^12B,计算:
(1)两个地址分别的页号和偏移量
(2)地址A是否有效?计算其物理地址。
(3)地址B是否有效?无效的话接下来会发生什么?
2.什么是系统颠簸,从工作集合原理的角度分析其根本原因以及如何改善。
九、分析(10分)
1.给了一个磁盘调度的序列,大小范围0~199,初始位置是100,往变大的方向运动,使用C-LOOK和C-SCAN调度:
(1)分别写出两种调度的顺序
(2)磁头移动距离
2.结合RAID 0(分散)和RAID 1(镜像)的特征,分析RAID的功能与作用。
十、设计(10分)
P1:d=5b+9c
P2:b=a-5
P3:c=2a+9
P4:a=x+2y
(大概这个意思,具体的式子记不清了)
写出四个进程的执行顺序,并用信号量给出它们的限制关系,写出每个信号量的初始值。
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐



所有评论(0)