LINUX操作系统存储管理ppt课件

上传人:资****亨 文档编号:145849771 上传时间:2020-09-23 格式:PPT 页数:32 大小:448.50KB
返回 下载 相关 举报
LINUX操作系统存储管理ppt课件_第1页
第1页 / 共32页
LINUX操作系统存储管理ppt课件_第2页
第2页 / 共32页
LINUX操作系统存储管理ppt课件_第3页
第3页 / 共32页
LINUX操作系统存储管理ppt课件_第4页
第4页 / 共32页
LINUX操作系统存储管理ppt课件_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《LINUX操作系统存储管理ppt课件》由会员分享,可在线阅读,更多相关《LINUX操作系统存储管理ppt课件(32页珍藏版)》请在金锄头文库上搜索。

1、LINUX操作系统的存储管理,.,1.Linux的虚拟存储空间 Linux的虚拟存储空间大小 多级页表的地址转换 2.管理虚拟存储空间的结构 管理分区虚拟区间的数据结构VMA 管理VMA的数据结构 mm_struct 3.管理内存空间的数据结构 4.内存区的分配和页面淘汰策略,.,1 Linux的虚拟存储空间 1.1 Linux的虚拟存储空间 虚拟存储空间大小:由系统提供的地址结构决定。 在Linux中,虚拟地址用32个二进制位表示,则系统可为每进程提供的虚存空间,最多高达232=4GB. Linux内核把此4GB空间划分为两个部分:系统空间和用户空间,.,虚拟地址的空间结构,如图所示,进程A

2、的用户空间(3GB),进程A的用户空间(3GB),进程A的用户空间(3GB),.,4GB的虚拟空间,共享的系统空间的,.,任何一个进程都有自己的正文段、数据段、堆栈段等。 Linux就按照这种用户认可的逻辑单位,把虚拟空间划分为若干个分区,然后进行分页。 特点: 1,进程每一个分区段位于一个连续虚拟空间里,这里出现的内容,其特性相同,故位于一个分区里所有的页面,都具有相同的访问权限,所以有利于对它们分别实行存储保护和共享。,.,2,虚拟空间在各个分区之间可以不连续,即进程所用的虚拟地址并不一定是连城一片的,可以有空洞存在。,.,1.2 多级页表的地址转换 要进行多级页表转换的原因: 由于Lin

3、ux的虚拟地址是32位,因此向用户提供的最大虚拟空间可以达到4GB。又由于其内存块的长度是4KB,因此一个虚拟地址空间,最多可以有220 个页面。那么一个用户虚拟地址空间的页表,最多要用一百万个表项来记录页面与物理块的对应关系。显然,把这么大的一个页表放在连续内存区里的做法,是不可取的,不利于存储空间利用。,.,Linux操作系统的解决方法: Linux在对虚拟地址空间进行分页时,采用两级页表的机制:先是对虚拟地址空间进行分页,形成页表;再对页表进行分页,形成分页,形成页表的页表。这样一来,不仅虚拟地址空间里的页,可以存放在内存的不连续块中;页表中的页,也能够存放在不连续的内存块里,从而提高了

4、内存的利用率,也就是多级页表结构,即“页表索引”。,.,例: 在分页式存储管理时,按照内存块的长度是4KB,那么一个32位的虚拟地址里,原先要用20位表示页号p,用12位表示页内的位移量d。Linux采用的二级分页式存储管理时,页内的位移量d仍旧占用12位,把20位的页号p,细分为10位的“页表索引号”p1和10位的“页号”p2,如图所示:,.,页表索引号 页号 位移量,P1,d,P2,10位,10位,12位,这意味着32位的虚拟地址空间,最多可以划分为1M个页面,它的页表就有1M个表项。,.,如果每个表项占用4GB,那么这个页表就占用4MB大小的存储空间,可以被划分为1024个页面,为这10

5、24个页面建立一个索引,从而形成了有1024个表现的页表索引。如图所示:,.,用户虚拟 地址空间 页表 页表索引,.,1个 页面,1个 页面,1M个页面,1个 页面,1个 页面,1M个表项 (1024个页面),.,1024个表项,.,在知道一个虚拟地址后,就可以根据地址的前10位,先去查页表索引,以便得到该索引所对应的内存块的起始地址,最后,与位移量d相加后,就得到最终所需要的物理地址。整个地址转换的过程,如下图所示,.,P1,P2,d,.,索引项,.,表项,.,.,p1,d,p2,1块,1页,1块,1页,页表索引,页表,内存,物理 地址,.,当虚拟地址用64位表示时,虚拟地址空间的页面更多,

6、用二级索引后的页表仍然很大。因此,Linux还可以提供三级页表式的分页式结构。这时的做法实际与二级页表做法一样,只是再增加了一级:第1级为页表索引,第2级为页表中间索引,第3级才是页表。毋庸置疑,三级页表式的分页式结构,其地址变换将更为复杂,速度会降低。,.,2 管理虚拟存储空间的数据结构 Linux进程的各个分区可以是不连续的,因此形成了若干个离散的虚拟区间。为了对它们加以管理,定义了vm_area_struct型及mm_struct型数据结构。 vm_area_stuct:用于管理进程的每一个虚拟空间。 mm_struct用于管理进程的整个虚拟空间、页表索引和页表。,.,task_stuc

7、t mm_struct vm_area_struct vm_area_struct,.,mmm,.,map_count,*pgd,*mmap,Vm_end,Vm_start,*vm_next,.,*vm_next,Vm_start,Vm_end,.,.,.,一段虚拟空间,一段虚拟空间,.,.,2.1 管理分区虚拟区间的数据结构VMA 一个进程虚拟存储空间中的每一个虚拟空间,都对应着一个vm_area_struct,通常被缩写为VMA。进程的每个VMA,都代表着它的虚拟存储空间中的一个连续空间。一个进程的两个VMA绝对不会重叠。这种管理方式,使得两个VMA之间可以不连续,使得两个VMA中可以实行

8、不同的存储保护模式。例如,一个可以是只读的,另一个可以是读写的。,.,vm_area_struct里的主要内容如下: (1)vm_struct:给出该VMA的起址 (2)vm_struct:给出该VMA的末址 (3)*vm_next:一个进程的所有VMA,通过该指针连接成一个链表。,.,2.2 管理VMA的数据结构mm_struct 一个进程所有的VMA,都由mm_struct来管理。 mm_struct里的主要内容如下: (1)*mmap:是进程VMA链表的头指针。 (2)*pgd:指明该进程页表索引的位置。 (3)map_count:记录该进程拥有的VMA的数量。,.,由上图知,在进程的进

9、程控制块task_struct里,有一个字段mm,由它指出进程的mm_struct在哪里。这样,从进程控制块task_struct,就可以找到mm_struct;从mm_struct,就可以找到各个VMA和页表索引及页表。由此可知,找到进程控制块即可获得一个进程的所有信息。,.,3 管理内存空间的数据结构 在Linux存储管理中,内存块是进行存储分配和释放的单位。系统设置了一张存储分块表mem_map,它的每一个表项是mem_map_t型结构,对应着一个内存块,记录着该块的有关信息。,.,mep_map_t里的主要内容如下: (1)list:双向链表队列,它把不同性质的内存块链接成队列。 (2

10、)count:使用该块的进程数。被多个进程共享时,数值大于1. (3)age:该块的使用频率。页面淘汰时,值越小,被淘汰的可能性越大。,.,为了记录内存各块的使用情况,Linux设置了bitmap位示图,某位为1,表示对应块空闲;为0,表示对应块正在使用。如下图,.,Linux并不是用bitmap来进行存储分配和释放的,而是通过“空闲区队列表”:free_area. 在空闲区队列表里,Linux按照不同的方式,形成最多11个空闲区队列,如图所示:,.,free_area表 1 2 3,.,1,5,54,24,7,11,26,34,57,37,45,62,.,4 内存区的分配和页面淘汰策略 Li

11、nux是采用“伙伴(Buddy)”算法,来进行内存区的分配和释放。 当进程提出存储要求时,Linux并不是按照要求的内存块的数目进行分配的,而是将大于、等于这个数目的最小个内存块分配出去。 系统总是按照进程所需连续存储块的申请数量,到空闲区队列表free_area中能够满足要求的最小空闲区队列里查找。,.,当队列不空时,就把第一个空闲区分配出去。如果该队列为空,那么就继续查找下面的队列(其空闲的尺寸为上一个队列的2倍)。当它里有空闲区时,就把该空闲区一分为二:一个分配出去给进程使用;余下的一半,排到它上面的空闲区队列中。 用下图解释“伙伴”算法的实施过程,.,.,由于分配时是按照满足要求的最小

12、个内存块进行的,因此存储释放时,当然就将释放的区域连接到相应尺寸的空闲区队列里去。 还应该考虑空闲区的合并,以便能够得到更大的空闲区。 做法是:如果队列里有与所释放空闲区相邻接的空闲区存在,那么就应该把它们合并,然后排到该队列后面的空闲区队列里。,.,当发生缺页中断、要把所需要的页面调入内存,而此时内存又没有空闲的区域时,就将已经在内存的页面淘汰出去。 Linux采用的是称为“时钟(clock)”的算法。 该算法主要涉及到存储分块表mem_map的表项mem_map_t里面的age字段。 每当一个内存块被访问时,它的age进行减1.另外,Linux定时地对所有内存块进行扫描,如果它的age不为0,就对其的age进行减1操,.,作。当要淘汰页面时,就认为age值越大的块,其中的页面使用的频率就越高。而age为0的块里的页面是“老”页面,已经很长时间没有被访问过了,是淘汰对象。,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号