基本地址变换机构

news2024/11/18 20:34:48

基本地址变换机构:用于实现逻辑地址到物理地址转换的一组硬件机构。

关于页号页表的定义,放个本人的传送门

1.页表寄存器

基本地址变换机构可以借助进程的页表将逻辑地址转换为物理地址。

1.作用

通常会在系统中设置一个页表寄存器(PTR),存放页表在内存中的起始地址F和页表长度M
进程未执行时,页表的始址和页表长度放在进程控制块(PCB)中,
当进程被调度时,操作系统内核会把它们放到页表寄存器中。

在这里插入图片描述

2.逻辑地址转物理地址的过程

  1. 根据逻辑地址计算出页号、页内偏移量
  2. 判断页号是否越界
  3. 查询页表,找到页号对应的页表项,确定页面存放的内存块号
  4. 用内存块号和页内偏移量得到物理地址
  5. 访问目标内存单元

3.计算过程

设页面大小为L,逻辑地址A到物理地址E的变换过程如下:

  1. 计算页号Р和页内偏移量W(如果用十进制数手算,则P=A/L,W=A%L;但是在计算机实际运行时,逻辑地址结构是固定不变的,因此计算机硬件可以更快地得到二进制表示的页号、页内偏移量)
  2. 比较页号P和页表长度M,若P>M,则产生越界中断,否则继续执行。(注意:页号是从0开始的,而页表长度至少是1,因此P=M时也会越界)
  3. 页表中页号P对应的页表项地址=页表起始地址F+页号P*页表项长度,取出该页表项内容b,即为内存块号。
  4. 注意区分页表项长度、页表长度、页面大小的区别。
  5. 页表长度指的是这个页表中总共有几个页表项,即总共有几个页;
  6. 页表项长度指的是每个页表项占多大的存储空间;
  7. 页面大小指的是一个页面占多大的存储空间
  8. 计算 E = b ∗ L + W E= b*L+W E=bL+W,用得到的物理地址E去访存。(如果内存块号、页面偏移量是用二进制表示的,那么把二者拼接起来就是最终的物理地址了)

4.例题

若页面大小L为1K字节,页号2对应的内存块号b=8,将逻辑地址A=2500转换为物理地址E。
等价描述:某系统按字节寻址,逻辑地址结构中,页内偏移量占10位,页号2对应的内存块号b=8,将逻辑地址A=2500转换为物理地址E。

在这里插入图片描述
在分页存储管理(页式管理)的系统中,只要确定了每个页面的大小,逻辑地址结构就确定了。
因此,页式管理中地址是一维的
即,只要给出一个逻辑地址,系统就可以自动地算出页号、页内偏移量两个部分,并不需要显式地告诉系统这个逻辑地址中,页内偏移量占多少位。

2.对页表项大小的进一步探讨

每个页表项的长度是相同的,页号是“隐含”的。

在这里插入图片描述
进程页表通常是装在连续的内存块中的。

结论:
理论上,页表项长度为3B即可表示内存块号的范围,但是,为了方便页表的查询,常常会让一个页表项占更多的字节,使得每个页面恰好可以装得下整数个页表项。

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

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

相关文章

KubeVela交付

有什么用我也不想说了,这个是k8s CI/CD,进阶玩家玩的了,比你们喜欢Arg CD更科学,更现代 在 Kubernetes 中安装 KubeVela helm repo add kubevela https://charts.kubevela.net/core helm repo update helm install --create-namespace -n v…

云耀云服务器L实例部署k8s测评|华为云云耀云服务器L实例评测使用体验

文章目录 云耀云服务器L实例部署k8s测评名词解释云耀云服务器L实例云耀负载均衡k8s及使用场景1.3.1 微服务架构1.3.2 自动化部署1.3.3 弹性伸缩1.3.4 多租户环境1.3.5 持续集成和持续部署 3. 部署华为云云耀服务器L实例3.1 云耀服务器L实例购买3.1.1 云耀服务器L实例初始化配置…

【Golang】grpc环境踩的坑

关于’protoc-gen-go’ 不是内部或外部命令 这个问题的出现是因为没有这个文件导致的 这个文件要通过我们下载的google.golang.org这个文件编译生成的 这里建议下载google提供的grpc包 protobuf的源码: git clone https://github.com/golang/protobuf 下载好之后进…

华为云云耀云服务器L实例评测|企业项目最佳实践之建议与总结(十二)

华为云云耀云服务器L实例评测|企业项目最佳实践系列: 华为云云耀云服务器L实例评测|企业项目最佳实践之云服务器介绍(一) 华为云云耀云服务器L实例评测|企业项目最佳实践之华为云介绍(二) 华为云云耀云服务器L实例评测&#xff5…

RTSP协议

1 前言 RTSP协议作为音视频实时监控一个非常重要的协议,具有非常广泛的应用。RTSP由RFC 2326规范化,它允许客户端通过请求不同的媒体资源来控制流媒体服务器。RTSP是一种应用层协议,通常基于TCP连接,用于建立和控制媒体会话。这使…

【opencv】windows10下opencv4.8.0-cuda Python版本源码编译教程

【opencv】windows10下opencv4.8.0-cuda Python版本源码编译教程 提示:博主取舍了很多大佬的博文并亲测有效,分享笔记邀大家共同学习讨论 文章目录 【opencv】windows10下opencv4.8.0-cuda Python版本源码编译教程前言准备工具anaconda/cuda/cudnnanaconda创建环境(选做)安装原…

Jetpack:008-Icon与Image

文章目录 1. 概念介绍2. 使用方法2.1 Icon2.2 Image 3. 示例代码4. 内容总结 我们在上一章回中介绍了Jetpack中与Button相关的内容,本章回中主要I con与Image。闲话休提,让我们一起Talk Android Jetpack吧! 1. 概念介绍 我们在本章回中介绍…

graphviz报错

报错如下: graphviz.backend.ExecutableNotFound: failed to execute dot, make sure the Graphviz executables are on your systems PATH 大家习惯pip install graphviz去安装,但是graphviz是个软件,不能单独用Pip安装。 1、下载安装 G…

英语——语法——从句——非谓语动词——笔记

一、1定义 定义: 非谓语动词不是真正意义上的谓语动词,即在句中都不能单独作谓语。 非谓语动词主要有以下三种形式: 技巧:分析句子是先缩短为主谓宾,某人做某事,其他成分都是修饰限定作用。要么修饰明代词…

ECharts的基本使用

目录 一、使用前提 1、安装 2、创建文件 二、LineView.vue文件【相当于一个组件】 1、导入 2、methods方法下写init(){}方法进行选择 3、methods方法下写setOptioin(option) 4、init()函数调用 5、整合完整代码 三、IndexView.vue文件【实现组件引入显示】 1、引入 …

P34~36第八章相量法

8.1复数 复数可表示平面矢量、也可表示正弦量。特别是: 当复数表示正弦量的时候,此时复数称为相量。 8.2复数运算 复数除法也可看做乘法,乘法的几何意义是旋转(辐角相加)( e^x e^y e^xy),同时伸缩(模变…

计算机操作系统-第七天

1、计算机操作系统的结构(续集) 分层结构 特性:最底层是硬件,最高层是用户接口,每层只可使用更低的相邻层所提供的功能接口(只有第一层可以直接操作硬件,第二次只能使用第一层提供的功能接口..…

英语——语法——从句——状语从句——笔记

一、概念 状语从句(Adverbial Clause)是指句子用作状语时,起副词作用的句子。状语从句中的从句可以修饰谓语。 状语从句根据其作用可分为时间、地点、原因、条件、目的、结果、让步、方式和比较等九 种状语从句。状语从句一般由连词(从属连词…

01_51单片机软件安装和使用

step1:keil软件安装 安装keil5:安装keil5 新用户进入官网下载需要先注册 官网:官网 嵌入式51开发资源百度网盘:江协科技 网盘地址:网盘地址 提取码:gdzf 桌面上出现该图标表示安装完成 双击图标打开对软件进行破…

向量空间概述

向量空间 向量空间与子空间 当存在这样的一组向量集合 V V V,其中 v , u , w v,u,w v,u,w分别为集合 V V V中的元素,以及存在标量c,d u v ∈ V uv \in V uv∈V u v …

【算法练习Day21】组合剪枝

​📝个人主页:Sherry的成长之路 🏠学习社区:Sherry的成长之路(个人社区) 📖专栏链接:练题 🎯长路漫漫浩浩,万事皆有期待 文章目录 组合剪枝总结: …

c语言练习88::移除链表元素

移除链表元素 力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val val 的节点,并返回 新的头节点 。 代码: /*** Definition for sing…

基于Springboot宠物医院管理系统

项目环境: mysql5.7 jdk1.8

CSS之实现线性渐变背景

1. background: linear-gradient() background: linear-gradient是CSS中用于创建线性渐变背景的属性,这个属性允许你定义一个在元素的背景中进行渐变的效果,可以从一个颜色过渡到另一个颜色。 基本语法 background: linear-gradient(direction, color-…

Vue中this.$set()解决页面不更新问题

Vue中的this.$set()用于解决数据更新后页面没有更新的问题,因为Vue2中的双向数据绑定是通过object.defineproperty()实现的。通过get和set方法,获取时触发get,更改时触发set。但是对于对象属性的删除和添加与根据数组的下标去修改数据的时候是…