23秋 操作系统真题回忆

总结:

  • 量大 综合性强 结合实验很紧密
  • 具体的题目 不是很记得了 只记了大概
  • 希望有人可以一起参与把这个题的答案做出来,有可以的 可以私信我谢谢 需要你们的想法
  • 因为可能涉及学校内部的试题,禁止转载

2013题目

真题

2023题目

进程

  1. 代码执行需要运行在处理机上,操作系统需要知道哪些信息 (2分)
  2. 什么是模式切换,具体举例模式切换(2分)
  3. 进程程在创建时候,操作系统需要做什么(3分)

同步互斥

  1. 库函数调用和系统调用区别(2分)
  2. 什么是临界区,为什么要设置临界区(2分)
  3. 一个PV的题 读电表,线程1 执行读电表,设计数为A_i 并把示数放到环形缓冲区1中,线程2 读另外一个电表并把它放到环形缓冲区2中,缓冲区1和2的大小分别是20 10,线程3的任务是将结果Ci = A_2i * B_i + A_(2i+1) *(1 - B_i) 打印出来,写出同步代码(i的取值为0,1,2…)(5分)

地址空间管理

  1. 发现想要访问的内容不在内存中怎么办(2分)
  2. 段页式管理的地址翻译过程(3分)
  3. 给了一个内存表如下图所示,采用二级页表 让你翻译0x00467FA H写出具体翻译过程。 一级页表的起始地址是从0开始(4分)
0x00H 十六个字节的数字
0x10H 十六个字节的数字
0X20H 我记得都是0
0x30H 我记得都是0
0x40H 一大堆数字

0xFF0 也是数字 到0x2040一大堆数字	

PS: 这个题应该是按照10 、10、12翻译的,如果没算错的话 一级页表那里是1,二级页表是6,地址偏移自己算(之前说的都是十进制),如果一级页表那里是4的话,应该是从0+4 * 4字节(页表项长度是4B),也就是从第二行开始读四个字节,我记得当时应该是小端法读,就比如是34 57 85 A4 B3,转过来应该是B3 A4 85 57 34,之后应该是可以在0FF0到2040找到一个数的作为二级页表的起始地址,之后再找到64B的位置 也就是从起始地址+64B的位置 读四个字节,这样获得了三十二位数字之后将后边的12位制成0之后+一开始算的偏移就是最后的物理地址。

在这里插入图片描述

调度

  1. 抢占式优先级会带来什么缺点,把抢占变成非抢占可以解决问题么 说明原因(2分)
  2. 多级反馈队列算法的优点和缺点(2分)
  3. 根据时间片轮转算法 当时间片分别是1和2的时候 写出平均周转时间 并画图(4分)
进程 到达时间 需要运行时间
A 3 3
B 5 5
C 7 2
D 8 6

文件管理和磁盘

  1. 写出打开/usr/bin/test.dat 过程(3分)
  2. 假设文件采用混合索引的方式,直接索引10个,一级二级三级索引分别有一个,索引块和数据块的大小分别都是4KB,地址块(表项长度是4B),写出按照顺序访问文件2MB的过程。(3分)
  3. SCAN算法 访问一些磁盘块 写出顺序(2分)

综合

一个采用minix文件系统的操作系统,采用段页式管理和二级页表,系统中断的时钟周期是10ms,程序运行的时间>20ms,内存页大小是4KB,磁盘块的大小是1KB,用户输入执行gcc -o test test.c 生成的可执行文件大小是10KB,并运行程序,并将3M大小的日志文件test.log写入到相同的文件夹,请结合操作系统的知识来回答问题。

致谢

  • 在HIT真的见到了很多大佬 收获了很多
  • 感谢计科的思达和世豪同学的交流讨论,没有他们的帮助我不可能完成题目的部分解析。

猜你喜欢

转载自blog.csdn.net/qq_62260432/article/details/134912252