虚拟存储器--虚拟地址与物理地址

计算机在运行程序时,需将代码加载入内存中,CPU读取内存中的代码并执行。

早期的计算机在没有引入 虚拟存储器之前,需将整个待运行的程序加载到内存中,因为内存空间有限,当待加载的程序过大时就会出现问题(多进程,则需要占用更多的内存空间)。

现代计算机引入虚拟存储器的概念,通过将对内存进行抽象,将其作为存储在硬盘上数据的高速缓存,只将当前进程部分代码缓存到主存中(当前进程的程序较少时,可以全部缓存在主存中),从而提高了主存的利用率,使其同时可以容纳更多的进程同时运行。

简述
虚拟存储器是一个抽象概念,它为每个进程提供一个假象,即每个进程都在独立的使用主存。
每个进程看到的是一致的存储器,称为虚拟地址空间。
地址空间最上面的区域是为操作系统中的代码和数据保留的,对所有的进程一样。底部存放用户进程定义的代码和数据。
进程的虚拟地址空间如下图:

虚拟存储器是对主存的的一种抽象,基本思想:把一个进程虚拟存储器的数据存储在磁盘中,用主存作磁盘的缓存。即虚拟地址空间维护的是 磁盘中的数据,通过将要使用的数据缓存在主存中,使操作系统误以为数据一直在主存中(其实,只是在需要是在被缓存在主存中,如果长时间不需要则可能被swap出主存,存在磁盘中。ps:没有VM概念之前,运行的程序必须全部存储在主存中,引入之后,只需保证此时正被执行的代码在主存中即可。VM大大提高了,主存的利用率,是同时可以有更多的进程可以运行)。

寻址方式:物理和虚拟寻址
早期通过 物理寻址的方式访问主存,即主存中每个字节有一个唯一的物理地址,通过该物理地址,寻找该字节。
现在操作系统,通过虚拟寻址。CPU通过一个 虚拟地址来访问主存,该地址在访问主存之前被转换为一个物理地址。其中,转换过程由 位于CPU中的MMU单元,通过访问存储在主存中的页表完成。

地址空间的概念
线性地址空间:地址空间的数据是连续的
物理地址空间
虚拟地址空间
主存中每一个字节都有一个选自物理地址空间的物理地址和一个选自虚拟地址空间的虚拟地址。

数据映射:虚拟存储器与物理存储器中间的数据传输
虚拟存储器 (VM) 被组织为一个由存在在磁盘上的N个连续的字节大小单元组成的数组。每个字节都有一个唯一的虚拟地址作为到数组的索引。
磁盘上的内容被缓存在主存中。通过将地址空间的数据进行分块,利用块大小作为磁盘和主存之间的传输单元。其中,VM系统将VM(指被虚拟化的磁盘)分割为称为虚拟页(virtual page )大小的块,物理存储器(指主存)被分割为称为物理页(也成为页帧)大小的块。物理页与虚拟页等大,通常为4k, 从而完成数据映射。
虚拟存储器将主存作为缓存:

VM需要判断一个虚拟页是否被缓存在DRAM中;如果是,需确定存在哪个物理页中。
如果不命中,需判断这个虚拟页存在磁盘的哪个位置,在物理存储器中选择一个牺牲页,将虚拟页从磁盘拷贝到DRAM中,并替换该牺牲页,如果该牺牲页数据发生了改变,则需要将该牺牲页写回磁盘。 该过程称为swap。

上述功能有操作系统,MMU,以及存放在物理存储器中的页表(每一个进程都有一个页表,用于完成 虚拟地址到物理地址的映射)来完成。

页命中与缺页
即物理地址指数据在主存中的真实地址,虚拟地址是对主存的一种抽象,将存储在磁盘的数据,缓存在主存上。

页命中
CPU通过虚拟地址读取在VP2中的虚拟存储器中的数据(通过地址翻译将虚拟地址作为一个索引定位到PTE2,读取VP2相关信息),VP2被缓存在DRAM中,使用PTE中的物理存储器地址(该地址指向PP1缓存页的起始地址),构造这个字的物理地址。

缺页
DRAM缓存不命中称为缺页,触发缺页异常,调用内核中的缺页异常处理程序。在磁盘和存储器之间传送页的活动称之为交换(swapping)或页面调度.

时间: 2024-10-08 03:31:05

虚拟存储器--虚拟地址与物理地址的相关文章

cpu为什么使用虚拟地址到物理地址的空间映射,解决了什么样的问题?

当处理器读或写入内存位置时,它会使用虚拟地址.作为读或写操作的一部分,处理器将虚拟地址转换为物理地址.通过虚拟地址访问内存有以下优势: 程序可以使用一系列相邻的虚拟地址来访问物理内存中不相邻的大内存缓冲区. 程序可以使用一系列虚拟地址来访问大于可用物理内存的内存缓冲区.当物理内存的供应量变小时,内存管理器会将物理内存页(通常大小为 4 KB)保存到磁盘文件.数据或代码页会根据需要在物理内存与磁盘之间移动. 不同进程使用的虚拟地址彼此隔离.一个进程中的代码无法更改正在由另一进程使用的物理内存.

Linux 虚拟地址与物理地址的映射关系分析

Ordeder原创文章,原文链接: http://blog.csdn.net/ordeder/article/details/41630945 源码版本 2.4.0 1. 虚拟空间 0-3G 用户空间  0x00000000  ~ 0xbfffffff 3-4G 内核空间     0xc0000000 ~ 0xffffffff 每个用户进程都有独立的用户空间(虚拟地址0-3),而内核空间是唯一的(相当于共享) 每个进程的用户空间用mm_struct描述,即task_struct.mm. 2.进程

虚拟地址到物理地址的地址变换过程

2015-05-09  青岛  张俊浩 内容部分来自<Unix内核源码剖析> 软件环境:UNIX V6 硬件环境:PDP-11/40(16位计算机) 第二章<进程>一节阐述了PDP-11/40的虚拟地址到物理地址的地址变换过程. MMU通过APR(Active Page Register)寄存器将虚拟地址变换为物理地址. APR寄存器由一个PAR(Page Address Register)寄存器和一个PDR(Page Description Register)寄存器构成. 内核通

虚拟地址和物理地址

物理地址: 放在寻址总线上的地址.放在寻址总线上,如果是读,电路根据这个地址每位的值就将相应地址的物理内存中的数据放到数据总线中传输.如果是写,电路根据这个地址每位的值就将相应地址的物理内存中放入数据总线上的内容.物理内存是以字节(8位)为单位编址的. 虚拟地址:每个进程有4GB的虚拟地址空间,每个进程自己的一套页目录和页表.基于分页机制,4G的地址空间被分成了固定大小的页,每一页或者被映射了物理内存,或者映射硬盘上的交换文件,或者什么也没有映射.程序中使用的都是4GB地址空间中的虚拟地址.而访

]Linux中的虚拟地址、物理地址和内存管理

Linux中的虚拟地址.物理地址和内存管理方式: http://m.blog.csdn.net/blog/yinjingyu_bisheng/8943650 Linux内存管理之mmap详解 : http://blog.chinaunix.net/uid-26669729-id-3077015.html Linux驱动虚拟地址和物理地址的映射 : http://blog.chinaunix.net/uid-25120309-id-3986354.html

自己学驱动13——内存管理单元MMU(虚拟地址和物理地址)

1.MMU简介 MMU负责完成虚拟地址到物理地址的映射,并提供硬件机制的内存访问权限检查.现代的多用户多进程操作系统通过MMU使得各个用户进程都拥有自己独立的地址空间:地址映射功能使得各个进程拥有"看起来"一样的地址空间,而内存访问权限的检查可以保护每个进程所使用的内存不会被其他进程所破坏.MMU增加了底层的复杂性,但是为上层程序开发提供了极大的方便. 2.虚拟地址与物理地址 虚拟地址最终需要转换为物理地址才能读写实际的数据,这通过将虚拟地址空间.物理地址空间划分为同样大小的一块块空间

[置顶] Linux 虚拟地址与物理地址的映射关系分析【转】

转自:http://blog.csdn.net/ordeder/article/details/41630945 版权声明:本文为博主(http://blog.csdn.net/ordeder)原创文章,未经博主允许不得转载. 目录(?)[-] 虚拟空间 进程虚拟地址的组织 1 虚拟空间用户空间 2 内存区间 系统物理地址的组织 1 用户空间页面目录映射关系 2用户空间的映射 3内核空间虚拟地址的映射 相关数据结构关系图 Ordeder原创文章,原文链接: http://blog.csdn.ne

2440--linux2.6.30.4的的虚拟地址和物理地址的关系

1 想一次修改某个目录下所有文件的权限,包括子目录中的文件权限也要修改,要使用参数-R表示启动递归处理. 刚开始学字符设备驱动,感觉最难的是驱动和底层硬件的连接.linux上的驱动程序,是基于操作系统之上的,他并不直接和底层的硬件打交道,但是我们写的驱动必须能使硬件"跑"起来,即与硬件紧密相连. 就拿最简单的LED驱动来说,我们的驱动程序是在虚拟的内存上面跑的,但是最终,LED的点亮还是必须靠GPIO管脚的高低电平来控制.那么,我们的虚拟的内存怎么才能和实际的硬件上面的寄存器对应起来呢

虚拟地址与物理地址之间的关系

MMU 请点评 现代操作系统普遍采用虚拟内存管理(Virtual Memory Management)机制,这需要处理器中的MMU(Memory Management Unit,内存管理单元)提供支持,本节简要介绍MMU的作用. 首先引入两个概念,虚拟地址和物理地址.如果处理器没有MMU,或者有MMU但没有启用,CPU执行单元发出的内存地址将直接传到芯片引脚上,被内存芯片(以下称为物理内存,以便与虚拟内存区分)接收,这称为物理地址(Physical Address,以下简称PA),如下图所示.