Memory management 在分配的区域之外访问内存的进程
假设一个进程被分配了一个特定的虚拟内存区域。 如果进程访问此分配区域之外的内存区域,处理器将如何反应 处理器是否终止进程?还是说这是一个错误Memory management 在分配的区域之外访问内存的进程,memory-management,operating-system,processor,Memory Management,Operating System,Processor,假设一个进程被分配了一个特定的虚拟内存区域。 如果进程访问此分配区域之外的内存区域,处理器将如何反应 处理器是否终止进程?还是说这是一个错误 提前感谢。进程实际上没有分配特定的虚拟内存区域。它们是分配给它们可以使用虚拟内存访问的物理帧。进程可以虚拟访问所有可用的虚拟内存 当编译高级语言时,它被放在可执行文件中。这个可执行文件是一种文件格式,它指定了一些内容,其中包括程序正在使用的虚拟内存。当操作系统启动该可执行文件时,它会将某些物理页面分配给新创建的进程。这些页面包含实际代码。操作系统需要设置页
提前感谢。进程实际上没有分配特定的虚拟内存区域。它们是分配给它们可以使用虚拟内存访问的物理帧。进程可以虚拟访问所有可用的虚拟内存 当编译高级语言时,它被放在可执行文件中。这个可执行文件是一种文件格式,它指定了一些内容,其中包括程序正在使用的虚拟内存。当操作系统启动该可执行文件时,它会将某些物理页面分配给新创建的进程。这些页面包含实际代码。操作系统需要设置页表,以便将进程使用的虚拟地址转换到内存中的正确位置(正确的物理地址) 当一个进程试图在不应该跳转到的虚拟地址的任何地方跳转时,可能会发生几种情况。这是未定义的行为 如osdev.org()所述: 当进程试图访问未映射到任何物理内存的虚拟内存区域时,当尝试在只读页上写入时,当使用保留位访问PTE或PDE时,或者当权限不足时,会导致页面错误异常 CPU在触发页面错误异常之前在堆栈上推送错误代码。异常处理程序必须分析错误代码,以确定如何处理异常。仅使用异常代码的底部3位,保留位3-31 这实际上取决于你所使用的语言和几个因素。例如,在汇编中,如果您尝试在RAM中跳转到随机虚拟地址。有几种情况可能发生