当前位置: 移动技术网 > IT编程>数据库>Mysql > 虚拟存储器题集

虚拟存储器题集

2018年02月20日  | 移动技术网IT编程  | 我要评论

Hello,本博客主要分享有关虚拟存储相关知识,含概念和题。
重点:
虚拟存储是什么?
在什么场景下用?
动态链接是什么?

1、什么叫虚拟存储器?操作系统如何实现虚拟内存的?
虚拟存储器通过把主存,辅存统一起来管理,给用户造成一种仿佛系统内具有巨大主存供用户使用的假象。
eg:页式存储管理,一道作业被划分为若干页,其中较活泼的几页放入内存,其余的页放在辅存,当需要访问辅存的页时,通过页面调度将其调入内存运行;用户以为作业的所有部分都在主存里。 使更多作业进入主存,提高系统效率。

2、虚存技术同单道程序系统,多道程序系统,程序的重定位,程序的动态链接以及覆盖交换技术之间有什么关系?
单道程序系统也可以实现虚存管理,实际中,虚存主要用于多道程序系统中。
虚存的实现需要动态重定位技术的支持,因为程序的兑换会导致同一部分程序多次进出内存并有可能在内存中不断地移动位置。
虚存与程序的动态链接没有必然的因果关系,但程序的动态链接可以避免无用程序进入内存,提高虚存效率。
虚存需要覆盖和交换技术的支持。 实存管理下覆盖和交换是一种可以节省内存的技术,对用户是不透明的,覆盖和交换的区域由程序员和程序结构决定。 虚存下交换和覆盖对程序员是透明的,操作是由OS根据算法决定的。

3、
在下面关于虚拟存储器的叙述中,正确的是:B要求程序运行前不必全部装入内存而且在运行过程中不必一直驻留在内存
A、要求程序运行前必须全部装入内存且在运行过程中一直驻留在内存
B、 要求程序运行前不必全部装入内存且在运行过程中不必一直驻留在内存
C、要求程序运行前不必全部装入内存但是在运行过程中必须一直驻留在内存
D、要求程序运行前必须全部装入内存但在运行过程中不必一直驻留在内存

4、虚拟管理和实存管理的主要区别:
实存要求程序必须全部装入内存才开始运行,虚存允许程序在执行过程中逐步装入。

5、概念题
虚存的可行性基础是:程序执行的局部性
虚存的最基本特征:交换性
实现虚存的最主要技术:部分对换
实现虚存的目的:扩充主存容量
虚拟存储的实现是基于程序局部性原理,其实质是借助外存将内存较小的物理地址空间转换为较大的逻辑地址空间。

6、早期的Unix操作系统没有提供内存虚拟存储器,为了使容器有限的内存能支持较大规模的程序,系统除采用正文段共享和自我覆盖技术外主要采用程序对换技术来扩充内存容量,使其具有类似于虚拟存储器的作用。

7、判断: 系统内存不足,程序无法执行
X错
可以采用虚拟存储器,覆盖,交换解决
覆盖overlay:模块需要时调入内存。后调入的模块占用前面所调用模块所占内存空间。
交换swap:把内幕才能中暂时不用的进程存到外存,以腾出足够内存 空间,把已具备运行条件的进程调入内存。

8、进程的目标代码在虚拟存储器中不考虑物理存储器大小和信息存放的实际位置,只规定每个进程中相互关联的信息相对位置。(虚拟存储器在逻辑上扩充了内存容量,作业还可以离散分布于非连续的主存,这样不用考虑屋里存储器大小和实际存放位置)

9、虚拟存储器地址空间大小?
一个虚拟存储器,其地址空间的大小等于辅助的容量加上主存的容量(虚拟存储器的地址空间大小是由计算机的地址总线决定的)
虚拟存储器是为扩大”主存”容量采用的一种设计技巧。虚拟存储器的容量由计算机的地址结构(地址总线位数)决定。32位机器,最大存储容量2^32=4GB。

10、虚拟存储器最大容量由什么决定?如何计算?
由计算机地址结构和辅存容量决定,与实际内存大小无关。32位机器,最大存储容量2^32=4GB,最大容量2^32个字节。由于用户程序执行前还需装入辅存,所以虚拟存储器的大小还受辅存容量的限制。

11、为什么要引入逻辑地址?
# 1.具有物理地址的程序只有装入程序所规定的内存空间才能正确执行,否则无法执行。
#2.使用物理地址编程意味着让程序员分配内存空间,这在多道程序系统中,势必造成程序所占内存空间的相互冲突。
# 3.在多道程序系统中,程序员无法实现协商每个程序所占内存空间的位置,系统也无法保证在程序执行时,它所需要的内存空间空闲。
# 4.所以,必须引入一个统一的,在编程时使用的地址,它能在程序执行时根据所12、分配的内存空间将其转换为对应的物理地址,即逻辑地址。
13、用绝对地址编写的程序不适合多道程序系统运行

14、程序动态链接的时刻是调用时刻
15、装入时动态链接有哪些优点?
# 1.便于软件版本的修改和更新。 采用装入时动态链接方式时,要修改各个目标模块,比较容易;而对于经静态链接装配在一起的可执行程序,如果要修改或者更新其中的某个目标模块时,则要求重新打开装入模块,不仅低效,对于普通用户来说是不可能的。
#2.便于实现目标模块的共享。若采用装入时动态链接方式,OS能够实现将一个目标模块链接到几个应用程序中去,实现多个应用程序对该模块的共享。如果采用静态链接方式,每个程序都必须含有该目标模块的拷贝。

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网