1、14 4.5.5 主存扩充主存扩充(虚拟内存虚拟内存)n为了使程序员在编程时不受内存的结构和容为了使程序员在编程时不受内存的结构和容量的限制,系统为用户构造一种存储器,其量的限制,系统为用户构造一种存储器,其结构可能与内存结构不同,容量可能远远超结构可能与内存结构不同,容量可能远远超过内存的实际容量。过内存的实际容量。n这种面向编程的存储器称为这种面向编程的存储器称为虚拟存储器虚拟存储器。n由虚存构成的存储空间称为虚存空间由虚存构成的存储空间称为虚存空间,或称虚或称虚地址空间。地址空间。2023-1-32程序局部性原理程序局部性原理n时间局部性时间局部性 一条指令被执行了,则在不久的将来它可一
2、条指令被执行了,则在不久的将来它可能再被执行能再被执行n空间局部性空间局部性 若某一存储单元被使用,则在一定时间内,若某一存储单元被使用,则在一定时间内,与该存储单元相邻的单元也可能被使用与该存储单元相邻的单元也可能被使用2023-1-33实现虚拟内存的基本原理实现虚拟内存的基本原理n将程序正在使用的部分内容放在内存,暂时将程序正在使用的部分内容放在内存,暂时不用的部分放在外存,在需要时由系统调入不用的部分放在外存,在需要时由系统调入内存,并将不需要(或暂不需要)的部分调内存,并将不需要(或暂不需要)的部分调出内存。出内存。n由操作系统结合相关硬件来完成上述工作由操作系统结合相关硬件来完成上述
3、工作n计算机好象为用户提供了一个容量远大于内计算机好象为用户提供了一个容量远大于内存的存储器,这个存储器称为存的存储器,这个存储器称为虚拟存储器虚拟存储器。2023-1-344.64.6虚拟页式存储管理虚拟页式存储管理1、基本思想、基本思想在进程开始运行之前,不是装入全部页面,而在进程开始运行之前,不是装入全部页面,而是装入几个或零个页面,之后根据进程运行是装入几个或零个页面,之后根据进程运行的需要,动态装入其它页面;的需要,动态装入其它页面;当内存空间已满,而又需要装入新的页面时,当内存空间已满,而又需要装入新的页面时,则根据某种算法淘汰某个页面,以便装入新则根据某种算法淘汰某个页面,以便装
4、入新的页面的页面2023-1-35XXXX7X5XXX340612虚地址空间虚地址空间物理地址空间物理地址空间 虚页虚页页框页框2023-1-362、页表表项、页表表项页号页号、内存块号、内存块号、驻留位、驻留位、外存地址外存地址、访问、访问位、修改位位、修改位n驻留位:表示该页是在内存还是在外存驻留位:表示该页是在内存还是在外存n访问位:根据访问位来决定淘汰哪页(由访问位:根据访问位来决定淘汰哪页(由不同的算法决定)不同的算法决定)n修改位:查看此页是否在内存中被修改过修改位:查看此页是否在内存中被修改过页号页号中断位中断位 内存块号内存块号外存地址外存地址访问位访问位 修改位修改位2023
5、-1-37151413121110 9 8 7 6 5 4 3 2 10000000000000000111100001011000000000000011110010001110100110101 00 0 1 0 0 0 0 0 0 0 0 0 0 1 0 00 1 1 0 0 0 0 0 0 0 0 0 1 0 0110在在/不在内存不在内存页表页表虚地址虚地址8196物理地址物理地址245802023-1-383、缺页中断(缺页中断(Page Fault)处理处理n在地址映射过程中,在页表中发现所要访问在地址映射过程中,在页表中发现所要访问的页不在内存,则产生的页不在内存,则产生缺页中
6、断缺页中断。n操作系统接到此中断信号后,就调出操作系统接到此中断信号后,就调出缺页中缺页中断处理程序断处理程序,根据页表中给出的外存地址,根据页表中给出的外存地址,准备将该页调入内存准备将该页调入内存n此时应将缺页的进程挂起(调页完成再唤醒)此时应将缺页的进程挂起(调页完成再唤醒)2023-1-39缺页中断与一般中断都是中断缺页中断与一般中断都是中断相同点:相同点:n保护现场保护现场 中断处理中断处理 恢复现场恢复现场不同点:不同点:n一般中断是一条指令完成后中断,缺页中断一般中断是一条指令完成后中断,缺页中断是一条指令执行时中断是一条指令执行时中断n一条指令执行时可能产生多个缺页中断。如一条
7、指令执行时可能产生多个缺页中断。如指令可能访问多个内存地址,这些地址在不指令可能访问多个内存地址,这些地址在不同的页中。同的页中。2023-1-310为进程分配物理块要解决三个问题:为进程分配物理块要解决三个问题:n第一,确定最少物理块数;第一,确定最少物理块数;n第二,分配的物理块数目是否可变;第二,分配的物理块数目是否可变;n第三,不同的进程所分配的物理块数是否相第三,不同的进程所分配的物理块数是否相同同2023-1-311n最少物理块数是指能保证进程正常运行所需最少物理块数是指能保证进程正常运行所需的最少物理块数。若少于此值时,进程将无的最少物理块数。若少于此值时,进程将无法运行。法运行
8、。n进程应获得的最少物理块数与计算机的硬件进程应获得的最少物理块数与计算机的硬件结构有关,取决于指令的格式、功能和寻址结构有关,取决于指令的格式、功能和寻址方式方式 2023-1-312n两种分配策略:固定分配两种分配策略:固定分配 和和 可变分配。可变分配。n两种置换策略:全局置换两种置换策略:全局置换 和和 局部置换。局部置换。n组合后有三种方式组合后有三种方式:n固定分配局部置换固定分配局部置换n可变分配全局置换可变分配全局置换n可变分配局部置换可变分配局部置换2023-1-313固定分配局部置换固定分配局部置换 n(1)基于进程的类型或根据程序员的要求,为基于进程的类型或根据程序员的要
9、求,为每个进程分配一定数目的内存空间,如每个进程分配一定数目的内存空间,如M个个页框,在整个运行期间都不再改变。页框,在整个运行期间都不再改变。n(2)发现缺页时从该进程在内存的发现缺页时从该进程在内存的M个页面中个页面中选出一页换出。选出一页换出。n存在问题:一定数目的内存空间难以确定,存在问题:一定数目的内存空间难以确定,n太少,会频繁地出现缺页中断;太少,会频繁地出现缺页中断;n太多,使内存中驻留的进程数目减少。太多,使内存中驻留的进程数目减少。2023-1-314可变分配全局置换可变分配全局置换 n(1)OS保持一个空闲物理块队列,先为每个进保持一个空闲物理块队列,先为每个进程分配一定
10、数目的物理块。程分配一定数目的物理块。n(2)发现缺页时,由系统从空闲物理块队列中,发现缺页时,由系统从空闲物理块队列中,取出一物理块分配给该进程,并将欲调入的取出一物理块分配给该进程,并将欲调入的缺页装入其中。缺页装入其中。n(3)当空闲物理块队列中的物理块用完时,才当空闲物理块队列中的物理块用完时,才从内存中选择一页调出,该页可能是系统中从内存中选择一页调出,该页可能是系统中任一进程的页。任一进程的页。n是最易于实现的一种策略。是最易于实现的一种策略。2023-1-315可变分配局部置换可变分配局部置换 n先根据进程的类型或程序员的要求,为每个先根据进程的类型或程序员的要求,为每个进程分配
11、一定数目的物理块;进程分配一定数目的物理块;n发生缺页时发生缺页时,只从该进程在内存的页面中选只从该进程在内存的页面中选出一页换出。出一页换出。n如果频繁地发生缺页中断,则再为之分配若如果频繁地发生缺页中断,则再为之分配若干物理块,直至缺页率减低到适当程度为止;干物理块,直至缺页率减低到适当程度为止;反之,若缺页率特别低,则适当减少物理块。反之,若缺页率特别低,则适当减少物理块。2023-1-316n平均分配算法平均分配算法n按比例分配算法按比例分配算法n考虑优先权的分配算法考虑优先权的分配算法2023-1-317平均分配算法平均分配算法n将可供分配的物理块,平均分配给各个进程。将可供分配的物
12、理块,平均分配给各个进程。n这种方式未考虑到各进程本身的大小,表面这种方式未考虑到各进程本身的大小,表面公平造成实际不公平。公平造成实际不公平。2023-1-318按比例分配算法按比例分配算法 n根据进程的大小按比例分配物理块。根据进程的大小按比例分配物理块。nn个进程,每个进程的页面数是个进程,每个进程的页面数是Si,则系统中则系统中页面总数为:页面总数为:niiSS1物理块物理块 的总数为的总数为m,进程,进程i所能分到的物理所能分到的物理块数块数intmSSbii注意:应该取整,且必须大于最小物理块数。注意:应该取整,且必须大于最小物理块数。2023-1-319考虑优先权的分配算法考虑优
13、先权的分配算法 n为优先权高的分配较多的内存空间。为优先权高的分配较多的内存空间。n通常把内存中可供分配的物理块分成两部分:通常把内存中可供分配的物理块分成两部分:一部分按比例地分配给各进程;一部分按比例地分配给各进程;一部分则根据各进程的优先权应适当增加一部分则根据各进程的优先权应适当增加的物理块数,分配给各进程。的物理块数,分配给各进程。2023-1-3202023-1-3212023-1-322(2)请求调页策赂)请求调页策赂 n即进程即进程在运行中发现在运行中发现所要访问的页面不在内所要访问的页面不在内存时,立即提出请求,由系统将其所需页面存时,立即提出请求,由系统将其所需页面调入内存
14、。调入内存。n请求调页策略易于实现,在目前的虚拟存储请求调页策略易于实现,在目前的虚拟存储器中,大多采用此策略。器中,大多采用此策略。n缺点:因为每次请求只调入一页,增加了磁缺点:因为每次请求只调入一页,增加了磁盘盘IO的启动频率,系统开销大。的启动频率,系统开销大。2023-1-323n请求分页系统中,外存分为文件区和对换区。请求分页系统中,外存分为文件区和对换区。n分三种情况分三种情况:n (1)系统有足够的对换区空间,在进程运行系统有足够的对换区空间,在进程运行前,将与该进程有关的文件,从文件区拷贝前,将与该进程有关的文件,从文件区拷贝到对换区,全部从对换区调入所需页面,调到对换区,全部
15、从对换区调入所需页面,调页速度快。页速度快。2023-1-324(2)系统缺少足够的对换区空间系统缺少足够的对换区空间不会被修改的文件,直接从文件区调入,换出不会被修改的文件,直接从文件区调入,换出时不写回,再调入时仍从文件区直接调入;时不写回,再调入时仍从文件区直接调入;对可能被修改的部分,换出时换到对换区,再对可能被修改的部分,换出时换到对换区,再调入时从对换区调入。调入时从对换区调入。(3)UNIX方式方式未运行过的页面,都从文件区调入未运行过的页面,都从文件区调入;曾经运行过而又被换出的页面被放在对换区,曾经运行过而又被换出的页面被放在对换区,再次调入时从对换区调入。再次调入时从对换区
16、调入。允许页面共享,某进程请求的页面有可能已被允许页面共享,某进程请求的页面有可能已被其它进程调入内存,不用再从对换区调入其它进程调入内存,不用再从对换区调入 2023-1-325n程序所要访问的页面未在内存时,程序所要访问的页面未在内存时,n向向CPU发出缺页中断,发出缺页中断,n由中断处理程序首先保留由中断处理程序首先保留CPU环境,分析中环境,分析中断原因,断原因,n转入缺页中断处理程序。转入缺页中断处理程序。2023-1-3264.7页面淘汰算法页面淘汰算法n理想淘汰算法理想淘汰算法最佳页面算法(最佳页面算法(OPT)n最近最久未使用页面淘汰算法(最近最久未使用页面淘汰算法(LRU)n
17、先进先出页面淘汰算法(先进先出页面淘汰算法(FIFO)2023-1-3271、最佳置换算法、最佳置换算法 n最佳置换算法是一种理想化的理论算法,具最佳置换算法是一种理想化的理论算法,具有最好的性能,但在实际上却难于实现。有最好的性能,但在实际上却难于实现。n它选择它选择永不使用的,或者是在最长时间内不永不使用的,或者是在最长时间内不再被访问再被访问的页面作为淘汰页面。但这是无法的页面作为淘汰页面。但这是无法预知的,因而该算法无法实现。预知的,因而该算法无法实现。n它在固定分配页面方式中可保证获得最低的它在固定分配页面方式中可保证获得最低的缺页率。缺页率。n主要用于评价其他算法主要用于评价其他算
18、法 2023-1-328n该算法总是淘汰该算法总是淘汰最先调入内存最先调入内存的页面,即选的页面,即选择在内存中驻留时间最久的页面予以淘汰。择在内存中驻留时间最久的页面予以淘汰。n该算法实现时把一个进程已调入内存的页面该算法实现时把一个进程已调入内存的页面按先后次序链接成一个队列,并设置一个替按先后次序链接成一个队列,并设置一个替换指针,指向最老页面。换指针,指向最老页面。n实现简单、性能差实现简单、性能差2023-1-3293最近最久未使用(最近最久未使用(LRU)n选择最后一次访问时间距离当前时间最长的选择最后一次访问时间距离当前时间最长的一页并淘汰之一页并淘汰之 即淘汰最长时间没有使用的
19、页即淘汰最长时间没有使用的页 性能较好,实现代价很高性能较好,实现代价很高 软件方法或硬件方法软件方法或硬件方法2023-1-330LRU的的硬件实现:硬件实现:n系统为系统为每页每页设置设置一个寄存器一个寄存器R,n每当每当访问访问这一页时,将该页对应的寄存器这一页时,将该页对应的寄存器R高位高位置置1,n以后以后每个时间间隔每个时间间隔将所有的将所有的R右移一位右移一位,nR值越小,对应的页未被使用的时间越长。值越小,对应的页未被使用的时间越长。n当淘汰一页时就选择当淘汰一页时就选择R值最小的页值最小的页。所以淘汰的是最久未使用的页。所以淘汰的是最久未使用的页。R的位数越多越精确,但系统硬
20、件成本也就越的位数越多越精确,但系统硬件成本也就越高。高。2023-1-331LRULRU软件实现:软件实现:n设置一个设置一个页号栈页号栈,n当一个页面被当一个页面被访问访问时,就立即将它的页号时,就立即将它的页号压入页号压入页号栈,并检查页号栈中是否有与刚压入栈顶的相同的栈,并检查页号栈中是否有与刚压入栈顶的相同的页号,若有,则从页号栈中抽出原有的,以保证页页号,若有,则从页号栈中抽出原有的,以保证页号栈中无相同的页号。号栈中无相同的页号。n当系统要当系统要淘汰淘汰一页时,总是从页号一页时,总是从页号栈底栈底取出一个页取出一个页号淘汰,即淘汰的页是最久未使用的。号淘汰,即淘汰的页是最久未使
21、用的。2023-1-332LRULRU软件实现:软件实现:2023-1-333 某程序在内存中分配三个块,访问页的顺某程序在内存中分配三个块,访问页的顺序为序为4,3,2,1,4,3,5,4,3,2,1,5,按,按FIFO、LRU、OPT算法分别计算缺算法分别计算缺页次数页次数假设开始时所有页均不在内存假设开始时所有页均不在内存例例12023-1-334FIFO 4 3 2 1 4 3 5 4 3 2 1 5 4 3 2 1 4 3 5 5 5 2 1 1 4 3 2 1 4 3 3 3 5 2 2 4 3 2 1 4 4 4 3 5 5 x x x x x x x x x 共缺页中断共缺页中
22、断9次次FIFO2023-1-335 访问顺序访问顺序4 3 2 1 4 3 5 4 3 2 1 5 4 3 2 1 4 3 5 4 3 2 1 5 4 3 2 1 4 3 5 4 3 2 1 4 3 2 1 4 3 5 4 3 2 x x x x x x x x x x共缺页中断共缺页中断10次次 LRU 2023-1-336 OPT 4 3 2 1 4 3 5 4 3 2 1 5 4 3 2 1 1 1 5 5 5 2 1 1 4 3 3 3 3 3 3 3 5 5 5 4 4 4 4 4 4 4 4 4 4 x x x x x x x 共缺页中断共缺页中断7次次OPT2023-1-337
23、练习练习某程序在内存中分配某程序在内存中分配四四个块,访问页的走向为个块,访问页的走向为4,3,2,1,4,3,5,4,3,2,1,5,按,按LRU、OPT算法分别计算缺页次数算法分别计算缺页次数假设开始时所有页均不在内存假设开始时所有页均不在内存2023-1-338LRU 4 3 2 1 4 3 5 4 3 2 1 5页页1 4 3 2 1 4 3 5 4 3 2 1 5页页2 4 3 2 1 4 3 5 4 3 2 1页页3 4 3 2 1 4 3 5 4 3 2页页4 4 3 2 1 1 1 5 4 3 x x x x x x x x共缺页中断共缺页中断8次次2023-1-339OPT
24、4 3 2 1 4 3 5 4 3 2 1 5页页1 4 3 2 1 1 1 5 5 5 5 1 1页页2 4 3 2 2 2 2 2 2 2 5 5页页3 4 3 3 3 3 3 3 3 3 3页页4 4 4 4 4 4 4 4 4 4 x x x x x x 共缺页中断共缺页中断6次次2023-1-340LRU近似算法:近似算法:Clock算法算法在在页表页表中增加一中增加一访问位访问位,每当每当访问访问一页时,将该页的访问位由硬件一页时,将该页的访问位由硬件置置1,软件软件周期周期(T)性地将所有访问位性地将所有访问位置置0。在时间在时间T内,访问过的页访问位为内,访问过的页访问位为1,
25、反之为,反之为0,淘汰为淘汰为0 的页。的页。缺点:缺点:T难定。难定。太小,访问位为太小,访问位为0的页相当多,所选的不一定是的页相当多,所选的不一定是最久未用的。最久未用的。太大,所有页的引用位可能都为太大,所有页的引用位可能都为1,找不到合适,找不到合适的淘汰页。的淘汰页。2023-1-3412023-1-342改进型Clock置换算法 由访问位由访问位A和修改位和修改位M可以组合成下面四种类型的页面:可以组合成下面四种类型的页面:1类类(A=0,M=0):表示该页最近既未被访问,表示该页最近既未被访问,又未被修改,又未被修改,是最佳淘汰页。是最佳淘汰页。2类类(A=0,M=1):表示该
26、页最近未被访问,表示该页最近未被访问,但已被修改,但已被修改,并并不是很好的淘汰页。不是很好的淘汰页。3类类(A=1,M=0):最近已被访问,最近已被访问,但未被修改,但未被修改,该页有可能该页有可能再被访问。再被访问。4类类(A=1,M=1):最近已被访问且被修改,最近已被访问且被修改,该页可能再被访问。该页可能再被访问。2023-1-343最不经常使用(最不经常使用(LFU)n选择访问次数最少的页面淘汰之选择访问次数最少的页面淘汰之 与与LRU的硬件解法类似。的硬件解法类似。2023-1-344页面缓冲算法页面缓冲算法(PBA:Page Buffering Algorithm)n页面缓冲算
27、法中,被淘汰的页存放在两个链页面缓冲算法中,被淘汰的页存放在两个链表(队列):表(队列):1.页面未修改的淘汰页页面未修改的淘汰页空闲页链表空闲页链表(实质:空闲物理块链表)(实质:空闲物理块链表)2.页面已修改的淘汰页页面已修改的淘汰页已修改页面链已修改页面链表。表。2023-1-345n当需要读入一个页面时,便利用空闲物理块当需要读入一个页面时,便利用空闲物理块链表中的第一个物理块来装入。链表中的第一个物理块来装入。n当有一个当有一个未被修改的页要换出未被修改的页要换出时,并不将它时,并不将它换出内存,而是直接把它所在的物理块挂在换出内存,而是直接把它所在的物理块挂在空闲页链表的末尾空闲页
28、链表的末尾。n换出一个换出一个已修改的页面已修改的页面时,则将其所在的物时,则将其所在的物理块挂在理块挂在修改页面链表的末尾修改页面链表的末尾。n注:注:换出页面时,页面在内存并不做物理上换出页面时,页面在内存并不做物理上的移动,只是将页表中的的移动,只是将页表中的表项表项移到上述两个移到上述两个链表之一中。链表之一中。2023-1-346n优点:可使已被修改的页面和未被修改的页优点:可使已被修改的页面和未被修改的页面,都仍留在内存中。当进程以后再次访问面,都仍留在内存中。当进程以后再次访问这些页面时,就有可能只须花费较小的开销。这些页面时,就有可能只须花费较小的开销。只有当被修改页面达到一定
29、数量,例如只有当被修改页面达到一定数量,例如64个页个页面时,再将它们一起写回到磁盘,从而显著面时,再将它们一起写回到磁盘,从而显著地减少了磁盘地减少了磁盘IO的操作次数。的操作次数。2023-1-347(1)分配给进程的物理块数分配给进程的物理块数(2)页本身的大小页本身的大小(3)程序的编制方法程序的编制方法(练习)练习)(4)页淘汰算法页淘汰算法影响缺页次数的因素影响缺页次数的因素2023-1-348思考:分配给进程的物理块数增加缺页思考:分配给进程的物理块数增加缺页次数一定能够减少?次数一定能够减少?例例2有一虚拟存储系统,采用先进先出的页面淘汰算法。有一虚拟存储系统,采用先进先出的页
30、面淘汰算法。在内存中为每个进程分配在内存中为每个进程分配3块。进程执行时使用块。进程执行时使用页号的顺序为页号的顺序为 4 3 2 1 4 3 5 4 3 2 1 5(1)该进程运行时总共出现几次缺页。该进程运行时总共出现几次缺页。(2)若每个进程在内存有若每个进程在内存有4块,又将产生几次缺页。块,又将产生几次缺页。(3)如何解释所出现的现象。如何解释所出现的现象。2023-1-349FIFO 4 3 2 1 4 3 5 4 3 2 1 5页页1 4 3 2 1 4 3 5 5 5 2 1 1页页2 4 3 2 1 4 3 3 3 5 2 2页页3 4 3 2 1 4 4 4 3 5 5 x
31、 x x x x x x x x 共缺页中断共缺页中断9次次m=32023-1-350FIFO 4 3 2 1 4 3 5 4 3 2 1 5页页1 4 3 2 1 1 1 5 4 3 2 1 5页页2 4 3 2 2 2 1 5 4 3 2 1页页3 4 3 3 3 2 1 5 4 3 2页页4 4 4 4 3 2 1 5 4 3 x x x x x x x x x x共缺页中断共缺页中断10次次m=42023-1-351m=3时,缺页中断时,缺页中断9次次,缺页率缺页率9/12=75%m=4时,缺页中断时,缺页中断10次次,缺页率缺页率10/12=83%FIFO页面淘汰算法会产生异常现象(
32、称为页面淘汰算法会产生异常现象(称为Belady现象现象),即:当分配给进程的物),即:当分配给进程的物理页面数增加时,缺页次数反而增加理页面数增加时,缺页次数反而增加2023-1-352练习:程序对缺页的影响练习:程序对缺页的影响程序编制方法程序编制方法1:for j:=1 to 128 for i:=1 to 128 Ai,j:=0;程序编制方法程序编制方法2:for i:=1 to 128 for j:=1 to 128 Ai,j:=0;内存分配一页,初始时矩阵数据均不在内存;内存分配一页,初始时矩阵数据均不在内存;页面大小为页面大小为128128个整数;矩阵个整数;矩阵A A128X1
33、28128X128按行存放。按行存放。这两个程序执行时分别会产生多少次缺页中断?这两个程序执行时分别会产生多少次缺页中断?2023-1-353解解程序编制方法程序编制方法1:for j:=1 to 128 for i:=1 to 128 Ai,j:=0;程序编制方法程序编制方法2:for i:=1 to 128 for j:=1 to 128 Ai,j:=0;128*1281282023-1-354 在虚存中,页面在内存与外存之间频繁调度,以至于调度页面所需时间比进程实际运行的时间还多,此时系统效率急剧下降,甚至导致系统崩溃。这种现象称为颠簸或抖动原因:原因:n页面淘汰算法不合理n分配给进程的
34、物理页面数太少颠簸(抖动)颠簸(抖动)2023-1-355解决解决n基本思想:根据程序局部性原理,一般进程基本思想:根据程序局部性原理,一般进程在一段时间内总是集中访问一些页面,这些在一段时间内总是集中访问一些页面,这些页面称为活跃页面,如果分配给一个进程的页面称为活跃页面,如果分配给一个进程的物理页面数太少了,使该进程所需的活跃页物理页面数太少了,使该进程所需的活跃页面不能全部装入内存,则进程在运行过程中面不能全部装入内存,则进程在运行过程中将频繁发生中断将频繁发生中断n如果能为进程提供与活跃页面数相等的物理如果能为进程提供与活跃页面数相等的物理页面数,则可减少缺页中断次数页面数,则可减少缺
35、页中断次数n对于给定的访问序列选取定长的区间,称为对于给定的访问序列选取定长的区间,称为工作集窗口,落在工作集窗口中的页面集合工作集窗口,落在工作集窗口中的页面集合称为工作集称为工作集2023-1-356例如例如n工作集工作集某段时间内进程使用过的页面的集合。某段时间内进程使用过的页面的集合。N=105554777511623415341555343433312323444n控制缺页率范围控制缺页率范围Ws(t1)=1,4,5,7 t1Ws(t1)=3,4,5 t22023-1-3571、基本机制、基本机制2、分段共享、分段共享3、分段保护、分段保护 4.8 虚拟段式存储管理虚拟段式存储管理2
36、023-1-3581、段表内容、段表内容 增加:增加:n存取方式存取方式:标识段的存取属性是只执行、只读或允:标识段的存取属性是只执行、只读或允许读写。许读写。n访问字段访问字段A:记录该段被访问的频繁程度。记录该段被访问的频繁程度。n修改位修改位M:表示该段进入内存后,是否已被修改过。表示该段进入内存后,是否已被修改过。n存在位存在位:指示是否已调入内存。:指示是否已调入内存。n增补位:增补位:指示本段在运行过程中,是否进行过动态指示本段在运行过程中,是否进行过动态增长。增长。n外存始址外存始址:指示本段在外存中的起始地址,即起始:指示本段在外存中的起始地址,即起始盘块号。盘块号。基本机制基
37、本机制2023-1-3592、缺段中断处理、缺段中断处理检查内存中是否有足够的空闲空间检查内存中是否有足够的空闲空间 若有,则装入该段,修改有关数据结构,若有,则装入该段,修改有关数据结构,中断返回中断返回 若没有,内存中空闲区的总和是否满足若没有,内存中空闲区的总和是否满足要求?是,采用紧缩技术,转要求?是,采用紧缩技术,转;否,淘汰一(些)段,转否,淘汰一(些)段,转 P139 图图4-31 3、地址变换、地址变换 P140 图图4-32基本机制基本机制2023-1-3602023-1-3612、分段共享与保护、分段共享与保护共享段表:共享段表:在在系统系统中配置一张中配置一张共享段表共享
38、段表,所有共享段都在共享段表中占有一表项,所有共享段都在共享段表中占有一表项,表项中记录了共享段的表项中记录了共享段的段号和段长、内存段号和段长、内存始址、存在位始址、存在位等信息,并记录了共享此等信息,并记录了共享此分段的每个进程的情况。分段的每个进程的情况。P140 图图 4-332023-1-362(1)共享进程计数)共享进程计数count整型变量,记录共享该分段的进程数。整型变量,记录共享该分段的进程数。共享段只有当所有共享该段的进程全都不再需共享段只有当所有共享该段的进程全都不再需要它时,才由系统回收该段所占内存区。要它时,才由系统回收该段所占内存区。(2)存取控制字段)存取控制字段
39、不同的进程对同一共享段有不同的存取权限。不同的进程对同一共享段有不同的存取权限。(3)段号)段号 不同的进程可以使用不同的段号去共享该段。不同的进程可以使用不同的段号去共享该段。共享段表项共享段表项2023-1-363例子例子2023-1-364对对第一个第一个请求使用该共享段的进程,请求使用该共享段的进程,由系统为该段分配一物理区,把共享段调入该由系统为该段分配一物理区,把共享段调入该区,将该区的始址填入该进程段表相应项中,区,将该区的始址填入该进程段表相应项中,再在共享段表中增加一表项,填写有关数据,再在共享段表中增加一表项,填写有关数据,将将count置为置为1;其它进程其它进程再调用该
40、共享段时,再调用该共享段时,在调用进程的段表中增加一表项,填入该共享在调用进程的段表中增加一表项,填入该共享段的物理地址,段的物理地址,在共享段的段表填上调用进程名、存取控制等,在共享段的段表填上调用进程名、存取控制等,令令count加加1。(1)共享段的分配)共享段的分配2023-1-365(2)共享段的回收)共享段的回收某个进程不再需要共享段时,某个进程不再需要共享段时,取消在该进程段表中共享段所对应的表项,取消在该进程段表中共享段所对应的表项,对共享段表中对应对共享段表中对应count执行执行-1操作。操作。若减若减1后不为后不为0,则仅取消调用者进程在共享段表中,则仅取消调用者进程在共
41、享段表中的有关记录。的有关记录。若减若减1后为后为0,则由系统回收该共享段的物理内存,则由系统回收该共享段的物理内存,取消该段在共享段表中所对应的表项;取消该段在共享段表中所对应的表项;2023-1-3663、分段保护、分段保护n分段系统中常采用以下三种措施来确保信息分段系统中常采用以下三种措施来确保信息的安全。的安全。(1)越界检查)越界检查(2)存取控制检查)存取控制检查(3)环保护机构)环保护机构2023-1-367n(1)越界检查)越界检查段表寄存器存放段表寄存器存放段表长度段表长度信息;信息;段表中每个段表项记录有段表中每个段表项记录有段长段长。在进行存储访问时,若逻辑地址空间的段号
42、等在进行存储访问时,若逻辑地址空间的段号等于或大于段表长度,段内地址等于或大于段于或大于段表长度,段内地址等于或大于段长,都将产生地址越界中断信号。长,都将产生地址越界中断信号。2023-1-368(2)存取控制检查)存取控制检查 “存取控制存取控制”字段规定的常用访问方式:字段规定的常用访问方式:1)只读,只允许进行读访问;只读,只允许进行读访问;2)只执行,只允许调用该段去执行只执行,只允许调用该段去执行3)读读/写,允许对该段进行读写访问。写,允许对该段进行读写访问。n共享段对不同的进程,赋予不同的读写权限。共享段对不同的进程,赋予不同的读写权限。2023-1-369(3)环保护机构)环保护机构n这是一种功能较完善的保护机制,这是一种功能较完善的保护机制,n规定:规定:n低编号的环具有高优先权,低编号的环具有高优先权,OS处于处于0环内:环内:n重要的实用程序和操作系统服务在中间环;重要的实用程序和操作系统服务在中间环;n一般的应用程序在外环。一般的应用程序在外环。n 程序可以程序可以访问访问驻留在相同环或较低特权环中驻留在相同环或较低特权环中的数据,可以的数据,可以调用调用驻留在相同环或较高特权环驻留在相同环或较高特权环中的服务。中的服务。2023-1-3702023-1-371 请求分页存储管理地址变换流请求分页存储管理地址变换流程程2023-1-3