操作系统-逻辑地址转换为物理地址Java实现
输入一个16进制的逻辑地址 转换为物理地址
页表大小可选:
1K 2K 4K 8K 16K
页号 | 页块 |
---|---|
0 | 5 |
1 | 2 |
2 | 10 |
3 | 11 |
4 | 8 |
程序逻辑:
绝对地址 = 页块×页表大小+偏移量(页内地址)
页号 = 逻辑地址÷页表大小
偏移量(页内地址) = 逻辑地址 mod 页表大小
package dizhizhuanhuan;import java.util.Scanner;class Yetable {public int yehao;public int kuaihao;public Yetable(int yehao, int kuaihao) {this.yehao = yehao;this.kuaihao = kuaihao;}private static void dayinyebiao(Yetable[] table) {System.out.println("页号 " + "块号");for (Yetable yetable : table) {System.out.println(yetable.yehao + " " + yetable.kuaihao);}}private static int getYemiandaxiao(Scanner scan, int yemiandaxiao) {int xuanzeSize;System.out.println("请输入页面大小");xuanzeSize = scan.nextInt();if(xuanzeSize%2==0){yemiandaxiao = xuanzeSize*1024;System.out.println("您选择的页面大小为"+xuanzeSize+"K"+"--"+yemiandaxiao);}else{System.out.println("您输入的页面大小不正确 ,请重新输入");yemiandaxiao = getYemiandaxiao(scan, yemiandaxiao);}return yemiandaxiao;}public static class Dzzh {public static void main(String[] args) {Yetable[] table = new Yetable[5];table[0] = new Yetable(0, 5);table[1] = new Yetable(1, 2);table[2] = new Yetable(2, 10);table[3] = new Yetable(3, 11);table[4] = new Yetable(4, 8);Scanner scan = new Scanner(System.in);int yemiandaxiao = 0;yemiandaxiao = getYemiandaxiao(scan, yemiandaxiao);int yeno;/*输入一个整数的页内地址*///int dizhi;String dizhi16;int jueduidizhi;int a = 0;System.out.println("页号 " + "主存块号");for (Yetable yetable : table) {System.out.println(yetable.yehao + " " + yetable.kuaihao);}while (true) {System.out.println("请输入页号的逻辑地址:");//dizhi = sc.nextInt();dizhi16 = scan.next();int dizhi = Integer.parseInt(dizhi16, 16);System.out.println("16进制转换为10进制后的逻辑地址为");System.out.println(dizhi);// System.out.println("请输入要访问的页号:");// yeno = scan.nextInt();//计算要访问的页号yeno = dizhi / yemiandaxiao;System.out.println("访问的页号为" + yeno);for (Yetable yetable : table) {if (yeno == yetable.yehao) {a++;dayinyebiao(table);/*绝对地址等于块号*1024+页内地址*/jueduidizhi = yetable.kuaihao * yemiandaxiao + (dizhi % yemiandaxiao);System.out.println("物理地址:" + jueduidizhi);String shiliu_juedui = Integer.toHexString(jueduidizhi);System.out.println("16进制的物理地址为"+shiliu_juedui);dayinyebiao(table);break;}if (a == 0) {System.out.println("无此页号!");}}}}}
}
操作系统-逻辑地址转换为物理地址Java实现相关推荐
- 浅析如何把逻辑地址转换为物理地址
摘要:微信搜索[三桥君] 本文只讲逻辑地址转换为物理地址的计算方法 一.依据 (1)计算十六进制使用公式 逻辑地址=页号+页内地址 物理地址=块号+页内地址 [解析] 逻辑地址转换为物理地址其实就是页 ...
- 操作系统_逻辑地址转换为物理地址
在存储管理中分为连续存储和非连续存储,非连续存储又分为分页存储.分段存储和段页式存储. 分页存储逻辑地址转物理地址: 例如: 已知某个分页系统,页面大小为1K(即1024字节),某一个作业有4个页面, ...
- 操作系统-----程序的逻辑地址和物理地址+程序在内存中的编译链接装入方式
前提知识: 1.程序是先要放在内存上,才能被cpu执行的. 2.内存 内存就像酒店里的一个个小房间,每个小房间都有编号: 假设有4个学号为1,2,3,4的同学,入住酒店时分别按学号递增次序入住酒店房间 ...
- 2.3.1操作系统-存储管理:页式存储、逻辑地址、物理地址、物理地址逻辑地址之间的地址关系、页面大小与页内地址长度的关系、缺页中断、内存淘汰规则
2.3.1操作系统-存储管理:页式存储.逻辑地址.物理地址.物理地址逻辑地址之间的地址关系.页面大小与页内地址长度的关系.缺页中断.内存淘汰规则 页式存储 逻辑地址.物理地址 如何判断物理地址和逻辑地 ...
- 操作系统中逻辑地址和物理地址的区别
击上方"嵌入式应用研究院",选择"置顶/星标公众号" 干货福利,第一时间送达! 本文是关于操作系统中逻辑地址和物理地址之间的区别.计算机操作系统中的内存使用两种 ...
- 《操作系统》——分页存储管理方式逻辑地址到物理地址的转换
一.连续分配方式缺点 连续分配方式的主要缺点是会形成许多碎片,尽管我们可以通过紧凑的方法将碎片拼接成可用的大块空间,但这样须付出很大的代价. 二.离散分配方式 离散分配方式思想:将进程直接分散地装入到 ...
- 逻辑地址转物理地址(操作系统)
1.前提明确(16进制): 逻辑地址=页号+页内地址 物理地址=块号+页内地址 可以较为明显的观察出:逻辑地址和物理地址的不同在于页号和块号的不同 那么什么是页号和块号呢举个例子就明白了 2.下面逻辑 ...
- 基本分页存储管理方式中关于逻辑地址和物理地址的转换(操作系统)
分析页式存储管理的地址结构是一维的,即逻辑地址(或物理地址)只用一个数值即可表示.若给定逻辑地址A,页面的大小为L,则页号p和页内地址d可按照下式求得: p=int [A/L]d=A mod L 其中 ...
- 【操作系统复习】物理地址虚拟地址
[操作系统复习] 物理地址虚拟地址 物理地址和虚拟地址的区别 物理地址 逻辑地址 线性地址 为什么要分成物理地址和虚拟地址 物理内存及虚拟内存定义 为什么要有虚拟内存 虚拟内存的实现(可以在页式或段式 ...
最新文章
- RDKit | 基于Fraggle算法评估化合物的相似性
- 中国研制出首款搭载寒武纪AI芯片的人工智能服务器
- [HNOI2010 Planar平面图判定]
- Android 闹钟最终版
- NLP Coursera By Michael Collins - Week1
- python保存和加载数组
- 程序员如何让自己 Be Cloud Native - 配置篇
- 面试被问mysql扩展性设计相关的点,你知道该如何回答吗
- 如何提高服务器网站网速,怎么提升服务器网速
- 构建websocket服务
- 白话之jsonp跨域原理分析
- Hbase单机安装及使用hbase shell进行简单操作
- serve注解是加在哪个类_PHP 8新特性之Attributes(注解)
- Java中创建线程池的正确方法
- 极域电子教室软件 v4.0 2015 豪华版忘记密码怎么办
- 斐讯k2p官方固件如何登陆ssh后台
- 广东外语外贸大学第16届程序设计竞赛-C 井大师的码魂
- 打印程序在计算机上的应用程序,修复无法在计算机上运行的后台打印程序服务的操作步骤...
- 2018 10 12 校内模拟 字符串模拟+平面距离+线段树
- 网页获取到的图片bease64编码,转化为二进制,进而保存为图片