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

目录

第一周

第二周

第三周

第四周

第五周

第六周

第七周


第一周

1机器主频的倒数(一个节拍)等于(  C )。

A.指令周期

B.机器周期

C.时钟周期

D.存储周期

解析:  C、时钟周期是CPU工作的最小时间单位,也称节拍脉冲或T周期,其值等于机器主频的倒数。

指令周期是指读取一条指令并完成执行所用的时间,不同指令的指令周期可能不同。

早期的计算机有机器周期的概念,特指一个指令周期中的不同阶段操作所用时间,例如,取指令、译码、取操作数、执行、送结果等不同阶段分别在一个特定的机器周期内完成。取指令、取操作数和写结果都可能会访问主存,所以这些阶段被称为存储器读或存储器写机器周期。

存储周期是主存的一个指标,指主存进行连续两次独立的读或写操作所需的最小时间间隔。

2CPU中控制器的功能是( C  )。

A.控制从主存取出一条指令

B.完成指令操作码译码

C.完成指令译码,并产生操作控制信号

D.产生时序信号

3冯·诺依曼计算机中指令和数据均以二进制形式存放在存储器中,CPU依据(  B )来区分它们。

A.指令和数据的寻址方式不同

B.指令和数据的访问时点不同

C.指令和数据的地址形式不同

D.指令和数据的表示形式不同

解析:  B、指令和数据均以二进制形式存放在存储器中,因而表示形式相同。

指令的寻址很简单,总是根据PC内容访问存储器,而数据的寻址则比较复杂,有立即、寄存器直接、变址、基址寻址等多种寻址方式。不过,CPU并不能根据寻址方式来区分访问的是数据还是指令。

指令周期中的第一个阶段总是取指令阶段,因而CPU根据是否是取指令阶段来区分取到的是指令还是数据。若是指令,则取出后存放在指令寄存器(IR)中。

指令和数据的地址都是二进制形式,因而地址形式相同。

4下列寄存器中,用户可见的(即:机器级代码程序员能感觉其存在的)寄存器是( D )。

A.存储器数据寄存器(MDR)

B.存储器地址寄存器(MAR)

C.指令寄存器(IR)

D.程序计数器(PC)

解析:  D、用汇编语言这种机器级语言编写程序的程序员,需要在转移指令中考虑采用什么方式改变PC的值,因而他/她能感觉到PC的存在。而MAR、MDR和IR都是执行指令过程中用到的CPU内部寄存器,汇编程序员在编写程序时不能感觉到有这些寄存器的存在。

5下面是有关CPU中部分部件的描述,其中错误的是( D  )。

A.PC称为程序计数器,用于存放将要执行的指令的地址

B.通过将 PC按当前指令长度增量,可实现指令的按序执行

C.ALU称为算术逻辑部件,用于进行加、减运算和逻辑运算

D.IR称为指令寄存器,用来存放当前指令的操作码

解析:  D、IR中存放的是整个指令,而不仅仅是指令操作码。

6

执行完当前指令后,PC中存放的是后继指令的地址,因此PC的位数和(  B )的位数相同。

A.指令译码器(ID)

B.主存地址寄存器(MAR)

C.指令寄存器(IR)

D.程序状态字寄存器(PSWR)

解析:  B、PC中存放的是将要读取的指令的主存地址,因而和主存地址寄存器MAR的位数相同。

7通常情况下,下列部件(  B )不包含在CPU芯片中。

A.标志(状态)寄存器

B.动态随机访问存储器(DRAM)

C.通用寄存器组

D.控制器

解析:  B、CPU中的标志(状态)寄存器用于存放ALU运算得到的各种标志信息等。控制器用于对指令译码产生控制信号。通用寄存器组(General Purpose Registers,GPRs)用于暂存ALU运算所用的操作数或运算结果。通常DRAM用作主存,若干DRAM芯片排列在内存条上,因而不可能在CPU芯片内。

8下列有关程序计数器PC的叙述中,错误的是(  D  )。

A.无条件转移指令执行后,PC的值一定是转移目标地址

B.每条指令执行后,PC的值都会被改变

C.调用指令执行后,PC的值一定是被调用过程的入口地址

D.指令顺序执行时,PC的值总是自动加1

解析:  D、每条指令执行后,PC的值都会被改变,否则会永远执行某一条指令。顺序执行时,PC的值总是自动加上当前指令的长度,而不是1。

9CPU取出一条指令并完成执行所用的时间称为( A   )。

A.指令周期

B.机器周期

C.时钟周期

D.CPU周期

10下列有关指令周期的叙述中,错误的是( D  )。

A.任何指令的指令周期中至少有一个存储器访问阶段

B.指令周期的第一个阶段一定是取指令阶段

C.一个指令周期由若干个机器周期或时钟周期组成

D.乘法指令和加法指令的指令周期总是一样长

解析:  A、任何指令周期的第一个阶段都是取指令阶段,需要访问存储器。  D、乘法指令通过执行若干次加减操作和移位操作来完成,因而,乘法指令的指令周期通常比加法指令的指令周期更长,即乘法指令的CPI比加法指令的CPI更大。

第二周

1下列几种存储器中,( C )是易失性存储器。

A.CD-ROM

B.EPROM

C.cache

D.Flash Memory

2下面有关半导体存储器组织的叙述中,错误的是( A  )。

A.同一个存储器中,每个存储单元的宽度可以不同

B.存储器的核心部分是存储阵列,由若干存储单元构成

C.每个存储单元有一个编号,就是存储单元的地址

D.存储单元由若干个存放0或1的记忆单元(cell)构成

解析:  A、现代计算机的主存储器由半导体存储器构成,其中存放信息的地方称为存储阵列;每个存储阵列包含若干个存储单元,每个存储单元由若干个记忆单元(cell)构成,每个记忆单元存放一位信息(0或1)。

某一台计算机的主存储器编址方式,总是由其对应的指令集体系结构(ISA)确定的;现代通用计算机大多采用按字节编址方式,即主存储器中每个字节有一个地址,也即每个存储单元的宽度都是8位。

3若某个内存条容量为1GB,则说明该内存条中可存储(  B )个字节。

A.10^30

B.2^30

C.10^9

D.2^9

4某32位计算机,主存地址为32位,按字节编址,则该计算机的主存地址范围是( A )。

A. 0~(4G-1)    

B.1~32G

C.0~(32G-1)

D.1~4G

解析:  A、因为主存地址为32位,所以主存地址空间占2^32=4G个存储单元;因为按字节编址,因此,主存最大可存储的信息量为4GB=32Gbits。主存储器总是从0开始编号,因此存储单元的地址为0、1、2、……、2^32-1=4G-1。这里,4G-1=2^32-1=1 0000 0000 0000 0000 0000 0000 0000 0000 -1 = 1111 1111 1111 1111 1111 1111 1111 1111 = FFFF FFFFH。

5假定主存地址空间大小为1024MB,按字节编址,每次读写操作最多可以一次存取32位。不考虑其它因素,则存储器地址寄存器MAR和存储器数据寄存器MDR的位数至少应分别为(  C )。

A.28,8

B.30,8

C.30,32

D.28,32

解析:  C、因为1024M=2^30,所以MAR至少为30位。

6采用行、列地址引脚复用的半导体存储器芯片是(  A   )。

A.DRAM

B.EPROM

C.SRAM

D. Flash Memory

7下面有关ROM和RAM的叙述中,错误的是( B  )。

A.RAM是可读可写存储器,ROM是只读存储器

B.计算机系统的主存都用DRAM芯片实现

C.ROM和RAM都采用随机访问方式进行读写

D.计算机系统的主存由RAM和ROM组成

8下面有关半导体存储器的叙述中,错误的是(  D )。

A. DRAM是半导体动态随机访问存储器,可用作主存

B.ROM芯片属于半导体随机存储器芯片

C.SRAM是半导体静态随机访问存储器,可用作cache

D.半导体存储器都采用随机存取方式进行读写

解析:  D、有些情况下,可用半导体存储器实现相联存储器,即按内容进行访问,而不是按地址进行随机读写。

9存储容量为16K×4位的DRAM芯片,其地址引脚和数据引脚数各是(  D )。

A.14和1

B.14和4

C.7和1

D.7和4

解析:  D、因为DRAM芯片存储容量为16K×4位,故该芯片共有16K=2^14个存储单元,应该有14位地址,行、列地址引脚复用后,芯片的地址引脚数为7。每个存储单元占4位,因此芯片的数据引脚数为4。

10假定用若干个16K×8位的存储器芯片组成一个64K×8位的存储器,芯片各单元交叉编址,则地址BFFFH所在的芯片的最小地址为( D  )。

A.0000H

B.0001H

C.0002H

D.0003H

解析:  D、用若干个16K×8位的存储器芯片构成64K×8位的存储器,需要64K×8位/(16K×8位)= 4个芯片。因为采用交叉编址方式,所以,存储单元地址对4取模后,低两位相同的存储单元在同一个芯片中。BFFFH的最低两位为11,显然,与0003H在同一个芯片中。

第三周

1以下有关磁盘存储器信息存储原理的叙述中,错误的是(  D  )。

A.磁盘片的两个面都可存储信息

B.每个磁化状态对应一位二进制信息

C.信息在磁盘表面以磁化状态形式存储

D.共有三种不同的磁化状态

2以下有关磁盘存储器结构的叙述中,错误的是(  C  )。

A.由存储介质、磁盘控制器和磁盘驱动器组成

B.磁盘操作包括寻道、旋转等待和读写三个步骤

C.磁盘驱动器的位置介于CPU和磁盘控制器之间

D.磁盘的信息存储介质就是磁盘盘面

3以下有关硬磁盘的磁道和扇区的叙述中,错误的是(  C  )。

A.不同盘面上同一位置的多个磁道构成一个柱面

B.磁头和磁盘做相对运动而形成的轨迹即为磁道

C.一个磁道由若干扇区构成且磁盘各磁道信息位数总相同

D.每面有一个磁头,寻道过程中所有磁头同时移动

解析:  C、早期的低密度磁盘中每个磁道信息位数总是一样,但是,现在的磁盘,其外道信息量比内道大

4以下有关磁盘驱动器的叙述中,错误的是( D   )。

A.能控制磁盘片转过指定的扇区,并发回“扇区符合”信号

B.能控制磁头移动到指定磁道,并发回“寻道结束”信号

C.能对指定盘面的指定扇区进行数据的读或写操作

D.送到磁盘驱动器的盘地址由磁头号、盘面号和扇区号组成

解析:  D、因为每个盘面有一个磁头,所以磁头号就是盘面号。盘地址由柱面号(即磁道号)、盘面号(即磁头号)和扇区号组成。

5假定一个磁盘存储器有10个记录面,用于记录信息的柱面数为5000,每个磁道上记录信息位数相同,磁盘片外径200mm,内径40mm,最内道位密度为200bpm(位/毫米),则该磁盘存储器的容量约为(  D  )。

A.4.425GB

B.0.628GB

C.17.7GB

D.0.157GB

解析:  D、(10×5000×3.14×40×200)/8 B = 0.157GB。

6假定一个磁盘存储器有4个盘片,用于记录信息的柱面数为2000,每个磁道上有3000个扇区,每个扇区512B,则该磁盘存储器的容量约为(  C  )。

A.12GB

B.24MB

C.24GB

D.12MB

解析:  C、2×4×2000×3000×0.5KB≈24GB。

7假定一个磁盘的转速为7200RPM,磁盘的平均寻道时间为10ms,内部数据传输率为1MB/s,不考虑排队等待时间。那么读一个512字节扇区的平均时间大约为 (  A  )。

A.14.67 ms

B.14.17 ms

C.18.83 ms

D.18.33 ms

解析:  A、10ms + (1/7200×60×1000)/2 + 0.5KB/1MB×1000≈14.67。

8假定一个磁盘的转速为10000RPM,平均寻道时间为5.5ms,内部数据传输率为4MB/s,磁盘控制器开销为1ms,不考虑排队等待时间。那么读一个4KB扇区的平均时间大约为 (  B  )。

A.11.5ms

B.10.5 ms

C.13.5 ms

D.12.5 ms

解析:  B、1ms +5.5ms+ (1/10000×60×1000)/2 + 4KB/4MB×1000 = 10.5ms。

9以下有关磁盘存储器读写操作的叙述中,错误的是( D   )。

A.采用直接存储器存取(DMA)方式进行输入/输出

B.按批处理方式进行一个数据块的读写

C.最小读写单位可以是一个扇区

D.磁盘存储器可与CPU交换盘面上的存储信息

解析:  D、磁盘存储器以成批方式进行数据读写,CPU中没有那么多通用寄存器用于存放交换的数据,所以,磁盘存储器通常直接和主存交换信息

10磁盘存储器进行读写操作之前,CPU需要对磁盘控制器或DMA控制器进行初始化。以下选项中,不包含在初始化信息中的是(  D  )。

A.传送数据个数或传送字节数

B.传送信息所在的主存起始地址

C.传送方向(即读磁盘还是写磁盘?)

D.传送信息所在的通用寄存器编号

第四周

1在存储器分层体系结构中,存储器速度从最快到最慢的排列顺序是(  A )。

A.寄存器-cache-主存-辅存

B.寄存器-主存-cache-辅存

C.寄存器-主存-辅存-cache

D.寄存器-cache-辅存-主存

2在存储器分层体系结构中,存储器从容量最大到最小的排列顺序是( A  )。

A.辅存-主存-cache-寄存器

B.主存-辅存-cache-寄存器

C.辅存-cache-主存-寄存器

D.辅存-主存-寄存器-cache

3在主存和CPU之间增加cache的目的是(  D )。

A.增加内存容量

B.提高内存可靠性

C.增加内存容量,同时加快访问速度

D.加快信息访问速度

4以下哪一种情况能很好地发挥cache的作用?(B)

A.程序中含有较多的I/O操作

B.程序具有较好的访问局部性

C.程序的大小不超过实际的内存容量

D.程序的指令间相关度不高

5假定主存按字节编址,cache共有64行,采用直接映射方式,主存块大小为32字节,所有编号都从0开始。问主存第2593号单元所在主存块对应的cache行号是( B  )。

A.1

B.17

C.34

D.81

解析:  B、因为按字节编址,主存块大小为32字节,所以块内地址占5位。采用直接映射方式,共64行,故行号占6位。因为2593=2048+512+32+1=0…01 010001 00001B,根据主存地址划分的结果,可以看出2593单元所在主存块对应的cache行号为010001B=17。

6假定主存按字节编址,cache共有64行,采用4路组相联映射方式,主存块大小为32字节,所有编号都从0开始。问主存第2593号单元所在主存块对应的cache组号是( A  )。

A.1

B.17

C.34

D.81

解析:  A、因为按字节编址,主存块大小为32字节,所以块内地址占5位。采用4路组相联映射方式,共64行,分64/4=16组,故组号占4位。因为2593=2048+512+32+1=0…0101 0001 00001B,根据主存地址划分的结果,可以看出2593单元所在主存块对应的cache组号为0001B=1。

7假定主存地址空间为256MB,按字节编址, cache共有64行,采用8路组相联映射方式,主存块大小为64B,则cache容量至少为( C  )字节。

A.4248

B.4216

C.4256

D.4224

解析:  C、因为按字节编址,256M=2^28,故主存地址位数为28位。采用8路组相联,共64行,分64/8=8组,故组号占3位。主存块大小为64B,块内地址占6位。因此,标志位占28-3-6=19位。Cache总容量为64×(1+19+64×8)位=4256字节。

8假定CPU通过存储器总线读取数据的过程为:发送地址和读命令需1个时钟周期,存储器准备一个数据需8个时钟周期,总线上每传送1个数据需1个时钟周期。若主存和cache之间交换的主存块大小为64B,存取宽度和总线宽度都为4B,则cache的一次缺失损失至少为多少个时钟周期?(C)

A.72

B.80

C.160

D.64

解析:  C、一次缺失损失需要从主存读出一个主存块(64B),每个总线事务读取4B,因此,需要64B/4B=16个总线事务。每个总线事务所用时间为1+8+1=10个时钟周期,总共需要160个时钟周期。

9假定用作cache的SRAM的存取时间为2ns,用作主存的SDRAM存储器的存取时间为40ns。为使平均存取时间达到3ns,则cache命中率应为( A  )左右。

A.97.5%

B.85%

C.99.9%

D.92.5%

解析:  A、1-(3-2)/40=97.5%。

10若主存地址32位,按字节编址,块大小为32字节,cache共有2K行,则以下叙述中,错误的是( A )。

A.全相联时,标志位共计64K位

B.关联度为8时,标志位共计38K位

C.关联度为2时,标志位共计34K位

D.关联度为1时,标志位共计32K位

解析:  A、全相联时,标志位共计2K×(32-5)=54K位。

第五周

1以下关于cache替换算法的叙述中,错误的是( C )。

A.组相联和全相联映射都必须考虑如何进行替换

B.LRU算法需要对每个cache行记录替换信息,即LRU位

C.先进先出算法无需对每个cache行记录替换信息

D.直接映射方式是多对一映射,无需考虑替换问题

解析:  C、先进先出算法需要对每个cache行打一个时间戳,记录何时装入了一个新的主存块。

2以下关于LRU替换算法的叙述中,错误的是( C )。

A.LRU是Least-Recently Used的缩写,表示最近最少用

B.基于cache行有多久没有被访问来进行替换

C.全相联映射方式特别适合采用LRU替换算法

D.是一种栈算法,其命中率随组的增大而提高

解析:  C、LRU替换算法需要为每个cache行设置一个计数器,用于记录对应行的使用情况。计数器的位数与组的大小有关,例如,对于2-路组相联,每组有两个cache行,计数器为1位;对于4-路组相联,计数器为2位。对于全相联,则组的大小等于cache行数,因而计数器的位数等于cache行号的位数,这样,不仅计数器所占容量开销大,而且对计数器进行修改的时间开销也大。因而LRU算法不适合应用于全相联映射方式。

3以下关于写策略的叙述中,错误的是( A )。

A.只有在写命中时才需考虑写策略问题,在写不命中时无需考虑

B.多个带cache的CPU共享主存时会出现写策略问题

C.对于写命中,有直写(Write Through)和回写(Write Back)两种写策略

D.写策略问题也是cache一致性问题

解析:  A、写命中指要写的单元已经在cache中,写不命中指要写的单元不在cache中。不管是写命中还是写不命中,都需要考虑写策略问题。在写命中时,可以采用直写(Write Through)或回写(Write Back)方式。前者在写cache的同时也写主存;后者仅写cache,在被替换出去时再将整个主存块写入主存。在写不命中时,可以采用写分配方式,把主存块装入cache,然后采用写命中时的直写或回写策略进行处理,也可以采用非写分配(Not Write Allocate)方式,直接写主存而不写cache。

4以下关于直写(Write Through)策略的叙述中,错误的是( C )。

A.每次写操作都会写cache中的内容和在主存中的副本

B.通常在cache和主存之间设置写缓冲,以加快写操作速度

C.通常在cache行中加“dirty bit”,以标识对应行是否被修改过

D.在写不命中时,若采用非写分配(Not Write Allocate)方式,则只能用直写替换策略

解析:  C、因为直写(Write Through)策略会同时写cache和主存,因此,总能保持cache和主存的一致性,无需用“dirty bit”来标识cache行是否被修改。而回写(Write Back)策略仅写cache,在被替换出去时,需要根据dirty bit是否为1,以了解cache行中的主存块是否被修改,若被修改,则说明发生了cache和主存的不一致,需要将整个主存块写入主存。

5假定主存地址位数为32位,按字节编址,主存和cache之间采用直接映射方式,主存块大小为1个字,每字32位,写操作时采用直写(Write Throght)方式,则能存放32K字数据的cache的总容量至少应有( C  )位。

A.1504K

B.1568K

C.1536K

D.1600K

解析:  C、cache共有32K字/1字=32K行,故行号占15位;每个主存块为1字=32位=4B,故块内地址占2位。因此,标志占32-15-2=15位。直接映射方式无需考虑替换算法,故没有替换信息;直写方式无需修改位(dirty bit)。因而cache总容量为32K×(1+15+32)=1536K位。

6假定主存地址位数为32位,按字节编址,主存和cache之间采用直接映射方式,主存块大小为1个字,每字32位,写操作时采用回写(Write Back)方式,则能存放32K字数据的cache的总容量至少应有( D  )位。

A.1504K

B.1600K

C.1536K

D.1568K

解析:  D、cache共有32K字/1字=32K行,故行号占15位;每个主存块为1字=32位=4B,故块内地址占2位。因此,标志占32-15-2=15位。直接映射方式无需考虑替换算法,故没有替换信息;回写(Write Back)方式需1位修改位(dirty bit)。因而cache总容量为32K×(1+15+1+32)=1568K位。

7假定主存地址位数为32位,按字节编址,主存和cache之间采用全相联映射方式,主存块大小为4个字,每字32位,采用回写(Write Back)方式和随机替换策略,则能存放32K字数据的cache的总容量至少应有(  D )位。

A.5056K

B.5024K

C.1256K

D.1264K

解析:  D、cache共有32K字/4字=8K行,每个主存块为4字=4×32位=16B,故块内地址占4位。因此,全相联映射方式下,标志占32-4=28位。随机替换算法没有替换信息;回写(Write Back)方式需1位修改位(dirty bit)。因而cache总容量为8K×(1+28+1+4×32)=1264K位。

8假定主存地址位数为32位,按字节编址,主存和cache之间采用4-路组相联映射方式,主存块大小为4个字,每字32位,采用直写(Write Throght)方式和LRU替换策略,则能存放32K字数据的cache的总容量至少应有( A  )位。

A.1184K

B.4672K

C.1168K

D.4736K

解析:  A、cache共有32K字/4字=8K行,因为采用4-路组相联,因而共有8K/4=2K组,组号占11位;每个主存块为4字=4×32位=16B,故块内地址占4位。因此,标志占32-11-4=17位。4路组相联方式下,LRU替换算法需要每行有2位LRU位;直写(Write Throght)方式无需修改位(dirty bit)。因而cache总容量为8K×(1+17+2+4×32)=1184K位。

9以下关于cache大小、主存块大小和cache缺失率之间关系的叙述中,错误的是( C )。

A.cache容量越大,cache缺失率越低

B.主存块大小通常为几十到上百个字节

C.主存块越大,cache缺失率越低

D.主存块大小和cache容量无密切关系

解析:  C、主存块太小,则不能很好地利用空间局部性,从而导致缺失率变高,但是,主存块太大,也会使得cache行数变少,即cache中可以存放主存块的位置变少,从而降低命中率。因此,主存块不可以太小,也不可以太大,通常为几十到上百个字节。

10某32位机按字节编址。数据cache有16行,主存块大小为64B,采用2-路组相联映射。对于以下程序A,假定编译时i, j, sum均分配在寄存器中,数组a按行优先方式存放,其首址为3200,则a[1][0]所映射的cache组号、程序A的数据cache命中率各是(D  )、(  )。

short a[256][256];

……

short sum_array() {

      int i, j;

      short sum=0;

      for (i=0; i < 256; i++)

      for (j=0; j < 256; j++)

       sum+=a[i][j];

      return sum;

         }

A.4, 15/16

B.2, 15/16

C.4. 31/32

D.2, 31/32

解析:  D、a[1][0]所映射的cache组号为[(3200+(1×256+0)×2)/64] mod (16/2) = 2。

程序A的数据cache命中率分析如下:a[0][0]位于主存第3200/64=50块的起始处,按照数组访问顺序a[0][0]、a[0][1]、……、a[0][255]、a[1][0]、a[1][1]、……、a[1][255]、……,总是每64B/2B=32个数组元素组成一个主存块,被轮流装入数据cache的第2、3、……、7、0、1、…….、7、0、……. 组内的cache行中,因而这每一块的32个数组元素中,总是第一次不命中,以后每次都命中,因而命中率为31/32。

第六周

1以下有关早期分页存储管理(自动执行Overlay)方式的叙述中,错误的是(  B )。

A.程序员编写程序所用的地址空间称为逻辑地址空间

B.程序员编写程序时应将逻辑地址转换为主存物理地址

C.分页方式主要解决程序文件比主存空间大的问题

D.分页方式可以使程序员编写程序时无需考虑主存容量

解析:  B、早期的分页存储管理方式主要解决“程序很大而存放程序的主存很小”的问题。程序员在一个逻辑地址空间中编写程序,不用管主存有多大;运行程序时,由专门的分页管理程序,将程序中的逻辑地址转换为主存的物理地址,并实现程序块在主存的换入和换出操作。因此,地址转换的工作由管理程序自动完成,而不是由编写程序的程序员完成。

2以下有关分页虚拟存储管理方式的叙述中,错误的是( C  )。

A.每个进程所占的地址空间称为虚拟地址空间,被划分成若干页面

B.每条指令执行过程中,都需要把指令或数据的虚拟地址转换为物理地址

C.程序执行时,必须把程序所包含的所有代码和数据都装入主存中

D.主存地址空间称为物理(实)地址空间,被划分成大小相等的页框

解析:  C、分页虚拟存储管理方式下,每个进程都有一个统一的虚拟地址空间,被划分成大小相等的页面,主存空间被划分成大小相等的页框,程序执行时,主要把正在执行的页面装入主存的页框中,其他还没有执行到的页面可以存放在磁盘中,这样,可以在较小的主存中运行大程序。因此,无需把所有代码和数据都装入主存才能运行程序。

3以下是有关现代虚拟存储管理机制中地址转换的叙述,其中错误的是(  D )。

A.地址转换过程中要访问页表项

B.地址转换过程中能发现是否缺页

C.缺页时将转相应异常处理程序执行

D.整个过程主要由操作系统实现

解析:  D、虚拟存储管理机制中,地址转换是在指令执行过程中进行的,指令的执行由硬件实现,因而地址转换也由硬件完成,而不是由操作系统软件完成。操作系统生成并修改页表,而由硬件在地址转换过程中查询页表来进行地址转换,并检测是否发生缺页,在发生缺页时,硬件会发出“Page Fault”异常,从而调出相应的异常处理程序进行缺页处理。

4下列命中组合情况中,一次访存过程中不可能发生的是( D  )。

A.TLB未命中、cache未命中、Page命中

B.TLB未命中、cache命中、Page命中

C.TLB命中、cache未命中、Page命中

D.TLB未命中、cache命中、Page未命中

解析:  D、Page未命中,说明相应信息不在主存,cache中信息是主存信息的副本,因而相应信息肯定不在cache,也就不会cache命中。

5以下是有关虚拟存储管理机制中页表的叙述,其中错误的是( B  )。

A.每个页表项中都包含装入位(有效位)

B.一个页表中的表项可以被所有进程访问

C. 页表中每个表项与一个虚页对应

D.系统中每个进程有一个页表

解析:  B、页表中的每个表项反映的是对应虚拟页面的位置和使用等信息,只能由操作系统和硬件进行访问,不能被任何用户进程访问。

6以下是有关缺页处理的叙述,其中错误的是( C  )。

A.缺页处理过程中需根据页表中给出的磁盘地址去读磁盘数据

B.缺页处理完后要重新执行发生缺页的指令

C.缺页是一种外部中断,需要调用操作系统提供的中断服务程序来处理

D.若对应页表项中的有效位(或存在位)为0,则发生缺页

解析:  C、外部中断是指CPU以外的中断请求事件,而缺页是由CPU在执行指令过程中进行地址转换时发现的在CPU内部操作时检测到的异常事件,相应的处理工作由操作系统提供的缺页异常处理程序来完成。

7以下是有关分页式存储管理的叙述,其中错误的是( C  )。

A.当从磁盘装入的信息不足一页时会产生页内碎片

B.采用回写(Write Back)写策略,每页对应一个修改位(Dirty Bit)

C.相对于段式存储管理,分页式更利于存储保护

D. 采用全相联映射,每个页可以映射到任何一个空闲的页框中

解析:  C、因为分页方式将地址空间划分成大小相等的页面,因而可能有些页面中的有效信息一部分是代码一部分是数据,或者有效信息不足一页,前者不利于存储保护,后者容易造成页内碎片。而分段方式按代码和数据的不同类信息分段管理,显然易于存储保护。

分页方式采用全相联映射方式和Write Back写策略,只要主存中有空闲页框就可以存放任何一个页面,在每次写主存时,都不会同时写磁盘,只有当某一页从主存中替换到磁盘时才可能写磁盘。

8

以下有关快表(TLB)的叙述中,错误的是(  C )。

A.快表是一种高速缓存,一定在CPU中

B.引入快表的目的是为了加快地址转换速度

C.在快表中命中时,在L1 cache中一定命中

D.快表中存放的是当前进程的常用页表项

解析:  C、在快表中命中,是指当前正在进行地址转换的存储单元所在页面对应的页表项在TLB中,因此,可以直接从TLB中取到物理页框号,而立即生成对应的物理地址。不过,这个物理地址所在的主存块不一定在L1 cache中。

9以下是有关段式存储管理的叙述,其中错误的是( D  )。

A.段是逻辑结构上相对独立的程序和数据模块,因此段是可变长的

B.按程序中实际的段来分配主存,所以分配后的存储块是可变长的

C.每个段表项中必须记录对应段在主存的起始位置和段的长度

D.段表项中无需有效位(或存在位),因为每个段都在主存中

10以下给出的事件中, 无需通过异常处理程序进行处理的是( D  )。

A.地址越界

B.段不存在

C.缺页故障

D. cache缺失

解析:  D、cache缺失由硬件处理,无需调出操作系统中的异常处理程序来处理。

第七周

1对于IA-32中的指令“movl 8(%edx, %esi, 4), %edx”,若R[edx]=0000 01B6H,R[esi]=0000 0008H,其源操作数的有效地址EA是( D )。

A.0000 06E8H

B.0000 01F0H

C.0000 01B6H

D.0000 01DEH

解析:  D、源操作数的有效地址为R[edx]+R[esi]*4+8=0000 01B6H+0000 0008H*4+8=0000 01DEH。

2以下是有关IA-32段页式虚拟存储管理方式的叙述,其中错误的是( B  )。

A.指令中隐含给出的32位有效地址就是32位段内偏移量

B.32位线性地址构成的地址空间就是4GB主存地址空间

C.逻辑地址由16位段选择符和32位段内偏移量组成

D.进程的虚拟地址有48位逻辑地址和32位线性地址两种形式

解析:  B、32位线性地址空间是4GB的虚拟地址空间,也就是可执行目标程序(即进程)所在的虚拟地址空间,需要对其进一步进行分页存储管理,访问指令和数据时,应根据页面和页框之间的映射关系进行线性地址到物理地址的转换。

3以下是有关IA-32保护模式下地址转换过程的叙述,其中错误的是(  C )。

A.32位物理地址就是指32位主存地址

B.顺序为逻辑地址→线性地址→物理地址

C.采用先分页、再分段的地址转换过程

D.地址转换前先计算出32位有效地址

解析:  C、地址转换顺序是先通过分段方式将48位逻辑地址转换为32位线性地址,然后再通过分页方式将32位线性地址转换为32位物理地址。

4以下有关IA-32段选择符的叙述中,错误的是(  C )。

A.CS寄存器中RPL字段表示当前特权级CPL

B.段选择符存放在一个16位段寄存器中

C.程序的代码段和数据段共用同一个段选择符

D.段选择符中的高13位为对应段表项的索引

解析:  C、IA-32中提供了多个段寄存器,如代码段寄存器CS、数据段寄存器DS、堆栈段寄存器SS等,它们可以分别存放代码段、数据段和堆栈段的段选择符。

5以下有关IA-32段描述符和段描述符表的叙述中,错误的是( A  )。

A.段基址低12位总是0,因此段描述符中的段基址字段占20位

B.段描述符分普通段描述符和系统控制段描述符两类

C.段描述符表就是段表,段描述符就是其中的段表项

D.段描述符表分GDT(全局)、LDT(局部)和IDT(中断)三类

解析:  A、段描述符中的段基址字段B31~B0占32位,而段限界字段L19~L0占20位。

6以下是有关IA-32中逻辑地址向线性地址转换的叙述,其中错误的是( C  )。

A.系统启动时操作系统先对GDT和LDT进行初始化

B.从对应段描述符中取出段基址与段内偏移量相加可得到线性地址

C.每次逻辑地址向线性地址转换都要访问内存中的GDT或LDT

D.GTD和LDT在内存的起始地址分别存放在CPU内不同的地方

解析:  C、为了加快IA-32的地址转换过程,CPU中专门设置了段描述符cache,对应每个段寄存器(CS、DS、SS、ES、FS和GS)都有相应的描述符cache。每次段寄存器装入新的段选择符时,就会将对应的段描述符装入描述符cache中,在逻辑地址到线性地址转换时,MMU直接用描述符cache中的信息,不必访问内存中的GDT和LDT。

7以下是有关IA-32/Linux系统分段机制的叙述,其中错误的是( A  )。

A.内核段描述符在GDT中,而用户段描述符在LDT中

B.将内核代码段和内核数据段的段基址都设为0

C.将用户代码段和用户数据段的段基址都设为0

D.段描述符中段存在位P为1,故不以段为单位分配内存

解析:  A、Linux系统中,将内核代码段、内核数据段、用户代码段和用户数据段对应的段描述符都包含在全局描述符表GDT中,分别位于GDT的第12、13、14和15项。

8已知变量y和数组a都是int型,a的首地址为0x8049b00。假设编译器将a的首地址分配在ECX中,数组的下标变量i分配在EDX中,y分配在EAX中,C语言赋值语句“y=a[i];”被编译为指令“movl (%ecx, %edx, 4), %eax”。在IA-32/Linux环境下执行该指令,则当i=150时,得到的存储器操作数的线性地址是(  B )。

A.0x8049b9a

B.0x8049d58

C.0x804a100

D.0x8049b00

解析:  B、Linux中将所有段的段基址都初始化为0,因而存储器操作数a[150]的线性地址=段基址+有效地址=0+R[ecx]+R[edx]*4=0x8049b00+150*4=0x8049b00+600=0x8049b00+0x258=0x8049d58。

9以下是有关IA-32中线性地址向物理地址转换过程的叙述,其中错误的是(  B )。

A.4GB线性地址空间被划分成1M个页面,每个页面大小为4KB

B.每次地址转换都需要先访问页目录表,然后访问页表,根据页表项得到物理地址

C.页目录表中的页目录项和页表中的页表项都占32位,且两者的结构完全相同

D.32位线性地址分成10位页目录索引、10位页表索引和12位页内偏移量三个字段

解析:  B、IA-32中有TLB,因此,每次线性地址向物理地址转换时,总是先访问TLB,当TLB命中时,就无需访问主存中的页目录表和页表。

10

以下是有关IA-32存储管理控制寄存器的叙述,其中错误的是( C  )。

A.若要启用分页机制,则CR0控制寄存器中的PE和PG都要置1

B.CR3控制寄存器用于存放页目录表在主存的起始地址

C.用户进程和操作系统内核都可以访问存储管理控制寄存器

D.CR2控制寄存器用于存放发生页故障(Page Fault)的线性地址

解析:  C、IA-32中提供的存储管理控制寄存器用于操作系统内核进行存储管理,访问这些控制寄存器的相关指令都是特权指令,只能在内核态使用,而用户进程中不能使用这些特权指令,因而用户进程不能访问这些控制寄存器。

  • 34
    点赞
  • 158
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值