Memory management x86处理器上所需的最小帧数

Memory management x86处理器上所需的最小帧数,memory-management,operating-system,x86,Memory Management,Operating System,X86,我正在x86上运行的PINTOS中实现虚拟内存,我想知道x86处理器上进程所需的最小帧数。 我发现这取决于底层指令集体系结构支持的最大间接级别,在x86上支持1个级别的间接级别。 因此,每个进程至少需要2帧。 如果指令长度超过1字节,则可能会跨越页面边界,我们将需要至少3帧。 我说的对吗?或者,决定每个进程的最小帧数还有更多的问题 谢谢页面目录-1 页面表-1 页面边界上的说明-2 页面边界上的源数据-2 页面边界上的目标数据-2 因此,对于像REP MOVSW/D这样的东西,您可能需要8页,像

我正在x86上运行的PINTOS中实现虚拟内存,我想知道x86处理器上进程所需的最小帧数。
我发现这取决于底层指令集体系结构支持的最大间接级别,在x86上支持1个级别的间接级别。 因此,每个进程至少需要2帧。
如果指令长度超过1字节,则可能会跨越页面边界,我们将需要至少3帧。
我说的对吗?或者,决定每个进程的最小帧数还有更多的问题

谢谢

页面目录-1
页面表-1
页面边界上的说明-2
页面边界上的源数据-2
页面边界上的目标数据-2


因此,对于像
REP MOVSW/D

这样的东西,您可能需要8页,像eax这样的通用寄存器是32位长的。当第二条指令中有mov%eax、[MEM_LOC1]mov[MEM_LOC1]、[MEM_LOC2]这样的指令时,源数据是否可以跨页面边界?这就是您为源数据和目标数据提供2帧的原因吗?
MOVSW/D
从DS:(E)SI指向的位置读取(D)字并写入(D)单词指向ES:(E)DI所指的位置。这是两个数据位置,每个位置都可以靠近页面边界。如果指令本身有前缀(地址大小覆盖、操作数大小覆盖、段覆盖、rep),则指令本身可以跨越页面边界。这就是为什么
REP MOVSW/D
会有6页。很难理解这个问题,“frame”通常意味着堆栈帧。你说的似乎是虚拟内存页。如果代码足够小,并且您设置了页面保护,使其可以包含代码、数据和堆栈,那么将所有内容都塞进一个4096字节的页面并非不可能。它与指令大小或间接寻址无关。@HansPassant:page frame在上下文中是一个非常常见的术语。