程序模拟分页系统的地址变换过程

原创 2015年11月29日 21:33:23

注:下面分析都是建立在基本分页存储管理方式的基本地址变换机构基础之上的。

题目:

某系统程序空间与物理空间都是2GB,页面大小为4KB。已知某进程的页表如下,请编写程序模拟分页系统的地址变换过程。


其实就是实现下逻辑地址到物理地址的转化。

下面的图说明了上面页表的作用(表左边用户程序对应了逻辑地址,右边内存对应着物理地址):

下面是页号和页内地址的计算公式(上面的图没反应页内地址):

页号P和页内地址d的计算公式
– P=INT [A/L] INT:整除函数
– d=[A] % L %:取余
–A:逻辑地址空间中的地址,L:页面大小


其实这也算不上什么公式,想想理所当然的嘛。。。

我们又知道:

内存空间被划分为与页面等长的若干区,称为物理块或页框。如下图:



不难进而得出物理地址 = 块号*页面大小 + 块内地址 = 块号*页面大小 + 页内地址

结合上述分析不难得出模拟程序为:

#include<stdio.h>

int pageTable[10]={32102,443217,6723,8985,11238,
29065,234205,45812,240561,300451};

//页面大小 
#define PageSize 4096

//传入参数:逻辑地址(假设输入合法) 
int formulaMethod(int logicalAddress) {
	//页号 
	int P = logicalAddress/PageSize;
	//页内地址
	int d = logicalAddress%PageSize;
	//块号 
	int Fno = pageTable[P]; 
	//返回计算所得的物理地址 
	return Fno*PageSize + d; 	 
}

int main() {
	int logicalAddress;
	printf("请输入逻辑地址:");
	scanf("%d",&logicalAddress); 
	printf("物理地址为:%d\n",formulaMethod(logicalAddress)); 
}






版权声明:本文为博主原创文章,未经博主允许不得转载。

分页存储 -- 地址变换机构

------ 为了能将用户地址空间中的逻辑地址变换为内存空间中的物理地址,在系统中必须设置地址变换机构。 该机构的基本任务是:实现从逻辑地址到物理地址的转换。(页面大小和物理块大小相同) 由于页内地址...
  • dongyanxia1000
  • dongyanxia1000
  • 2016年06月19日 13:58
  • 2645

分页系统的地址变换

逻辑地址 = 页号 + 页内地址 A = P 拼接(+)W 设页的大小为L P = A/L W = A%L 但一般是通过二进制的方法,首先根据页大小确定页内地址的位数,则剩下...
  • sunmenggmail
  • sunmenggmail
  • 2012年04月15日 09:30
  • 2089

操作系统 请求分页式存储管理的地址转换过程实现

  • 2009年06月04日 16:48
  • 14KB
  • 下载

操作系统分页地址变换

  • 2010年01月11日 23:56
  • 33KB
  • 下载

分页系统的地址变换机构

地址变换过程 ¦1)分页地址变换机构将相对地址分为(页号,页内地址)      页号 P=INT[A/L];页内位移量  W=AMOD L; ¦ 2)读取PTR中的页表长度。     ...
  • qq_38849572
  • qq_38849572
  • 2017年06月05日 11:26
  • 379

页式存储和段页式存储的地址转换过程

一.页式存储 以一个例子的形式讲解逻辑地址到物理地址的转换: 某虚拟存储器的用户编程空间共32个页面,每页为1KB,内存为16KB。假定某时刻一用户页表中已调入内存的页面的页号和物理块...
  • a48351217a
  • a48351217a
  • 2014年08月06日 12:51
  • 2735

虚拟地址到物理地址的地址变换过程

与其说虚拟地址,倒不如说内核给程序(代码段、数据段)提供了统一的访问模式(抽象出统一的访问模式)基址加偏移量(这也是内存的分层次的断页管理模式)。所以所有程序的编码你可以从假设的“0”基址开始开始编程...
  • yunfenglw
  • yunfenglw
  • 2015年05月09日 19:21
  • 1412

请求分页系统工作机制

请求分页系统建立在基本分页系统基础之上,为了支持虚拟存储器功能而增加了请求调页功能和页面置换功能。请求分页是目前最常用的一种实现虚拟存储器的方法。 在请求分页系统中,只要求将当前需要的一部分页面...
  • hit_shaoqi
  • hit_shaoqi
  • 2016年11月13日 15:53
  • 1099

操作系统中地址变换

转载:点击打开链接 一、主存的无力组织和逻辑组织 1. 绝对地址 计算机中,存储器是按字组织,每个字由若干”位“组成(不同计算机子长不同),每个字分配一个地址 目前以多字节为单位进行编址 系...
  • xing_827
  • xing_827
  • 2017年09月05日 13:24
  • 415

操作系统中页式地址转化

操作系统中页式地址转化   关于地址转换   在计算机操作系统中,地址转换是存储管理的一个主要功能。所谓地址转换就是将用户的逻辑地址转换成内存的物理地址,完成地址重定位。需要指出的是,地...
  • qq_25843323
  • qq_25843323
  • 2016年01月01日 14:20
  • 2302
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:程序模拟分页系统的地址变换过程
举报原因:
原因补充:

(最多只允许输入30个字)