恳求分页体系是建立在根本分页的基础上的,为了能支撑虚拟存储器功用而添加了恳求调页功用和页面置换功用。
相应地,每次调入和换出的根本单位都是长度固定的页面,这使得恳求分页体系在完成上要比恳求分段体系简略。
恳求分段体系在换进和换出时是可变长度的段,因而,恳求分页便成为现在最常用的一种完成虚拟存储器的方法。
恳求分页中的硬件支撑
为了完成恳求分页,体系有必要供给必定的硬件支撑。除了需求一台具有必定容量的内存及外存的计算机体系外,还需求有页表机制、缺页中止组织以及地址改换组织。A8站源码交易平台
1)页表机制
在恳求分页体系中所需求的首要数据结构是页表。其根本效果仍然是将用户空间中的逻辑地址改换为内存空间中的物理地址。
因为只将应用程序的一部分调入内存,还有一部分仍在盘上,故需在页表中再添加若干项,供程序(数据)在换进、换出时参阅。
在恳求分页体系中的每个页表项如下所示:
各字段的说明如下:
状况位P:用于指示该页是否已调入内存,供程序拜访时参阅。
访问字段A:用于记载本页在一段时间内被拜访的次数,或记载本页最近已有多长时间未被拜访,供挑选换出页面时参阅。
修正位M:表明该页在调入内存后是否被修正过。供置换页面时参阅。
因为内存中的每一页都在外存上有一份副本,因而,若未被修正,在置换该页时就不需求将该页写回到外存上,以削减体系的开支和发动磁盘的次数;若已被修正,则有必要将该页重写到外存上,以确保外存中所保存的始终是最新副本。A8站源码交易平台
外存地址:用于指出该页在外存上的地址,一般是物理块号,供调入该页时参阅。
2)缺页中止组织
在恳求分页体系中,每逢所要拜访的页面不在内存中时,便发作一次缺页中止,恳求OS将所缺之页调入内存。
缺页中止作为中止,相同需求阅历比如维护CPU现场、剖析中止原因、转入缺页中止处理程序进行处理、康复CPU现场等几个进程。
但缺页中止又是一种特别的中止,它与一般的中止比较,有着显着的差异,首要体现在下面两个方面:
在指令履行期间发作和处理中止信号。一般,CPU都是在一条指令履行完成后,才查看是否有中止恳求抵达。若有,便去呼应,不然,持续履行下一条指令。但是,缺页中止是在指令履行期间,发现所要拜访的指令或数据不在内存时所发作和处理的。A8站源码交易平台
一条指令在履行期间,或许发作屡次缺页中止。所以,体系中的硬件组织应能保存屡次中止时的状况,并确保最终能返回到中止前发作缺页中止的指令处持续履行。
3)地址改换组织
恳求分页体系中的地址改换组织,是在分页体系地址改换组织的基础上,为完成虚拟存储器而添加了某些功用而构成的,
如发作和处理缺页中止,以及从内存中换出一页的功用等等。
在进行地址改换时,首先去检索快表,企图从中找出所要拜访的页。若找到,便修正页表项中的拜访位。关于写指令,还需将修正方位成“1”, 然后使用页表项中给出的物理块号和页内地址构成物理地址。地址改换进程到此结束。A8站源码交易平台
如果在快表中未找到该页的页表项时,应到内存中去查找页表,再依据找到的页表项中的状况位P,了解该页是否已调入内存。
若该页已调入内存,这时应将此页的页表项写入快表,当快表已满时,应先调出按某种算法所确认的页的页表项;然后再写入该页的页表项。
若该页没有调入内存,这时应发作缺页中止,恳求OS从外存把该页调入内存。A8站源码交易平台
地址改换组织:

从何处调入页面?
在恳求分页体系中的外存分为两部分:用于寄存文件的文件区和用于寄存对换页面的对换区。一般,因为对换区是选用接连分配方法,而文件是选用离散分配方法,故对换区的磁盘I/O速度比文件区的高。这样,每逢发作缺页恳求时,体系应从何处将缺页调入内存,A8站源码交易平台可分红如下三种状况:
1) 体系具有满足的对换区空间,这时能够全部从对换区调入所需页面,以提高调页速度。
2) 体系短少满足的对换区空间,这时但凡不会被修正的文件,都直接从文件区调入;而当换出这些页面时,因为它们未被修正而不用再将它们换出,今后再调入时,仍从文件区直接调入。但关于那些或许被修正的部分,在将它们换出时,便须调到对换区,今后需求时,再从对换区调入。
3) UNIX方法。因为与进程有关的文件都放在文件区,故但凡未运转过的页面,都应从文件区调入。而关于从前运转过但又被换出的页面,因为是被放在对换区,因而在下次调入时,应从对换区调入。因为UNIX体系答应页面同享,因而, 某进程所恳求的页面有或许已被其它进程调入内存,此刻也就无须再从对换区调入。
页面调入进程:
向CPU宣布缺页中止
中止处理程序保存CPU环境转中止处理程序
该程序查找页表,得到该页在外存中的块号
若内存未满,发动磁盘I/O读入;若内存已满,先置换,再调入
最终修正页表对应项的内容,并将此页表项写入快表