操作系统中的逻辑和物理地址,

时间:2017-11-01 12:38:54

标签: operating-system

为什么需要逻辑地址?CPU可以直接为不同的进程生成物理地址。

我的第二个问题是CPU如何生成这个逻辑地址?

2 个答案:

答案 0 :(得分:1)

Logical address 是来自虚拟内存的地址。它的虚拟因为它实际上不存在。

  

为什么需要逻辑地址?

答案是通常程序员不知道主存储器的实际地址是什么(物理地址),而OS设计人员确实希望每个程序员都知道物理地址是什么。将这些虚拟地址转换为RAM的实际物理地址的所有负担都是Memory Management Unit的工作。

  

这个逻辑地址是如何由CPU产生的?

CPU只是根据分配特定进程的虚拟内存量生成这些地址,这通常是一个很好的连续块,但访问的实际地址不需要是连续的地址转换单元 (页面表,TLB,...)在引擎盖下工作,以获得正确的实际物理地址。

Here是一段精彩的视频,绝对可以清除你的疑惑。

答案 1 :(得分:0)

逻辑地址转换至少提供两个功能。首先,它对系统安全至关重要。页面保护是作为逻辑内存翻译的一部分实现的。

其次,它有助于内存管理。特别是,如果没有逻辑内存转换,就不可能实现虚拟内存。

我可以添加第三个可能被认为是另外两个的一部分。逻辑内存提供了共享内存的方法。例如,大多数操作系统定义了一系列逻辑地址,用作"系统空间。"这些逻辑地址映射到所有进程的相同物理地址相同。

在较大的应用程序中,进程共享相同的物理内存是很常见的。这是通过逻辑地址转换完成的。

  

我的第二个问题是CPU如何生成这个逻辑地址?

CPU [通常]不会生成逻辑地址。它们由CPU使用页表转换为物理地址。操作系统设置页表,定义从逻辑页到物理页帧的映射。