Operating system 在纯请求分页下,流程如何开始执行?

Operating system 在纯请求分页下,流程如何开始执行?,operating-system,paging,Operating System,Paging,我正在研究操作系统中的内存管理,突然产生了这样的疑问。据说,在纯请求分页中,进程开始执行时会将零页带到主存。虚拟地址空间包含许多内容,包括数据、堆栈、堆和文本区域或代码。因此,如果一个进程将要执行,并且它在主存中没有页面,那么指令寄存器将如何存储它的第一条指令,这将由CPU执行,从而导致进一步的页面错误?这是查看地址空间的一种不好的方式 虚拟地址空间包含许多内容,包括数据、堆栈、堆和文本区域或代码 地址空间由具有不同属性的内存组成:只读、只读/执行、读/写和很少读/写/执行 虚拟内存是使用辅助存

我正在研究操作系统中的内存管理,突然产生了这样的疑问。据说,在纯请求分页中,进程开始执行时会将零页带到主存。虚拟地址空间包含许多内容,包括数据、堆栈、堆和文本区域或代码。因此,如果一个进程将要执行,并且它在主存中没有页面,那么指令寄存器将如何存储它的第一条指令,这将由CPU执行,从而导致进一步的页面错误?

这是查看地址空间的一种不好的方式

虚拟地址空间包含许多内容,包括数据、堆栈、堆和文本区域或代码

地址空间由具有不同属性的内存组成:只读、只读/执行、读/写和很少读/写/执行

虚拟内存是使用辅助存储来模拟物理内存。程序加载器读取可执行文件并在磁盘上构建地址空间。例如,在某些系统上,可执行文件本身成为代码和数据的页面文件

加载程序后,地址空间由对操作系统有效但没有物理地址映射的页面组成

当程序开始运行时,它访问有效的页面,而没有导致页面错误的映射。操作系统页面错误处理程序查找页面存储在辅助存储器中的位置,将页面映射到物理页面框架,并将数据加载到页面中

所以,如果一个进程将要执行,并且它在主存中没有页面,那么指令寄存器将如何存储它的第一条指令,这将由CPU执行,从而导致进一步的页面错误

启动指令在可执行文件中指定。该值被加载到寄存器中。内存中没有第一条指令。当程序试图执行其第一条指令时,会出现页面错误