- 1、本文档共25页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
4.7Linux虚拟存储管理
4.7.1物理内存管理4.7.2进程虚拟地址空间管理4.7.3页表机制4.7.4缺页异常处理4.7.1物理内存管理
1.物理内存数据结构为了管理非均质存储结构,物理内存分三个层次管理:(1)页框(2)管理区(3)存储节点
存储节点、管理区、页框的关系
存储节点存储区页框…页框存储区页框…页框……(1)页框管理?物理内存划分成页框,其长度与页面相等,所有页框都由mem_map表描述,初始化时通过free_area_init()函数创建。?mem_map本身是由mem_map_t组成的数组,每个mem_map_t描述一个页框,数组就代表系统中的全部页框,数组下标就是物理页框的序号。?内核用此结构体来管理页框,了解页框的使用情况,例如,是否空闲?是否被占用?谁拥有页框内的页面(如用户进程、内核数据或页缓冲)。mem_map_ttypedefstructpage{/*page数据结构*/structlist_headlist;/*list_head是通用双向链队列结构,链接page*/structpage*next_hash;/*pagecache的hash表中的后继指针*/atomic_tcount;/*访问此页框的进程个数*/unsignedlongflags;/*标志位*/unsigneddirty;/*修改标志*/structlist_headlru;/*页面换出链表或活跃链表*/unsignedlongage;/*页面的年龄,越小越先换出*/unsignedlongmap_nr;/*页框在mem_map表中的下标*/structpage**pprev_hash;/*pagecache的hash表中的前向指针*/structbuffer_head*buffers;/*若该页框用做缓冲区,指示缓冲区地址*/structinode*inode;/*页框内存放代码或数据所属文件的inode*/unsignedlongoffset;/*页框内存放代码或数据所属文件的位移*/structzone_structzone;/*页框所在管理区*/}mem_map_t;(2)管理区管理
内存被划分成三个区:ZONE_DMA区,专供DMA使用;ZONE_NORMAL区,被常规使用;ZONE_HIGHMEM区,内核不能直接映射区。设置ZONE_DMA是保证磁盘I/O所需的连续物理页框,ZONE_NORMAL里的页框用作通常的内存分配。zone_struct描述:
typedefstructzone_struct{spinlock_tlock;/*自旋锁,保证对zone的互斥访问*/unsignedlongoffset;/*offset表示该分区在mem_map中的起始页框号*/unsignedlongfree_pages;/*该区空闲页框数*/unsignedlongpages_min,pages_low,pages_high;/*该区最少、次少和最多页框数描述*/free_area_tfree_area[MAX_ORDER];/*伙伴系统中的空闲页框链表数组*/structpglist_data*zone_pgdat;/*该区所在存储节点pglist_data*/structpage*zone_mem_map;/*该区内存映射表*/unsignedlongzone_start_paddr;/*该区起始物理地址*/unsignedlongzone_start_mapnr;/*在mem_map中的下标*/unsignedlongsize;/*管理区物理内存大小*/char*name;/*管理区的名字*/}zone_t;(3)存储节点管理typedefstructpglist_data{/*存储节点的结构*/
您可能关注的文档
- 操作系统教程(第6版)课件6.2 并发进程的制约关系.pptx
- 操作系统教程(第6版)课件6.3 临界区.pptx
- 操作系统教程(第6版)课件6.5 临界区管理实现的硬件方式.pptx
- 操作系统教程(第6版)课件6.6 PV操作与进程互斥.pptx
- 操作系统教程(第6版)课件6.7 PV操作与进程同步.pptx
- 操作系统教程(第6版)课件6.8 生产者消费者问题探究.pptx
- 操作系统教程(第6版)课件6.9 管程概述.pptx
- 操作系统教程(第6版)课件6.11 霍尔管程的例.pptx
- 操作系统教程(第6版)课件6.12 进程通信.pptx
- 操作系统教程(第6版)课件6.15 死锁的防止.pptx
文档评论(0)