用c语言分页式存储管理的地址转换过程实现
请求分页式存储管理的地址转换过程实现:●基本要求:实现分页式存储地址转换过程,在此基础上实现请求分页的地址转换。实现请求页式地址转换中出现的缺页现象时,用到的先进先出FI...
请求分页式存储管理的地址转换过程实现:
●基本要求:实现分页式存储地址转换过程,在此基础上实现请求分页的地址转换。实现请求页式地址转换中出现的缺页现象时,用到的先进先出FIFO、最近最久未使用LRU、最佳OPT置换算法。
●参考学时:8学时
●参考资料:
利用键盘输入本模拟系统的物理块的大小,作业的页表中的块号;完成逻辑地址转换成相应的物理地址的过程。
1、建立一张位示图,用来模拟内存的分配情况,利用随机数产生一组0和1的数对应内存的使用情况。
2、输入块(页)的大小,通过模拟位示图为本作业分配内存空间建立相应的页表(长度不定);
3、录入逻辑地址转换成相应的物理地址
4、扩充页表,变成请求式的二维页表(增加存在位等)完成地址转换。
5、输入分配给本作业的块数,模拟作业执行的逻辑地址转换成页面调度次序;
6、分别采用OPT、FIFO、LRU置换算法,利用堆栈结构完成页面置换;记录被换出的页面和新换入的页面。
我求源代码,要求上面有啊,最好是c语言的,有注释,满意回答我追加分,实话说我不在乎分的....谢谢各为大神哇,小弟不胜感激 展开
●基本要求:实现分页式存储地址转换过程,在此基础上实现请求分页的地址转换。实现请求页式地址转换中出现的缺页现象时,用到的先进先出FIFO、最近最久未使用LRU、最佳OPT置换算法。
●参考学时:8学时
●参考资料:
利用键盘输入本模拟系统的物理块的大小,作业的页表中的块号;完成逻辑地址转换成相应的物理地址的过程。
1、建立一张位示图,用来模拟内存的分配情况,利用随机数产生一组0和1的数对应内存的使用情况。
2、输入块(页)的大小,通过模拟位示图为本作业分配内存空间建立相应的页表(长度不定);
3、录入逻辑地址转换成相应的物理地址
4、扩充页表,变成请求式的二维页表(增加存在位等)完成地址转换。
5、输入分配给本作业的块数,模拟作业执行的逻辑地址转换成页面调度次序;
6、分别采用OPT、FIFO、LRU置换算法,利用堆栈结构完成页面置换;记录被换出的页面和新换入的页面。
我求源代码,要求上面有啊,最好是c语言的,有注释,满意回答我追加分,实话说我不在乎分的....谢谢各为大神哇,小弟不胜感激 展开
2个回答
展开全部
逻辑地址转换为物理地址
#include<stdio.h>
main()
{int p,d,la,pa,ps,a[100],n,i;/*pa为物理地址,la为物理地址,ps为页面大小,a[100]存放页表中对应主存的页号,n为页面数*/
printf("请输入逻辑地址la=");/*输入逻辑地址*/
scanf("%d",&la);
printf("请输入页面大小ps=");/*输入页面大小*/
scanf("%d",&ps);
printf("请输入页面数n=");/*输入页面数*/
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("输入页表中第%d页项中主存页号=",i);
scanf("%d",&a[i]);
}/*输入页表中主存的页号*/
p=la/ps;d=la-p*ps;/*p为页表项的页号,d为页内位移*/
pa=a[p]*ps+d;
printf("逻辑地址为%d的物理地址为%d",la,pa);
}
#include<stdio.h>
main()
{int p,d,la,pa,ps,a[100],n,i;/*pa为物理地址,la为物理地址,ps为页面大小,a[100]存放页表中对应主存的页号,n为页面数*/
printf("请输入逻辑地址la=");/*输入逻辑地址*/
scanf("%d",&la);
printf("请输入页面大小ps=");/*输入页面大小*/
scanf("%d",&ps);
printf("请输入页面数n=");/*输入页面数*/
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("输入页表中第%d页项中主存页号=",i);
scanf("%d",&a[i]);
}/*输入页表中主存的页号*/
p=la/ps;d=la-p*ps;/*p为页表项的页号,d为页内位移*/
pa=a[p]*ps+d;
printf("逻辑地址为%d的物理地址为%d",la,pa);
}
2012-04-23
展开全部
不懂
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询