- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
郑重声明:未经本人允许,不得用于商业或非商业的转载和使用,如有
需要请联系:yrj1978@
初始化mem_map
mem_map是一个structpage的数组,管理着系统中所有的物理内存页面。在系
统启动的过程中,创建和分配mem_map的内存区域。UMA体系结构中,
free_area_init()函数在系统唯一的structnode对象contig_page_data中
node_mem_map成员赋值给全局的mem_map变量。调用的关系图:
主要的核心函数free_area_init_core(),为node的初始化过程分配本地的
lmem_map(node-node_mem_map)。数组的内存在bootmemory分配的
alloc_bootmem_node()函数分配.在UMA体系结构中,这个新分配的lmem_map
成为全局的mem_map.对于NUMA体系,lmem_map赋值给每一个node的
node_mem_map成员,而这个情况下mem_map就被简单的赋值为 PAGE_OFFSET(有
兴趣理解NUMA体系结构的可以阅读英文原版,了解更多信息)。UMA体系中,
node中的各个zone的 zone_mem_map就指向mem_map中的某些元素作为zone
所管理的第一个page的地址。
中间插段广告
Linux文化T恤,淘宝销售,有兴趣的可以购买。
淘宝店面地址:
/browse/search_auction.htm?user=b0ccaa7bfdc57fd
ec4594501767832b6commend=all
Page
系统中的每个物理页面用structpage数据结构对象来表示,并且跟踪page使
用的状态: (省略了一些特定平台用到的成员)
structpage{
unsignedlongflags;
atomic_t_count;
union{
atomic_t_mapcount;
unsignedintinuse;
};
union{
struct{
unsignedlongprivate;
structaddress_space*mapping;
};
structkmem_cache*slab; /*SLUB:Pointertoslab*/
structpage*first_page; /*Compoundtailpages*/
};
union{
pgoff_tindex; /*Ouroffsetwithinmapping.*/
void*freelist; /*SLUB:freelistreq.slablock
*/
};
structlist_headlru;
#ifdefined(WANT_PAGE_VIRTUAL)
void*virtual;
#endif
};
union{
atomic_t_mapcount;
unsignedintinuse;
}: 和页表转换有关的PTE链,下面章节将描述。
index:这个成员根据page的使用的目的有2种可能的含义。第一种情况:如果
page是filemapping的一部分,它指明在文件中的偏移。如果page是交换缓
存,则它指明在address_space所声明的对象:swapper_space(交换地址空间)
中的偏移。第二种情况:如果这个page是一个特殊的进程将要释放的一个page
块,则这是一个将要释放的 page块的序列值,这个值在__free_page_ok()函数
中设置。
mapping:当文件或设备需要内存映射,文件或设备的inode对象有一个
address_space类型的成员。如果page属于这个文件或设备,mapping将 指向
inode中这个成员。如果page不属于任何文件或设备,但是 mapping被设置了,
则mapping指向了一个add
您可能关注的文档
最近下载
- 人教版(2024)七年级上册生物全册集体备课教案 .pdf
- YYT 1789.4-2022 体外诊断检验系统 性能评价方法 第4部分:线性区间与可报告区间.docx VIP
- 江西省临川第一中学2024-2025学年高一上学期开学考试历史试题(解析版).docx VIP
- 2023年汕头市投资控股集团有限公司人员招聘考试题库含答案解析.docx VIP
- 一种凝汽式汽轮机低压缸效率的在线计算方法.pdf VIP
- 口腔名词解释、大题.pdf VIP
- 《革命烈士诗抄》阅读试题及答案.docx VIP
- 招标代理投标文件.doc VIP
- 2022年汕头市投资控股集团有限公司校园招聘考试笔试试题及答案解析.docx VIP
- 2024年四川宜宾初中学业水平考试数学试卷真题(含答案详解).doc VIP
文档评论(0)