为啥每个进程都需要自己的页表?

Posted

技术标签:

【中文标题】为啥每个进程都需要自己的页表?【英文标题】:Why does every process need its own page table?为什么每个进程都需要自己的页表? 【发布时间】:2011-12-27 15:00:11 【问题描述】:

我正在阅读有关内存管理技术的内容并且想知道:

为什么每个进程都需要自己的页表?

谢谢。

【问题讨论】:

【参考方案1】:

为什么每个进程都需要自己的页表?

它没有。但是每个地址空间都需要自己的页表,而且在大多数操作系统中每个进程都有自己的地址空间。

(IBM iSeries 的操作系统只有一个页表,因为它使用“单一地址空间”模型。)

【讨论】:

在许多操作系统中,地址空间属于单个进程。属于同一个“进程”(即同一个地址空间)的预定“类进程”任务称为“线程”。 @BasileStarynkevitch -- 对。通常,“进程”的主要区别特征是它有自己的地址空间。拥有自己地址空间的任务是“进程”,而共享地址空间的任务是“线程”。 (而“任务”是能够执行指令的实体。)(但不同操作系统之间的术语差异很大——这些术语并不是具体的。)

以上是关于为啥每个进程都需要自己的页表?的主要内容,如果未能解决你的问题,请参考以下文章

arm9_MMU

腾讯一面:内存满了,会发生什么?

linux内存管理

腾讯一面被问到内存满了,会发生什么?

Linux虚拟地址和物理地址的映射

linux内存管理(repost)