页式地址变换

虚地址结构

虚地址是用户程序中的逻辑地址,它包括页号和页内地址(页内位移)

区分页号和页内地址的依据是页的大小,页内地址占虚地址的低位部分,页号占虚地址的高位部分。

  • 假设页面大小为1024字节,虚地址占用2个字节(16位)

虚地址转换为内存地址计算

  • 如果,虚地址(逻辑地址、程序地址)以十六进制、八进制、二进制的形式给出
  • 第一步,将虚地址转换成二进制的数;
  • 第二步,按页的大小分离出页号和位移量(低位部分是位移量,高位部分是页号);
  • 第三步,根据题意产生页表,将位移量直接复制到内存地址寄存器的低位部分;
  • 第四步,以页号查页表,得到对应页装入内存的块号,并将块号转换成二进制数填入地址寄存器的高位部分,从而形成内存地址。

举例说明:
1.有一系统采用页式存储管理,有一作业大小是8KB,页大小为2KB,依次装入内存的第7、9、A、5块,试将虚地址0AFEH,1ADDH转换成内存地址。
解:
|页号|块号 |
| 0 | 7 |
| 1 | 9 |
| 2 | A |
| 3 | 5 |
虚地址0AFEH转化为二进制数:0000 1010 1111 1110
已知页大小是2kb,所以低位部分是11位,所以,w=010 1111 1110, p=0000 1=1
根据页号与块号的排列 p=1时,块号为9,9的二进制数为1001,表首地址为0
所以,MR=(首0)0100 1010 1111 1110(二进制)=4AFEH(16进制)

同理可计算出1ADDH,大家动手试一试吧。答案会放在在评论区里。

  • 如果,虚地址以十进制数给出,那么就用公式进行计算。
  • 页 号(整除)=虚地址 / 页大小
    位移量(取模)=虚地址 mod 页大小
    根据题意产生页表;
    以页号查页表,得到对应页装入内存的块号
    内存地址=块号×页大小+位移量
同样我们举例说明
  1. 有一系统采用页式存储管理,有一作业大小是8KB,页大小为2KB,依次装入内存的第7、9、10、5块,试将虚地址7145,3412转换成内存地址。
    解:
    |页号|块号 |
    | 0 | 7 |
    | 1 | 9 |
    | 2 | A |
    | 3 | 5 |
    首先,已知虚地址7415,页大小为2kb
    计算 P=7145/2048=3
    W=7145mod2048=1001
    MR=5*2048+1001=11241
    所以虚地址7145的内存地址是:11241

同样的,3412的内存地址请大家动手试一下,答案放在评论区。
其实是很简单的东西,怕自己忘记计算方式,所以记录一下,各位大佬见笑了。

页式地址变换(虚地址转换为内存地址的计算方法)相关推荐

  1. OSTaskStkInit_FPE_x86()--浮点仿真任务栈初始化函数(分段寻址的地址转换为线性地址)

    段地址:段内偏移量寻址方案 在 uC/OS-II 随书光盘中针对 80x86 (不带硬件浮点运算单元)的移植源码中,有一个浮点仿真任务栈初始化函数 OSTaskStkInit_FPE_x86(),其中 ...

  2. 寄存器地址和内存地址_通俗易懂和你聊聊寄存器那些事(精美图文)

    我把自己以往的文章汇总成为了 Github ,欢迎各位大佬 star https://github.com/crisxuan/bestJavaer 下面我们就来介绍一下关于寄存器的相关内容.我们知道, ...

  3. 寄存器地址和内存地址_爱了爱了,小浩和大家聊聊寄存器

    今天小浩想给大家分享一下寄存器这个东西.我们知道,寄存器是 CPU 内部的构造,它主要用于信息的存储.除此之外,CPU 内部还有运算器,负责处理数据:控制器控制其他组件:外部总线连接 CPU 和各种部 ...

  4. 寄存器地址和内存地址_3. 从0开始学ARMARM模式、寄存器、流水线

    关于ARM的一些基本概念,大家可以参考我之前的文章: <到底什么是Cortex.ARMv8.arm架构.ARM指令集.soc?一文帮你梳理基础概念[科普]> 关于ARM指令用到的IDE开发 ...

  5. ARP协议 地址解析协议:IP地址转换为MAC地址

    ARP协议 地址解析协议 ARP协议全称 Address Resolution Protocol. ARP协议能实现任意网络层地址到任意物理地址的转换,我们在此只讨论IP到以太网MAC地址的转换. 工 ...

  6. 2.3.1操作系统-存储管理:页式存储、逻辑地址、物理地址、物理地址逻辑地址之间的地址关系、页面大小与页内地址长度的关系、缺页中断、内存淘汰规则

    2.3.1操作系统-存储管理:页式存储.逻辑地址.物理地址.物理地址逻辑地址之间的地址关系.页面大小与页内地址长度的关系.缺页中断.内存淘汰规则 页式存储 逻辑地址.物理地址 如何判断物理地址和逻辑地 ...

  7. 操作系统实验3 页式地址重定位模拟

    [实验名称]页式地址重定位模拟 [实验目的] 1.掌握和理解页式地址重定位模拟的基本思路和实现过程: 2. 理解页式地址重定位技术在多道程序设计中的作用和意义. [实验原理] 页式管理是一种内存空间存 ...

  8. Linux 操作系统原理 — 内存 — 页式管理、段式管理与段页式管理

    目录 文章目录 目录 前文列表 页式管理 快表 多级页表 基于页表的虚实地址转换原理 应用 TLB 快表提升虚实地址转换速度 页式虚拟存储器工作的全过程 缺页中断 为什么 Linux 默认页大小是 4 ...

  9. 清华大学《操作系统》(六):非连续内存分配 段式、页式、段页式存储管理

    背景 连续内存分配给内存分配带来了很多不便,可能所有空闲片区大小都无法满足需求大小,这个分配就会失败.基于这种现状,就有了非连续内存分配的需求.非连续分配成功的几率更高,但也面对更多的问题,比如分配时 ...

最新文章

  1. POJ1149 最大流经典建图PIG
  2. sdut-3102小鑫追女神
  3. git 分支合并_教你玩转Git-分支合并
  4. SpringBoot高级-消息-RabbitMQ安装测试
  5. 并发编程-concurrent指南-阻塞队列BlockingQueue
  6. 缺失值填充5——AutoEncoder填充序列缺失值
  7. Oracle学习总结(9)—— Oracle 常用的基本操作
  8. C#中的矩阵转换,应用.net GDI+
  9. 最低服务器协议,的WebSocket服务器最低要求
  10. 人均34万,腾讯为3300名员工发11亿红包;B站回应大会员补偿会自动续费;​小米销量超苹果跻身全球第二|极客头条...
  11. poj 1222 EXTENDED LIGHTS OUT 高斯消元
  12. oracle not like优化,Oracle中的like优化
  13. 锐捷(四)交换机虚拟化(VSU)+双主机检测(BFD)的配置
  14. 编程原则:戒虚而务实,谋定而后动
  15. 第4章 程序的控制结构(单元测试题Python含答案)
  16. 阿里云服务器买完不知道如何使用(新手入门教程)
  17. 计算机专业技术职务评审表怎么填,专业技术职务怎么填
  18. 牛客 · 奇♂妙拆分
  19. 系统突然变慢的处理方案
  20. 关于Centos使用wget下载: 无法解析主机地址问题

热门文章

  1. C++ 字符串和数字之间的相互转换
  2. putty修改显示服务器ip或域名,putty 标题显示ip
  3. MT2503芯片处理器平台简介
  4. 信号频率(Frequency),幅值(Amplitude),周期(Period),相位(Phase)所代表的含义与关系
  5. MySQL 数据库 模糊查询和聚合函数
  6. 利用ADS中的Batch Simulation进行DDR仿真
  7. 网易云课堂Java入门视频课程
  8. Delphi官方文档
  9. 【DIY】Arduino智能循迹避障小车
  10. Linux下安装和配置ARM交叉编译器