《编程演示三种存储管理方式的地址换算过程》实验报告

内师大计算机与信息工程学院
《操作系统》课程设计报告
编程演示三种存储管理方式地址换算过程实习题目
指导教师玉柱职称副教授
学生姓名
学号
日期2017/6
1.设计任务
编程演示三种存储管理方式的地址换算过程
2 设计的功能目标
1、分页方式的地址换算
2、分段方式的地址换算
3、段页式的地址换算
3 设计的思想、方法和技术(含数据结构、算法)
实验要求演示分页方式的地址换算,分段方式的地址换算,段页式的地址换算。
1.分页方式通过自定义的逻辑地址算出页号与页内地址,页号=逻辑地址/
页面大小,业内地址=逻辑地址%页面大小,然后通过页表来实现向物理
地址的转换。物理地址=块号*页面大小+页内地址
2.分段方式通过段号和段内地址得到物理地址。物理地址=段首地址+段内地址,段首地址根据段号到,段号和逻辑地址自定义
3.段页式通过段号得到页表首地址,通过页号得到块号,进而得到物理地址。物理地址=页表首地址+块号*页面长度+页内地址,通过段号到页表首地址,通过页号到块号,其中逻辑地址段号,页号,页内地址自定义。
4 设计的主要代码及注释
分页式部分:
int page(int A,int L)
{
int pl,pa;
printf("int luo ji di zhi:");
scanf("%d",&pl);
printf("int ye mian da xiao:");
scanf("%d",&pa);
if(pl>256)
printf("luo ji di zhi %d > ye biao chang du,wrong\n",pl);
else{
int d,P,kd,i;
int WD;
bootstrap方法
int PT[256];
for(i=0;i<256;i++)
{
PT[i]=rand() %512;
}
P=pl/pa;
d=pl%pa;
if(P>=256) printf("ye hao > biao chang du,wrong\n");
else {
printf("ye hao = luo ji di zhi / ye mian da xiao=%d,ye nei di zhi = luo ji di zhi % ye mian da xiao=%d\n",P,d);
kd=PT[P];
printf("gen ju ye hao:%d get kuai hao:%d\n",P,kd);
WD=kd*pa+d;
printf("wu li kuai hao=kuai hao*ye mian da xiao+ye nei di zhi\n");
printf("wu li di zhi=%d*%d+%d\n",kd,pa,d);
printf("luo ji di zhi huan suan hou wu li di zhi=%d\n\n",WD);
光催化机理
return (0);
惯习
}
}
}
分段式部分:
int Segment(int sn,int sd)
{
int i,wd;
for(i=0;i<255;i++)
{
st.segf[i]=rand()%255;
st.segl[i]=rand()%2048;
}淄博柴油机总公司
if(sn>256) printf("duan hao > duan biao chang du 256,wrong\n\n",sn);
else if(sd>st.segl[sn]) printf("duan nei di zhi > duan chang du ,wrong\n\n",sd,st.segl[sn]);
else{
printf("gen ju duan hao zhao dao duan shou di zhi:%d\n",st.segf[sn]);
printf("wu li di zhi=duan shou di zhi+duan nei di zhi\n");
printf("wu li di zhi =%d+%d\n",st.segf[sn],sd);
wd=st.segf[sn]+sd;
printf("huan suan de dao de wu li di zhi=%d\n\n",wd);
}
return (0);紫宸殿论坛
踏雪而归
}
段页式部分:
int SegPagt(int sn,int pn,int pd)
{
int i,wd;
sp.pl=256;
for(i=0;i<255;i++)
{
sp.pf[i]=sp.segf[i]=rand()%26624;
sp.ptl[i]=sp.segl[i]=rand()%512;
sp.pt[i]=rand()%256;
}
if(sn>=256)
printf("duan hao %d > ye biao chang du 256,wrong\n\n",sn);
else
if(pn>=256)
printf("ye hao %d > ye biao chang du 256,wrong\n\n",pn);
else
if(pd>sp.pl)
printf("ye nei di zhi > ye mian chang du,wrong\n\n",pd,sp.pl);
else{
printf("tong guo duan hao:%d get ye biao shou di zhi:%d\n,tong guo ye hao:%d get kuai hao:%d\n",sn,sp.pf[sn],pn,sp.pt[pn]);
printf("wu li di zhi=ye biao shou di zhi+kuai hao*ye mian chang du+ye nei di zhi\n");
printf("wu li di zhi=%d+%d*%d+%d\n",sp.pf[sn],sp.pt[pn],sp.pl,pd);
wd=sp.pf[sn]+sp.pt[pn]*sp.pl+pd;
printf("wu li di zhi:%d\n\n",wd);
}
return (0);
}
5 结果分析(含实现中出错原因分析)
分页式:
分段式:
段页式:
6 设计小结(即收获和体会)
通过本次实验,对分页式,分段式,段页式的地址转换有了更深的了解。发现自己编写代码能力和排
错能力的不足,通过实验提升了自己这两方面的能力

本文发布于:2024-09-21 14:44:09,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/355352.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:地址   设计   方式   换算   代码   物理地址   实现
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议