课堂回顾分页存储管理分段存储管理关硕20152069分页存储回顾关键词:定义、图示、相关公式、存在问题、相关拓展例题回顾关键词:逻辑地址、页内地址、页面大小、页号分段存储回顾关键词:定义、图示、与分页的区别、越界问题分段存储-回顾定义&基本原理、图示、公式、存在问题第1部分-分页存储管理方式第1部分-分页存储管理方式页表的作用:实现从页号到物理块号的地址映射将一个进程的逻辑地址空间分成若干个大小相等的片,称为页面或页系统为了保证进程的正确运行(能在内存中找到每个页面所对应的物理块),为每个进程建立的页面映像表。设逻辑地址由总长度为m的二进制数表示,页内地址为n位,则页号为m-n位。把内存空间分成与页面相同大小的若干个存储块,称为(物理)块或页框。对分号的若干个物理块分配的编号,每个块号在内存都有对应物理地址。块页页表页号块号3112110地址结构页内碎片:由于进程的最后一页经常装不满一块,而形成不可利用的碎片。页面大小应选择得适中:页面若太小会使每个进程占用较多的页面,导致进程的页表过长,占用大量内存,还会降低页面换进换出的效率。若页面较大,则会使页内碎片增大。并且页面的大小应是2的幂,通常为512B~8KB对程序进行分页存储对内存进行分块存储第1部分-分页存储管理方式地址结构3112110就是页内地址如果逻辑地址空间是2^m,页面大小是2^n(字节),那么逻辑地址的高m-n位是页号,低n位是页内地址(即位移量W),最多允许拥有的页面数是2^m-n(页)两部分的地址长度为32位,其中0~11位(计12位)为位移量,12~31位(计20位)为页号所以有:页面大小L=2^12=4KB;逻辑地址空间最多允许有2^20=1MB页第1部分-分页存储管理方式地址变换机构实现逻辑地址变换为物理地址地址变换任务是借助于页表完成的为了实现上的方便,系统中设置了一个页表寄存器。页表大多驻留在内存中,页表寄存器中存放页表在内存的起始地址和页表的长度,因为一个进程可以通过它的PCB来时时保存自己的状态,等到CPU要处理它的时候才将PCB(进程控制块)交给寄存器,所以,系统中虽然可以运行多个进程,但也只需要一个页表寄存器就可以了。页表寄存器地址变换step1step2step3求页号和页内地址,判断是否越界利用公式:P=(int)(A/L);W=A%L判断越界的方法:若PM(页表长度),则产生越界中断计算物理地址并访问内存利用公式:E=bxL+W,得到物理地址E用得到的物理地址E去访问内存。获取块号求P在页表中对应的项的地址:=页表起始地址F+Px页表项大小取出该表项中物理块号b的内容第1部分-分页存储管理方式※注意块内地址=页内地址块的大小=页面大小解决办法:引入快表提高地址变换速度。#快表存在命中率的问题#第1部分-分页存储管理方式效率问题占用内存过多解决办法:页表离散分配部分装入引入两级和多级页表减少内存的占用率。原因:由于页表是存放在内存中的,这使得CPU在每存取一个数据时,都要两次访问内存。例题回顾分页存储管理的地址变换,利用快表查找内存所需时间(1)该进程总长度为多少?(2)该进程每一页在内存中的起始地址?(3)给出逻辑地址:[0,100],[1,50],[2,0],[3,10](页号,页内地址)给出其对应的内存地址.1.假定主存为64KB,分成16块.某进程有4页:0.1.2.3分别被分配到2,4,1,6块第2部分例题回顾(1)块大小=64/16=4KB,因为块的大小=页的大小,所以页面大小=4KB,所以总长=4*4=16(KB)(2)在内存中的起始地址=块号*块的大小页号为0的页面被装入主存的第2块,所以地址为4*2=8K页号为1的页面被装入主存的第4块,所以地址为4*4=16K页号为2的页面被装入主存的第1块,所以地址为4*1=4K页号为3的页面被装入主存的第6块,所以地址为4*6=24K(3)内存地址=块号*起始地址+页内地址(位移量、页内偏移量、页偏移)所以对应的内存地址是:4K*2+100=82924K*4+50=164344K*1+0=40964K*3+10=24636需要注意:内存地址用到的是块号,而不是页号KB和数字之间的转换块大小和页面大小、块内地址和页内地址的等值关系第2部分例题回顾2、设访问快表时间:20ns,访问内存时间:100ns。计算以下几种情况下cpu存取一个数据的时间(1)不使用快表(2)使用快表,命中率分别为0%,20%,50%,80%,90%,98%,100%(1)不用快表则访问内存两次:t=200ns(2)用快表会有两种情况,命中和没有命中,t命中=120ns,t没有命中=220ns,所以0%t=220ns50%t=0.5*120+0.5*220=170ns80%t=0.8*120+0.2*220=140ns90%t=0.9*120+0.1*220=130ns98%t=0.98*120+0.02*220=122ns100%t=120ns需要注意:分析(2)时,要考虑命中和没有命中这两个情况的时间,再根据命中率进行运算。分段存储-回顾定义,与分页比较,基本原理,地址变换等分段存储离散分配的基本单位是段可以满足一下的用户需求:1、方便编程2、信息共享3、信息保护4、动态增长5、动态链接第3部分分段存储管理方式利用分段存储实现地址映射分段存储的地址变换两者都采用离散分配方式,且都要通过地址映射机构来实现地址变换。相似之处(1)页是信息的物理单位,分页是为实现离散分配方式,以消减内存的外零头,提高内存的利用率;段则是信息的逻辑单位,它含有一组其意义相对完整的信息,分段的目的是为了能更好地满足用户的需要(2)页的大小固定且由系统决定,段的长度不固定。(3)分页的作业地址空间是一维的,即单一的线性地址空间;而分段的作业地址空间则是二维的。不同之处与分页存储管理方式的比较第3部分分段存储管理方式×√123每段分配一个连续的分区,进程中的各个段可以离散地分配到内存中不同的分区中。每个段从0开始编址,采用一段连续的地址空间。程序地址空间按其内在逻辑关系划分成若干个相对独立的段,如主程序段、子程序段、数据段及堆栈段等。第3部分分段存储管理方式第3部分分段存储管理方式分段存储管理系统动态分配方式系统为整个进程分配一个连续的内存空间为每个分段分配一个连续的分区,而进程中的各个段可以离散地移入内存不同的分区中。为了能从物理内存中找出每个逻辑段所对应的位置,引入段表段表:实现逻辑段到物理内存区的映射。分段地址中的地址结构第3部分分段存储管理方式3116150在该地址结构中,允许一个作业最长有64K个段,每个段的最大长度为64KB。第3部分分段存储管理方式在进行地址变换时,系统将逻辑地址中的段号S与段表长度TL进行比较。若STL,表示段号太大。访问越界,于是产生越界中断信号;若未越界,则根据段表的起始地址和该段的段号+段内地址从而到的要访问的内存物理地址。谢谢