OS-虚拟存储

来源:互联网 发布:算法帝国 原版 编辑:程序博客网 时间:2024/06/05 15:15

局部性原理

Principle of locality,程序在执行过程中的一个较短使其内,指令地址和操作数地址,分别局限于一定区域。具体体现在:

时间局部性

空间局部性

分支局部性

一条跳转指令的两次执行,很可能跳到相同的内存位置。

局部性原理保证了虚拟存储的实际意义

不同程序编写方法的局部性特征

假定

假定我们的程序采取了虚拟存储,而不是将程序全部加载到内存中去。

假定场景

页面大小为4K,分配给每个进程的物理页面数位1。在一个进程中,定义了如下的二维数组
int A[1024][1024],该数组按行存放在内存,每一行放在一个页面中。

程序编写方法1

for(j=0;j<1024;j++)for(i=0;i<1024;i++)  A[i][j]=0;

方法2

for(i=0;i<1024;i++)for(j=0;j<1024;j++)  A[i][j]=0;

不同程序编写方法的局部性特征

二维数组在存储空间的存储情况,int型占4个字节,每一行4K,正好一页容纳下。

这里写图片描述

方法1访问页面的序列为:0,1,2,…. 1023,共发生了1024*1024次缺页。但是方法2只发生了1024次缺页。

虚拟存储概念

思路

将不常用的部分内存块暂存到外存

原理

  1. 装载程序时,只将当前指令执行需要的部分页面或段装入内存。
  2. 指令执行中需要的指令或数据不存在内存(称为缺页),此时如果用到处理器通知操作系统将相应的页面或段调入内存中。
  3. 操作系统将内存中暂时不用的页面或段放到外存中。
  4. 这个过程中会涉及到置换算法

虚拟存储的基本特征

不连续性

物理内存分配非连续,虚拟地址空间使用非连续。

大用户空间

提供给用户的虚拟内存可大于实际的物理内存。

部分交换


虚拟存储只对部分地址空间进行换入和换出。

这里写图片描述

谁提供的技术支持

硬件和软件结合。

硬件

硬件需要做:页式或段式存储中的地址映射机制

操作系统

管理内存和外存间页面或段的换入和换出。

原创粉丝点击