linux存储管理机制分析

linux存储管理机制分析

ID:15585864

大小:466.00 KB

页数:50页

时间:2018-08-04

linux存储管理机制分析_第1页
linux存储管理机制分析_第2页
linux存储管理机制分析_第3页
linux存储管理机制分析_第4页
linux存储管理机制分析_第5页
资源描述:

《linux存储管理机制分析》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、G200518029谭志远thomastan@emails.bjut.edu.cnLinux存储管理机制分析北京工业大学软件学院谭志远G200518029目录摘要2关键字21、数据结构表及变量说明31.1、数据结构及变量表31.2、数据结构描述32、完成功能的主要函数表43、页面失效处理(有效性失效)代码框图44、程序段代码注释65、Linux中存储器管理的相关概念及实现415.1、伙伴算法425.2、Slab435.3、缓冲区445.4、地址映射机制445.5、进程的虚拟空间455.6、页故障的产生4

2、75.7、交换机制475.8、Linux中新页框的分配方案485.9、缓冲区高速缓存485.10、刷新机制496、收获和感想497、参考文献5050G200518029谭志远thomastan@emails.bjut.edu.cn摘要作者针对Linux2.4.18版本中的memory.c文件进行了代码阅读和分析,通过阅读该文件进一步地理解了Linux中的存储管理机制,尤其是页面失效处理在Linux中的实现方式。作者把对源代码的分析和理解通过文字的形式在本文中整理、归纳出来。在文章中列出了一些与存储管理机

3、制实现有关的数据结构和重要变量,了解这些数据结构和变量有助于对源代码的阅读和理解;除此以外,还给出了memory.c文件实现页面失效处理的主要函数。作者认为在开始分析源代码前对代码的执行流程有一个初步的理解是十分必要的,所在进入代码分析前以原理框图的显示介绍了代码的执行流程。最后,对Linux存储管理的相关概念和实现方案进行了讲述,并且谈了一下作者在对memory.c文件进行了代码阅读和分析后的一些收获和感想。关键字页目录中间页目录页表地址映射页面分配50G200518029谭志远thomastan@e

4、mails.bjut.edu.cn1、数据结构表及变量说明1.1、数据结构及变量表主要数据结构或变量名具体含义structpage描述一个物理页框structvm_area_struct描述一个进程地址空间vm_operations_struct对进程地址空间的一些操作structfree_area_struct主要用于描述buddy算法中的一个空闲页框longmax_mapnr是当前系统中物理内存的页面数目longnum_physpages物理页面的数目void*high_memory高端内存的地址指

5、针structpage*highmem_start_page高位内存的起始页指针1.2、数据结构描述typedefstructpage{structlist_headlist;/*指向链表中的下一页*/structaddress_space*mapping;/*用来指定我们正在映射的索引节点(inode)*/unsignedlongindex;/*在映射表中的偏移.*/structpage*next_hash;/*指向页高速缓存哈希表中下一个共享的页*/atomic_tcount;/*引用这个页的个数*

6、/unsignedlongflags;/*页中各种不同的属性*/structlist_headlru;/*用在activelist中*/wait_queue_head_twait;/*等待这一页的页队列*/structpage**pprev_hash;/*与next_hash相对应*/structbuffer_head*buffers;/*把缓冲区映射到一个磁盘块*/void*virtual;/*Kernelvirtualaddress(NULLifnotkmapped,ie.highmem)*/str

7、uctzone_struct*zone;/*页所在的内存管理区*/}mem_map_t;structvm_area_struct{structmm_struct*vm_mm;/*虚拟区域的参数*/unsignedlongvm_start;/*虚拟区域的起始地址*/unsignedlongvm_end;/*虚拟区域的结束地址*/structvm_area_struct*vm_next;/*指向下一个vm_area_struct结构的指针*/pgprot_tvm_page_prot;/*虚拟区域的保护掩码*

8、/unsignedlongvm_flags;/*虚拟区域如何使用*/rb_node_tvm_rb;structvm_area_struct*vm_next_share;50G200518029谭志远thomastan@emails.bjut.edu.cnstructvm_area_struct**vm_pprev_share;structvm_operations_struct*vm_ops;/*虚拟区域上的相应的操作.*/unsigned

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

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

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