(3)页面调入策略 为能使进程运行,必须事先将一部分要执行的程序和数据调入 内存 1.调入页面的时机 为了将进程运行时所缺的页面调入内存,可采取策略有: ·预调页策略是一种主动的缺页调入策略,即将那些预计在不 久的将来会被访问的程序或数据所在的页面,预先调入内存。 由于预测的准确率不高(50%),所以这种策略主要用于进程 的首次调入。有的系统将预调页策略用于请求调页,例如在 VAX/WMS操作系统中,采用了一种称为群页式的调页策略,当 系统将进程所请求的页面调入内存时,也同时将其相邻的几 个页面调入内存。 请求调页策略是指当进程在运行中发生缺页时,就立即提出 请求,由系统将缺页调入内存。目前的虚拟存储器中,大多 采用此策略。但这种策略在调页时须花费较大的系统开销, 如需频繁启动磁盘I/0
(3)页面调入策略 为能使进程运行,必须事先将一部分要执行的程序和数据调入 内存。 1. 调入页面的时机 为了将进程运行时所缺的页面调入内存,可采取策略有: • 预调页策略是一种主动的缺页调入策略,即将那些预计在不 久的将来会被访问的程序或数据所在的页面,预先调入内存。 由于预测的准确率不高(50%),所以这种策略主要用于进程 的首次调入。有的系统将预调页策略用于请求调页,例如在 VAX/VMS操作系统中,采用了一种称为群页式的调页策略,当 系统将进程所请求的页面调入内存时,也同时将其相邻的几 个页面调入内存。 • 请求调页策略是指当进程在运行中发生缺页时,就立即提出 请求,由系统将缺页调入内存。目前的虚拟存储器中,大多 采用此策略。但这种策略在调页时须花费较大的系统开销, 如需频繁启动磁盘I/O
页面调入策略-1 2。从何处调入页面 在虚拟存储系统中,外存(硬盘)常常被分成两部分; 文件区(用于存放文件)和对换区(用于存放对换页 面)。通常,对换区的磁盘I/0速度比文件区要高 每当进程发出缺页请求时,系统应从何处将缺页调入 内存呢?在UNIX系统中,对于从未运行过的页面,都 应从硬盘文件区调入;对于曾经运行过而又被换出的 页面,可以从对换区调入;对于共享页面,该页面可 能已由其它进程调入内存,此时就无须再从对换区调 入
页面调入策略-1 2。从何处调入页面 在虚拟存储系统中,外存(硬盘)常常被分成两部分; 文件区(用于存放文件)和对换区(用于存放对换页 面)。通常,对换区的磁盘I/O速度比文件区要高。 每当进程发出缺页请求时,系统应从何处将缺页调入 内存呢?在UNIX系统中,对于从未运行过的页面,都 应从硬盘文件区调入;对于曾经运行过而又被换出的 页面,可以从对换区调入;对于共享页面,该页面可 能已由其它进程调入内存,此时就无须再从对换区调 入
(三)页面置换算法 (Page Replacement Algorithms) 在进程运行过程中,如果发生缺页,此时内存中又无空闲 块时,为了保证进程能正常运行,就必须从内存中调出一页 程序或数据送磁盘的对换区。但将哪个页面调出,则须根据 定的页面置换算法来确定。置换算法的好坏将直接影响系 统的性能,不适当的算法可能会导致进程发生“抖动” ( Thrashing)。即刚被换出的页很快又被访问,需重新调入, 导致系统频繁地更换页面,以致一个进程在运行中把大部分 时间花费在完成页面置换的工作上,我们称该进程发生了 “抖动”。 从理论上讲,应将那些以后不再被访问的页面换出,或把那 些在较长时间内不会再被访问的页面换出。下面介绍几种常 用的置换算法
(三)页面置换算法 (Page Replacement Algorithms) 在进程运行过程中,如果发生缺页,此时内存中又无空闲 块时,为了保证进程能正常运行,就必须从内存中调出一页 程序或数据送磁盘的对换区。但将哪个页面调出,则须根据 一定的页面置换算法来确定。置换算法的好坏将直接影响系 统的性能,不适当的算法可能会导致进程发生“抖动” (Thrashing)。即刚被换出的页很快又被访问,需重新调入, 导致系统频繁地更换页面,以致一个进程在运行中把大部分 时间花费在完成页面置换的工作上,我们称该进程发生了 “抖动” 。 从理论上讲,应将那些以后不再被访问的页面换出,或把那 些在较长时间内不会再被访问的页面换出。下面介绍几种常 用的置换算法
页面置换算法-1 (1)最佳(0 ptimal)置换算法 它是一种理想化的算法,性能最好,但在实际上难于实现。即 选择那些永不使用的,或者是在最长时间内不再被访问的页 面置换出去。但是要确定哪一个页面是未来最长时间内不再 被访问的,目前来说是很难估计的,所以该算法通常用来评 价其它算法。 例:假定系统为某进程分配了三个物理块,并考虑有以下的 页面号引用串:7,0,1,2,0,3,0,4,2,3,0,3,2, 1,2,0,1,7,0,1。如下图所示,进程运行时先将7,0, 1三个页面装入内存。当进程访问页面2时,产生缺页中断, 此时oS根据最佳置换算法,页面7将在第18次才被访问,是三 页中将最久不被访问的页面,所以被淘汰。接着访问页面0时, 发现已在内存中,而不会产生缺页中断,以此类推。从图可 以看出,采用最佳置换算法,只发生了6次页面置换,9次缺 页中断
页面置换算法-1 (1)最佳(Optimal)置换算法 它是一种理想化的算法,性能最好,但在实际上难于实现。即 选择那些永不使用的,或者是在最长时间内不再被访问的页 面置换出去。但是要确定哪一个页面是未来最长时间内不再 被访问的,目前来说是很难估计的,所以该算法通常用来评 价其它算法。 • 例:假定系统为某进程分配了三个物理块,并考虑有以下的 页面号引用串:7,0,l,2,0,3,0,4,2,3,0,3,2, l,2,0,l,7,0,1。如下图所示,进程运行时先将7,0, 1三个页面装入内存。当进程访问页面2时,产生缺页中断, 此时OS根据最佳置换算法,页面7将在第18次才被访问,是三 页中将最久不被访问的页面,所以被淘汰。接着访问页面0时, 发现已在内存中,而不会产生缺页中断,以此类推。从图可 以看出,采用最佳置换算法,只发生了6次页面置换,9次缺 页中断
最佳(0 pima1)置换算法-1 页面7|012|030412303212101710 引用 物理71772212222221221212122|71717 块0 0|0100「0 01010|0 33333中 缺页xxx3x 发生了6次面置换,9次缺页中断
最佳(Optimal)置换算法-1 页 面 引 用 7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1 7 7 7 2 2 2 2 2 2 2 2 2 2 2 2 2 2 7 7 7 0 0 0 0 0 0 4 4 4 0 0 0 0 0 0 0 0 0 0 物 理 块 1 1 1 3 3 3 3 3 3 3 3 1 1 1 1 1 1 1 缺 页 x x x x x x x x x 发生了 6 次面置换, 9 次缺页 中断