挑战408——存储器与存储系统——刷题(2)

接上篇
这部分的刷题,其知识点是计算机组成原理与操作系统的交叉篇,计算机组成原理,应该说在Cache这部分内容后,就有了千丝万缕的关系。
本节刷题内容:存储器
题库参考:百度文库,王道考研,408真题
涉及的主要内容:

  1. 虚拟存储器原理
  2. 内存分区
  3. 页式存储系统
  4. 段式存储系统
  5. 地址映射的过程
  6. 抖动
  7. 驻留集
第一题

在这里插入图片描述
分析:这是一道概念题。要求对程序的运行过程比较熟悉。具体分析见挑战408——操作系统(17)——程序的运行过程

第二题

挑战408——存储器与存储系统——刷题(2)_第1张图片
分析:概念题。具体保护方式见:挑战408——操作系统(17)——程序的运行过程

第三题

在这里插入图片描述
分析:这道题。王道只是对为什么I/O操作不能被换出,却没有解释其他三种。我现在说说我个人的看法。先拉一段交换的概念:将处于等待状态下的进程,从内存中移动到辅存,从而将内存的空间腾出来,这个过程称为换出。相反,将准备好竞争CPU运行的程序从辅存转移到内存,这一过程称为换入。也就是说,换出的程序,是那些处于等待状态下的进程。此时的进程并没有在运行。所以,AD选项显然,没有在运行,B是一定在运行的。再看看C,处于临界段,只能说明进程在申请临界资源,而不能说明它就在使用并运行。因为同一时间申请该资源的进程还有其他,当某个进程没有获得相应的资源的时候,它就被阻塞或者挂起,这个时候便可以将它移出到磁盘。

第四题

挑战408——存储器与存储系统——刷题(2)_第2张图片
分析:这道题很精彩,它要求对动态分配的过程很熟悉,能画出来最好。最佳适应法,就是将空闲的存储块按其空间大小从小到大排列,在分配的时候,遍历,遇到合适的就分配。所以这样做是会在表头留下很多外部碎片的(更多分配算法看这里:挑战408——存储管理(18)——连续分配存储管理方式)。这个原理说起来简单,但是画起来要很细心。所以,我将此过程画了一遍。

所以,选B。
于是下面再来一道题,熟悉一下:
在这里插入图片描述
挑战408——存储器与存储系统——刷题(2)_第3张图片
这题不解释了,空闲空间排序,然后选C。

第五题

挑战408——存储器与存储系统——刷题(2)_第4张图片
分析:页式存储的原理,是将内存块划分为页面大小相同,也就是我们前面一直强调的,物理块的大小 = 页内偏移。所以题目告诉我们页的大小,就是告诉我们,内存中的一块,大小也就是4KB。这里注意,块号是从0开始计算的,所以0对应的是第二块的首地址,所以,2实际上是第三块的起始地址:
挑战408——存储器与存储系统——刷题(2)_第5张图片

第六题

在这里插入图片描述
分析:这算是比较冷门的一个知识点,考的是对这几种管理方式的实现。要有一定的了解。首先,分区管理方式(动态),它的实现需要有两个数据结构,一个是分区表,一个是链表(指向空闲的分区),不需要硬件的支持。而页式跟段式,除了要有页表外,还需要硬件的支持(界寄存器,起始寄存器等等),代价相对较高。

第七题

挑战408——存储器与存储系统——刷题(2)_第6张图片
分析:又是一道动态内存分配的问题,做多了发现,这类题往往要画图才能准确完成,并且不容易出错,我们先假设空余空间外都被进程所占用,于是如图:
挑战408——存储器与存储系统——刷题(2)_第7张图片
题目回收的是进程1,回收后,空闲的空间合并成一个大空间,为380kb(题目说了按字节编址)。再将空闲空间按从小到大的顺序排列,于是看出,还有3个空闲块,并且第一块就是起始地址为500,块大小为80kb的空闲块。选B。

第八题

挑战408——存储器与存储系统——刷题(2)_第8张图片
分析:这是考查对页表字段的理解。起始题目的问法问的有点拗口了。先慢慢读题,知道了页大小为1KB,一个页表项的大小为2B,所以很明显可以得到,一页最多可以有2^9个页表项 。假设逻辑地址空间一共有2的16次方这么多个页。那么页目录表中就一定要有2的16次方这么多个页表项(因为在二级页表中,页目录表的一个页表项代表的就是内存中的一个页)。因此,问题转化成为:一共有2的16次方这么多个页表项,每一页中能放2的9次方那么多个页表项,问至少需要多少页才能装完这些页表项。所以,容易得出答案B。

第九题

挑战408——存储器与存储系统——刷题(2)_第9张图片
分析:这是一类题。分析内存的访存问题。在段式存储中,CPU访存是先通过访问内存中的段表得到相关信息,然后得出物理地址。得出物理地址后,再根据这个地址去访问内存中的内容。所以需要两次访问。但是段页式是在段表里面多了一个页表,所以除了访问段表,还需要多访问一次页表,这样就多了一次访问,也就是3次访问。由此我们也很容易推出页式管理的访存过程。
再来看一道访存的题目:
挑战408——存储器与存储系统——刷题(2)_第10张图片
这里只有1是对的,其他的不多解释,在开启TLB的时候,是需要访问一次内存就可以了。

第十题

挑战408——存储器与存储系统——刷题(2)_第11张图片
分析:参考挑战408——操作系统(19)——页式存储管理,里面二级页表思想的扩展就是多级页表。选D

第十一题

挑战408——存储器与存储系统——刷题(2)_第12张图片
分析:段式存储的转换过程,就是根据段号,段长,先比较是否越界,然后再进行地址转换,题目中,段长300,段内地址为400,显然发生了地址越界。下面把教材中的对应的题目放上来一起练手:
挑战408——存储器与存储系统——刷题(2)_第13张图片
计算过程如下:
挑战408——存储器与存储系统——刷题(2)_第14张图片
计算的过程是,先判断是否越界(包括段号异常,段内地址是否越界),再计算物理地址。

第十二题

挑战408——存储器与存储系统——刷题(2)_第15张图片
分析:这是一点典型的组成原理跟操作系统的综合题目。执行这一条指令,需要三步。因为转换后的指令直接给出了数据的地址,所以,取数,运算,写回,就完成了。题目问的是访存次数最少,那么取数必然要TLB命中,计算在CPU中执行,所以不涉及内存,写回的话,题目说了采用直写法,也就是Cache与内存同时写入,这个时候就无论如何都要访问一次内存。

你可能感兴趣的:(计算机理论基础)