具体来说,将进程分成页面是什么意思?

use*_*672 6 paging virtual operating-system process

我理解“进程”概念的方式是,它是可执行程序的运行实例。exe 位于辅助内存中,而它的运行实例位于 RAM 中。如果这种理解是正确的,我想知道这个抽象描述的真正含义是什么:“将进程划分为‘页面’并在 RAM 中运行某些页面,并将其余页面保留在辅助内存中以便在需要时进行交换”?这里的问题是在虚拟内存的背景下。

根据版主的建议,在问题中添加“编程”上下文:

假设我编写了一个小程序来列出从 1 到 100 的数字(或者)来打印“Hello world”(或者)一些桌面实用程序来扫描文本文件并在桌面窗口中一一打印文件中的单词。考虑到我最终的可执行文件,一旦这些程序被编译和链接,当我运行可执行文件时,如何将可执行文件“分割”并在 RAM 中分部分运行?我该如何掌握和想象 RAM 中某个时间点“应该”什么、“不应该”什么的想法?

Ale*_*nze 0

在虚拟地址到物理地址的转换中,你就可以得到它(分区)。虚拟地址空间被分成一或几千字节的块(通常大小相同),每个块都可以与相同大小的物理内存块(页)相关联。

可执行文件(或进程)中尚未使用或最近未使用的那些部分不需要从磁盘复制到物理内存中,因此虚拟地址空间的相应部分可能不与物理内存也可以。当系统的可用物理内存不足时,它可能会重新调整某些页面的用途,必要时将其内容保存到磁盘(如果它们包含只读数据/代码,则不保存)。