用户地址内存是如何组织的?

时间:2016-05-02 12:29:39

标签: linux process x86 kernel

我总是读到,在任何给定时间,处理器一次只能运行一个进程。因此,只有一个进程处于状态running。 但是,我们可以拥有许多可运行的进程。这些是等待调度程序安排执行的所有这些进程。

在任何给定时间,用户地址空间中是否存在所有这些可运行的进程?或者在用户地址空间中具有当前正在运行的进程,并且只有在它们被调度时它们才从磁盘返回到RAM。在这种情况下,是否意味着内核将进程任务描述符保留在其所有可运行进程的列表中,即使它们位于磁盘中?我想你可以说我很困惑。

1 个答案:

答案 0 :(得分:1)

如果CPU支持虚拟内存寻址,则每个进程都具有唯一的内存视图。尝试从相同内存地址读取的两个不同进程将映射到物理内存中的不同位置,除非内存映射告诉otherwize(共享内存,如DLL文件映射只读这样)

如果CPU不支持虚拟内存,只有内存保护,其他进程的内存将被保护掉,这样运行进程只能访问自己的内存。