山东大学2022操作系统期末(计算机学院)

  • Post author:
  • Post category:其他


写在开头:

之前上网搜OS期末考试原题,基本全是软件学院的,没有计科的。这次是第一次写期末考试,希望对学弟学妹有帮助


没想到居然真的写完了,自我感觉还原度95%,基本题干都背过了



一、解答题(4*10)



1.

(1)内核模式和用户模式的区别

(2)对OS发展的帮助

(3)C语言printf语句会陷入内核态吗

(4)C语言cos(13)会陷入内核态吗



2.

抖动是什么,什么原因造成的,工作集如何预防抖动



3.

(1)虚拟存储的思想

(2)请求调页中,页表项有哪些,有什么作用

(3)让一个进程不访问不属于它的地址空间怎么做



4.

(1)设备驱动程序的作用

(2)一切皆文件的优缺点



二(35’)



1.死锁的检测

(1)给了一个4个进程+五种资源那种表,其中一个资源的量为x,问若让系统无死锁,x最小值是多少,给出推理过程

(2)死锁必要条件是什么,银行家算法破坏了哪些(个)条件



2.(15’)

给了两条C语言程序语句,一个是打开file.txt文件,另一条是读入一个字符,并赋值到变量c中

(1)写出从拿到file.txt开始,到赋值结束过程中,OS都干了什么

(2)这个过程中,用到了哪些文件管理的数据结构



3.

给了编程代码

int main()

{


pid_t pid1,pid2;

pid1 = fork();

pid2 = fork();

printf(“hello,world”);

return 0;

}

问一共输出几次hello,world,给出进程树,并给出解释



三、计算编程题



1.

给了一个优先级priorty,刚开始设为nice,优先级调度法,进程被调度时,cputime每单位时间+1,waittime置零;进程等待时,cputime置零,waittime每单位时间+1

(1)若priority就设为nice,不变,则会可能有饥饿,为什么

(2)给出一个动态优先级算法,保证不饥饿,waittime在其中作用是什么



2.

给一段代码

作用是,复数的struct,定义复数的加法算法,有三个线程。x,y,z是三个复数,是全局变量

线程1:有局部变量m,m=x+y

线程2:有局部变量m,m=y+z

线程3:有局部变量m,m=(1,1),y = y+m,z = z+m

请增加条件变量,并用wait和signal来使得线程可以最大限度并发,且互不干扰



版权声明:本文为m0_53479419原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。