欢迎来到天天文库
浏览记录
ID:50384682
大小:1.13 MB
页数:29页
时间:2020-03-05
《Linux虚存分析报告.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
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第五章主要函数分析
2、16Memory.c16mmap.c22第六章后记29第一章前言Linux是一个功能强大的操作系统,而内存管理则是操作系统的核心,它负责管理计算机系统的存储器。作为操作系统的核心,必须能够克服物理内存的局限,使用户进程在透明方式下,拥有比实际物理内存大得多的内存。其策略之一就是使用虚拟内存。Linux成功地实现了以虚拟内存为核心的内存管理策略,强大得分页机制,公平得交换方式,各类有效得高速缓存,以及以页保护为主得保护措施等。内存管理的目的是要尽可能地方便用户。同时Linux系统通过对用户进程虚存的有效管理,作到了虚存对一般用户和Linu
3、x程序员的透明。本文首先阐述了Linux虚存管理以基本特点和主要实现技术,并分析了Linux虚存管理的主要数据结构及其相关关系。围绕它的建立、维护、使用和拆除,作了一个粗浅的剖析,因本人水平有限,有不当之处,请老师指正。同时应该指出的是本文所做的工作离不开同组的林涛、徐玫峰和范昭伟同学的帮助,谢谢他们。第一章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()处理访问异常,为之
6、分配相应物理页后,它再调用swap_in()函数,从外存中读入该页面。Linux是一种请求式分页存贮管理,这才使之可以运行大于主存空间的Process。2、页换出策略内存中页面不足时,Linux使用页面AGE技术实现了页淘汰策略的最近最少使用(LRU)算法:即每次换出时,总是选择最老的页换出,对易于从其他设备上获取的非脏(notdirty)页面。Linux采用丢弃(discarding)技术,如果发生过写操作,则将该页写入系统的Swapfile中,这样就可以加快换入的速度。1、内存共享Linux将内存划分为4K大小的页面,为内存共享提供
7、了基础:(1)不同进程间页面共享时,可令共享该页的Process的页表项(pte)均指向该页。(2)对kernel代码和数据段的共享,通过Process创建时fork()函数将kernel代码和数据段映射到用户虚存的3GB~4GB的空间中去,所以每个Process都可以通过一定方式共享kernel的代码和数据段。2、内存保护采用了“Hole”技术、虚存段的保护、地址转换机构、页表存取控制位(R/W位)等技术实现了内存保护。──“Hole”技术物理内存前4K是一空页(empty_zero_page),用来捕获NULL指针的异常访问。在Pr
8、ocess每个虚存段后,都有一个“4K”的“Hole”,用来捕获虚存段的越界访问。──虚存段保护方式主存中虚存段的全部或部分可以设为保护方式,防止非法访问。──页表项存取控制位(R/W位)页表项以“R/W”
此文档下载收益归作者所有