2.2.2)历届真题讲解
① 操作系统的基本认知
答案:D
这个题涉及计算机组成原因的知识,先放置答案,再细细研讨。
系统开机之后,操作系统的程序会被自动加载到内存中的系统区,内存是啥,是RAM中的一部分。
回顾一下计算机组成原因的内容:
ROM和RAM值的都是半导体存储器,ROM在系统停止供电的时候仍然可以保持数据。我暂时理解ROM相当于PC机上的硬盘,至于RAM,比较典型的是计算机的内存。
ROM —— Read Only Memory 唯读记忆体。
RAM —— Random Access Memory 随机存储器
EPROM —— EPROM是一种具有可擦除功能,擦除后即可进行再编程的ROM内存
BIOS —— BIOS是个人电脑启动时加载的第一个软件。 它是一组固化到计算机内主板上一个ROM芯片上的程序,它保存着计算机最重要的基本输入输出的程序、开机后自检程序和系统自启动程序,它可从CMOS中读写系统设置的具体信息。 其主要功能是为计算机提供最底层的、最直接的硬件设置和控制。
参考文章 —— ROM、RAM、SRAM、DRAM、FLASH区别(转载+梳理)
② 并发和并行
答案:D
在单处理机系统中,同一时刻只能有一个进程占用处理机,因此进程与进程之间是无法并行执行的;
处理机和设备是可以并行的,比如CPU和显示屏是可以并行工作的;
通道是独立于CPU、控制输入/输出的设备,两者是可以并行的;
设备与设备之间了,比如显示屏和打印机可以同时工作,对吧😉
③ 系统调用
答案:A
这个题目应该能秒。操作系统接口主要有命令接口和程序接口(也称系统调用)
既然恰好遇到了库函数和原语,就跟着浅认识一下吧。
库函数是高级语言中提供的与系统调用对应的函数(当然,也有一些库函数和系统调用无关),库函数存在的目的是为了隐藏访管指令的细节,使得系统调用更加方便,可以理解为,库函数是系统调用的上层。
至于原语,可以看下图:
答案:C
假如基础知识扎实(或者还记得我开头放置的思维导图),那应该还是能凭着感觉选择出正确答案的。
环节一,时刻谨记:和资源相关操作都要用系统调用向操作系统提出请求,既然需要执行系统调用,那就是表示需要操作系统提供相应的计算机资源了。现在理解环节一的传递系统调用参数了吧
环节二的执行陷入(trap)指令其实还比较好理解,系统调用是内核和应用程序之间的接口,应用程序要访问硬件设备或者其他操作系统资源的时候,就必须通过系统调用,但是系统调用只会发生在核心态,那么就需要内中断(trap)来实现用户态到核心态的切换。
环节三的CPU执行相应服务和环节四的返回用户态应该就更好理解了。
答案:C
这个题应该是比较好选出来的,正确的选项可以当做关于系统调用的相关知识点记忆一下,有个印象就好,因为还会重复重复遇到的。
④ 操作系统的分类和发展
答案:A
I考察的是批处理系统的缺点 —— 缺乏交互性,常常常考点
至于III,多道程序设计技术允许同时把多个程序放入内存,并允许它们交替的在CPU中运行,它们共享计算机资源。当一道程序因为I/O请求暂停运行的时候,CPU就立刻去运行其他程序,也就是说I/O设备可与CPU并行,至于中断技术是实现这些操作的前保障了。
答案:D
多道程序系统通过组织作业(编码或数据)使CPU总有一个作业可执行,从而提高了CPU的利用率、系统吞吐量和I/O设备利用率,I,III,IV是优点。但系统要付出额外的开销来组织作业和切换作业,II错误。所以选D。
答案:C
现在操作系统都是多任务的,主要特点是并发和并行,单个CPU也可以满足要求的
⑤ 操作系统的运行机制和体系结构
答案:A
缺页处理和时钟中断都是属于中断,需要在核心态执行;进程调度程序是操作系统的内核进程,不需要用户进行任何干预;
答案:C
着重着重区分,什么是发生、调用,什么是执行。
进程切换是属于操作系统执行过程中的事件,操作系统只能在核心态执行作业,那么进程切换能发生在核心态。
系统调用是操作系统提供给用户程序的接口,是发生在用户态,执行在核心态的。
外部中断是用户态到核心态的"门",发生在用户态,执行在核心态。
缺页也是属于一种中断,那么也是用户态发生,核心态执行。
/
答案:D
关中断指令,字面意思:关闭中断的指令,只能在核心态执行。
trap指令在前面系统调用中已经阐述了其作用。
答案:B
整数除0会触发异常,需要中断处理,会导致用户态切换到核心态。
read系统调用函数,这么直接的名字😺,也是只能在核心态下执行。
答案:C
这个题目主要是考察,哪些指令可能导致异常出现,然后触发中断处理,导致CPU从用户态切换到核心态。
对于A,可能触发整数除0;
对于B,它直接就是中断的一部分;
对于D,可坑出现取地址的时候,出现缺页异常。
⑥ 中断以及异常
答案:D
中断的执行流程大致如下:
首先,当CPU检测到中断信号之后,由硬件自动保存被中断程序的断点(即程序计数器PC);
然后,硬件会找到本次中断信号对应的中断向量,操作系统初始化中断向量表。中断向量表中指明本次中断服务程序的入口地址;
接下来会开始执行中断服务程序,包括保存程序状态字PSW,保存中断屏蔽字,保存各个通用寄存器的值,并提供与中断信号对应的中断服务。
温馨提示:关于整数除0背后的处理过程,其是属于异常中的终止(abort)还是故障(fault),博主目前也不是特别清楚,但是随着学习的深入,肯定能搞定,我会及时回来更新。
答案:A
这个题考察的知识点是区分中断和异常。
异常是指令执行过程中在处理器内部发生的特殊事件,就是由于CPU当前执行的指令出了问题;
中断是来自CPU执行指令以外发生,中断产生的原因和CPU当前执行的指令无关(指令执行完毕,即公操作阶段);
其实知道异常和中断的定义,在写题时候还是挺乏力的,可以结合理解,再边刷边理解。
A 的访存缺页,访问页面不在内存中,是CPU正在执行的程序导致的,属于异常。
B 的整数除零,也是当前CPU正在执行的程序导致的,属于异常
C 的DMA是设备的一类I/O,设备发出I/O结束中断,是CPU执行指令以外的事件的发生,属于中断。
D 的也不太能查到解释资料。我后来认知更加清晰了,回来迭代内容
参考文章 —— 中断&异常
参考文章 —— csapp之第8章:异常控制流
答案:D
非法指令、整数除零等异常,是无法通过异常处理程序恢复故障,因此不能回到原本的断点执行,必须终止进程的执行。ABC可以当做知识点积累起来
答案:B
这个知识点在上面的习题中提到过类似的。中断处理中,最重要的两个寄存器是PC和PSWR
子程序调用只需要保存程序断点,也是该指令的下一个指令的地址;
但是中断调用子程序不仅要保存断点(PC 的内容),还要保存程序状态字寄存器(PSWR)的内容
答案:B
上一题的巩固变式。
外部中断处理过程中,PC值由中断隐式指令自动保存,而通用寄存器的内容会由操作系统保存
答案:D
时钟中断的主要任务是处理与时间相关的信息以及决定是否执行调度程序。
和时间相关的信息包括:系统时间、进程的时间片、延时、使用CPU的时间、各种定时器。
2.3)写题之后总结的思维导图
经过一番习题的摧残,最后将原本比较片面的思维导图,再度完善,完善为更加适应考试内容的版本。同样的,我这里只是放截图。我在gitee以及github中提供了思维导图原文件,建议用软件打开看更加清晰。
3)总结
通过最后真题这个板块的内容,大家应该可以发现:
操作系统的运行机制以及异常和中断,真的考察的量特别大。
其次是操作系统的发展阶段中出现的批处理系统的缺点。
最后,比较容易反复出现的是关于调用和执行的区别的理解。