用户地址内存是如何组织的?
How is user address memory organized?
我总是读到,在任何给定时间,处理器一次只能 运行 一个进程。因此只有一个进程处于状态 running
。
但是,我们可以有多个 运行nable 进程。这些都是正在等待调度程序安排其执行的所有这些进程。
在任何给定时间,用户地址 space 中是否存在所有这些 运行 可用进程?或者在用户地址 space 中有当前 运行ning 进程,并且只有在它们被调度后才会从磁盘返回到 RAM。在这种情况下,这是否意味着内核将进程任务描述符保留在其所有 运行 可用进程的列表中,即使它们在磁盘中也是如此?我想你可以看出我很困惑。
如果CPU支持虚拟内存寻址,每个进程都有唯一的内存视图。尝试从同一内存地址读取的两个不同进程将映射到物理内存中的不同位置,除非内存映射另有说明(共享内存,例如 DLL 文件被映射为只读)
如果CPU不支持虚拟内存,只支持内存保护,其他进程的内存会被保护掉,这样运行进程只能访问自己的内存。
我总是读到,在任何给定时间,处理器一次只能 运行 一个进程。因此只有一个进程处于状态 running
。
但是,我们可以有多个 运行nable 进程。这些都是正在等待调度程序安排其执行的所有这些进程。
在任何给定时间,用户地址 space 中是否存在所有这些 运行 可用进程?或者在用户地址 space 中有当前 运行ning 进程,并且只有在它们被调度后才会从磁盘返回到 RAM。在这种情况下,这是否意味着内核将进程任务描述符保留在其所有 运行 可用进程的列表中,即使它们在磁盘中也是如此?我想你可以看出我很困惑。
如果CPU支持虚拟内存寻址,每个进程都有唯一的内存视图。尝试从同一内存地址读取的两个不同进程将映射到物理内存中的不同位置,除非内存映射另有说明(共享内存,例如 DLL 文件被映射为只读)
如果CPU不支持虚拟内存,只支持内存保护,其他进程的内存会被保护掉,这样运行进程只能访问自己的内存。