虚拟内存,虚拟地址

问题描述 投票:0回答:1

我已经浏览了各种在线文档/视频,以了解“虚拟地址,虚拟地址空间(VAS)”等等,但下面提到的一些疑问尚不清楚。

1)从硬盘读取程序时,CPU生成“虚拟地址”。那么这个虚拟地址在哪里?它是否存在于硬盘/ RAM /虚拟内存中?

2)执行时,需要将程序加载到RAM中,CPU为其生成虚拟地址。这些活动(生成VA和加载到RAM中)是同时发生还是顺序发生?如果有的话,内核/ MMU如何知道哪个特定的虚拟地址需要映射到RAM中的哪个物理地址?

3)寻呼是虚拟记忆技术。页面输出/输入和换出/相同或不同?如果不同,怎么样?

4)linux上的pmap cmd是VA到物理地址的表示吗?

5)如果没有,如何在linux上检查进程的VA和PA?

如果我的上述疑虑得到澄清,那将是非常好的和帮助。

virtual-memory virtual-address-space
1个回答
0
投票

你是偏离标志的。 CPU不生成虚拟/逻辑地址。操作系统定义将逻辑地址转换为物理地址的页表。 CPU解释这些表。

分页和交换是两回事。在分页中,可以在存储器和辅助存储器之间移动进程的各个页面。在交换中,整个过程被移动到内存和二级存储之间。

在虚拟内存和分页之前的几天,交换是常态。由于流程往往很小(大约32K),因此当流程倾向于使用千兆字节时,这并不像今天那么大。

© www.soinside.com 2019 - 2024. All rights reserved.