linux 虚 存 分 析 报 告

linux 虚 存 分 析 报 告

ID:13824369

大小:2.31 MB

页数:29页

时间:2018-07-24

linux 虚 存 分 析 报 告_第1页
linux 虚 存 分 析 报 告_第2页
linux 虚 存 分 析 报 告_第3页
linux 虚 存 分 析 报 告_第4页
linux 虚 存 分 析 报 告_第5页
资源描述:

《linux 虚 存 分 析 报 告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、Linux虚存分析报告方存好第一章前言2第二章LINUX虚存管理概述31、Linux虚存管理的基本特点32、Linux虚存管理的主要实现技术3第三章LINUX虚存管理数据结构51、32-bit虚拟地址52、Linux的多级页表结构53、页表项的格式64、动态地址映射75、用户进程的虚拟内存结构86、我们的工作10第四章PROCESS的虚存管理数据结构的建立、维护、拆除及相关系统调用流程111、进程的载入、创建及内存管理数据结构和链结关系的建立112、数据结构及链结关系的拆除(sys__exit)133、缺页中断服务14第五章主要函数分析16Memo

2、ry.c16mmap.c22第六章后记2929第一章前言Linux是一个功能强大的操作系统,而内存管理则是操作系统的核心,它负责管理计算机系统的存储器。作为操作系统的核心,必须能够克服物理内存的局限,使用户进程在透明方式下,拥有比实际物理内存大得多的内存。其策略之一就是使用虚拟内存。Linux成功地实现了以虚拟内存为核心的内存管理策略,强大得分页机制,公平得交换方式,各类有效得高速缓存,以及以页保护为主得保护措施等。内存管理的目的是要尽可能地方便用户。同时Linux系统通过对用户进程虚存的有效管理,作到了虚存对一般用户和Linux程序员的透明。本文

3、首先阐述了Linux虚存管理以基本特点和主要实现技术,并分析了Linux虚存管理的主要数据结构及其相关关系。围绕它的建立、维护、使用和拆除,作了一个粗浅的剖析,因本人水平有限,有不当之处,请老师指正。同时应该指出的是本文所做的工作离不开同组的林涛、徐玫峰和范昭伟同学的帮助,谢谢他们。29第一章Linux虚存管理概述Linux的内存管理采用页式管理,使用多级页表,动态地址转换机构与主存、辅存共同实现虚拟内存:每个用户Process拥有4GB的虚拟地址空间,Process在运行过程中可以动态浮动和扩展,为用户提供了透明的、灵活有效的内存使用方式,下面简

4、述Linux虚存管理以基本特点和主要实现技术:1、Linux虚存管理的基本特点1.更大的地址空间。虚拟内存可以是系统实际拥有的物理内存的若干倍。因而它使得操作系统看起来拥有比实际大得多的内存。2.合理的物理内存分配。Linux通过共享和交换策略,使各个运行的进程能公平地共享内存。3.保护。Linux存储管理子系统为每一内存页设置了“上锁位”,在线性地址及每级页表页项上设置了“读/写”位,这样来确保某一个进程不受其他进程的干扰。即使某一个进程失败了,也不会影响到其他进程和操作系统本身。4.共享虚拟内存Linux实现的虚拟内存允许两个进程之间互相共享内

5、存,例如:共享的库。在这种情形之下,库代码仅存在于一个进程,而不需要为每一个应用都复制一份。2、Linux虚存管理的主要实现技术1、请求调页(demandingpaging)与内存扩展用户Process创建时,并不是将它所需所有页都分配给相应物理页。开始时只装入页面中Process的第一个页面,其他页根据Process运行过程的请求从外存调入所需页面,当Process访问一个页表项P位为0的页中地址时,表示此页不在主存中,将产生缺页中断,系统调用handle_mm_fault()处理访问异常,为之分配相应物理页后,它再调用swap_in()函数,从

6、外存中读入该页面。Linux是一种请求式分页存贮管理,这才使之可以运行大于主存空间的Process。2、页换出策略29内存中页面不足时,Linux使用页面AGE技术实现了页淘汰策略的最近最少使用(LRU)算法:即每次换出时,总是选择最老的页换出,对易于从其他设备上获取的非脏(notdirty)页面。Linux采用丢弃(discarding)技术,如果发生过写操作,则将该页写入系统的Swapfile中,这样就可以加快换入的速度。1、内存共享Linux将内存划分为4K大小的页面,为内存共享提供了基础:(1)不同进程间页面共享时,可令共享该页的Proce

7、ss的页表项(pte)均指向该页。(2)对kernel代码和数据段的共享,通过Process创建时fork()函数将kernel代码和数据段映射到用户虚存的3GB~4GB的空间中去,所以每个Process都可以通过一定方式共享kernel的代码和数据段。2、内存保护采用了“Hole”技术、虚存段的保护、地址转换机构、页表存取控制位(R/W位)等技术实现了内存保护。──“Hole”技术物理内存前4K是一空页(empty_zero_page),用来捕获NULL指针的异常访问。在Process每个虚存段后,都有一个“4K”的“Hole”,用来捕获虚存段的

8、越界访问。──虚存段保护方式主存中虚存段的全部或部分可以设为保护方式,防止非法访问。──页表项存取控制位(R/W位)页表项

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

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

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