2015.4.8 物理和虚拟地址

在计算机中,每个程序要是想先运行,首先要加载到内存中,但是内存是有限的,也就是说我程序的大小也是受到了限制的,这样并不好。因此,发明了一种思想,这是一个抽象概念:虚拟存储器。当我需要数据或者程序的时候,再加载到我的内存中执行,否则就存储在硬盘上,但是如果我要是想调用程序中的某一部分代码的时候,由于我的程序原本很大,但是内存存不下,因此我需要把程序分隔成小块分入内存中。但是我如何找到呢?对于内存的每个数据块,都有一个物理地址,这是和硬件相关的,对于每个程序,我们可以把每个数据块也进行线性排序,这样我们可以人工标记一个逻辑地址。于是,当我想要调用程序的某些代码的时候,我需要根据逻辑地址,进行转化,到内存中区查找物理地址中的数据。

这就是想了虚拟地址转化到物理地址,而这个转化称作地址翻译,是在MMU存储器管理单元中实现的。

我们可以将逻辑地址和物理地址看做是两个空间,每个程序可以有自己很大的逻辑地址,这与硬件无关,就好像我们的个人梦想可以和现实无关一样。当我需要调用程序某一块的时候,其实虚拟存储的思想就是一个映射,把逻辑映射到物理。就好像我们在实际生活中只能调取梦想中的一部分似的。这个比喻不是特别恰当,不过可以帮助理解,我认为。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值