虚拟地址

本文介绍了虚拟地址的概念,每个程序的地址空间被分为页或页面,通过映射到物理内存来执行。虚拟存储器允许地址空间超过物理内存大小,当前使用部分存于内存,其余在磁盘。分页技术用于实现虚拟地址到物理地址的转换,MMU管理和权限控制。TLB作为高速缓存加速转换,而多级页表解决了大地址空间的页表管理问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

http://blog.sina.com.cn/s/blog_a46817ff0101hjzp.html

概念

每个程序拥有自己的地址空间,这个地址空间被分割成多个块,每一块称作一页或页面。每一页有连续的地址范围。这些页被映射到物理内存,但并不是所有的地址空间必须在内存中才能运行程序。当程序引用一部分在物理内存中的地址空间时,有硬件立刻执行必要的映射。当程序引用的到一部分不在物理内存中的地址空间时,由操作系统负责将缺的部分装入物理内存并重新执行失败的指令。

虚拟存储器的基本思想是程序,数据,堆栈的总的大小可以超过物理存储器的大小,操作系统把当前使用的部分保留在内存中,而把其他未被使用的部分保存在磁盘上。

两个概念:虚拟地址(virtual address,VA)和物理地址(physical address,PA

分页

这里写图片描述

大部分虚拟内存中使用一种分页的技术。由程序产生的这些地址称为虚拟地址,他们构成了一个虚拟地址空间,在使用虚拟内存的情况下,虚拟地址不是被直接送到内存的总线上,而是被送到内存管理单元(MMU),MMU把虚拟地址映射为物理内存地址

MMU的主要作用:实现VA到PA的映射(可以因此实现方便的动态内存管理); 实现不同的访问权限。

虚拟地址空间按照固定大小划分称为页面的若干单元。在物理内存中对应的单元称为页框。页面和页框的大小通常是一样的

这里写图片描述

TLB

转换检测缓冲区:虚拟地址到物理地址的映射必须非常快,所以采用TLB,将虚拟地址直接映射到物理地址

多级页表

如果虚拟地址空间很大,页表也会很大。针对这种情况,一是可以采取多级页表,而是可以采取倒排页表

http://blog.chinaunix.net/uid-28894229-id-3886897.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值