我正在阅读操作系统概念,我无法理解页表中有效无效位的使用。每个流程都有自己的流程表,不应该所有条目都有效吗?
附加到页表中每个条目的有效无效位:
“valid”表示关联页面位于进程的逻辑地址空间中,因此是合法页面
“invalid”表示该页面不在进程的“逻辑地址空间”
中
答案 0 :(得分:1)
如果条目无效,则MMU不会将其用于地址转换,从而在访问相应的内存区域时导致页面错误。
由于MMU不使用该条目,操作系统可以使用它来存储自己的信息,例如对文件系统实体的引用(例如inode号),它存储数据以释放数据一些其他进程的主内存(它将该页面交换出来)
当页面出现故障时,操作系统可以使用之前存储在该条目中的信息作出反应,将该数据从磁盘恢复到主存储器中。
当然,无效位也用于标记,因为它表示页面无效:在大多数系统中,使用过程需要从操作系统显式请求内存,访问尚未被授予的内存进程是一种访问冲突。
答案 1 :(得分:1)
在按需分页中,仅将当前所需的页面带入主存储器。
假定一个进程有5页: A,B,C,D,E 和 A 和 B 在内存中。借助有效无效位,系统可以在需要时知道页面 C,D 和 E 不在内存中。
简而言之:
有效无效位中的1表示该页面在内存中,0表示该页面可能无效或尚未进入内存。
答案 2 :(得分:0)
有效表示关联的页面位于逻辑地址空间中。 无效表示关联的页面不在逻辑地址空间中。