操作系统习题错题记录

文章目录

  • 三、启动、中断、异常和系统调用
  • 五、物理内存管理 连续内存分配
  • 六、物理内存管理:非连续内存分配
  • 九、页面置换算法
  • 十一、进程和线程
  • 十二、进程切换
  • 十五、处理机调度

三、启动、中断、异常和系统调用

1.下列选项中,不可能在用户态发生的是()
A.系统调用
B.外部中断
C.进程切换
D.缺页
解析:C。系统调用是提供给应用程序使用的,由用户态发出,进入内核态执行;外部中断随时可能发生;应用程序执行时可能发生缺页(缺页是一种中断,指的是当软件试图访问已映射在虚拟地址空间中,但是并未被加载在物理内存中的一个分页时,由中央处理器的内存管理单元所发出的中断);而进程切换完全由内核来控制

2.中断处理和子程序调用都需要压栈以保护现场。中断处理一定会保存而子程序调用不需要保存其内容的是()
A.程序计数器
B.程序状态字寄存器
C.通用数据寄存器
D.通用地址寄存器

解析:B。程序状态字(PSW)寄存器用于记录当前处理器的状态和控制指令的执行顺序,并且保留与运行程序相关的各种信息,主要作用是实现程序状态的保护和恢复。所以中断处理程序要将PSW保存,子程序调用在进程内部执行,不会更改PSW

3. 应用程序引发异常的时候,操作系统可能的反应是()

A.删除磁盘上的应用程序
B.重启应用程序
C.杀死应用程序
D.修复应用程序中的错误
解析:C。如果应用程序发生异常,说明应用程序有bug,如果应用程序无法应对这样的错误,再进一步执行应用程序意义不大。但是应用程序如果可以处理这些异常,比如基于Java和C++的异常处理机制,操作系统的signal机制,系统会转到应用程序的对应处理函数来完成后续的修补工作

4.CPU执行操作系统代码的时候称为处理机处于( )
A.自由态
B.目态
C.管态
D.就绪态
解析:C。内核态也称为管态

五、物理内存管理 连续内存分配

1.在使能分页机制的情况下,更合适的外碎片整理方法是(C)
A.紧凑(compaction)
B.分区对换(Swapping in/out)
C.都不是
解析:分页机制不会产生外碎片

2. 描述伙伴系统(Buddy System)特征正确的是(ABC)

A.多个小空闲空间可合并为大的空闲空间
B.会产生外碎片
C.会产生内碎片
D.都不对

解析:
A:释放空间会合并;
B:把一块空间对半分时,没有派上用场的那一半就变成了外碎片
C:伙伴系统分配的空间都是2的整数次幂,但是申请的空间并不一定就刚好是这么大,多余的空间便变成了内碎片

六、物理内存管理:非连续内存分配

1.描述段管理机制正确的是(ABCD)

A.段的大小可以不一致
B.段可以有重叠
C.段可以有特权级
D.段与段之间是可以不连续的

解析:这个题你漏选的是B。段是一块连续的内存地址,是物理地址中的概念。段重叠指的是不同的虚拟地址指向同一物理地址。这是piazza上陈老师的回答链接:https://piazza.com/class/i5j09fnsl7k5x0?cid=1061_f1

2.可有效应对大地址空间可采用的页表手段是(AB)

A.多级页表
B.反置页表
C.页寄存器方案
D.单级页表

解析:根据陈渝老师的回答,之所以不选页寄存器,是因为硬件开销会很大,所以现在通用的CPU都没有采用这种方式。个人觉得,页寄存器是一种仅存在于理论中的方法,没有实际意义,所以不应该选C。

3.页表项标志位包括(ABCD)

A.存在位(resident bit)
B.修改位(dirty bit)
C.引用位(clock/reference bit)
D.只读位(read only OR read/write bit)

解析:课件上没有见到D,所以你漏选了D,而页是可以只读/只写的,所以需要一个只读位来标志它的访问模式

九、页面置换算法


1. 物理页帧数量为3,虚拟页访问序列为 0,1,2,0,1,3,0,3,1,0,3,请问采用最优置换算法的缺页次数为(D)
A.1
B.2
C.3
D.4
解析:你本来选的是A,这是假定内存中已经预读入了0,1,2这3个页面;而实际上,程序在第一次运行时会有大量的缺页发生,因为内存中没有读入任何页面,这就是答案4次的由来,即在前3次读取时都会发生中断

2.物理页帧数量为4,虚拟页访问序列为 0,3,2,0,1,3,4,3,1,0,3,2,1,3,4 ,请问采用CLOCK置换算法(用2个bit表示存在时间)的缺页次数为(7次)
A.8
B.9
C.10
D.11
我看了陈渝老师的解答,应该是7次,学堂在线上的选项都是错的;通过这道题我意识到,可能是我对增强的clock算法理解有误?用标志位和修改位其实表示的是访问次数,比如第一次访问0号虚拟页时这俩标志位取01,第二次时取10,然后发生缺页异常时再通过指针扫描找出需要被替换的页面

十一、进程和线程

1.操作系统来维护一组队列,表示系统中所有进程的当前状态,有关管理进程的描述正确的是(AB )

A.就绪态进程维护在进程就绪队列中

B.等待态进程维护在进程等待队列中

C.运行态进程维护在进程运行队列中

D.zombie态进程不在任何队列中

解析:好像状态队列就仨:就绪队列,各种等待队列和僵尸态队列

十二、进程切换

1.关于创建新进程的描述正确的是()
A.fork() 创建子进程中,会复制父进程的所有变量和内存
B.子进程的fork()返回0
C.父进程的fork()在创建子进程成功后,返回子进程标识符
D.fork() 创建子进程中,会复制父进程的页表
解析:ABCD。你漏选了A,你考虑的点是变量的值可能不一样,但是子进程的确是复制了父进程的所有变量和内存,但是寄存器的值可能不一样

十五、处理机调度

1.在基于优先级的可抢占的调度机制中,当系统强制使高优先级任务等待低优先级任务时,会发生()
A 优先级反转
B 优先级重置
C 系统错误
D 死循环
解析:A。PPT上写的是优先级反置,刚好是A+B各抽一字,于是我人就傻了。我在这里强行解释一波吧,优先级反置是让低优先级的进程的优先级上去,高优先级的进程暂时等待,这和平常的低优先级等待高优先级的刚好相反,所以应该是反转

你可能感兴趣的:(操作系统)