加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长百科 > 正文

聊一聊Linux假造内存技能

发布时间:2019-03-20 22:41:12 所属栏目:站长百科 来源:Yngz_Miao
导读:以存储单位为单元来打点显然不实际,因此Linux把虚存空间分成多少个巨细相称的存储分区,Linux把这样的分区叫做 页。为了换入、换出的利便,物理内存也就按页的巨细分成多少个块。因为物理内存中的块空间是用来容纳虚存页的容器,以是物理内存中的块叫做

必要留意的是,页表是操纵体系建设的用于内存打点的表格。因此,一个措施在运行时,其页表也要存放到内存空间。假如一个措施只必要一个页表,则不会有什么题目。但假如,措施的假造空间很大的话,就会呈现一个较量大的题目。

好比:一个措施的假造空间为4GB,页表以4KB为一页,那么这个措施空间就是1M页。为了存储这1M页的页指针,那么这个页表的长度就相等大了,对内存的承担也很大了。以是,最好对页表也举办分页存储,在措施运行时只把必要的页复制到内存,而暂且不必要的页就让它留在辅存中。为了打点这些页表页,还要成立一个 记录页表页首地点的页目次表,于是单级页表就酿成了二级页表。二级页表的地点转换如下图所示:

虽然,假如措施的假造空间更大,那么也可以用三级页表来打点。为了具有通用性,Linux体系行使了三级页表布局:页目次(Page Directory,PGD)、中间页目次(Page Middle Directory,PMD)、页表(Page Table,PTE)。

Linux的页表布局

为了通用,Linux体系行使了三级页表布局:页目次、中间页目次和页表。PGD为 顶级页表,是一个pgdt数据范例的数组,每个数组元素指向一此中间页目次;PMD为 二级页表,是一个pmdt数据布局的数组,每个数组元素指向一个页表;PTE则是 页表,是一个pte_t数据范例的数组,每个元素中含有物理地点。

为了应用上的机动,Linux行使一系列的宏来袒护各类平台的细节。用户可以在设置文件 config中按照本身的必要对页表举办设置,以抉择是行使三级页表照旧行使二级页表。

在体系编译时,会按照设置文件 config中的设置,把目次 include/asm标记毗连到详细CPU专用的文件目次中。譬喻,对付i386CPU,该目次标记会毗连到include/asm-i386,并在文件pgable-2level-defs.h中界说了二级页表的根基布局,如下图:

个中还界说了:

  1. #define PGDIR_SHIFT  22 //PGD在线性地点中的起始地点为bit22 
  2. #define PTRS_PER_PGD  1024  //PGD共有1024个表项 
  3.                       
  4. #define PTRS_PER_PTE  1024  //PTE共有1024个表项 
  5. #endif 

在文件include/asm-i386/pgtable.h中界说了页目次和页表项的数据布局,如下:

  1. typedof struct { unsigned long pte_low; }  pte_t ;                     //页表中的物理地点,页框码 
  2. typedof struct { unsigned long pgd; }  pgd_t ;                         //指向一个页表 
  3. typedof struct { unsigned long pgprot; }  pgprot_t ;                   //页表中的各个状态信息和会见权限 

从界说可知,它们都是只有一个 长整型范例(32位)的布局体。

留意:如上文的“页的掩护”部门,页框码代表物理地点,只必要高20位就够了(由于页框的长度为4KB,因此页内偏移12位)。尔后12位可以存放各个状态信息和会见权限。可是Linux并没有这样做,反而从头界说了一个布局体来存放,通过“或”运算来将两者团结。

【编辑保举】

  1. 焦点基本:领略作甚JVM?把握Java假造机组成精华
  2. 处事器假造化技能深度科普
  3. VMware 假造化平台筹划计划方案
  4. Linux体系的假造内存原本这么坑!
  5. 措施员从宏观、微观角度浅析JVM假造机!
【责任编辑:武晓燕 TEL:(010)68476606】
点赞 0

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读