山东大学软件学院操作系统(考试)——期末考试回忆版
程序员文章站
2022-07-05 21:56:20
...
2020年9月3日,2020-2021年度山东大学软件学院操作系统考试
受疫情影响,本应在6月下旬的考试改到下个学期开学第一周考试
所有题目都根据3个人的回忆确定,名次解释部分顺序不一样,简答题顺序与原卷一致
一. 名次解释(每个2分)
- TLB
- Device Driver
- Time-Sharing Operating System
- Privileged Instruction
- IPC
- FCB
- Working Directioy
- User Thread
- Critical Section
- Semaphore
二. 简答题(每个10分)
- 为什么访问文件需要先open()?以及该操作之后,操作系统产生了什么结构?
- 使用死锁检测算法判断是否有死锁?如果有死锁,那么哪些进程死锁?
进程 | Allocation | Request | Available |
---|---|---|---|
A B C | A B C | A B C | |
P0 | 2 0 0 | 忘了 | 0 0 0 |
P1 | 忘了 | 忘了 | |
P2 | 1 0 0 | 0 0 0 | |
P3 | 忘了 | 0 1 0 | |
P4 | 忘了 | 忘了 |
- 画出进程NEW、READY、RUNNING、WAITING、TERMINATED的状态图,并说明状态之间变换的原因。
- 根据进程的到达和执行时间,画出相应算法的甘特图,并求出平均等待时间。
进程 | 到达时间 | 执行时间 |
---|---|---|
P1 | 0 | 3 |
P2 | 1 | 2 |
P3 | 2 | 3 |
P4 | 3 | 6 |
(1)抢占式最短作业优先调度
(2)轮转法调度(时间片大小为2)
- 当前页表如下。页大小为1024字节,该程序分配2个帧,页号0先装入内存。采用先进先出和局部置换策略,现在访问逻辑地址为3000的字节,问在这个过程中发生了什么主要事件并写出置换后的页表。
页号 | 帧号 | Valid/Invailid |
---|---|---|
0 | 130 | Valid |
1 | 570 | Valid |
2 | -1 | Invalid |
3 | -1 | Invalid |
- 写出下面程序的输出结果,并解释这样输出的原因。
int a = 0;
int main()
{
int pid = fork();
if (pid == 0)
{
a = 2;
print("child leaving/n");
}
else
{
wait(NULL);
print("a=%d/n". a);
}
}
- 某磁盘有5000个磁道,从0-4999。当前磁头的位置为143,前一个请求的位置为144。给出当前的请求队列 83、252、143、… 、1774(题*给了9个),分别用下面的算法求出磁道移动距离。
(1)SSJF
(2)SCAN - 甲乙丙三人疫情结束后一起聚餐,吃完饭后,三人一起看电影。用伪代码写出三人一起行动的过程,并且要防止死锁的发生。
预祝各位学弟学妹操作系统95+
下一篇: 期末考试