欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

山东大学软件学院操作系统(考试)——期末考试回忆版

程序员文章站 2022-07-05 21:56:20
...

2020年9月3日,2020-2021年度山东大学软件学院操作系统考试

受疫情影响,本应在6月下旬的考试改到下个学期开学第一周考试

所有题目都根据3个人的回忆确定,名次解释部分顺序不一样,简答题顺序与原卷一致

一. 名次解释(每个2分)

  1. TLB
  2. Device Driver
  3. Time-Sharing Operating System
  4. Privileged Instruction
  5. IPC
  6. FCB
  7. Working Directioy
  8. User Thread
  9. Critical Section
  10. Semaphore

二. 简答题(每个10分)

  1. 为什么访问文件需要先open()?以及该操作之后,操作系统产生了什么结构?
  2. 使用死锁检测算法判断是否有死锁?如果有死锁,那么哪些进程死锁?
进程 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 忘了 忘了
  1. 画出进程NEW、READY、RUNNING、WAITING、TERMINATED的状态图,并说明状态之间变换的原因。
  2. 根据进程的到达和执行时间,画出相应算法的甘特图,并求出平均等待时间。
进程 到达时间 执行时间
P1 0 3
P2 1 2
P3 2 3
P4 3 6

(1)抢占式最短作业优先调度
(2)轮转法调度(时间片大小为2)

  1. 当前页表如下。页大小为1024字节,该程序分配2个帧,页号0先装入内存。采用先进先出和局部置换策略,现在访问逻辑地址为3000的字节,问在这个过程中发生了什么主要事件并写出置换后的页表。
页号 帧号 Valid/Invailid
0 130 Valid
1 570 Valid
2 -1 Invalid
3 -1 Invalid
  1. 写出下面程序的输出结果,并解释这样输出的原因。
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);
	}
}
  1. 某磁盘有5000个磁道,从0-4999。当前磁头的位置为143,前一个请求的位置为144。给出当前的请求队列 83、252、143、… 、1774(题*给了9个),分别用下面的算法求出磁道移动距离。
    (1)SSJF
    (2)SCAN
  2. 甲乙丙三人疫情结束后一起聚餐,吃完饭后,三人一起看电影。用伪代码写出三人一起行动的过程,并且要防止死锁的发生。

预祝各位学弟学妹操作系统95+