实现地址转换的硬件机构

news2025/1/13 15:54:32

一、基本地址变换机构
1.硬件:
设置一个页表寄存器,存放页表在内存中的起始地址与页表长度。
2.执行过程:
进程未执行时,页表起始地址和长度存放在进程控制块(PCB)中;进程被调度时,OS内核会将其放入页表寄存器中。
3.具体实现:
有两次访问内存-第一次查页表(页号是否合法),第二次-访问目标内存单元(访问物理内存对应的内存单元)
在这里插入图片描述

二、具有快表的地址变换机构
1.相关概念
快表-联想寄存器(TLB),一种访问速度比内存快很多的高速缓存,存放最近访问页表项的副本,可加速地址变换。
慢表-相对TLB,内存中的页表
TLB-只存储页表项副本,Cache-会存储各种数据的副本
在这里插入图片描述

2.地址变换
由逻辑地址得到页号与页内偏移量,将页号与快表内的页号进行比较。
若命中(快表中有副本),只需一次直接访问内存即可。
若未命中(快表中无副本),需要访问内存中页表,通过基本地址变换得到物理地址,需要两次访存,相当于基本地址变换
要对快表进行更新,存入快表,实现快表与慢表的内容 同步
在这里插入图片描述

3.局部性原理
时间局部性-指令被多次访问执行(循环)
空间局部性-多次访某些存储单元(数据在内存中连续存放)
频繁查询某些页表项,引入快表。
三、两级页表
1.目的
解决单级页表必须要连续存放所有页表的问题
2.原理
解决大页表连续存放问题:
将整个页表项拆成多个小页表(二级页表),新生成一个总页表(一级页表)记录小页表的页号与块号
逻辑地址=一级页号+二级页号+页内偏移量
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

解决整个页表常驻内存问题:
采用虚拟存储技术,需要访问页面时才调入内存。页表项中增加一个标志位,标记是否调入内存。若访问页面不在内存中,产生缺页中断(内中断),将目标页面从外存调入内存。
3.地址变换
在这里插入图片描述

4.注意事项
采用多级页表机制,各级页表大小不能超过一个页面。
在没有快表机构下,两级页表的访存次数分析:
第一次访存-访问内存中的页目录表
第二次访存-访问内存中的二级页表
第三次访存-访问目标内存单元

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1137123.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

海外广告投放必看,如何使用Quora广告开拓新流量市场?

虽然在Quora 上学习广告相对容易,但需要大量的试验和错误才能找出最有效的方法。一些广告技巧可以让您的工作更有效率。这篇文章将介绍如何有效进行quora广告投放与有价值的 Quora 广告要点,这将为您节省数万美元的广告支出和工作时间!往下看…

postgresSQL 数据库本地创建表空间读取本地备份SQL文件

使用pgAdmin4,你安装PG得文件夹****/16/paAdmin 4 /runtime/pgAdmin4.exe 第一步:找到Tablespaces 第二步:创建表空间名称 第三步:指向数据文件 第四步:找到Databases,创建表空间 第五步:输入数…

SpringBoot依赖和代码分开打包

前言 在公司的项目中,一个SpringBoot工程可能就上百MB,这时候当线上网速不佳的时候,部署起来就十分的痛苦了。。经常等好久才能上传完毕,接下来我来教大家一个SpringBoot工程代码和依赖分开打包的方法。这种方法将依赖和代码分开…

身份证号码,格式校验:@IdCard(Validation + Hutool)

目标 自定义一个用于校验 身份证号码 格式的注解IdCard,能够和现有的 Validation 兼容,使用方式和其他校验注解保持一致(使用 Valid 注解接口参数)。 校验逻辑 有效格式 符合国家标准。 公民身份号码按照GB11643-…

NOIP2023模拟2联测23 分神

题目大意 有 n n n个矩形,每个矩形的四条边都平行于坐标轴。对于一个矩形,它的左下角坐标为 ( x 1 , y 1 ) (x_1,y_1) (x1​,y1​),右上角坐标为 ( x 2 , y 2 ) (x_2,y_2) (x2​,y2​),包含了所有满足 x 1 ≤ x ≤ x 2 , y 1 ≤ …

app分发的一些流程2

应用分发的流程通常包括以下步骤: 开发应用程序:首先,您需要开发您的应用程序。这包括编写代码、设计用户界面、测试应用程序等等。确保您的应用程序符合各个应用商店的规范和要求,以确保顺利通过审核。 准备应用材料&#xff1…

Android 13.0 自定义仿小米全面屏手势导航左右手势滑动返回UI效果

1.概述 在13.0的系统产品开发中,对于设置默认系统手势的左右滑动返回UI,系统默认的是比较简单,产品需求要求仿小米华为的左右手势返回UI样式的定制,所以需要找到绘制手势返回UI的相关代码,然后自定义手势导航左右滑动返回的相关UI就可以了 接下来就来实现手势导航做好手势…

windows殺死端口

netstat -ano | findstr 8081 taskkill /F /PID taskkill /F /PID 16624

796. 子矩阵的和(左上角前缀和)

题目: 796. 子矩阵的和 - AcWing题库 思路: 1.暴力搜索(搜索时间复杂度为O(n2),很多时候会超时) 2. 前缀和(左上角前缀和):本题特殊在不是直接求前n个数的和,而是求…

竞赛 深度学习图像分类算法研究与实现 - 卷积神经网络图像分类

文章目录 0 前言1 常用的分类网络介绍1.1 CNN1.2 VGG1.3 GoogleNet 2 图像分类部分代码实现2.1 环境依赖2.2 需要导入的包2.3 参数设置(路径,图像尺寸,数据集分割比例)2.4 从preprocessedFolder读取图片并返回numpy格式(便于在神经网络中训练)2.5 数据预…

Leo赠书活动-03期 【ChatGPT 驱动软件开发:AI 在软件研发全流程中的革新与实践 】

✅作者简介:大家好,我是Leo,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉 🍎个人主页:Leo的博客 💞当前专栏: 赠书活动专栏 ✨特色专栏:…

Java学习 习题 1.

一、 1.2. 3. 4. 5. 二、 1. 2. 3. 4. 5. 6. 7. 8.

【Java技术专题】「入门到精通系列教程」深入探索Java特性中并发编程体系的原理和实战开发指南( 实现可伸缩IO专题)— 上

深入探索Java特性中并发编程体系的原理和实战开发指南( 实现可伸缩IO专题) 总体内容概览可扩展的网络服务分布式对象传统的阻塞式网络服务每个请求或连接可以在独立的线程中进行处理Server服务处理请求类Handler处理逻辑类优点缺点 可扩展性目标平稳降级…

zotero word联动 如何使用Zotero在Word中插入参考文献

下载https://gitee.com/redleafnew00/Chinese-STD-GB-T-7714-related-csl里面论文要求的格式,或者word里面点这个再搜 输入好以后一定要输入空格!

RK3399平台开发系列讲解(基础篇)嵌入式编码规范有哪些

🚀返回专栏总目录 文章目录 一、什么是GNU二、GNU C 编码规范2.1、格式2.2、注释2.3、语法约定2.4、命名2.5、系统可移植性2.6、CPU 可移植性2.7、系统函数2.8、国际化2.9、字符集沉淀、分享、成长,让自己和他人都能有所收获!😄 📢 GNU 编码规范的出发点,是确保所有 G…

【C语言】strcpy()函数

🦄个人主页:修修修也 🎏所属专栏:C语言 ⚙️操作环境:Visual Studio 2022 目录 一.strcpy()函数简介 1.函数功能 2.函数参数 1>.char * destination 2>.const char * source 3.函数返回值 4.函数头文件 二.strcpy()函数的具体使用 1.使用s…

【数据结构练习】树和二叉树的选择题精选集锦

前言 编程想要学的好,刷题少不了,我们不仅要多刷题,还要刷好题!为此我开启了一个弯道超车必做好题锦集的系列,此为树和二叉树的选择题精选集锦。该系列会不定期更新,敬请期待! 1.已知某二叉树的…

c++学习之搜索二叉树

目录 一,什么是搜索二叉树? 二,搜索二叉树的实现 非递归实现 节点与类成员 插入 查找 删除 递归实现 插入 查找 删除 一,什么是搜索二叉树? 搜索二叉树(Binary Search Tree)是一种常见…

jdbc 执行批处理任务

package com.csdn.jdbc; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.SQLException; //演示执行批处理任务 public class ExecuteBatchTask {public static void main(String[] args) throws ClassNotFou…

通过jsonobject.tostring 传字符串为有空格问题

目录 通过jsonobject.tostring 传字符串为有空格问题 1.问题原因解决思路解决方案总结参考 文章所属专区 项目问题解决 1.问题原因 通过JSONObject.toString()方法将字符串转换为JSON格式时,可能会出现空格的情况。这是因为JSONObject.toString()方法在生成JSON字…