Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Memory management 为什么页面表中的每个条目都有一个验证位?_Memory Management_Operating System_Paging_Data Protection_Page Tables - Fatal编程技术网

Memory management 为什么页面表中的每个条目都有一个验证位?

Memory management 为什么页面表中的每个条目都有一个验证位?,memory-management,operating-system,paging,data-protection,page-tables,Memory Management,Operating System,Paging,Data Protection,Page Tables,我在研究分页内存管理,在某一点上,我发现页表的每个条目都有一个相关的位,用来指示帧是有效的还是无效的帧,由与该页表相关联的进程访问 我的问题是:如果一个进程有一个专用的页表,其中的条目对应于它的逻辑页和内存中的物理帧之间的映射,那么为什么我们需要添加一个外部位来指示一个进程自己的页表中的条目引用的帧是否可访问 我自己的解释是,对于我来说,由于一些未知的原因,一个进程可能在它自己的页面表中有一些条目,这些条目可能不会被使用,或者由于某些原因而变得无效。页面表中的位因系统而异。但是,页表条目必须适应

我在研究分页内存管理,在某一点上,我发现页表的每个条目都有一个相关的位,用来指示帧是有效的还是无效的帧,由与该页表相关联的进程访问

我的问题是:如果一个进程有一个专用的页表,其中的条目对应于它的逻辑页和内存中的物理帧之间的映射,那么为什么我们需要添加一个外部位来指示一个进程自己的页表中的条目引用的帧是否可访问


我自己的解释是,对于我来说,由于一些未知的原因,一个进程可能在它自己的页面表中有一些条目,这些条目可能不会被使用,或者由于某些原因而变得无效。

页面表中的位因系统而异。但是,页表条目必须适应三种状态:

  • 条目映射到一个有效的物理页面框架(准备就绪)
  • 条目有效,但当前未映射任何物理页面(access触发页面错误)
  • 条目无效(即页面未映射到地址空间)
  • 页面表必须具有位设置(或其他方式,例如空值)来表示这三种状态

    为了说明状态#3,链接器导致在加载程序时不映射第一页,以便捕获对空指针的引用