操作系统课程设计报告编程演示三种存储管理方式的地址换算过程_第1页
操作系统课程设计报告编程演示三种存储管理方式的地址换算过程_第2页
操作系统课程设计报告编程演示三种存储管理方式的地址换算过程_第3页
操作系统课程设计报告编程演示三种存储管理方式的地址换算过程_第4页
操作系统课程设计报告编程演示三种存储管理方式的地址换算过程_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 操作系统课程设计 20092103399 李迪实习题目指导教师职 称学生姓名学 号日 期实习题目指导教师职 称学生姓名学 号日 期内蒙古师范大学计算机与信息工程学院操作系统课程设计报告实习题目指导教师职 称学生姓名学 号日 期设计题目编程演示三种存储管理方式的地址换算过程指导教师王斯日古楞职称姓 名李迪学 号20092103399日 期2012/10/18主要内容要求:1 设计任务编程演示三种存储管理方式的地址换算过程2 设计的功能目标 1、分页方式的地址换算 2、分段方式的地址换算 3、段页式的地址换算3 设计的思想、方法和技术(含数据结构、算法)编程演示三种存储管理方式的地址换算过程,分

2、别为分页方式的地址换算,分段方式的地址换算,段页式的地址换算。分页方式通过逻辑地址算出页号与叶内地址,然后通过页表来实现向物理地址的转换。分段方式通过段号和段内地址得到物理地址。段叶式通过段号得到页表首地址,通过页号得到块号,进而得到物理地址。程序主要有三个功能,分别是分页方式的地址换算,分段方式的地址换算,段页式的地址换算。Switch函数包含4个case语句,分别用page,Segment,SegPagt完成分页方式的地址换算,分段方式的地址换算,段页式的地址换算。4 设计的主要代码及注释主函数部分:int main()int code; int pl,pa,sn,sd,pd,pn; /c

3、onst int ptl ; int temp; do printf(-地址换算过程-nn); printf( 1.分页式地址换算n); printf( 2.分段式地址换算n); printf( 3.段页式地址换算n); printf( 4.结束运行nn); printf(*本程序由李冬领设计-2010年12月23号*n); printf(-n); printf(请输入您的选择:);分页式地址换算部分:int page(int A,int L) int d,P,kd,i; int WD; int PT256; for(i=1;i=256) printf(页号大于页表长度,越界中断nn);/如果

4、页号大于页表长度,输出越界中段 else printf(页号=逻辑地址/页面大小=%d,页内地址=逻辑地址页面大小=%dn,P,d);/输出页号和页内地址 kd=PTP;/根据页号随机产生快号 printf(根据页号%d得到块号%dn,P,kd); WD=kd*L+d;/计算物理地址的公式printf(物理地址=块号*页面大小+页内地址n); printf(物理地址=%d*%d+%dn,kd,L,d);/输出物理地址=块号*页面大小+页内地址 printf(逻辑地址%d换算后的物理地址=%dnn,A,WD);/输出物理地址的结果 return (0); 分段式地址换算部分:nt Segment

5、(int sn,int sd)int i,wd;for(i=0;i256) printf(段号%d大于段表长度256,越界中断nn,sn);/如果段号大于段表长度,输出越界中断else if(sdst.seglsn) printf(段内地址%d大于段长度%d,越界中断nn,sd,st.seglsn);/如果段内地址大于段长度,输出越界中断elseprintf(根据段号找到段首地址%dn,st.segfsn);printf(物理地址=段首地址+段内地址n); printf(物理地址=%d+%dn,st.segfsn,sd); /输出物理地址=段首地址+段内地址 wd=st.segfsn+sd;/

6、计算物理地址的算法 printf(换算得到的物理地址=%dnn,wd);/输出物理地址 return (0);段页式地址换算部分:int SegPagt(int sn,int pn,int pd)int i,wd;sp.pl=256;for(i=0;i=256) printf(段号%d大于段表长度256,越界中断nn,sn);/如果段号大于段表长度256,输出越界中断else if(pn=256) printf(页号%d大于页表长度256,越界中断nn,pn);/如果页号大于页表长度,输出越界中断else if(pdsp.pl) printf(页内地址%d大于页面长度%d,中断nn,pd,sp

7、.pl);/如果页内地址大于页面长度,输出中断else printf(通过段号%d找到页表首地址%dn通过页号%d找到块号%dn,sn,sp.pfsn,pn,sp.ptpn);/输出页表首地址和块号 printf(物理地址=页表首地址+块号*页面长度+页内地址n); printf(物理地址=%d+%d*%d+%dn,sp.pfsn,sp.ptpn,sp.pl,pd);/输出物理地址=页表首地址+快号*页面长度+页内地址 wd=sp.pfsn+sp.ptpn*sp.pl+pd;/计算物理地址的公式 printf(物理地址为:%dnn,wd);/输出物理地址的最好结果return (0);5 结果

8、分析(含实现中出错原因分析分页式地址换算结果如图1:图1越界中断结果如图2:图2分段式地址转换结果如图3:图3段号越界中断如图4:图4段内地址越界如图5:图5段页式地址转换如图6:图6段号长度越界中断如图7:图7页号长度越界如图8:图8页内地址长度越界如图9:图96 设计小结(即收获和体会)这次课程设计,让我彻底明白了三种存储管理方式的地址换算算法,还让我知道做事情要心中个整体的概念,然后再去脚踏实地的去学习,得到自己想要的结果,开始的时候我没有进行深入的考虑,只是认为简单,但是做的时候就发现并不是这样,调试了很久都没没有成功,然后我就去查看资料,彻底的去了解要用到的知识点及算法,经过努力,我

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论