您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 第13讲存储器管理之基本分页存储管理方式
第十三讲存储器管理之基本分页存储管理方式连续分配方式试图通过把许多小的存储碎片“拼接”成一个大的区域,以便用来装入进程。我们可以换个思路,如果允许一个进程直接分散地装入到许多不相邻的分区中,这样就不用对碎片进行“紧凑”了。由此产生了离散分配方式。现在我们可以得出如下:碎片问题的解决方法(1)拼接/紧凑技术。(2)离散分配方式---允许将作业/进程离散放到多个不相邻接的分区中,就可以避免拼接。基于这一思想产生了以下的离散分配方式:分页式存储管理:离散分配的基本单位是页分段式存储管理:离散分配的基本单位是段段页式存储管理:离散分配的基本单位是段、页1基本概念概念:在分页式存储管理方式中,如果不具备页面对换功能,不支持虚拟存储器功能,在调度作业运行时,必须将它的所有页面一次调入内存,若内存没有足够的块,则作业等待,则称为纯分页或基本的分页存储管理方式。1.1基本思想就是先划分在装块。空间划分:(1)地址空间的划分:将一个用户进程的逻辑地址空间划分成若干个大小相等的区域,称为页或页面,并将各页从0开始编号。(2)物理空间的划分:内存空间也分成若干个与页大小相等的区域,称为(存储、物理)块或页框(frame),同样从0开始编号。内存分配:在为进程分配内存时,以块为单位,将进程中若干页装入到多个不相邻的块中,最后一页常装不满一块而出现页内碎片。注:需要CPU的硬件支持(地址变换机构)。1.2页面页面的概念前面提到了。若页面较小:减少页内碎片和内存碎片的总空间,有利于提高内存利用率。每个进程页面数增多,从而使页表长增加,占用内存就较大。页面换进换出速度将降低。若页面较大:每个进程页面数减少,页表长度减少,占用内存就较小。页面换进换出速度将提高。会增加页内碎片不利于提高内存利用率。页面大小-----选择适中,通常为2的幂,一般在512B-8KB之间。分页地址的地址结构-----如下图:页面的大小其实由位移量来确定。课本P114有计算公式,可以看一下。1.3页表1.3.1什么是页表记录页号到物理块号之间的对应关系,映射的映射表就是页表,1.3.2页表的作用就是实现从进程的页号到内存物理块号的地址映射。如图示1.3.3页表的性质记录了页面在内存中对应的块号。页表一般存放在内存中。所以页表不能太多,否则它本身也占内存过多了。访问一个字节的数据/指令需访问内存2次(页表一次,内存一次),所以出现内存访问速度降低的问题。一般分页系统中,常在页表中设置一个存取控制字段,用于标识对该存储块的内容保护也就是存取权限。表示允许读/写,只读等等。2地址变换机构引入:由于由页号到物理块号,页内地址到块内地址都是将逻辑地址,变换为内存空间的物理地址,因此在系统中必须设置地址变换机构。2.1地址变换机构的基本任务实现逻辑地址向物理地址的转换(由页号-块号)。由于,页表就是实现从页号到物理块号的变换,因此地址变换借助页表来完成。2.2基本地址变换机构过程描述:页表驻留在内存。系统中设置一个页表寄存器PTR,在其中存放页表在内存的起始地址和页表的长度。进程未执行时,页表的起始地址和页表长度存放再本进程的PCB中,当该进程被调度时,这两个数据装入页表寄存器。当进程执行时要访问某个逻辑地址中的数据时,地址变换机构会自动把逻辑地址分为页号和页内地址两部分。用页号为索引来检索页表。先将页号和页表长度比较,若页号大于等于页表长度,则表示本次所访问的地址超过进程的地址空间,越界错误中断。若无,则将页表起始地址与页号和页表项长度的乘积相加,便得到该表项再页表中的位置,由此可找到该页的物理块号。同时页内地址送入物理地址寄存器的块内地址字段中直接送入就可以了。这样便完成了逻辑地址到物理地址的转换。如下图例1:若在一分页存储管理系统中,某作业的页表如表所示,已知页面大小为1024B,试将逻辑地址2148,5012转化为相应的物理地址?画出其地址转换图。页号块号02132136解:分析:页面大小是1024B,即1M,可知页面是10bit.由题知逻辑地址为:物理地址为:(1)逻辑地址1011(十进制)的二进制表示为001111110011由此可知逻辑地址1011的页号0,查页表知该页放在第2物理块中,其物理地址的二进制表示为0101111110011所以逻辑地址1011对应的物理地址为0BF3H.其地址转换图如后所示。(2)略(3)逻辑地址5012(十进制)的二进制表示为:1001110010100可知该逻辑地址的页号为4,查页表知该页为不合法页,则产生越界中断。2.3具有快表的地址变换机构2.3.1引入基本的地址变换机构存在的问题是CPU每次存取一个数据时,需要访问内存两次,一次是访问内存中的页表,最终得到物理地址,第二次才是真正的访问数据。因此降低了速度。因此为了提高地址变换速度,我们引入了“快表”。2.3.2基本原理快表就是一个高速缓冲存储器,存放当前访问的那些页表项,也就是快表中存放的是部分页表。CPU产生的逻辑地址的页首先在快表中寻找,若找到(命中),就找出其对应的物理块;若未找到(未命中),再到内存的页表中找其对应的物理块,之后还要修改当前快表,把这个页表项添加到快表中。图见课本p117若快表中内容满,则按某种算法淘汰某些页。2.4两级和多级页表2.4.1引言当一个计算机系统的逻辑地址空间非常大。则页表就会很大,要占用大的内存空间,而且要采用连续存储方式。这实际上是没法满足的。因此我们提出两个解决方法:1、采用离散分配方式取代找一个大的内存空间来存放页表的问题。2、只将当前需要的部分页表放在内存,其他页表驻留在磁盘,需要时调入。2.4.2两级页表采用的是第一种方法,用离散分配方式解决。基本原理:把页表也进行分页,并离散地将各个页面分别存放在不同的物理块中。这样也就需要为离散分配的页表再建一个页表,称之为外层页表,其用于记录页表页面所对应的物理块号。如图示过程是:利用外层页号(页面页表号),作为外层页表的索引,从中找到指定页表分页的起始地址,再利用内层页号找到指定的页表项,其中含有该页所在的块号,在和页内地址构成实际的内存物理地址。详见P118。2.4.3多级页表将外层页表再进行分页,也将各外层页表页面离散地存放在不同的物理块中,再利用第2级的外层页表来记录它们之间的对应的关系。逻辑地址:如图
本文标题:第13讲存储器管理之基本分页存储管理方式
链接地址:https://www.777doc.com/doc-2246365 .html