资源描述
. .
实验二设计一个分页存管理的地址转换器
班级:14级2班XX:侯XX 学号:202142060**
一、 实验目的
用C/C++/JAVA实现分页存管理中的逻辑地址转换成物理地址的过程。
二、实验容
1〕输入
随机输入某页式系统的页面大小、页表以及逻辑地址。
2〕输出:通过设计的地址转换器输出以下容。
如果逻辑地址合法,请输出其相应的逻辑地址。
反之,输出警告“越界访问〞
三、 实验例如
如:页表如下。
1) 输入:页面大小1024byte、逻辑地址3100byte、页表如下。
输出:其逻辑地址为7196byte
页帧号
页 号
8
0
4
5
9
4
7
3
0
2
2
1
2) 输入:逻辑地址20000byte
输出:越界访问
四、 实验原理
页式管理系统中逻辑地址向物理地址的转换过程如下:
1)计算出逻辑地址在逻辑空间的页号p和页位移d。
2)查看页号是否合法,假设合法,那么找出其在存中存放的页帧号f。
3)根据页帧和页位移计算出物理地址.物理地址=f*页帧大小+d
五、实验代码
#include <stdio.h>
#include <stdlib.h>
#define MAX 100
typedef struct
{
int p;
int f;
}Page;
int main()
{ int page_size;
int logic_adress;
int physical_adress;
int d;
int i,j,p;
Page P[MAX];
printf("请输入页中页号个数:\n");
scanf("%d",&j);
printf("请输入页表:\n");
printf("页号叶帧号\n");
for(i=0;i<j;i++)
{
scanf("%d %d",&P[i].p,&P[i].f);
}
printf("请按顺序输入页面大小和逻辑地址:(单位:byte)\n");
scanf("%d\t%d",&page_size,&logic_adress);
d=logic_adress%page_size;
p=logic_adress/page_size;
if(p>j)
{
printf("越界访问!");
}
else
{
physical_adress=P[p].f*page_size+d;
printf("物理地址为:(单位:byte)\n");
printf("%d\n", physical_adress);
}
return 0;
}
六、 ???果截?
1. ?入 ?面大小 1024,??地址3100的?果截?:
2. ?入 ?面大小1024,??地址20000的?果截?:
教育之通病是教用?的人不用手,不教用手的人用?,所以一?所能。教育革命的?策是手??盟,?果是手与?的力量都可以大到不可思?。
. .word.zl.
展开阅读全文