目录
一、传统存储管理
1、缺点
二、局部性原理
1、时间局部性:
2、空间局部性:
三、虚拟内存的定义和特征
1、结构
编辑
2、定义
3、特征
(1)多次性:
(2)对换性:
(3)虚拟性:
四、如何实现虚拟内存
五、总结
一、传统存储管理
1、缺点
(1)一次性:作业必须一次性全部装入内存后才能开始运行。
这会造成两个问题:
①作业很大时,不能全部装入内存,导致大作业无法运行;
②当大量作业要求运行时,由于内存无法容纳所有作业,因此只有少量作业能运行,导致多道程序并发度下降。
(2)驻留性:一旦作业被装入内存,就会一直驻留在内存中,直至作业运行结束。
事实上,在一个时间段内,只需要访问作业的一小部分数据即可正常运行,这就导致了内存中会驻留大量的、暂时用不到的数据,浪费了宝贵的内存资源。
二、局部性原理
1、时间局部性:
如果执行了程序中的某条指令,那么不久后这条指令很有可能再次执行;
如果某个数据被访问过,不久之后该数据很可能再次被访问。(因为程序中存在大量的循环)
2、空间局部性:
一旦程序访问了某个存储单元,在不久之后,其附近的存储单元也很有可能被访问。
(因为很多数据在内存中都是连续存放的,并且程序的指令也是顺序地在内存中存放的)
三、虚拟内存的定义和特征
1、结构
2、定义
- 虚拟内存是一种计算机操作系统的内存管理技术,它将计算机物理内存和硬盘上的空间结合起来,使得进程能够使用超过物理内存容量的内存。
- 虚拟内存将进程所需的部分数据和代码存储到物理内存中,而将不经常使用的数据和代码存储到硬盘上,当需要使用这些数据和代码时,再从硬盘上通过页调度等技术交换到物理内存中。
- 虚拟内存可以大大提高计算机的运行速度和多任务处理能力。
3、特征
(1)多次性:
无需在作业运行时一次性全部装入内存,而是允许被分成多次调入内存。
(2)对换性:
在作业运行时无需一直常驻内存,而是允许在作业运行过程中,将作业换入、换出。
(3)虚拟性:
从逻辑上扩充了内存的容量,使用户看到的内存容量,远大于实际的容量。
四、如何实现虚拟内存
虚拟内存一般是通过操作系统来实现的,具体的实现方式如下:
-
分页系统:将虚拟地址空间划分为固定大小的页面(称为虚拟页面),并将物理内存也分为相同大小的页面(称为物理页面)。当程序访问一个虚拟地址时,操作系统会将其转换为物理地址,并将相关的物理页面调入内存。
-
页面置换算法:当内存不足时,需要选择一些不常用的物理页面来释放,以便新的页面可以被调入内存。常用的页面置换算法包括最近最少使用(LRU)、先进先出(FIFO)等。
-
页面缓存:操作系统也会使用一些缓存来优化虚拟内存的访问性能。比如,缓存一些常用的页面,以便快速访问;或者使用预读策略,提前将可能用到的页面缓存到内存中。
-
交换空间:当物理内存不足时,操作系统会将一部分内存中的页面写回磁盘,并将它们存储在交换空间中。当需要时,可以将这些页面重新调回内存中。
总的来说,实现虚拟内存需要操作系统提供一系列的管理策略和机制,以便能够有效地管理内存,并提供较好的性能和可靠性。