系统分析师案例分析知识点——虚拟内存篇

交换扩充了主存,因此交换也实现了虚拟存储器,对吗?请说明理由。

解答:

这种说法不正确。交换技术是将内存中不能运行的进程从内存中移出到外存,把准备就绪的进程移动到内存。交换技术可以提高内存的利用率。

虚拟存储器使进程可以只把作业的一部分代码放入内存就可以运行的存储器技术,能从逻辑上对内存进行扩充的存储器技术。

交换技术虽然能够提高内存的利用率,但是它不能实现只将作业的一部分内容加载到内存就运行,也不能从逻辑上扩充内存容量。所以交换技术不是虚拟存储器。


在虚拟页式存储系统中引入了缺页中断:

(1) 试说明为什么引入缺页中断?

(2) 缺页中断的实现由哪几部分组成?并分别给出其实现方法。

解答:

(1)因为虚拟页式存储器可以只将程序的一部分内容加载到内存就可以运行到一种存储器,因此可能发生程序运行时所需的代码或者数据不再内存的情况,这个时候就需要触发缺页中断,将所需的代码或者数据加载到内存中以后再继续执行。

(2)缺页中断是由硬件和软件协同工作完成到。

硬件:进程访问某个页面的时候,硬件的地址转换机构查页表。如果相关页在页表内,则直接将逻辑地址转换成物理地址后读取数据。如果相关逻辑页面不在内存中,则触发缺页中断。

软件:中断处理程序检查内存中是否有空闲页,如果有空闲页则直接将数据加载到内存,并更新页表。如果内存中没有空闲页,则先按照页面淘汰算法,将部分内容从内存中换出到辅存。再将数据加载到内容,并更新页表。


说明动态分页系统中的“颠簸”现象及解决策略。

当置换页面的时候,如果刚刚被置换出去的页面,马上又会被使用到。则会再次触发缺页中断,这种频繁触发缺页中断的现象,称之为“颠簸”现象。

解决策略如下:

1. 如果是页面淘汰策略不合适,则更新页面淘汰算法。

2. 如果是运行的程序太多,则需要减少同时运行程序的数量。

3. 增加内存容量

原文地址:https://www.cnblogs.com/kaiblog/p/13102249.html