首页 > 其他分享 >操作系统--分页存储管理中逻辑地址转换为物理地址

操作系统--分页存储管理中逻辑地址转换为物理地址

时间:2023-12-21 23:32:34浏览次数:45  
标签:1024 逻辑 存储管理 -- 物理地址 地址 页表 页面

【例1】考虑一个由8个页面,每页有1024个字节组成的逻辑空间,把它装入到有32个物理块的存储器中,问:

  (1)逻辑地址需要多少二进制位表示?

  (2)物理地址需要多少二进制位表示?

 

  它由两个部分组成:前一部分表示该地址所在页面的页号p;后一部分表示页内地址(页内位移)d。页号的地址位数决定了页的多少,假设页号有20位,则地址空间中最多可容纳的页面数为220,即1MB个页面。页内地址位数确定了每页的大小,若页内地址为12位,则每页大小为212,即2KB。

  同理,物理地址中块号的地址位数决定了块的数量。由于页式存储管理内存空间块的大小与页面大小相同,所以物理地址中块内地址与逻辑地址中的页内地址位数相同。

  解因为页面数为8=23,故需要3位二进制数表示。每页有1024个字节,1024=210,于是页内地址需要10位二进制数表示。32个物理块,需要5位二进制数表示(32=25)。

  (1)页的逻辑地址由页号和页内地址组成,所以需要3+10=13位二进制数表示。

  (2)页的物理地址由块号和页内地址的拼接,所以需要5+10=15位二进制数表示。

   

  【例2】若在一分页存储管理系统中,某作业的页表如下所示。已知页面大小为1024字节,试将逻辑地址1011,2148,4000,5012转化为相应的物理地址。

0

2

1

3

2

1

3

6

  分析页式存储管理的地址结构是一维的,即逻辑地址(或物理地址)只用一个数值即可表示。若给定逻辑地址A,页面的大小为L,则页号p和页内地址d可按照下式求得:

  p=int [A/L]

d=A mod L

  其中,int是取整函数(取数值的整数部分),mod是取余函数(取数值的余数部分)。

  页表的作用是实现从页号到物理块号的地址映射。以逻辑地址的页号检索页表,得到该页的物理块号;同时将页内地址d直接送入物理地址寄存器的块内地址字段中。这样物理块号和块内地址拼接成了实际访问内存的地址,从而完成了从逻辑地址到物理地址的转换。

  所以物理地址的计算公式为:

  物理地址=块的大小(即页的大小L)* 块号f+页内地址d

  解本题中,为了描述方便,设页号为p,页内位移为d,则:

  (1)对于逻辑地址1011,p=int(1011/1024)=0,d=1011 mod 1024=1011。查页表第0页在第2块,所以物理地址为1024′2+1011=3059。

  (2)对于逻辑地址2148,p=int(2148/1024)=2,d=2148 mod 1024=100。查页表第2页在第1块,所以物理地址为1024+100=1124。

  (3)对于逻辑地址4000,p=int(4000/1024)=3,d=4000 mod 1024=928。查页表第3页在第6块,所以物理地址为1024′6+928=7072。

  (4)对于逻辑地址5012,p=int(5012/1024)=4,d=5012 mod 1024=916。因页号超过页表长度,该逻辑地址非法。

  【例3】某虚拟存储器的用户编程空间共32个页面,每页为1KB,内存为16KB。假定某时刻一用户页表中已调入内存的页面的页号和物理块号的对照表如下:

页号

物理块号

0

5

1

10

2

4

3

7

  则逻辑地址0A5C(H)所对应的物理地址是什么?

  分析页式存储管理的逻辑地址分为两部分:页号和页内地址。

  由已知条件“用户编程空间共32个页面”,可知页号部分占5位;由“每页为1KB”,1K=210,可知内页地址占10位。由“内存为16KB”,可知有16块,块号为4位。

  逻辑地址0A5C(H)所对应的二进制表示形式是:000 1010 0101 1100,根据上面的分析,下划线部分为页内地址,编码“000 10”为页号,表示该逻辑地址对应的页号为2。查页表,得到物理块号是4(十进制),即物理块地址为:01 00 ,拼接块内地址10 0101 1100,得01 0010 0101 1100,即125C(H)。

  解逻辑地址0A5C(H)所对应的物理地址是125C(H)。

标签:1024,逻辑,存储管理,--,物理地址,地址,页表,页面
From: https://blog.51cto.com/u_15590807/8927263

相关文章

  • 计算机组成原理知识总结
    DDR和DRAM的关系DDR(DoubleDataRate)和DRAM(DynamicRandomAccessMemory)是两个相关但不同的概念,它们通常一起使用,但表示的是不同的层面。DRAM(DynamicRandomAccessMemory):定义:DRAM是一种随机存取存储器,用于在计算机系统中存储数据和程序。它属于一种动态存储器,意味着需......
  • 【2023CANN训练营第二季】——Ascend C算子开发(进阶)微认证
    1.微认证题目:参考tensorflow的Sinh算子,实现AscendC算子Sinh,算子命名为SinhCustom,并完成aclnn算子调用相关算法:sinh(x)=(exp(x)-exp(-x))/2.0要求:1、完成host侧和kernel侧代码实现。2、实现sinh功能,支持float16类型输入,使用内核调试符方式调用算子测试通过。3、使用......
  • Cookie 和 session 的区别
    Cookie和session的区别参考回答:HTTP是一个无状态协议,因此Cookie的最大的作用就是存储sessionId用来唯一标识用户。一句话概括RESTFUL参考回答:就是用URL定位资源,用HTTP描述操作。讲讲viewport和移动端布局参考回答:可以参考这篇文章:响应式布局的常用......
  • pythoy排序不支持原生比较的对象
    问题你想排序类型相同的对象,但是他们不支持原生的比较操作。解决方案内置的sorted()函数有一个关键字参数key,可以传入一个callable对象给它,这个callable对象对每个传入的对象返回一个值,这个值会被sorted用来排序这些对象。比如,如果你在应用程序里面有一个User实例......
  • MySQL运维14-管理及监控工具Mycat-web的安装配置
    一、Mycat-web介绍Mycat-web(现改名为Mycat-eye)是对Mycat-server提供监控服务,通过JDBC连接对Mycat,MySQL监控,监控远程服务器的cpu,内存,网络,磁盘等情况的使用。Mycat-web运行过程中需要依赖zookeeper,因此需要先安装zookeeper,下载地址如下:zookeeper:链接: https://pa......
  • Mac安装JDK1.8
    官网https://www.oracle.com/java/technologies/downloads/#java8-mac下载需要Oracle帐号安装点击安装一直下一步安装成功配置系统环境变量JDK主目录:/Library/Java/JavaVirtualMachinesJDK真实目录:/Library/Java/JavaVirtualMachines/jdk1.8.0_211.jdk/Contents/Homeo......
  • 408---冷门知识点总结
    博客园的排版有点抽象...DSKMPhttps://www.cnblogs.com/lordtianqiyi/p/17795838.html并查集手搓并查集代码+两种优化#include<stdio.h>#include<math.h>intfind(intA[],intm);voidInit(intA[],intlen){for(inti=0;i<len;i++)A[i]=-1;}voiddebug(int......
  • Linux下安装Java环境三种方式(tar.gz、rpm、yum)
    一、Java软件包下载Java各版本下载地址;进入页面后我们首先看到的是Java最新版本的下载界面,但是在这我需要下载Java8的版本,所以得划到下面的界面,即界面如下:在这里我将下载:jdk-8u381-linux-x64.tar.gz(压缩包方式安装)、jdk-8u381-linux-x64.rpm(RPM方式安装)注:在下载界面的下面一......
  • 实验7 文件应用编程
    实验任务41#include<stdio.h>2intmain(){3FILE*fp;4inti;5charch;6fp=fopen("data4.txt","r");7if(fp==NULL){8printf("failtoopenfile\n");9return1;10}1......
  • 【SpringBootWeb入门-17】Mybatis-基础操作-动态SQL
    1、章节回顾上一篇文章我们讲解完了Mybatis基础操作,本篇继续学习Mybatis中非常重要的功能:动态SQL。什么是动态SQL:随着用户的输入或外部条件的变化而变化的SQL语句,我们称为动态SQL。简单说SQL语句不是固定的,是动态变化的。就拿我们上一篇所提到的根据条件来查询员工的SQL语句来......