前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >虚地址转化为内存地址_转换法与转化法

虚地址转化为内存地址_转换法与转化法

作者头像
全栈程序员站长
发布2022-11-16 17:49:23
7120
发布2022-11-16 17:49:23
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

页式地址变换

虚地址结构

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

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

  • 假设页面大小为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的内存地址请大家动手试一下,答案放在评论区。 其实是很简单的东西,怕自己忘记计算方式,所以记录一下,各位大佬见笑了。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/215913.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年10月27日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 页式地址变换
    • 虚地址结构
      • 同样我们举例说明
  • 虚地址转换为内存地址计算
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档