当前位置: 首页 > news >正文

【操作系统】面向真题学操作系统 —— 操作系统概述客观题

文章目录

  • 1)前言
  • 2)正文
    • 2.1)看完文档总结的思维导图
    • 2.2)横扫试题
      • 2.2.1)代表性试题讲解
        • ① 操作系统的基本认识
        • ② 并发和并行
        • ③ 系统调用
        • ④ 操作系统分类与发展
        • ⑤ 操作系统的运行机制和体系结构
        • ⑥ 中断以及异常
      • 2.2.2)历届真题讲解
        • ① 操作系统的基本认知
        • ② 并发和并行
        • ③ 系统调用
        • ④ 操作系统的分类和发展
        • ⑤ 操作系统的运行机制和体系结构
        • ⑥ 中断以及异常
    • 2.3)写题之后总结的思维导图
  • 3)总结

1)前言

面向试题学习,能不能完全搞懂操作系统是不太能保证,能保证的是,能够把卷子上的题目嘎嘎秒了。
长文警告+多图警告,假如跟着文章走,独立写完试题+批改+看我提供的解析,大概需要1一个小时以上
既然看视频也是要一个小时,看完还不一定会写题。看我文章导图加上写题也要一个小时,但是我一个小时之后,几乎不怕什么习题了呀~

不建议在手机端看,其一是因为打开思维导图原文件不方便,其二是因为手机端的文章布局被渲染得真的,一言难尽。

在这里插入图片描述

2)正文

2.1)看完文档总结的思维导图

在看文章之前,因为待会会直接写操作系统概述中比较典型的题目来巩固知识点。那么可以大致花四五分钟浏览由辅导资料中总结出来的知识大纲(我下面提供了导图源文件的下载地址),顺着思维导图逐字逐句过一遍,然后就可以开始刷题目了。
在这里插入图片描述
当然,看这么长的截图是十分费劲的,所有的思维导图(408相关)我都会托管到github以及gitee中,可以直接download zip或者用git 拉取到自己的本地计算机上,使用软件和打开我提供的思维导图,可以鼠标滚轮缩放以及拖动或者编辑。
例如:
在这里插入图片描述

操作系统思维导图笔记以及软件链接——github
倘若觉得访问github速度太慢的小伙伴可以试试gitee的仓库呀
操作系统思维导图笔记以及软件链接——gitee
在这里插入图片描述

在这里插入图片描述

2.2)横扫试题

卷子也在仓库中,一共50题+,都是客观题,可以给自己设置一个时间,然后专心的答写。
在这里插入图片描述

2.2.1)代表性试题讲解

① 操作系统的基本认识

在这里插入图片描述

答案:B
系统软件包括操作系统、数据库管理系统、语言处理程序、服务性程序、标准库程序等。

在这里插入图片描述

答案:C
操作系统管理计算机的硬件和软件资源,这些资源统称为计算机资源。需要注意的是,操作系统也管理文件,文件不属于硬件资源(比如处理机、存储器等硬件资源),但是属于计算机资源

在这里插入图片描述

答案:D
操作系统是指控制和管理整个计算机系统的硬件和软件资源。合理地组织、调度计算机的工作和资源的分配。以便为用户和其他软件提供方便的接口与环境的程序集合。
A、B、C都可理解是应用程序为用户提供的服务,是应用程序的功能,而不是操作系统的功能。

在这里插入图片描述

答案:D
从这个题中可以学会从一个形象的角度看操作系统。
上一题咱们提到,“操作系统也管理软件”,那源程序存储在文件中,也应该被管理吧。
那咱们再进一步认识操作系统到底在管理什么😝😝😝
操作系统管理文件,指的是操作系统会关心计算中的文件的逻辑结构、物理结构、文件内部结构、多文件之间如何组织等等问题。
比如我们是操作系统,负责的任务是将十个水杯放在合适的位置,那我们是没有必要去关心水杯盛的是橙汁还是凉白开,把杯子放在恰当的位置就好。操作系统管理文件也可以类似的理解。源程序是放在文件这个杯子种的水。

在这里插入图片描述

答案:D
上面一题的再度巩固

② 并发和并行

在这里插入图片描述

答案:B
操作系统最基本的特征是并发和共享,两者互为存在条件。

在这里插入图片描述

答案:C
这里需要扣字眼,着重理解同一时刻同一时间间隔,同一时间间隔可以说是一个区间,同一时刻就更像区间上的一个点。
那么,再顺势理解并发并行,并发性是指若干事件同一时间间隔内发生,而并行性是指若干时间在同一时刻发生。

③ 系统调用

在这里插入图片描述

答案:B
这里考察的知识点点是:操作系统主要向用户提供命令接口和程序接口(也可以称为系统调用),此外了,还在咱们属性的图形化接口(在调用系统调用的基础上再实现的功能),总结成图:

在这里插入图片描述
在这里插入图片描述

答案:A
上一个知识点的变式。

在这里插入图片描述

答案:B
系统调用是操作系统为应用程序使用内核功能所提供的接口。
就像我上面图中阐述的那样,内核功能过于偏向于底层,直接使用并不安全且不方便,所以设计为只能通过用户程序间接的使用。

在这里插入图片描述

答案:C

在这里插入图片描述

答案:D
放置这个题目的主要目的是积累词条。
shell 是命令解析器,它服务于命令接口;命令解释器也是直接属于命令接口;广义指令就是系统调用命令(第一次听到这个词条);
对于D,应该是计算机组成原理知识的一个积累。系统中的缓存全部由操作系统管理,那么,对于用户是透明的,因此操作系统不会提供管理系统缓存的接口。

④ 操作系统分类与发展

在这里插入图片描述

答案:B
这个题就是纯纯的知识点啦

在这里插入图片描述

在这里插入图片描述

答案:BACD
这个题目在对操作系统的各个发展阶段产品的特点有一定了解之后,就能够很快乐的秒了。
首先,为了调解手工操作阶段独占设备的情况,发展出了批处理操作系统,使得允许多个用户使用计算机了,美好了,但是呢,美中不足,这种操作系统缺乏交互性,致命缺陷。
然后,为了解决交互性的问题,发展出了分时操作系统。更加完美了,但是呢,分时操作系统应对需要及时做出相应的环境表现不太好。
紧接着,为了满足需求,就发展出了实时操作系统

在这里插入图片描述

答案:D
多道程序设计技术由于同时在主存中运行多个程序,在一个程序等待的时候,可以去执行其他程序,因此提高了系统资源的利用率。
脱机技术用于解决独占设备问题,至于虚拟技术还有交换技术,都隶属于为多道程序设计技术的前提。

在这里插入图片描述

答案:D
在批处理系统中,作业执行的时候,用户是无法进行干预的,只能通过事先编制的作业控制说明书来间接干预,因此批处理系统是十分缺乏交互能力的。

在这里插入图片描述

答案:C
批处理的主要缺点是缺乏交互性。(批处理系统的缺点十分常考)
输入/输出指令需要中断操作,中断必须在核心态下执行。
多道程序设计技术是为了提高系统利用率和吞吐量而产生的,因此III说法是错的。
I/O通道实际上是一种特殊的处理器,处理器是硬件,所以第四个说法是没错的,它具有执行I/O指令的能力,并通过执行多道程序来控制I/O 操作,这里当做常识积累。

在这里插入图片描述

答案:C
多道程序的运行环境比单道程序的运行环境更加复杂。引入多道程序之后,程序的执行会失去封闭性和顺序性。程序的执行因为共享资源以及相互协同的原因产生了竞争,相互制约。为了保证竞争的公平,程序的执行是间断性

在这里插入图片描述

答案:B
裸知识点。分时操作系统的设计目标是能够快速响应用户。

在这里插入图片描述

答案:C
采用优先级可以让重要的作用或者进程能够通过高优先级尽快获得系统响应;采用非抢占式调度算法可以保证次要的进程或者作业在非抢占式调度下,不会迟迟得不到系统的响应。
至于加大时间片了,只会延迟系统的响应时间,因为分时技术是指把处理器的运行时间分成很短的时间片,按时间片轮流把处理器分配给各个联机作业使用。,那么加大时间片,只会加大延迟。
静态页式管理和代码可重入与系统响应时间无关。

在这里插入图片描述

答案:C
在分时操作系统中,有这么一个计算式: 相应时间 T = 时间片 Q ∗ 用户数 N 相应时间T = 时间片Q*用户数N 相应时间T=时间片Q用户数N,那么对于此题而言,当时间片固定的时候,用户数量越多,每个用户分到的时间片就越少。

做了这么多知识点,换种玩法,上一个计算题~
在这里插入图片描述

在这里插入图片描述

答案:B
机制的小伙伴可能已经发现,这个题就是上一个题的变式~。
相应时间 T = 时间片 Q ∗ 用户数 N 相应时间T = 时间片Q*用户数N 相应时间T=时间片Q用户数N
当前的相应时间是2S,然后进程数其实相当于用户数量,用户使用计算机作业之后才能才生进程,对吧。
那么最后的结果就很容易得出了。

在这里插入图片描述

答案:B
裸知识点。
实时操作系统要求能够在规定的时间内完成对外部事件的处理。

在这里插入图片描述

答案:B
实时性可靠性是实时操作系统最重要的两个目标。
安全可靠体现了可靠性,快速处理和及时响应体现着实时性。
资源利用率不是实时操作系统的主要目标,在为了保证快速处理高优先级的紧急任务的时候,"浪费"一些系统资源是情有可原的嗷~

在这里插入图片描述

在这里插入图片描述

答案:C
这个题和上面的改善分时系统的题联系着学习。
实时操作系统是分时操作系统的进一步发展。在分时操作系统中,为了能够让重要的作用或者进程尽快获得响应,采用了高优先级,在实时操作中,必须能足够及时的处理某些紧急的外部事件,因此普遍还是采用高优先级。
在实时操作系统中,为了保证紧急事件能够及时处理,还追加了可抢占式来确保实时处理。

活学活用,来切实的刷一个实时操作系统的应用例子。
在这里插入图片描述

答案:D
实时操作系统主要应用在需要对外界输入立即作出反应的场合,不能拖延,否则会发生严重的后果。
航空订票系统需要实时处理事务,因为票额数据库的数量直接反映了航班的可订机位,必须立即更新。
机床控制也必须要实时操作系统,倘若不能立即做出反应,一批工件可能就会被削坏。
股票交易系统也必须要实时操作系统,因为股票行情瞬息万变,倘若不能实时更新,就会出现时间差,导致巨额亏损。

⑤ 操作系统的运行机制和体系结构

在这里插入图片描述

答案:D
操作系统(也可以说是内核)可以执行处理器能够执行的任何指令。
只是有一定的限制,对于用户程序而言,只能执行除特权指令以外的指令;特权指令只能由操作系统使用。

在这里插入图片描述

答案:A
计算机通过硬件中断机制完成由用户态到核心态的转换。
核心态程序了,就像它的名字一样,只能在进入核心态之后才能执行。
中断处理程序一般也是在核心态执行,这是后续的知识点,暂时不细谈。

在这里插入图片描述

答案:C
在前面的例题中提到过,广义指令就是系统调用命令,它必然是在核心态下执行的。
这个主要是想要提醒:注意区分调用/使用执行的区别。广义指令的调用可能是发生在用户态,调用广义指令的那条指令不一定是特权指令;但是因为广义指令存在于用户态中,所以执行一定是在核心态。
按照我现在浅陋的理解呢,使用执行相当于拿水瓶和拧开瓶子的瓶盖喝水。前者只是动作,不会产生结果;而后者会有结果。

在这里插入图片描述

答案:D
核心是要知道输入输出指令会涉及到中断操作,而中断处理是由核心态负责的,因此必须在核心态下执行。

在这里插入图片描述

答案:A
放置这个题目的主要目的是想让了解什么是访管指令。核心态又可以称为是管态。那么从字面意思理解,访管指令是访问核心态的指令。
在核心态访问核心态蛮奇怪的吧,那顺理成章理解可以理解为:在用户态执行访问核心态的"访管指令",然后就能够成功进入核心态。

在这里插入图片描述

在这里插入图片描述

答案:D
上一个题的再度巩固。访管指令在用户态使用,是用户程序"自愿进管"的手段。
用户态是不能执行特权指令的,这点不变;在核心态下,CPU可以执行指令系统中的任何一个指令。

在这里插入图片描述

答案:A
这个题呢,更偏向于与对计算机基础知识的积累。
中断系统地址映射都是需要硬件支持的,因为中断指令和地址映射中的重定位都是离不开地址支持的。
时钟管理中,重置时钟等操作是由硬件直接完成的。
对于进程调度而言,是根据调度来决定当前的CPU交给哪个进程使用,由操作系统控制,和硬件无关。

⑥ 中断以及异常

在这里插入图片描述

答案:C
进入中断处理的程序是在核心态执行,核心态了,向着操作系统程序选择了。

准备最后一个习题啦~
在这里插入图片描述
在这里插入图片描述

答案:D
看到"访管"二字,应该可以联想到上面的两个习题中解释了什么是访管指令,访管指令的执行位置。
因为操作系统不允许用户直接使用某些"危险性高"的指令,因此用户态运行的这些指令的结果会转成操作系统在核心态执行,这个过程了,就是访管中断。

在这里插入图片描述

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)总结

通过最后真题这个板块的内容,大家应该可以发现:
操作系统的运行机制以及异常和中断,真的考察的量特别大。
其次是操作系统的发展阶段中出现的批处理系统的缺点。
最后,比较容易反复出现的是关于调用执行的区别的理解


以上是我汇总以及筛选出来的习题,相对比较全面,彼此之间也存在关联,整体的难度是递增的。只是题量真的有点大…
感谢细细观看💞💞💞

在这里插入图片描述

相关文章:

  • QT-子窗口关闭时,为什么不执行析构函数问题
  • 猿创征文| openGauss 数据库实战 主备高可用部署(主备部署模式)
  • 基于simulink的电气弹簧ES稳压控制模型仿真
  • Day759.Redis脑裂问题 -Redis 核心技术与实战
  • CSS高级篇——更多选择器 (selectors)
  • R语言(5) 折线图、散点图
  • 云原生之容器编排实践-SpringBoot应用以YAML描述文件部署pod到minikube
  • 【K8S】kubectl常用命令总结
  • 一文搞懂大数据入门之 Hadoop,HDFS,Hbase,Hive
  • FreeRTOS-实现任务调度器
  • 基于51单片机公交车到站指示灯设计
  • MySQL表的增删查改
  • 开关电源学习(一) MP2315S简介
  • String类详解(上)
  • 【数据结构与算法】栈的深入学习(上)
  • [deviceone开发]-do_Webview的基本示例
  • Android框架之Volley
  • Angular数据绑定机制
  • ComponentOne 2017 V2版本正式发布
  • ES6 ...操作符
  • If…else
  • JavaScript函数式编程(一)
  • JAVA之继承和多态
  • Laravel Telescope:优雅的应用调试工具
  • Next.js之基础概念(二)
  • PHP 程序员也能做的 Java 开发 30分钟使用 netty 轻松打造一个高性能 websocket 服务...
  • python_bomb----数据类型总结
  • V4L2视频输入框架概述
  • vue-cli在webpack的配置文件探究
  • 阿里云应用高可用服务公测发布
  • 第13期 DApp 榜单 :来,吃我这波安利
  • 如何合理的规划jvm性能调优
  • 吴恩达Deep Learning课程练习题参考答案——R语言版
  • 一、python与pycharm的安装
  • 一些关于Rust在2019年的思考
  • 以太坊客户端Geth命令参数详解
  • Spark2.4.0源码分析之WorldCount 默认shuffling并行度为200(九) ...
  • # Swust 12th acm 邀请赛# [ A ] A+B problem [题解]
  • ###C语言程序设计-----C语言学习(3)#
  • #Ubuntu(修改root信息)
  • $ git push -u origin master 推送到远程库出错
  • (C++17) optional的使用
  • (二十一)devops持续集成开发——使用jenkins的Docker Pipeline插件完成docker项目的pipeline流水线发布
  • (十一)手动添加用户和文件的特殊权限
  • (四)Linux Shell编程——输入输出重定向
  • (转)c++ std::pair 与 std::make
  • (轉貼) UML中文FAQ (OO) (UML)
  • .a文件和.so文件
  • .NET CF命令行调试器MDbg入门(四) Attaching to Processes
  • .NET CORE使用Redis分布式锁续命(续期)问题
  • .NET Framework Client Profile - a Subset of the .NET Framework Redistribution
  • .NET Framework杂记
  • .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题
  • .Net7 环境安装配置
  • .NET的微型Web框架 Nancy