操作系统错题---计算机系统概述
1.1.4-4
解析:操作系统管理计算机软件硬件资源,扩充裸机以提供更强大的扩充机器。高级程序设计语言的编译器不是操作系统关心的问题,编译器实质是一段程序指令,存储在计算机中。
1.1.4-10
解析:系统调用是操作系统为应用程序使用内核程序功能所提供的接口,用户程序进程执行中遇到中断或者异常时会通过某些方法,陷入到核心态,在核心态执行系统调用,执行结束后返回用户态。系统调用和命令接口是不同的两类
1.1.4-12
解析:程序接口是系统调用,库函数如图。操作系统提供用户(程序员)一个访问计算机资源的接口,就是系统调用。
1.1.4-15
解析:键盘命令是命令,不是接口。图形接口未涉及到核心态。
1.1.4-16
解析:shell属于命令解释器,是命令接口。命令解释器是命令接口。广义指令就是系统调用。缓存管理指令属于硬件对用户透明。
1.1.4-17
解析:A:程序执行共享资源,相互协同,产生竞争,相互制约。B:调度,程序的执行时断续的。C:多道程序不是顺序执行,程序是交替执行的 D:程序共享资源
1.2.7-9
1.3.4-2
解析:I:批处理主要缺点是缺少交互性。II:输入输出需要中断操作,所以必须在核心态下执行。III:多道程序设计是为了提高系统利用率和吞吐量而提出的。IV:IO通道实际上是一种特殊的处理器。
1.3.4-3
解析:屏蔽中断指令实现关中断,不能再用户程序使用。
1.3.4-9
解析:由中断机制完成。CPU执行完每条指令时,都会去检查一个中断标志位
1.3.4-20
解析:A:中断和子程序调用执行完以后,都要回到原来的程序中,需要程序计数器来记录运行到哪条了。
B:程序状态字用来保存处理器的状态,其中某标志位用来记录处理器是用户态还是核心态,发生中断的时候,会改变这个标志位,因为中断处理一定在核心态下。当中断处理执行完以后要返回原来的指令,要看原来的程序是在什么状态下执行的,所以一定要保存程序状态字。而子程序调用不会改变程序状态字,所以不用保存程序状态字。如果子程序调用改变了程序状态字那么子程序中有中断处理。
C:通用寄存器要看中断处理或子程序调用后的程序,是否需要使用这些通用寄存器,如果需要使用,就需要进行现场保护,压栈保存,等子程序或者中断处理完以后,出栈。所以通用寄存器不一定需要保存。
D:同C
1.3.4-22
解析:如图,异常分陷入、故障、终止。陷入是用户故意产生的,比如用户调用,处理完后会返回到异常发生的指令继续执行。而终止,会导致程序进程终止,不返回发生异常的指令继续执行。
1.3.4-23
解析:A:访存时缺页时CPU在执行指令访问进程相关页面的时候发现该页面没有调入内存。是内中断。异常。
B:CPU在运算时发现的错误。内中断,异常。
C: DMA相当于一种IO设备,是外中断。
D:存储保护错例子:主存分为系统区和用户区,如果用户的某指令访问系统区,会发生错误,是执行指令时发生的错误,属于内中断,异常、
1.3.4-24
解析:PC和PSW由硬件保存。通用寄存器由操作系统保存。块表和cache中保存的是主存中的某些数据的副本,就算丢失也没关系,不需要保存
1.3.4-25
解析:A:可能发成整数除0的异常
B:可能调用访管指令
D:addr地址的页面可能没有调入内存,可能发生缺页
原文作者: 赖卓成
原文链接: https://lzcxfz.github.io/2019/11/21/操作系统错题-1/
版权声明: 转载请注明出处(必须保留作者署名及链接)