两级页表如何实现地址转换:
页表:是一种特殊的数据结构,记录着页面和页框的对应关系。(映射表) 页表的作用:是内存非连续分区分配的基础,实现从逻辑地址转化成物理地址。 (1) 按照地址结构将逻辑地址拆成三个部分。 (2) 从pcb中读取页目录起始地址,再根据一级页号查页目录表,找到下一级页表在内存中存放位置。 (3) 根据二级页号查表,找到最终想要访问的内存块号。 (4) 结合页内偏移量得到物理地址。 虚拟存储技术
再解决了页必须连续存放的问题后,再看如何第二个问题:没有必要让整个页表常驻内存,因为进程一段时间内可能只需要访问某几个特定的页面。
解决方案:可以在需要访问页面时才把页面调入内存——虚拟存储技术(后面再说)。可以在页表中增加一个标示位,用于表示该页表是否已经调入内存。
应用
若采用多级页表机制,则各级页表的大小不能超过一个页面。
举例说明,某系统按字节编址,采用40位逻辑地址,页面大小为4kb,页表项大小为4b,假设采用纯页式存储,则要采用()级页表,页内偏移量为()位?
页面大小 = 4kb,按字节编址,因此页内偏移量为12位。
页号 = 40 - 12 = 28位。
页面大小 = 4kb,页表项大小 = 4b,则每个页面可存放1024个页表项。因此各级页表最多包含1024个页表项,需要10个二进制位才能映射到1024个页表项,因此每级页表对应的页号应为10位二进制。共28位的页号至少要分为3级。
1、 进程的4g 线性空间被划分成三个部分:进程空间(0-3g)、内核直接映射空间(3g – high_memory)、内核动态映射空间(vmalloc_start - vmalloc_end)
2、 三个空间使用同一张页目录表,通过 cr3 可找到此页目录表。但不同的空间在页目录表中页对应不同的项,因此互相不冲突
3、 内核初始化以后,根据实际物理内存的大小,计算出 high_memory、vmalloc_start、vmalloc_end 的值。并为“内核直接映射”空间建立好映射关系,所有的物理内存都可以通过此空间进行访问。
4、 “进程空间”和“内核动态映射空间”的映射关系是动态建立的(通过缺页异常)
假设在有三个线性地址 addr1, addr2, addr3 ,分别属于三个线性空间不同部分(0-3g、3g-high_memory、vmalloc_start-vmalloc_end),但是最终都映射到物理页面1:
1、 三个地址对应不同的页表和页表项
2、 但是页表项的高 20bit 肯定是1,表示物理页面的索引号是1
3、 同时,根据高 20 bit,可以从 mem_map[] 中找到对应的 struct page 结构,struct page 用于管理实际的物理页面(就是实际物理页面的物理地址了,到这里就不绕弯子了,顺便想到高速缓冲的匹配命中操作是用哈希表,换算出的要访问的实际物理地址拿到哈希表的输入计算一下哈希值,看看有没命中)(红线)
4、 从线性地址最终的,根据页目录表,页表,可以找到物理地址
5、 struct page 和物理地址之间很容易互相转换
6、 从物理地址,可以很容易的反推出在内核直接映射空间的线性地址(蓝线)。要想得到在进程空间或者内核动态映射空间的对应的线性地址,则需要遍历相应的“虚存区间”链表。
关于页目录表:
1、 每个进程有一个属于自己的页目录表,可通过 cr3 寄存器找到
2、 而内核也有一个独立于其它进程的页目录表,保存在 swapper_pg_dir[] 数组中
3、 当进程切换的时候,只需要将新进程的页目录把地址加载到 cr3 寄存器中即可
4、 创建一个新进程的时候,需要为它分配一个 page,作为页目录表,并将 swapper_pg_dir[] 的高 256 项拷贝过来,低 768 项则清0
linux0.11版本,所有进程共享同一个页目录而各自使用不同的页表,该共享的页目录就放在物理地址最前面的4k
标题:linux系统文件页表目录和页表结构(图文详解)
原文作者:玩转linux内核,地址:https://zhuanlan.zhihu.com/p/429914858 转载注明来源
PCB的电磁兼容的设计
时差式插入式超声波流量计安装方式有哪些
四个方法减低电机的负载
美或对中兴华为启动第二轮调查
未见其人先闻其声 iPhone 8未发布已压制S8销售
详解Linux系统文件页表目录和Linux系统页表结构
本月8日电信版小米手机正式发布
薄膜表面缺陷检测系统可检测出表面的质量问题
【RTT大赛作品连载】CH32V103 USBHID键盘鼠标
朋友圈要炸了!苹果刚发布iOS11系统,就怼上微信,微信或许也将退出iOS
鱼塘水质检测仪的特点及技术参数
智能连接设备的时代,分布式网络尤为重要
米尔科技Z-turn IO Cape简介
介绍几个关于ISP算法架构的项目
太阳能微型逆变器的解决方案介绍
走不出品牌误区,难抓得住粉丝流量
大唐移动:SPAN ADT自动路测系统介绍
“元件强基”与“电机提效”两大产业政策为万物互联与智能制造铺就创新发展道路
基于C8051F020单片机实现多波段光谱辐射计采集系统的设计
SMT焊盘氧化的原因,避免SMT焊盘氧化的方法