页式地址重定位

要求:

一、实验目的:
1、 用高级语言编写和调试模拟实现页式地址重定位。
2、 加深理解页式地址重定位技术在多道程序设计中的作用和意义。
二、实验原理:
当进程在CPU上运行时,如指令中涉及逻辑地址时,操作系统自动根据页长得到页号和页内偏移,把页内偏移拷贝到物理地址寄存器,再根据页号,查页表,得到该页在内存中的块号,把块号左移页长的位数,写到物理地址寄存器。
三、实验内容:
1、 设计页表结构
2、 设计地址重定位算法
3、 有良好的人机对话界面


#include<bits/stdc++.h>
using namespace std;
#define pagesize  4096
#define pagetablelength  64
/*系统页表*/
const int pagetable[pagetablelength]={0,42,25,15,45,31,44,43,41,28,1,30,12,24,6,32,14,27,13,46,7,33,10,22,40,2,51,11,39,23,49,50,26,16,29,4,47,17,3,48,52,36,58,35,57,34,21,63,5,37,18,8,62,56,20,54,60,19,38,9,61,55,59,53};int main()
{int logicaladdress=0;int pagenum=0;int w=0;cout<<"系统页号对应块号情况(页号——>块号):\n";for(int i=0;i<64;i++){        cout<<setw(2)<<i<<"-->"<<setw(2)<<pagetable[i]<<"  ";if(i%8==7)cout<<endl;}cout<<endl<<"请输入逻辑地址(十进制):\n";cin>>logicaladdress;/*公式:物理地址=页号对应的页块*页面大小+页内偏移页内偏移=逻辑地址-页面大小*页面数*/pagenum=logicaladdress/pagesize;            //页面数w=logicaladdress-pagenum*pagesize;            //页面偏移if((logicaladdress/pagesize)>pagetablelength){cout<<"本次访问的地址已超出进程的地址空间,系统将产生越界中断!\n";return 0;}cout<<"对应的物理地址为(十进制):\n"<<pagetable[pagenum]*pagesize+w<<endl;system("pause");return 0;
}

对应截图如下:

公式:
物理地址=页号对应的页块页面大小+页内偏移
页内偏移=逻辑地址-页面大小
页面数

操作系统---页式地址重定位相关推荐

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

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

  2. 页式地址重定位模拟(java版本)

    代码: import java.util.Scanner;public class Page {// private static int block_number[];private static ...

  3. 页式地址重定位模拟(JAVA语言)

    实验内容及步骤: 1.用户输入内存大小(单位GB),系统把内存分块,每块大小由用户输入设置,单位为KB,按字节寻址(B),也就是一个地址对应一个字节的大小 2.用户输入进程大小(单位KB) 3.为进程 ...

  4. 操作系统是如何使用重定位表的

    一.重定位表的结构 重定位表是数据目录中第6项,它的结构如图示: 重定位表由多个块(block)组成,每个块内部由三部分组成--VirtualAddress.SizeOfBlock 和若干个2字节偏移 ...

  5. 编写程序来模拟计算机LRU算法,操作系统-页式虚拟存储管理程序模拟.doc

    实 验3: 页式虚拟存储管理程序模拟 实验目的: 编写程序来模拟计算机的两种调度方式: (1)先进先出算法 (2)最近最少使用算法 程序设计 FIFO() FIFO() LRU() Msize加1 S ...

  6. 操作系统内存管理--简单、页式、段式、段页式

    一.内存管理的目的和功能 内存一直是计算机系统中宝贵而又紧俏的资源,内存能否被有效.合理地使用,将直接影响到操作系统的性能.此外,虽然物理内存的增长现在达到了N个GB,但比物理内存增长还快的是程序,所 ...

  7. 重定位相关知识,为什么要重定位

    在NT环境下隐藏进程,也就是说在用户不知情的条件下,执行自己的代码的方法有很多种,比如说使用注册表插入DLL,使用Windows挂钩等等.其中比较有代表性的是Jeffrey Richer在<Wi ...

  8. Windows PE第6章 栈与重定位表

    第六章 栈与重定位表 本章主要介绍栈和代码重定位.站和重定位表两者并没有必然的联系,但都和代码有关.栈描述的是代码运行过程中,操作系统为调度程序之间相互调用关系,或临时存放操作数而设置的一种数据结构. ...

  9. S5PV210体系结构与接口04:代码重定位 SDRAM初始化

    目录 1. C语言环境初始化 1.1 C语言运行所需环境 1.2 初始化栈 1.2.1 栈的概念 1.2.2 栈的作用 1.2.3 如何初始化 1.3 初始化bss段 1.3.1 bss段的作用 1. ...

最新文章

  1. 转:典型开源3D引擎分类比较
  2. 编写和布置一个List Event Receivers(下)
  3. Vue学习(常用实例、脚手架搭建)-学习笔记
  4. 《Linux及安全》课程实践二
  5. 二叉树高度的代码解析_剑指offer 从上到下打印二叉树
  6. mysql 分区 key 写法_MySQL KEY分区
  7. opencv 霍夫变换检测直线和圆
  8. 非表单元素如何使用焦点事件
  9. Hadoop3.3.1 踩坑笔记
  10. iOS开发通过微信学习hijack(一)函数劫持
  11. 简单提取iOS13的ipsw固件的内置壁纸(或文件)
  12. SD-WAN的驱动者:云计算
  13. 使用showdown.js将Markdown文档转换为HTML
  14. 计算机考研面试有英语听力吗,考研复试前如何准备英语听力和口语
  15. “麒麟计划”落地苍南,赋能外贸企业数字化转型!
  16. 千粉缔造760w播放!B站“新人”UP主在B站怎么加速上位?
  17. 喜讯 | 创新引领,数据赋能,数说故事再度斩获金鼠标数字营销大赛双项大奖
  18. 学英语《每日一歌》之yesterday once more
  19. dnf最新地图编号2020_《DNF》2020摸金地图推荐
  20. codeforces 718E. Matvey's Birthday

热门文章

  1. spring aop之各advice通知的执行顺序
  2. 日 周 月 季度 年 统计
  3. 解决virus.vbs.wiritebin.a和Virus.Win32.Ramin.x病毒
  4. spark submit参数及调优(转载)
  5. 浅谈 React Fiber
  6. Java程序员兼职平台推荐
  7. Yac - PHP扩展
  8. 吉林大学2013级大一下学期程序设计作业:同学通讯录系统
  9. linux tar的排除,Tar命令排除指定目录(常用Linux命令整理)
  10. 【Ma蚁】蚂蚁上市,打新攻略,你可能拥有的