三种存储管理方式的地址换算过程课程设计.doc_第1页
三种存储管理方式的地址换算过程课程设计.doc_第2页
三种存储管理方式的地址换算过程课程设计.doc_第3页
三种存储管理方式的地址换算过程课程设计.doc_第4页
三种存储管理方式的地址换算过程课程设计.doc_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

课 程 报 告课程设计名称: 计算机操作系统 专 业 班 级 : 学 生 姓 名 : 学 号 : 指 导 教 师 : 课程设计时间:2011.6.15-2011.6.25 计算机科学 专业课程设计任务书学生姓名专业班级学号题 目编程演示三种存储管理方式的地址换算过程:课题性质其它课题来源自拟课题指导教师同组姓名主要内容1、分页方式的地址换算2、分段方式的地址换算3、段页式的地址换算任务要求 要求演示正确、清晰,编程所用工具不限。参考文献任满杰等操作系统原理实用教程 电子工业出版社 2006汤子瀛 计算机操作系统(修订版)西安电子科技大学出版社 2001张尧学 史美林计算机操作系统教程实验指导 清华大学出版社 2000 罗宇等 操作系统课程设计机械工业出版社 2005审查意见指导教师签字:教研室主任签字: 年 月 日 说明:本表由指导教师填写,由教研室主任审核后下达给选题学生,装订在设计(论文)首页1 需求分析编程演示三种存储管理方式的地址换算过程【基本要求】(1)分页方式地址算法。(2)分段方式地址算法。(3)段页式地址算法。2 概要设计一、程序模块1、 主函数 main()。2、分页方式地址算法PageAddress(int pa,int pl)。3、分段方式地址算法SegmentAddress(int sn,int sd)。4、段页式地址算法SegPag(int sn,int pn,int pd)。二、程序总框架 程序框架如图一:主函数结束运行段页式地址算法分段方式地址算法分页方式地址算法 图一:程序框架3 运行环境Windows XP sp3;4 开发工具和编程语言Microsoft Visual C+ 6.0 ,c语言。5 详细设计1, 定义结构体 typedef struct segtable /段式结构体 int segf256;/段首地址 int segl256;/段长segtable;struct segtable st;typedef struct segpag /段页式结构体 int segf256;/段首地址 int segl256;/段长 int ptl256;/页表长度 int bn256;/块号 int pf256;/页表首地址 int pl;/页面长度segpagt;struct segpag sp;2, void PageAddress(int pa,int pl)/分页式地址算法 该方法中pa表示要查找的逻辑地址,pl表示页面大小。页号p=pa/pl,页内地址d=pa%pl。先比较页号和页表长度大小,如果页号大于页表长度,越界中断。否者继续通过计算得到物理地址Mac=块号*页面大小+页内地址。 具体代码如下: void PageAddress(int pa,int pl)/分页式地址算法 int d,p,i; int Mac;/物理地址 int Bn256;/块号 for(i=0;ipl) printf(页号大于页表长度,越界中断!n); else printf(页号=逻辑地址/页面大小=%dn页内地址=逻辑地址%页面大小=%dn,p,d); printf(根据页号%d得到块号%dn,p,Bnp); Mac=Bnp*pl+d; printf(物理地址=块号%d*页面大小%d+页内地址%dn,Bnp,pl,d); printf(逻辑地址%d换算后的物理地址为%dnn,pa,Mac); 3,void SegmentAddress(int sn,int sd)/分段式地址算法该方法中sn表示段号、sd表示段内偏移地址。假定短表长度为256,首先比较段号与段表的大小,若大于则越界中断。然后比较段内地址与段长度,若大于,越界中断。否则根据段号找到首地址,然后计算物理地址Mac=段首地址+段内地址。具体代码如下:void SegmentAddress(int sn,int sd)/分段式地址算法int i;int Mac;/物理地址for(i=0;i=256)printf(段号%d大于等于段表长度256,越界中断n,sn);else if(sdst.seglsn)printf(段内地址%d大于段长度%d,越界中断n,sd,st.seglsn);elseprintf(根据段号找到段首地址%dn,st.segfsn);printf(物理地址=段首地址%d+段内地址%dn,st.segfsn,sd);Mac=st.segfsn+sd;printf(换算得到的物理地址为:%dn,Mac);4,void SegPag(int sn,int pn,int pd)/段页式地址算法 该方法中sn代表段号,pn代表页号,pd页内地址。设定段表长度为256,页面大小为256。比较段号与段表长度大小,若大于则越界中断。若小于继续下一步,比较页号与页表长度大小,若大于则越界中断。若小于继续下一步,比较页内地址和页面大小,若大于同样越界中断。否则继续下一步的计算,通过段号找到页表首地址,然后找到块号。最后计算物理地址=页表首地址+块号*页面长度+页内地址(Mac=sp.pfsn+sp.bnpn*sp.pl+pd)。具体代码如下:void SegPag(int sn,int pn,int pd)/段页式地址算法int i,Mac;sp.pl=256;for(i=0;i256)printf(段号%d大于段表长度256,越界中断n,sn);else if(pnsp.ptlpn)printf(页号%d大于页表长度%d,越界中断n,pn,sp.ptlpn);else if(pdsp.pl)printf(页内地址%d大于页面长度%d,中断n,pd,sp.pl);elseprintf(通过段号%d找到页表首地址%d找到块号%dn,sn,sp.pfsn,sp.bnpn);printf(物理地址=页表首地址%d+块号%d*页面长度%d+页内地址%dn,sp.pfsn,sp.bnpn,sp.pl,pd); Mac=sp.pfsn+sp.bnpn*sp.pl+pd;printf(物理地址:%dn,Mac); 5,void main() 该main方法中显示菜单、做选择要使用的方法实现地质换算。用sel做出选择,并用switch(sel)实现选择的目的。具体代码如下:void main()int sel;int pl,pa,sn,sd,pd,pn;while(1)printf(三种存储管理方式的地址换算过程nn);printf( 1.分页方式地址换算t);printf( 2.分段方式地址换算nn);printf( 3.短页式地址换算t);printf( 0.结束运行nn);printf(nn);printf(请输入你的选择:);scanf(%d,&sel);if(sel=0)printf(谢谢使用!);break;switch(sel)case 1:system(cls);printf(请输入换算逻辑地址:n);scanf(%d,&pa);printf(页面大小:n);scanf(%d,&pl);PageAddress(pa,pl);break;case 2:system(cls);printf(设定段表长度为256n);printf(请输入逻辑地址的段号:n);scanf(%d,&sn);printf(段内地址:n);scanf(%d,&sd);SegmentAddress(sn,sd);break;case 3:system(cls);printf(预设定段表长为256,页面大小为256n);printf(请输入逻辑地址的段号:n);scanf(%d,&sn);printf(页号:n);scanf(%d,&pn);printf(页内地址:n);scanf(%d,&pd);SegPag(sn,pn,pd);break;default:system(cls);printf(n);printf(n);printf(错误提示:输入有错,重新输入!);printf(n);6 调试分析通过调试发现了比较多的问题,输出%的问题即printf(页号=逻辑地址/页面大小=%dn页内地址=逻辑地址%页面大小=%dn,p,d)需要用两个百分号,才能显示出来,一个百分号还不显示。一步一个脚印,循循渐进,慢慢磨,最终就会成功,每一次出错是一次改良的机会,通过过一个个错误的改正,才能做出比较完整的程序,甚至完美的程序。7测试结果 (1)运行程序出现界面如下图二: 图二:开始选择界面 (2)选择1,提示输入需换算的逻辑地址,以及页面大小。输入完成后的结果如图三:图三:分页方式换算过程及结果 (3)选则2,进入分段方式地址换算,提示输入逻辑段号,以及页内地址,输入完成后,可得到物理地址。运行结果如图四:图四:分段方式换算过程及结果(4)选择3,进入段页式地址转换,提示输入段号,页号,页内地址。然后即可得到物理地址。运行结果如图五:图五:段页式换算过程及结果(5)选择0,结束运行。运行结果如图六:图六:结束运行结果(6)如果选择出错。运行结果如图七:图七:选择其他运行结果8 参考文献 1 谭浩强 C程序设计(第三版)清华大学出版社 2003 。2任满杰等 操作系统原理实用教程 电子工业出版社 2006 。3汤子瀛 计算机操作系统(修订版)西安电子科技大学出版社 2001 。4张尧学 史美林计算机操作系统教程实验指导 清华大学出版社 2000 。5罗宇等 操作系统课程设计机械工业出版社 2005。课程设计总结通过这次课程设计,让我充分了解三种存储管理方式的地址换算算法。刚开始的时候,看了半天的操作系统书,才弄懂三种算法。通过对框架的设计,到具体实现是比较麻烦的过程,开始想完全后,写在草纸上,然后一口气敲完代码,一大堆错误,最后,还是一步一步来实现,循循渐进,最终完成。

温馨提示

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

评论

0/150

提交评论