- 出版者的话
- 中文版序一
- 中文版序二
- 译者序
- 前言
- 关于作者
- 第 1 章:计算机系统漫游
- 第 2 章:信息的表示和处理
- 第 3 章:程序的机器级表示
- 第 4 章:处理器体系结构
- 第 5 章:优化程序性能
- 第 6 章:存储器层次结构
- 第 7 章:链接
- 第 8 章:异常控制流
- 第 9 章:虚拟内存
- 第 10 章:系统级 I/O
- 第 11 章:网络编程
- 第 12 章:并发编程
- 附录 A:错误处理
- 实验 1:Data Lab
- 实验 3:Attack Lab
- 实验 4:Architechture Lab
- 实验 5:Cache Lab
- 实验 6:Performance Lab
- 实验 7:Shell Lab
- 实验 8:Malloc Lab
- 实验 9:Proxy Lab
9.2 地址空间
地址空间(addressspace)是一个非负整数地址的有序集合:
$ {0,1,2,\cdots}
$$
如果地址空间中的整数是连续的,那么我们说它是一个线性地址空间(linear address space)。为了简化讨论,我们总是假设使用的是线性地址空间。在一个带虚拟内存的系统中,CPU 从一个有 $$\small N=2^n$$ 个地址的地址空间中生成虚拟地址,这个地址空间称为虚拟地址空间(virtual addres sspace):
$$ {0,1,2,\cdots,N—1}
$$
一个地址空间的大小是由表示最大地址所需要的位数来描述的。例如,一个包含$$\small N=2^n$$个地址的虚拟地址空间就叫做一个 n 位地址空间。现代系统通常支持 32 位或者 64 位虚拟地址空间。
一个系统还有一个物理地址空间(physical address space),对应于系统中物理内存的 M 个字节:
$$ {0,1,2,\cdots,M—1}
$$
M 不要求是 2 的幕,但是为了简化讨论,我们假设$$\small M=2^m$$ 。
地址空间的概念是很重要的,因为它清楚地区分了数据对象(字节)和它们的属性(地址)。一旦认识到了这种区别,那么我们就可以将其推广,允许每个数据对象有多个独立的地址,其中每个地址都选自一个不同的地址空间。这就是虚拟内存的基本思想。主存中的每字节都有一个选自虚拟地址空间的虚拟地址和一个选自物理地址空间的物理地址。
练习题 9.1
完成下面的表格,填写缺失的条目,并且用适当的整数取代每个问号。
利用下列单位:$$\small\rm K=2^{10}$$(kilo,千),$$\small\rm M=2^{20}$$(mega,兆,百万),$$\small\rm G=2^{30}$$(giga,千兆,十亿),$$\small\rm T=2^{40}$$(tera,万亿),$$\small\rm P=2^{50}$$(peta,千千兆),或$$\small E = 2^{60}$$(exa,千兆兆)。
虚拟地址位数(n) | 虚拟地址数(N) | 最大可能的虚拟地址 |
---|---|---|
8 | ||
$$\small 2^? = 64\rm K$$ | ||
$$\small \rm 2^{32}-1=? G-1$$ | ||
$$\small \rm 2^? = 256 T$$ | ||
64 |
这道题让你对不同地址空间的大小有了些了解。曾几何时,一个 32 位地址空间看上去似乎是无法想象的大。但是,现在有些数据库和科学应用需要更大的地址空间,而且你会发现这种趋势会继续。在有生之年,你可能会抱怨个人电脑上那狭促的 64 位地址空间!
虚拟地址位数(n) | 虚拟地址数(N) | 最大可能的虚拟地址 |
---|---|---|
8 | $$\small 2^8 = 256$$ | $$\small 2^8 -1= 255$$ |
16 | $$\small 2^{16} = 64~\rm K$$ | $$\small 2^{16} -1= 64~\rm K -1$$ |
32 | $$\small 2^{32} = 4~\rm G$$ | $$\small 2^{32} -1 = 4~\rm G -1$$ |
48 | $$\small \rm 2^{48} = 256~\rm T$$ | $$\small \rm 2^{48} -1 = 256~\rm T -1$$ |
64 | $$\small \rm 2^{64} = 16384~\rm P$$ | $$\small \rm 2^{64} -1 = 16384~\rm P-1$$ |
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论