c语言 存储管理地址转换,分页管理地址转换器(C语言).docx

本文介绍了一个使用C语言实现的分页内存管理地址转换器实验。该实验通过输入页面大小、逻辑地址及页表信息,输出对应的物理地址或越界访问警告。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

分页管理地址转换器(C语言)

实验二 设计一个分页内存管理的地址转换器班级:14级2班 姓名:侯XX 学号:201442060**实验目的用C/C++/JAVA实现分页内存管理中的逻辑地址转换成物理地址的过程。二、实验内容1)输入 随机输入某页式系统的页面大小、页表以及逻辑地址。2)输出:通过设计的地址转换器输出以下内容。如果逻辑地址合法,请输出其相应的逻辑地址。反之,输出警告“越界访问”实验示例如:页表如下。输入:页面大小1024byte、逻辑地址3100byte、页表如下。 输出: 其逻辑地址为7196byte 页帧号 页 号80 4594730221 输入:逻辑地址20000byte 输出:越界访问实验原理 页式管理系统中逻辑地址向物理地址的转换过程如下:1)计算出逻辑地址在逻辑空间的页号p和页内位移d。2)查看页号是否合法,若合法,则找出其在内存中存放的页帧号f。3)根据页帧和页内位移计算出物理地址.物理地址=f*页帧大小+d五、实验代码#include #include #define MAX 100typedef 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;ij) { printf("越界访问!"); } else { physical_adress=P[p].f*page_size+d; printf("物理地址为:(单位:byte)\n"); printf("%d\n", physical_adress); } return 0;}实验结果截图输入 页面大小 1024,逻辑地址3100的结果截图:输入 页面大小1024,逻辑地址20000的结果截图:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值