简述网站的制作步骤,商城小程序介绍,网页设计师需要学什么课程,大专学电子商务有用吗文章目录一、内存分页1、基本概念2、分页机制下#xff0c;虚拟地址和物理地址是如何映射的#xff1f;3、快表(TLB)二、mmap基本原理和分类一、内存分页
1、基本概念
CPU并不是直接访问物理内存地址#xff0c;而是通过虚拟地址空间来间接的访问物理内存地址。 页#x…
文章目录一、内存分页1、基本概念2、分页机制下虚拟地址和物理地址是如何映射的3、快表(TLB)二、mmap基本原理和分类一、内存分页
1、基本概念
CPU并不是直接访问物理内存地址而是通过虚拟地址空间来间接的访问物理内存地址。 页通常将虚拟地址空间以4K大小分成 框将物理地址按照同样的大小作为一个单位也从0开始依次对每一个框编号。 页表操作系统通过维护一张表这张表上记录了每一对页和框的映射关系。如图
2、分页机制下虚拟地址和物理地址是如何映射的
在分页机制下虚拟地址分为两部分页号和页内偏移。页号作为页表的索引页表包含物理页每页所在物理内存的基地址这个基地址与页内偏移的组合就形成了物理内存地址见下图。 其实就是这样三个步骤 把虚拟内存地址切分成页号和偏移量 根据页号从页表里面查询对应的物理页号 直接拿物理页号加上前面的偏移量就得到了物理内存地址。
3、快表(TLB)
多级页表虽然解决了空间占用大的问题但是由于其复杂化了地址的转换因此也带来了大量的时间开销使得地址转换速度减慢。 如果要解决这个问题那么最简单的方式就是降低查询页表的频率那么如何实现呢这时候就需要用到缓存的技术 与我之前在Redis系列博客中所提到的对于热点资源我们可以将其提前缓存下来到以后使用时就可以直接到缓存中查找。对于操作系统来说也是这么一个道理。 在操作系统中这个缓存就是CPU中的TLB也就是我们通常所说的快表。我们将最常访问的几个页表项存储到TLB中在之后进行寻址时CPU就会先到TLB中进行查找如果没有找到这时才会去查询页表。
二、mmap基本原理和分类
在LINUX中我们可以使用mmap用来在进程虚拟内存地址空间中分配地址空间创建和物理内存的映射关系。