LINUX操作系统存储管理.ppt

LINUX操作系统存储管理.ppt

ID:62763354

大小:446.00 KB

页数:32页

时间:2021-05-23

LINUX操作系统存储管理.ppt_第1页
LINUX操作系统存储管理.ppt_第2页
LINUX操作系统存储管理.ppt_第3页
LINUX操作系统存储管理.ppt_第4页
LINUX操作系统存储管理.ppt_第5页
资源描述:

《LINUX操作系统存储管理.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

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

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

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

4、行分页,形成页表;再对页表进行分页,形成分页,形成页表的页表。这样一来,不仅虚拟地址空间里的页,可以存放在内存的不连续块中;页表中的页,也能够存放在不连续的内存块里,从而提高了内存的利用率,也就是多级页表结构,即“页表索引”。例:在分页式存储管理时,按照内存块的长度是4KB,那么一个32位的虚拟地址里,原先要用20位表示页号p,用12位表示页内的位移量d。Linux采用的二级分页式存储管理时,页内的位移量d仍旧占用12位,把20位的页号p,细分为10位的“页表索引号”p1和10位的“页号”p2,如图所示:

5、页表索引号页号位移量P1dP210位10位12位这意味着32位的虚拟地址空间,最多可以划分为1M个页面,它的页表就有1M个表项。如果每个表项占用4GB,那么这个页表就占用4MB大小的存储空间,可以被划分为1024个页面,为这1024个页面建立一个索引,从而形成了有1024个表现的页表索引。如图所示:用户虚拟地址空间页表页表索引...1个页面1个页面1M个页面1个页面1个页面1M个表项(1024个页面)...1024个表项在知道一个虚拟地址后,就可以根据地址的前10位,先去查页表索引,以便得到该索引所对应的

6、内存块的起始地址,最后,与位移量d相加后,就得到最终所需要的物理地址。整个地址转换的过程,如下图所示P1P2d....索引项....表项........p1dp21块1页1块1页页表索引页表内存物理地址当虚拟地址用64位表示时,虚拟地址空间的页面更多,用二级索引后的页表仍然很大。因此,Linux还可以提供三级页表式的分页式结构。这时的做法实际与二级页表做法一样,只是再增加了一级:第1级为页表索引,第2级为页表中间索引,第3级才是页表。毋庸置疑,三级页表式的分页式结构,其地址变换将更为复杂,速度会降低。2管

7、理虚拟存储空间的数据结构Linux进程的各个分区可以是不连续的,因此形成了若干个离散的虚拟区间。为了对它们加以管理,定义了vm_area_struct型及mm_struct型数据结构。vm_area_stuct:用于管理进程的每一个虚拟空间。mm_struct用于管理进程的整个虚拟空间、页表索引和页表。task_stuctmm_structvm_area_structvm_area_struct...mmm...map_count*pgd*mmapVm_endVm_start*vm_next...*vm_

8、nextVm_startVm_end.........一段虚拟空间一段虚拟空间...2.1管理分区虚拟区间的数据结构VMA一个进程虚拟存储空间中的每一个虚拟空间,都对应着一个vm_area_struct,通常被缩写为VMA。进程的每个VMA,都代表着它的虚拟存储空间中的一个连续空间。一个进程的两个VMA绝对不会重叠。这种管理方式,使得两个VMA之间可以不连续,使得两个VMA中可以实行不同的存储保护模式。例如,一个可以是只读的,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。