`
longxj
  • 浏览: 101737 次
  • 性别: Icon_minigender_1
  • 来自: 南京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

reverse mapping

阅读更多

reverse mapping for anonymous pages

为了快速地根据page的指针找到对应的page table项,linux在每个page的mapping域里有一个anon_vma结构,是一个list,保存了所有引用它的vm_area_struct,而vm_area_struct的vm_mm项指向mm_struct,在mm_struct里的pgd则指向进程的全局页表。有点没看懂的是,一个page的anon_vma结构里还可能包含没有包括这个page的vm_area_struct。书中是这样写的:be warned that,even if an anonymous memory region includes different pages,there always is just one reverse mapping list for all the page frames in the region.翻译过来的意思是一个memory region的所有page共享一个anon_vma结构,这样的话的确可能会出现不包含某个page的vm_area_struct,但是不明白的是linux什么不每个page一个anon_vma结构。

reverse mapping for mapped pages

因为mapped page被共享的可能性很大,一个mapped page一般会被很多process共享 。所以为了更快地找到包含特定page的vm_area_struct。linux使用一个priority search tree,每个文件都有一个这样的树,它被保存在addree_space的i_mmap结构中,而address_space则被保存在inode结构中。这个priority search tree是有edward mccreight在1985年提出来的,它的每个节点都代表一个区间,使用两个index来定位树中节点:一个是radix,它代表区间的开始;一个heap index,它代表区间的结束。PST是一个基于radix的搜索树,同时又是一个基于heap index的堆,任何子节点的heap index都要小于父节点的heap index。在linux中,每个树节点是一个prio_tree_node,代表一个或多个vm_area_struct(vm_area_struct的shared.prio_tree_node指向它,映射文件相同部分的vm_area_struct被链接在同一个prio_tree_node下)。对于vm_area_struct而言,radix是指它映射文件的起始page,heap index是指它的终止page,另外还有一个size index(值为总共映射page数-1,目的是为了满足pst的性质).

分享到:
评论

相关推荐

    linux 反向映射

    Linux反向映射是一种在操作系统中用于内存管理的技术,它的目的是改进虚拟内存管理子系统的页面淘汰算法。在Linux内核的历史中,直到2.4版本之前,内核都没有机制可以直接将物理地址转换为用户虚拟地址,也就是所谓...

    openJpa的应用,感觉还可以

    OpenJPA(Open Java Persistence API)是Apache软件基金会下的一个开源项目,它是Java持久层标准JPA(Java Persistence API)的一个实现。JPA是Java EE平台中的一个重要组件,用于管理和处理应用程序中的对象-关系...

    Design for Embedded Image Processing on FPGAs - 基于FPGA的嵌入式图像处理系统设计 英文版

    9.2 Reverse Mapping. 9.3 Interpolation. 9.4 Mapping Optimisations. 9.5 Image Registration. 10 Linear Transforms. 10.1 Fourier Transform. 10.2 Discrete Cosine Transform. 10.3 Wavelet Transform. 10.4 ...

    OpenJPA 2.2.1 API (CHM格式)

     使 用 OpenJPA 开发企业应用时,保持数据库和对象视图的一致性是非常重要的工作,OpenJPA 支持三种模式处理数据库和对象视图的一致性:正向映射(Forward Mapping)、反向映射(Reverse Mapping)、中间匹配(Meet...

    降低乳腺癌术后淋巴水肿新技术——腋窝反向淋巴制图的研究进展.pdf

    腋窝反向淋巴制图(Axillary Reverse Mapping, ARM)是一种针对乳腺癌手术的新技术,旨在减少术后上肢淋巴水肿的发生。该技术在腋窝淋巴结切除术(Axillary Lymph Node Dissection, ALND)和/或前哨淋巴结切除术...

    DESIGN FOR EMBEDDED IMAGE PROCESSING ON FPGAS

    9.2 Reverse Mapping 282 9.3 Interpolation 285 9.3.1 Bilinear Interpolation 286 9.3.2 Bicubic Interpolation 288 9.3.3 Splines 290 9.3.4 Interpolating Compressed Data 292 9.4 Mapping Optimisations 292 ...

    cpu_rmap.rar_cpu affinity

    逆映射(reverse mapping)在这里指的是从CPU核心到进程或线程的反向关系映射,这通常用于跟踪哪些进程被绑定到哪个CPU,或者在运行时动态调整这些绑定。 在嵌入式Linux中,我们通常使用`sched_setaffinity`和`...

    Linux2.6内存管理反向映射分析与改进.pdf

    【Linux2.6内核内存管理】Linux 2.6版本的内核在内存管理方面引入了诸多改进,其中反向映射(reverse mapping)技术是一个关键的创新。反向映射技术增强了内存管理的效率,使得Linux系统能够更有效地处理内存分配和...

    rmap.rar_physical

    rmap(reverse mapping)机制,顾名思义,就是逆向映射,它是Linux内核为了跟踪虚拟页到物理页映射关系而设计的一种数据结构。通常,页表是用来从虚拟地址映射到物理地址,而rmap则提供了从物理页映射回所有引用它的...

    如何在Linux上建立DNS服务器.pptx

    例如,你可以设置DNS服务器管理的域名(domain)、反向映射(reverse mapping)以将IP地址转换为主机名、二级服务器(secondaries)以及转发规则(forwarders and forwardzones),这允许服务器将无法解析的查询转发...

    DNS工作原理以及实现过程详解

    3. 正向解析(Forward Mapping)和反向解析(Reverse Mapping):正向解析是从域名查找IP地址,而反向解析是从IP地址查找域名。正向解析的命名空间按照域的层次结构进行,反向解析则在arpa.in-addr.top domain下进行...

    深入理解Linux内存映射机制

    此外,内核还会使用各种技巧来优化内存管理效率,比如反向映射(reverse mapping)、使用更大的内存页等。 综上所述,Linux内核的内存映射机制是一项复杂而重要的技术,它不仅为操作系统提供了高效内存管理的基础,也...

    Linux内核及内核编程.pdf

    Linux内核采用了分页系统,它提供了高效的内存访问机制,同时也包含了多种内存管理策略,如反向映射(reverse mapping)、匿名和非匿名内存页面的管理等。 文件系统是Linux内核的另一个重要组成部分。Linux支持多种...

    DNS与BIND(第四版)(普通下载)

    There's also more extensive coverage of NOTIFY, IPv6 forward and reverse mapping, transaction signatures, and the new DNS Security Extensions; and a section on accommodating Windows 2000 clients, ...

    hibernate-configuration-3.0.dtd、hibernate-mapping-3.0.dtd

    《深入理解Hibernate配置与映射:hibernate-configuration-3.0.dtd与hibernate-mapping-3.0.dtd解析》 在Java世界里,Hibernate作为一款强大的对象关系映射(ORM)框架,极大地简化了数据库操作。而`hibernate-...

    Hibernate Reverse Engineering详细描述

    Hibernate 是一款开源的对象关系映射(Object-Relational Mapping,简称 ORM)框架,它为 Java 应用程序提供了对数据库的访问和操作功能。Hibernate 可以简化数据库编程工作,并提供了一种更加面向对象的方式来处理...

Global site tag (gtag.js) - Google Analytics