计算机操作系统操作系统 (30).pdf
第8章 内存管理(三)分页内存管理离散内存管理方案分页内存管理方案现代操作系统常用方案现代操作系统常用方案分段内存管理方案段页式内存管理方案分页(Paging)进程物理地址空间可能不连续如果有可用的物理内存,它将分给进程把物理内存分成大小固定的块,称为帧(帧(Frame)大小为2的幂早期:512字节至8192字节现在:4K-64K把逻辑内存也分为同样大小的块,称为页(页(Page)系统保留所有空闲帧的记录运行一个有N页大小程序,需要找到N个空帧来装入程序建立一个页表,把逻辑地址转换为物理地址存在内碎片逻辑内存和物理内存的分页模型分页地址被分为:页号(p)它包含每个页在物理内存中的基址,用来作为页表的索引页偏移(d)同基址相结合,用来确定送入内存设备的物理内存地址对给定逻辑地址空间2m 和页大小2n线性地址和二维地址page numberpage offsetpdm-nn地址转换机制分页的硬件支持1)根据逻辑地址中的页号p,到页表中找到第p项,第p项内存储的f就是页框号2)页框号f和页内偏移d构成物理地址32-byte的内存4-byte的页分页的例子空闲帧的分配页表的实现页表被保存在主存中页表基址寄存器(PTBR)指向页表页表限长寄存器(PRLR)表明页表的长度在这个机制中,每一次的数据/指令存取需要两次内存存取,一次是存取页表,一次是存取数据/指令解决两次存取的问题,是采用小但专用且快速的硬件缓冲,这种缓冲称为转换表缓冲器转换表缓冲器(TLB)或联想寄或联想寄存器存器TLBTLB并行查找地址转换(A,A)如果A在联想寄存器中,把帧号取出来否则从内存中的页表中取出帧号页号帧号使用TLB的分页硬件有效访问时间联想寄存器的查找需要时间单位a微秒假设内存一次存取需要b微秒命中率在联想寄存器中找到页号的百分比,比率与联想寄存器的大小有关命中率=有效访问时间(EAT)EAT=(a+b)+(1 )(a+2b)内存保护简单方法:把页号和页表限长寄存器(PRLR)比较内存的保护由与每个帧相连的保护位来实现有效-无效位附在页表的每个表项中:“有效”表示相关的页在进程的逻辑地址空间,并且是一个合法的页“无效”表示页不在进程的逻辑地址空间中页表中的有效位和无效位共享代码共享代码如果代码是可重入代码(只读),可以在进程间共享(如文本编辑器,编译器,数据库系统)共享代码必须出现在所有进程的逻辑地址空间的相同位置私有代码和数据私有代码和数据每个进程保留一个代码和数据副本存有私有数据和代码的页能够出现在逻辑地址空间的任意位置页共享一个共享页的例子