北航操作系统课程-20200309课堂小测-存储管理

2020-03-09-课堂小测-存储管理


北京航空航天大学计算机学院-2020春操作系统课程
以下题目作者为北航计算机学院操作系统课程组,客观题答案由课程组给出,解析及主观题答案均为博主原创,水平有限,如有错误敬请批评指正。


1 计算机从内存向缓存传输数据的单位是:(单选)

A. 字节

B. Cache line

答:B

计算机的多级缓存机制,其存储区域的转移是以cache line为最小单位的。当从内存中取单元到cache中时,会一次取一个cache line大小的内存区域到cache中,然后存进相应的cache line中。


2 构成高速缓存的基本存储器件是:(单选)

A. SRAM

B. DDR

答:A

高速缓冲存储器(Cache)其原始意义是指存取速度比一般随机存取记忆体(RAM)来得快的一种RAM,一般而言它不像系统主记忆体那样使用DRAM技术,而使用昂贵但较快速的SRAM技术,也有快取记忆体的名称。

DDR,Double Data Rate,双倍速率。DDR SDRAM,双倍速率同步动态随机存储器,人们习惯称为DDR,其中,SDRAM是Synchronous Dynamic Random Access Memory的缩写,即同步动态随机存取存储器。

内存访问速度:DRAM < DDR(SDRAM) < SRAM。


3 存储器按照层次结构进行组织时,主要是考虑的因素有:(多选)

A. 存储器的价格

B. 存储器的速度

C. 存储器的容量

答:A、B、C

各类存储器在价格、速度和容量方面都会有差异。计算机存储组织指的是,在存储技术和CPU寻址技术许可的范围内组织合理的存储结构,其依据是访问速度匹配关系、容量要求和价格。


4 在现代计算机中CPU访问内存所使用的地址是:(单选)

A. 内存的物理地址

B. 程序的逻辑地址

答:B

在早期计算机,单道程序和批处理系统中,由于每次只处理一个作业,该程序独占资源,可以采用直接访问物理地址的方式。现代计算机多个程序共享内存资源,操作系统也需要占用一定的内存。为了实现不同程序共享内存时相互独立,不影响,即为了实现地址保护与地址独立,现代计算机广泛使用程序的逻辑地址。


5 从内存管理的角度看,一个程序成功加载到内存,则该程序一定能够成功运行:(判断)

答:错误

程序运行时可能需要更多的内存,如果没有足够的内存可以分配,也不能成功运行。


6 采用固定分区进行内存分配,容易产生:(单选)

A. 内碎片

B. 外碎片

答:A

固定分区指的是每个分区有固定的大小,因此在装入不足改大小的作业的时候,分区内部会产生用不到的内存片,即产生内碎片。


7 某次内存分配后,剩余3块空闲空间,大小分别为1k、10k、100k。这时按顺序来了一批4k、6k、95k的作业内存需求,哪种算法能够满足尽量多的作业:(单选)

A. Best fit

B. Worst fit

答:A

Best fit最佳适应,4k作业到来后装入10k大小的空间,此时10k空间变为6k空间;6k作业到来后恰好装入6k空间,该空间被占满;95k作业到来后装入100k空间,三个作业都可以得到满足。

Worst fit最坏适应,4k作业到来后装入100k大小的空间,此时100k空间变为96k空间;6k作业到来后装入96k空间,此时96k空间变为90k空间;95k作业到来后没有足够的连续空间提供,无法得到满足。


8 关于伙伴系统说法正确的是:(单选)

A. “伙伴”是指两个相同大小的内存区块

B. 内存分配的单位是2的整数次幂字节

C. 在进行内存释放(回收)时,必须将被释放的内存块与相邻的空闲块进行合并

答:B

A. 伙伴系统在分配存储块时会将一个大的存储块分为大小相等的两个小的存储块,这分裂出来的两个存储块互称“伙伴”,并不是任意两个相同大小的内存块都称为“伙伴”。B. 伙伴系统规定,无论已分配或空闲块,其大小均为2的k次幂字节,正确。C. 伙伴系统在内存回收的时候,首先考虑将被释放的块与其伙伴(如果空闲的话)合并成一个大的空闲块,合并后的块再与其伙伴合并,直至不能再合并。并不是说一定要将被释放的块与其相邻空闲块合并,相邻并不一定是伙伴。


9 内存紧缩中用的重定位技术与程序链接过程中的重定位是一样的:(判断)

答:错误

内存紧缩中的重定位和程序链接的重定位显然是不一样的。前者是运行时的动态重定位,程序所占用的内存实际发生了变化(为了消除碎片高效利用内存),程序中的地址要随之发生变化,典型的应用是java虚拟机;而后者是编译链接过程中的重定位,主要原因是编译时程序地址在内存中的地址不确定,当多个程序编译链接后计算出程序地址的操作。


10 关于覆盖和交换的说法正确的是:(多选)

A. 覆盖主要是解决运行多道程序所出现的内存不足问题

B. 交换对程序员来说时透明的

C. 覆盖段需要程序员来进行划分

答:B、C

覆盖主要解决的问题是“大作业,小内存”,在早期计算机内存不足以装载一个相对巨大的程序,因此使用覆盖技术,要求程序员将大作业分割成明确的部分,并清楚地知道各部分的依赖关系,当前一个部分运行结束后,其占用的内存被后面的部分直接覆盖。这种方式要求程序员在编程是就做了覆盖的工作,对程序员是不透明的。交换的操作主要解决“多作业,小内存”的问题,当内存剩余空间不足以装载较大作业的时候,想办法将当前占用内存的作业交换出去,腾出足够的空间供较大的作业使用。交换完全由操作系统完成,程序员编程时无需考虑。

发布了12 篇原创文章 · 获赞 2 · 访问量 491

猜你喜欢

转载自blog.csdn.net/JeremyZhao1998/article/details/104756434