美文网首页
虚存管理数据结构

虚存管理数据结构

作者: 4528283108ee | 来源:发表于2017-12-03 14:44 被阅读17次
虚拟内存管理数据结构

如上图所示,大概的进程虚拟内存管理关系图

重点结构  对于mm_struct中 mm代表的结构包括三个 1 mmap 链表,2 mmap_val平衡树 3 mmap_cache, 当vm_area_struct比较少的时候使用

链表保存结构,当数量较多的时候为了增加查找速度,使用平衡书,cache则用于缓存最后一次使用的vm结构,命中率大概35%

内核维护的结构则比较复杂

有三层结构 

第一层pglist_data用于表示numa中的不同区域

第二层zone_struct用于管理每个区域中不同管理区,包括ZONE_DMA, ZONE_NORMAL,ZONE_HIGHMEM

第三层用于描述内存块,包含一系列不同大小的内存块序列

注意以上三层结构全都用于描述物理内存。

mem_map节后则是对物理内存管理的最终数据结构,该数组中没一个页对应一个结构,且是按照线性一一映射的,通过物理内存找到该数据结构中的页使用如下代码

#define pte_page(x) \ (mem_map+((unsigned long)((x).pte_low>> PAGE_SHIFT))

#define virt_to_page(kaddr) (mem_map+(__pa(kaddr)>>PAGE_SHIFT))    根据内核虚拟地址查询page结构

相关文章

  • 虚存管理数据结构

    如上图所示,大概的进程虚拟内存管理关系图 重点结构 对于mm_struct中 mm代表的结构包括三个 1 mmap...

  • 4.虚存管理

    一、虚存的引入(为什么?) 突破了程序常驻内存。 1.常规存储器管理方式的特征 计算机程序运行时,组成程序的指令一...

  • 虚存、实存、共享内存

    .什么是虚存、实存、共享内存?虚存 ( VIRT = SWAP交换区 + RES 实际占用实存):进程 "需要的"...

  • 操作系统与Netty的内存管理对比分析

    操作系统层面的内存管理 背景: 内存管理的主要操作时把程序装入内存中执行,一般采用虚拟内存的方案 而虚存又是基于分...

  • 第一百六十二章 智质虚存的超自然质态

    智质虚存的超自然质态

  • php数据库

    一、什么是数据库 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,类似于excel表格,如存...

  • 进程虚存空间分布

    最近在看《程序员的自我修养》。在171页,有这样的一段话: 比如我们拿前面的程序“SectionMappping....

  • Thrift框架第一课

    你定义的service会以接口(虚基类,etc)的形式出现。数据结构就是数据结构,数据结构如果是参数进来的是指针(...

  • 面试总结

    1.java语言功底 :JDK1.8, Stream,原生数据结构、lambda表达式 2.数据结构、算法 3.虚...

  • 数据结构与算法 - 时间复杂度

    目录 一、数据结构概要二、算法概要三、时间复杂度简介四、求解时间复杂度 一、数据结构 数据结构 是相互之间存...

网友评论

      本文标题:虚存管理数据结构

      本文链接:https://www.haomeiwen.com/subject/jksabxtx.html