mooc计算机系统基础(三)测验答案及部分解析

编程入门 行业动态 更新时间:2024-10-26 05:24:33

mooc计算机系统基础(三)<a href=https://www.elefans.com/category/jswz/34/1766044.html style=测验答案及部分解析"/>

mooc计算机系统基础(三)测验答案及部分解析

目录

第一周

第二周

第三周

第四周

第五周

第六周

第七周


第一周

1以下有关计算机程序和进程的描述中,错误的是(  B )。

A.用高级语言编写的程序必须转换为机器代码才能在计算机中运行

B.机器代码及其数据被映射到统一的虚拟地址空间即形成一个进程

C.机器代码通常以可执行目标文件或共享库文件形式保存在磁盘中

D.同一个程序如果处理不同的数据集合就会对应很多不同的进程

解析:  B、程序需要被启动执行后才能成为进程,机器代码和数据被映射到统一的虚拟地址空间这件事是链接程序完成的,链接后只能生成一个可执行文件或共享库文件,不能形成一个进程。

2以下关于引入进程好处的叙述,其中错误的是(  A )。

A.每个进程须独占使用处理器,以保证每次运行都有同样的运行结果

B.每个进程具有确定的逻辑控制流,不会因为进程被打断执行而改变

C.每个进程具有独立的虚拟地址空间,便于编译、链接、共享和加载

D.每个进程各自占用不同的主存区域,便于操作系统实现存储保护

解析:  A、处理器可以被不同的进程轮流使用或并行使用,在一个进程的整个生命周期中,通常不会独占使用处理器,在某个进程执行遇到异常、中断和I/O操作时,操作系统会调度其他进程使用处理器。

3以下是关于进程的逻辑控制流的叙述,其中错误的是( D  )。

A.进程的逻辑控制流指其运行过程中执行指令的虚拟地址序列

B.不同进程的逻辑控制流在时间上交错或重叠的情况称为并发

C.不同进程的逻辑控制流中有可能会存在相同的地址序列

D.进程的逻辑控制流在其对应机器代码被链接生成时就已经确定

解析:  D、因为进程的逻辑控制流指其运行过程中执行指令的虚拟地址序列,而每个进程的虚拟地址空间都是一样的,例如,IA-32/Linux系统中每个进程的虚拟地址空间都是0000 0000~FFFF FFFFH,因此,不同进程的逻辑控制流中可能存在相同的指令地址序列。链接时可以确定每条指令和每个数据在虚拟地址空间中的地址,但是,不能确定条件转移指令的条件是否满足,因而也就不能确定具体执行的是哪些指令,因而链接时不能确定将来执行时的逻辑控制流。

 

4以下关于进程上下文切换的叙述中,错误的是( C  )。

A.进程上下文切换机制实现了不同进程在一个处理器中交替运行的功能

B.进程上下文切换过程中必须保存换下进程在切换处的程序计数器PC的值

C.进程上下文切换过程中必须将换下进程的代码和数据从主存保存到磁盘上

D.进程上下文指进程的代码、数据以及支持进程执行的所有运行环境

解析:  C、进程上下文切换仅是把正在处理器上执行的进程换下,让另一个进程占用处理器执行指令,因而没有必要把换下进程的代码和数据从主存保存到磁盘上,只要在栈中保存换下进程的上下文信息即可。

 

5以下关于IA-32/Linux进程虚拟地址空间的叙述中,错误的是( B  )。

A.用户空间的动态区由栈和堆组成,栈从高地址向低地址生长而堆则相反

B.用户空间的静态区由代码段和数据段组成,数据段由读写数据和只读数据组成

C.分为内核空间和用户空间两大块,各占高地址1GB和低地址3GB空间

D.用户空间从0x8048000开始,由高地址的动态区和低地址的静态区组成

解析:  B、用户空间的静态区由只读代码段和可读可写数据段组成,只读代码段由代码区和只读数据区组成,可读可写数据段由已经初始化的数据区和没有进行初始化的数据区组成。

6以下关于IA-32/Linux进程内核空间的叙述中,错误的是( A )。

A.包含所有进程可以动态链接的共享库映射区

B.包含进程标识信息和控制信息,如进程标识符、页表等

C.包含内核程序的代码及其所用的数据信息

D.包含进程现场信息,如寄存器(硬件)上下文等

解析:  A、动态链接的共享库映射区不属于内核信息,因而存储在用户空间,通常位于栈和堆之间。

7以下关于内核态和用户态的叙述中,错误的是( D )。

A.用户态也称目标程序状态,用户态下只能执行用户进程

B.IA-32系统中,特权级别由代码段寄存器CS中的最后两位指定

C.只有在内核态才能执行内核程序代码,其中可包含特权指令

D.shell命令行解释程序实现程序的加载和运行,因而它运行在内核态

解析:  D、Shell命令行解释程序本身运行在用户态,它通过调用fork()、execve()等系统调用封装函数实现程序的加载和运行,在执行这些系统调用函数的过程中,会通过int 0x80指令陷入内核,从而在内核态由内核代码实现相应的子进程创建、程序加载等工作。

8以下是关于Linux系统中shell命令行解释器如何进行程序加载和运行的叙述,其中错误的是( C )。

A. shell命令行解释器根据输入的命令行信息获得程序名及参数和环境变量

B.调用execve()函数前shell命令行解释器先调用fork()函数创建一个子进程

C.加载器会把可执行目标文件从磁盘读到内存中,然后从第一条指令开始执行

D.shell命令行解释器可以通过调用execve()函数来启动加载器进行程序加载

解析:  C、加载器只会根据可执行文件的程序头表等信息建立新加载进程的一些初始数据结构,如对页表信息进行初始化等,而不会从磁盘中把可执行文件中的代码和数据读到内存。只有在发生缺页(page fault)异常时才会把代码和数据从磁盘读到内存。

第二周

1以下关于异常/中断机制与进程上下文切换机制比较的叙述中,错误的是(  B )。

A.响应异常/中断请求后,CPU执行的是内核程序的代码

B.进程上下文切换和异常/中断响应处理都通过执行内核程序实现

C.进程上下文切换和异常/中断响应两者都会产生异常控制流

D.进程上下文切换后,CPU执行的是另一个进程的代码

解析:  B、进程上下文切换由操作系统内核程序实现,而异常/中断响应的过程则由CPU这个硬件完成的,而不是由内核程序实现的。

2以下选项中,不属于“故障”类的异常是( D  )。

A.非法指令操作码

B.缺页

C.整除时除数为0

D.断点设置

解析:  D、断点设置指令是一种事先设定好的“陷阱”指令,不属于“故障”类异常。

3故障类异常分为可修复的和不可修复的两类,以下“故障”类异常中,可以修复的异常是(  A )。

A.TLB缺失

B.整数运算溢出

C.存储访问越权

D.存储访问违例      

4以下关于“陷阱”类异常的叙述中,错误的是(  D )。

  1. 单步跟踪状态下,每一条执行的指令都是陷阱指令

B.通常通过陷阱指令或设置单步跟踪状态来触发异常

C.是一种事先安排好的或以某种条件触发的“事件”

D.INTO是一条陷阱指令,一旦执行该指令则陷入内核态执行

解析:  D、执行到INTO指令时,CPU将检测OF是否为1。若OF为1,则说明当前发生了溢出,需要陷入内核进行溢出处理。在IA-32架构中,若没有INTO指令,即使发生溢出也不会处理溢出异常。

5以下关于异常/中断响应的叙述中,错误的是(  D )。

A.中断请求检测由CPU在每条指令执行结束、取下条指令之前进行

B.CPU在中断响应过程中会保存断点和程序状态、关中断并转中断服务程序执行

C.异常事件检测由CPU在执行每一条指令的过程中进行

D.CPU检测到异常事件后所做的处理和检测到中断请求后所做的处理完全一样

 

解析:  D、异常事件是CPU执行指令过程中发生的与当前执行指令有关的意外事件,而中断请求则是CPU外部的I/O部件或时钟等向CPU发出的与当前执行指令无关的意外事件。CPU对于异常和中断的响应处理在大的方面基本一致,都需要保存断点和程序状态并转到相应的处理程序去执行。但有些细节并不一样,例如,在检测到中断请求后,CPU必须通过“中断回答”信号启动中断控制器进行中断查询,以确定当前发出的优先级最高的中断请求类型,并通过数据线获取相应的中断类型号。而对于内部异常,CPU则无需进行中断回答。

 

6断点是指异常处理或中断服务结束后返回到被中断原程序继续执行的指令处的地址。以下关于断点的叙述中,错误的是( A )。

A.外部中断请求事件的断点总是当前刚刚执行完的指令的地址

 

 

B.“陷阱”类异常的断点为陷阱指令下一条指令的地址

C.“故障”类异常的断点为当前发生异常的指令的地址

D.“终止”类异常的断点可以是当前指令或下条指令的地址

解析:  A、外部中断请求信号的检测总是在一条指令执行完、取下条指令之前,因此,如果检测到有外部中断请求,那么响应中断请求并转到中断服务程序执行后,应该返回到原来被中断的程序中已经完成执行的指令的下条指令执行,而不是返回到刚刚执行完的指令执行。

 

7以下关于向量中断方式的叙述中,错误的是( D )。

A.每个异常和中断都被设定一个中断类型号,中断向量存放的位置与对应的中断类型号相关

B.与程序查询中断方式相比,向量中断方式可以在更短的时间内转到对应的中断服务程序执行

C.异常处理程序和中断服务程序的首地址称为中断向量,按序存放在一个中断向量表中

D.使用一个统一的查询程序按响应优先级查询异常和中断,并转具体处理程序执行

8以下关于外部中断的叙述中,错误的是( C )。

A.中断事件主要来源于外部设备或时钟

B.分为可屏蔽中断和不可屏蔽中断两类

C.可屏蔽中断比不可屏蔽中断优先级高

D.中断事件与当前正在执行的指令无关

 

 

 

第三周

1以下关于x86实地址模式下异常/中断机制的叙述中,错误的是( C )。

A.中断向量表固定在0~3FFH的内存区域

B.中断向量地址为中断类型号乘以4

C.中断服务程序首地址占8个字节

D.采用向量中断方式识别中断源

解析:  C、实地址模式下,每个中断向量占4个字节,由16位段地址和16位段内偏移量组成,通过对段地址左移4位然后加上段内偏移量,以得到20位的中断服务程序首地址。

 

2以下关于x86系统启动过程的叙述中,错误的是( A )。

A.进入保护模式后中断向量表中被填入新的中断向量

B.与输入/输出相关的操作通过执行int指令由中断服务程序实现

C.BIOS程序在主存中设置中断向量表

D.开机后系统首先在实地址模式下工作

解析:  A、系统启动结束时进入保护模式,此时,不再使用主存0~3FFH区域内的中断向量表,而是通过专门的中断描述符表来获得中断服务程序或异常处理程序的入口地址。

 

3以下关于IA-32的异常/中断机制的叙述中,错误的是(  A )。

A.中断向量表和中断描述符表中都有256个表项,每个表项都占8个字节

B.在实地址模式下使用中断向量表保存异常处理程序和中断服务程序的首地址

C.在保护模式下通过中断描述符表获取异常处理程序和中断服务程序的首地址

D.最多可以有256种异常和中断类型,每种类型有一个中断号i(0≤i≤255)

解析:  A、实地址模式下,每个中断向量表的表项占4个字节,由16位段地址和16位段内偏移量组成。

4以下选项中,不属于中断描述符表中表项内容的是(  C )。

A.陷阱门描述符

B.任务门描述符

C.调用门描述符

D.中断门描述符

5以下关于IA-32的中断门描述符的叙述中,错误的是( C  )。

A.包含对应中断服务程序首地址(段选择符和偏移地址)

B.每个中断门描述符占64位,与一个中断类型号对应

C.包含存在位(字段P),用于表示对应中断类型是否存在

D.包含DPL字段,用于表示访问本段时的CPL所要求的最低特权级

解析:  C、存在位P用于表示对应段(即异常处理程序或中断服务程序所在的段,通常就是指内核代码段)是否存在,而不是表示对应中断类型是否存在。

6以下给出的IA-32指令中,不属于陷阱指令的是( D  )。

A.int 3

B.int $0x80

C.sysenter

D.iret

解析:  D、陷阱指令是指在用户程序中事先设定好的、能引起从用户态“陷入”到内核态的一种指令,而iret指令是在异常处理程序或中断服务程序中的最后一条指令,用于结束异常处理或中断服务过程并返回到原断点继续执行。

7以下关于IA-32保护模式下异常和中断响应过程的叙述中,错误的是( D  )。

A.处理器根据中断类型号i访问IDTi,再根据IDTi中段选择符访问指定段描述符

B.处理器在检测到异常事件或中断请求后,获得中断类型号并进入响应阶段

 

C.处理器获取内核栈栈顶指针送SS/ESP,并在内核栈保存SS/ESP、EFLAGS、CS/EIP

D.异常和中断响应处理结束前CPU将对应IDTi中的段选择符送SS,偏移地址送ESP

解析:  D、异常和中断响应处理结束前,CPU将对应IDTi中的段选择符送CS,偏移地址送EIP,以便跳转到中断服务程序或异常处理程序执行。

 

8以下关于IA-32保护模式下iret指令执行过程的叙述中,错误的是(  A )。

A.会从内核栈中弹出异常/中断响应时保存的用户栈指针SS/ESP

B.会检查异常/中断响应前、后系统是否处于同一个特权级

C.会从内核栈中弹出异常/中断响应时保存的CS/EIP和EFLAGS

D.执行iret指令后使得CPU回到异常/中断处理之前的断点执行

解析:  A、如果检查出异常/中断响应前、后系统处于同一个特权级(也即异常/中断是在内核程序执行时发生的),则不需要从内核栈中弹出用户栈指针SS/ESP,因为,在这种情况下,异常/中断响应时并没有在内核栈中保存用户栈栈顶指针。

 

第四周

1以下关于IA-32/Linux异常/中断处理的叙述中,错误的是(  B )。

A.中断服务程序和异常处理程序属于Linux内核部分

B.Linux完全按照IA-32的门描述符类型构造了三种门描述符

C.IA-32硬件负责对异常事件和中断请求进行检测和响应

D.在系统启动过程中由Linux负责对IDT的初始化

解析:  B、IA-32规定IDT的每个表项可以是三种门描述符中的一种:中断门(TYPE=1110B)、陷阱门(TYPE=1111B)和任务门(TYPE=0101B)。而Linux通过对TYPE和DPL的组合构造了5种门描述符:中断门、系统门、系统中断门、陷阱门和任务门。

2根据Linux对IDT中每种门描述符的初始化构建,以下指令中,不能在用户态执行的是( C  )。

A.into

B.int 3

C.int 20

D.int $0x80

解析:  C、Linux通过对TYPE和DPL的组合构造了5种门描述符:中断门、系统门(DPL=3,TYPE=1111B)、系统中断门(DPL=3,TYPE=1110B)、陷阱门(DPL=0,TYPE=1111B)和任务门。类型4(into)和128(int $0x80)初始化为系统门,类型3(int 3)初始化为系统中断门,这两种门描述符的DPL都为3。所有未定义的类型(如20~31)都属于陷阱门,即DPL为0。

在异常/中断响应过程中,对于编程异常(由INT n等陷阱指令引起的异常),若IDT中的DPL<CPL,则产生13号异常。into、int $0x80和int 3三条指令执行时,DPL=CPL=3,故可在用户态执行;若在用户态执行INT n (n=20~31)指令,则DPL<CPL,产生13号异常,因此不能在用户态执行。

3以下关于IA-32/Linux异常/中断处理的叙述中,错误的是( C  )。

A.Linux需要针对IA-32的256个中断设置IDT对应表项的内容,即进行IDT的初始化

B.Linux中对中断的处理不采用发送信号给用户进程的方式,而是对相应中断进行具体处理

C.Linux中异常处理的C函数名由do_前缀和处理程序名组成,与相应信号处理程序名相同

D.Linux对大多数异常的处理方式是发送相应信号给用户进程以尽快结束异常处理过程

解析:  C、在Linux系统中,信号处理程序名和异常处理程序名不相同,例如,对于0号“除法错”异常和16号“浮点错误”异常,它们的信号名都为SIGFPE,因而相应的信号处理程序名相同,但是,它们默认的异常处理程序名各为divide_error()和coprocessor_error()。

4以下关于IA-32/Linux对14号页故障(page fault)处理的叙述中,错误的是(  D )。

A.若发生访问越权(例如对只读代码区进行写),则发送SIGSEGV信号

B.若发生访问越界(例如访问无信息的空洞页面),则发送SIGSEGV信号

C.若发生访问越级(用户进程访问了内核空间),则发送SIGSEGV信号

D.若发生所需页面不在主存(页表中存在位为0),则发送SIGSEGV信号

解析:  D、若异常不能修复,则发送相应信号给发生异常的进程;若异常可以修复,则进行故障修复后回到发生异常的指令继续执行。显然,所需页面不在主存的情况是可以修复的,因而不会发送SIGSEGV信号。

5以下关于IA-32/Linux异常处理程序的叙述中,错误的是( B  )。

A.准备阶段会在内核栈中保存通用寄存器的内容

B.准备阶段会在内核栈中保存EFLAGS的内容

C.最后一条指令为iret,用于完成异常处理的返回工作

D.处理阶段执行的C函数名的形式为“do_处理程序名”

解析:  B、EFLAGS寄存器是在异常/中断响应过程中保存在内核栈的,而不是在异常处理程序中被保存。

 

6IA-32/Linux系统中一次中断过程为(  C )。

A.中断源向PIC请求(IRQi)→ PIC中断查询 → CPU读取中断类型号并访问IDT获得中断服务程序入口地址 → PIC向CPU请求(INTR)→ CPU中断回答(INTA)→ Linux内核进行中断处理

B.中断源向PIC请求(IRQi)→ PIC向CPU请求(INTR)→ PIC中断查询 → CPU中断回答(INTA)→ CPU读取中断类型号并访问IDT获得中断服务程序入口地址 → Linux内核进行中断处理

C.中断源向PIC请求(IRQi)→ PIC向CPU请求(INTR)→ CPU中断回答(INTA)→ PIC中断查询 →CPU读取中断类型号并访问IDT获得中断服务程序入口地址 → Linux内核进行中断处理

D.中断源向PIC请求(IRQi)→ PIC中断查询 → PIC向CPU请求(INTR)→ CPU中断回答(INTA)→ CPU读取中断类型号并访问IDT获得中断服务程序入口地址 → Linux内核进行中断处理

 

7以下关于IA-32/Linux系统调用的叙述中,错误的是( A )。

A.系统调用是一种特殊的异常类型,IA-32中把它的中断类型号设定为128

B.所有系统调用有统一的入口,即系统调用处理程序system_call第一条指令地址

C.执行陷阱指令过程中所完成的操作类似于异常/中断响应过程中完成的任务

D.系统调用使用陷阱指令实现,Linux系统中可执行int $0x80指令进行系统调用

解析:  A、系统调用使用陷阱指令实现,因而是一种特殊的异常类型。Linux系统中可执行int $0x80指令进行系统调用,因此,系统调用对应的中断类型号为0x80=128,不过,这是Linux操作系统设定的,而不是由IA-32设定的。例如,Windows操作系统中通过执行int $0x2e指令发出系统调用,因此对应的中断类型号为0x2e=46。

 

8以下是关于IA-32/Linux中call指令和int $0x80指令比较的叙述,其中错误的是( A )。

A.call指令和int $0x80指令执行前,都会由mov指令将参数值传送到栈中保存

B.call指令和int $0x80指令执行过程中,都会将下一条指令的地址保存在栈中

C.call指令为同一特权级过程调用,而int $0x80指令实现对内核服务例程的调用

D.call指令和int $0x80指令都有对应返回指令,前者是ret指令,后者是iret指令

解析:  A、int $0x80指令执行前,参数由mov指令送到对应的寄存器中,例如,调用号送到EAX,其他参数从左到右依次在EBX、ECX、EDX、ESI、EDI和EBP中,而call指令前传递的参数是送到栈中保存的。

 

 

第五周

1与计算机系统一样,I/O子系统也采用层次结构,从最上层提出I/O请求的应用程序到最下层的I/O硬件之间的顺序是( A )。

A.应用程序→与设备无关的I/O软件→设备驱动程序→中断服务程序→I/O硬件

B.应用程序→设备驱动程序→中断服务程序→与设备无关的I/O软件→I/O硬件

C.应用程序→中断服务程序→与设备无关的I/O软件→设备驱动程序→I/O硬件

D.应用程序→与设备无关的I/O软件→中断服务程序→设备驱动程序→I/O硬件

 

2操作系统在I/O子系统中承担极其重要的作用,这主要是由于I/O子系统的三个特性决定的。以下选项中,不属于I/O子系统特性的是( B )。

A.复杂性:I/O设备控制复杂,应由专门程序来控制I/O设备,从而对应用程序员屏蔽细节

B.独占性:应用程序在运行期间只能独占使用某个I/O设备,OS应保证I/O设备被独占使用

C.异步性:I/O设备速度较慢,CPU等待I/O期间需由专门的程序调度其他进程使用CPU

D.共享性:I/O资源被所有进程共享,需由专门的程序统一调度和管理I/O资源

 

3以下选项给出的程序中,不在内核态运行的是( B )。

A.系统调用服务例程

B.命令行解释程序

C.设备驱动程序

D.中断服务程序

 

4以下选项给出了几个在Linux系统的程序中使用的函数,其中在内核态运行的是( B )。

A.fread()

B.sys_read()

C._fillbuf()

D.read()

解析:  B、在给出的几个函数中,fread()是C语言标准库函数,在用户编写的C语言程序中使用,因而不是在内核态运行的函数。read()函数是对read系统调用进行封装的函数,其中包含若干条用于传递系统调用参数的mov指令和int $0x80指令等,该函数在用户态执行,当执行到int $0x80指令时从用户态陷入内核态。sys_read()函数是read系统调用服务例程,是内核中专门用于进行read系统调用处理的函数,因而是在内核态执行的函数。_fillbuf是实现C语言标准库函数或宏定义时所调用的基本函数,用于从文件中读入一块数据到缓冲中,因而也是在用户态执行的函数。

 

5假定有一个事务处理系统A,其处理器的速度为每秒钟执行5千万条指令,每个事务需要5次I/O操作,每次I/O操作需要10 000条指令。如果系统A每秒钟最多发出1000次I/O操作。则它每秒钟处理的事务数最多能达到(  B )个。(忽略延迟并假定事务可以不受限制地并行处理)

A.10000

B.200

C.2000

D.1000

解析:  B、从系统A的能力来看,它每秒钟能够处理的事务数为50 000 000/(10 000×5)=1000。但是,因为系统A每秒钟最多发出1000次I/O操作,因而每秒钟所包含的事务数最多仅有1000/5=200个。

6以下关于文件基本概念的叙述中,错误的是(  B )。

A.根据可读性分,普通文件分成ASCII码文件和二进制文件

B.C标准I/O库函数参数中直接用文件描述符fd标识表示某文件

C.有三种标准输入/输出文件,它们都属于ASCII码文本文件

D.Linux系统级I/O函数的参数中用一个非负整数表示某文件

解析:  B、C标准I/O库函数的参数中出现的文件是用一个指向文件流缓冲区FILE结构的指针fp标识的。FILE中封装了文件描述符fd,因此,在C标准I/O库函数的参数中并不能直接用fd表示某文件。

 

7以下是关于C语言头文件stdio.h中FILE结构的叙述,其中错误的是( B  )。

A. FILE描述的文件为流式文件,以字节为单位,通过指针进行读写

B.同一个FILE缓冲区中可能同时缓存了两个不同文件中的信息

C.FILE结构描述的是某文件在内存的一个输入或输出缓冲区

D.通常FILE缓冲区通过malloc()申请空间,首地址被记录在FILE结构中

解析:  B、FILE中封装了文件描述符fd,每个FILE缓冲区只能缓存指定文件fd中的信息。

8以下关于I/O操作函数的叙述中,错误的是( D  )。

A.Linux系统和Windows系统会提供不同的系统级I/O函数或API函数

B.带输出缓冲区的设备文件当缓冲区已满或遇到/n时将缓冲区信息写到文件

C.使用C标准I/O库函数的程序通用性好,可以在不同系统平台上执行

D.Linux系统级I/O函数实现了对C标准库函数的封装,对应一个或多个系统调用

解析:  D、应该是反过来,C标准I/O库函数封装了Linux系统级I/O函数。C标准I/O库函数中用指向FILE结构类型的指针表示文件,而FILE结构封装了I/O系统级函数中所用的文件描述符fd。系统级I/O函数通过对若干条指令的封装实现相应的系统调用,其中有一条int $0x80指令,实现从用户态陷入内核态的功能。

 

第六周

1系统总线中控制线的主要功能是(  A )。

A.提供定时信号、操作命令和各种请求/回答信号等

B.提供数据信息

C.提供主存和I/O模块的回答信号

D.提供时序信号

 

2以下有关总线的叙述中,错误的是(  B )。

A.通常在总线和总线之间用桥接器连接

B.总线在一个时钟周期内只能传送一次数据

C.处理器总线和存储器总线都比I/O总线快

D.通常越靠近CPU的总线传输速率越高

 

3主机和外设之间的正确连接通路是( B )。

A.CPU和主存 ─ I/O接口(外设控制器) ─ I/O总线 ─ 通信总线(电缆) ─ 外设

B.CPU和主存 ─ I/O总线 ─ I/O接口(外设控制器) ─ 通信总线(电缆) ─ 外设

C.CPU和主存 ─ I/O总线 ─ 通信总线(电缆) ─ I/O接口(外设控制器) ─ 外设

D.CPU和主存 ─ I/O接口(外设控制器) ─ 通信总线(电缆) ─ I/O总线 ─ 外设

 

4采用中断方式进行打印控制时,在打印机控制接口(打印适配器)和打印机之间交换的信息不包括 (  A  )。

A.中断请求信号

B.打印机状态信息

C.打印机控制信息

D.打印字符点阵信息

解析:  A、中断请求信号是打印机控制接口通过中断控制器(PIC)发送给CPU的,所以,不在打印机控制接口和打印机之间进行交换。

5以下有关I/O接口功能和结构的叙述中,错误的是( D   )。

A.CPU可以从I/O接口取状态信息,以了解接口和外设的状态

B.CPU可以向I/O接口传送用来对设备进行控制的命令

C.I/O接口就是像显卡或网卡之类的一种外设控制逻辑

D.I/O接口中主机侧数据宽度与设备侧数据宽度总是一样

解析:  D、I/O接口中主机侧通过I/O总线与主机相连,设备侧通过通信总线(电缆)与外设相连,显然,I/O总线中的数据线宽度和连接设备的电缆中的数据线宽度不一定相同。

 

6以下有关I/O端口的叙述中,错误的是(  A  )。

A.I/O接口中命令端口和状态端口不能共用同一个

B.I/O接口中有命令端口、状态端口和数据端口

C.I/O端口可以和主存统一编号,也可以单独编号

D.I/O接口中程序可访问的寄存器称为I/O端口

解析:  A、因为CPU对I/O接口中的命令端口总是写操作,对状态端口总是读操作,一个读一个写不会发生冲突。因此,命令端口和状态端口可以共用同一个,当然,也可以有独立的命令端口和独立的状态端口。

7以下给出的部件中,不包含在外设控制接口电路中的是(  D  )。

A.数据缓存器

B.命令(控制)寄存器

C.状态寄存器

D.标志寄存器

8以下有关统一编址方式的描述中,错误的是 (  C  )。

A.可利用主存的存储保护措施对I/O端口进行存储保护

B.I/O端口地址和主存地址一定不重号

C.根据指令类型可区分访问主存还是访问I/O端口

D.CPU通过执行访存指令来访问I/O端口

解析:  A、可以把I/O端口的空间看成是主存空间的一部分,因此可利用存储保护措施对I/O端口进行存储保护。  B、为C,解释如下:

选项A:统一编址方式中,I/O端口地址和主存单元地址统一编址。它们各自分配在不同的地址范围内,因此,I/O端口地址和主存单元地址一定不重号。  C、因为CPU使用统一的访存指令进行访问,因此无法通过指令类型区分访问的是内存单元还是I/O端口。  D、统一编址方式中,CPU通过访存指令来访问I/O端口,只要根据给出的地址是在主存地址范围内还是I/O地址范围内,就可区分访问的是主存单元还是I/O端口。

 

第七周

 

1以下是有关程序直接控制(查询)I/O方式的叙述:

① 无条件传送接口中不记录状态,无需状态查询,可直接定时访问

② 条件传送接口中有“就绪”、“完成”等状态,可定时查询或独占查询

③ 通过CPU执行相应的无条件传送程序或查询程序来完成数据传送

④ 适合于巡回检测采样系统或过程控制系统,以及非随机启动的字符型设备

以上叙述中,正确的有(  B )。

A.仅①和③和④

B.全部

C.仅①和②

D.仅①和②和③

 

2下列选项中, 不属于外部中断的事件是(  A  )。

A.无效操作码

B.键盘缓冲满

C.打印机缺纸

D.采样定时到

解析:  A、无效操作码是由CPU在对某条指令译码的时候发现的,因而是内部异常,而不是外部中断。定时采样中的定时时间到、打印机缺纸、键盘缓冲慢都是与任何指令的执行无关的、由CPU外部的中断源发出的外部中断请求事件。

3下列选项中,能引起外部中断请求的事件是( C   )。

A.一次中断处理结束

B.一条指令执行结束

C.一次DMA 操作结束

D.一次总线传输结束

解析:  C、外部中断请求事件通常是由于外部设备完成I/O任务或遇到像打印机缺纸之类的异常情况需要CPU进行处理时向CPU发出的一种请求信号,CPU在每条指令执行结束时会检测这个请求信号。显然,一条指令执行结束、一次总线传输结束和一次中断处理结束都不可能引起外部请求事件,而DMA操作结束时需要CPU进行数据校验等处理,因而会引起外部中断请求事件。

4以下( A  )情况出现时,会引起CPU自动查询有无中断请求,进而可能进入中断响应周期。

A.一条指令执行结束

B.一次 I/O 操作结束

C.一次DMA 操作结束

D.一次中断处理结束

解析:  A、CPU在每条指令执行结束时会检测中断请求信号,若该信号有效时,则CPU进入中断响应周期。

5以下操作中,不是通过执行指令而是由硬件完成的是( B   )。

A.从I/O接口取数

B.保护断点

C.设置中断屏蔽字

D.保护现场

解析:  A、从I/O接口中的数据缓冲寄存器取数或向其中写入数据,是在中断服务程序中用输入或输出指令实现的。  B、护断点的工作只能在中断响应期间由硬件(CPU)完成,否则,一旦进入到中断服务程序执行,则断点(PC的值)就会因为执行指令而改变,导致断点被破坏。  C、设置中断屏蔽字的工作在中断服务程序中用指令实现,用输出指令(如IA-32中的OUT指令)直接将屏蔽字输出到中断屏蔽寄存器。  D、现场信息是指通用寄存器的内容,通用寄存器组包含有几个或几十个寄存器,保存这些寄存器的内容涉及到多次访问存储器,不适合在中断响应过程中完成,否则会大大延长中断响应过程。通常的做法是在中断服务程序中用压栈指令来保护现场。

6设置中断屏蔽字可以动态地改变(  D  )优先级。

A.中断查询

B.中断响应

C.中断返回

D.中断处理

解析:  A、不存在中断查询优先级的概念。中断查询过程是在CPU检测到中断请求信号(INTR)后向中断控制器发出“中断回答”信息所启动的。  B、一旦启动中断查询,则中断控制器中的判优电路就会把所有未被屏蔽的中断请求源进行并行判优,选择优先级最高的中断源类型号送给CPU予以响应,这里的优先级指中断响应优先级,即表示被CPU优先响应的顺序。  C、不存在中断返回优先级的概念。中断返回是指中断服务程序执行结束后返回到被中断程序执行的过程,这个过程是通过执行中断服务程序的最后一条指令(例如,IA-32中的IRET指令)来实现的。  D、中断处理优先级反映的是正在处理的中断是否比新发生的中断的处理优先级低(即:屏蔽位为“0”,对新中断开放),如果是的话,就中止正在处理的中断,转到新中断服务程序去执行,处理完后回到原被中止的中断服务程序继续执行。中断处理优先级可以由中断屏蔽字来动态改变。

7以下是有关对DMA方式的叙述:

①  DMA控制器向CPU请求的是总线使用权

②  DMA方式可用于键盘和鼠标器的数据输入

③  DMA方式下整个I/O过程完全不需要CPU介入

④  DMA方式需要用中断处理进行辅助操作

 以上叙述中,错误的是(  B )。

A.仅③和④

B.仅②和③

C.仅①和②

D.仅②和④

解析:  B、叙述①显然是正确的。DMA控制器向CPU提出DMA请求,是希望CPU让出总线控制权,由DMA控制器控制总线,完成外设和主存之间的数据传送。

叙述②显然是错误的。DMA方式适合用于进行块传送的高速设备。

叙述③是错误的。DMA方式下,在DMA控制器进行具体的数据传送之前,需要CPU执行初始化程序,来对DMA控制器进行初始化处理,包括设置传送数据个数、内存起始地址等参数。

叙述④是正确的。DMA方式下,当DMA控制器完成具体的数据传送之后,会向CPU发送“DMA结束”中断请求,CPU执行相应的中断服务程序,进行数据校验等后处理工作。

 

8以下关于I/O子系统的描述中,错误的是( B  )。

A.I/O子系统包含I/O软件和I/O硬件两大部分

B.直接控制I/O硬件的是设备驱动程序,而不是中断服务程序

C.内核空间I/O软件包含设备无关软件、设备驱动程序和中断服务程序

D.I/O软件包含用户空间I/O软件部分和内核空间I/O软件部分

 

解析:  B、中断服务程序需要完成CPU与I/O接口之间的数据交换,因而要能够通过发送控制命令字来启动外设,也即中断服务程序能够直接控制I/O硬件。驱动程序和中断服务程序都属于和设备相关的I/O软件部分。

更多推荐

mooc计算机系统基础(三)测验答案及部分解析

本文发布于:2023-07-28 18:12:12,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1271362.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:测验   计算机系统   答案   基础   mooc

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!