还剩6页未读,继续阅读
文本内容:
内蒙古师范大学计算机与信息工程学院《操作系统》课程设计报告编程演中二种存储管理方式的地址换设计题目算过程王斯日古楞指导教师职称李迪姓名20092103399学号2012/10/18日期主要内容要求1设计任务编程演示三种存储管理方式的地址换算过程2设计的功能目标
1、分页方式的地址换算
2、分段方式的地址换算
3、段页式的地址换算3设计的思想、方法和技术含数据结构、算法编程演示三种存储管理方式的地址换算过程,分别为分页方式的地址换算,分段方式的地址换算,段页式的地址换算分页方式通过逻辑地址算出页号与叶内地址,然后通过页表来实现向物理地址的转换分段方式通过段号和段内地址得到物理地址段叶式通过段号得到页表首地址,通过页号得到块号,进而得到物理地址程序主要有三个功能,分别是分页方式的地址换算,分段方式的地址换算,段页式的地址换算Switch函数包含4个case语句,分别用page,Segment,SegPagt完成分页方式的地址换算,分段方式的地址换算,段页式的地址换算4设计的主要代码及注释主函数部分int main{int code;int pl,pa,sn,sd,pd,pn;//const intptl;int temp;do{printfC地址换算过程----------\n\n〃;printf〃
1.分页式地址换算\n〃;printfC
2.分段式地址换算\n〃;printfC
3.段页式地址换算\n〃;printf〃
4.结束运行\n\n〃;printf〃******本程序由李冬领设计--2010年12月23号*****\n〃;printf〃------------------------------------------------------------------------------------\n〃;printf〃请输入您的选择〃;分页式地址换算部分int pageintA,int L{int d,P,kd,i;int WD;int PT
[256];for i=l;i256;i++PT[i]=rand%512;〃定义随机产生的快号在1到512之间P二A/L;〃页号等于逻辑地址/页面大小d=A%L;〃页内地址二逻辑地址%页面大小ifP=256printf〃页号大于页表长度,越界中断\n\n〃;〃如果页号大于页表长度,输出越界中段else{printf〃页号二逻辑地址/页面大小=%d,页内地址二逻辑地址%页面大小=%d\nz,,P,d;〃输出页号和页内地址kd=PT[P];〃根据页号随机产生快号printf〃根据页号%d得到块号%八十,P,kd;WD=kd*L+d;〃计算物理地址的公式printf〃物理地址二块号*页面大小+页内地址\n〃;printf〃物理地址=%d*%d+%d\n〃,kd,L,d;//输出物理地址二块号*页面大小+页内地址printf〃逻辑地址%d换算后的物理地址二%d\n\n〃,A,WD;〃输出物理地址的结果return0;分段式地址换算部分nt Segmentint sn,int sdint i,wd;fori=0;i255;i++{st.segf[i]=rand%255;〃定义随机产生段首地址为1到255之间st.segl[i]=rand%2048;〃定义随机产生段长度为1到2048之间if sn256printf〃段号%€1大于段表长度256,越界中断\n\n〃,sn;〃如果段号大于段表长度,输出越界中断else ifsdst.segl[sn]printf〃段内地址%d大于段长度%d,越界中断\n\n〃,sd,st.seglEsn];〃如果段内地址大于段长度,输出越界中断else{printf〃根据段号找到段首地址%d\n〃,st.segf[sn];printf〃物理地址二段首地址+段内地址\n〃;printf〃物理地址=%d+%d\n〃,st.segf[sn],sd;//输出物理地址二段首地址+段内地址wd=st.segf[sn]+sd;//计算物理地址的算法printf〃换算得到的物理地址二%d\n\n〃,wd;〃输出物理地址return0;段页式地址换算部分int SegPagtintsn,int pn,int pdint i,wd;sp.pl=256;fori=0;i255;i++{sp.pf[i]=sp.segf[i]=rand%26624;〃定义随机产生的数在1到26624之间sp.ptl[i]=sp.5381[口=四口€1%512;〃定义随机产生的数在1到512之间sp.pt[i]=rand%256;〃定义随机产生的数在1到256之间if sn=256printf〃段号%d大于段表长度256,越界中断\n\n〃,sn;〃如果段号大于段表长度256,输出越界中断else ifpn=256printf〃页号%d大于页表长度256,越界中断\n\n〃,pn;〃如果页号大于页表长度,输出越界中断else ifpdsp.pl printf页内地址%d大于页面长度%d,中断\n\n〃,pd,sp.pl;〃如果页内地址大于页面长度,输出中断else{printfC通过段号%d找到页表首地址%d\n通过页号外d找到块号%d\n〃,sn,sp.pf[sn],pn,sp.pt[pn];〃输出页表首地址和块号printf〃物理地址二页表首地址+块号*页面长度+页内地址\n〃;printf物理地址=%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〃物理地址为:%d\n\n〃,wd;〃输出物理地址的最好结果}return0;5结果分析含实现中出错原因分析分页式地址换算结果如图1运地址地址页行址段式地•C:\Users\ll\Desktop\main\Debug\编程演示三种存储肯理方式的地址换算过程exe,请斛管选险曹翩融评、8页面大小B;5=逻辑地址%页面大小页号=逻辑地址/见面大小页内地址=17=182,廉盛:黄疆昼尔+页内地址物理地址=126*25-17越界中断结果如图21234■・C:\U$ers\ll\D=ktop\main\Debug\编程演示三种存储管理方式的地址换算过程.exJ地址换算过程父页式地址复刀段式地易址驾页式地异束运行址入点1人盍手度小于S2S6,越界中断图2分段式地址转换结果如图3•C:\Users\H\Desktop\main\Debug.司中I示三匚三Y-二算过程.exe地址换算过程----------------------------------------------父页式地ILI刀段式地址磐页式地址束运行址道输入您的羹盘2;青演示设定段表长度小于256殳号:56段内地址:地址231此•段内地址56颂理地址=231+56:负算得到的物理地址=287段号越界中断如图4SS12341234MMM,C:\Users\ll\De5ktop\main\Debug\式程量示三种存储管理方式的也弊算过程ex.;•■4—————页式地址段式地址页式地束运行址地址换算过程----------------------------------------------请输入您的旌筐2336段内地址段号大于段表长度越界中断336256,图4段内地址越界如图5■・C:\Users\H\Desktop\main\Debug\骗程演示三种存储营理方式的地址换算过程.exe・I口I回父页式地址刀段式地址驾页式地束运行址地址换算过程----------------------------------------------道道示设定薜养长展小于256请输入逻辑讪扯的套号98段内地址1234段内地址大于段长度越界中断1234306,段页式地址转换如图612341234^#1MMMMMM•C:\Users\ll\Desktop\main\Debug\编程演示三种存储营建方式的地二止奂算过程.exe,父页式地■页式地址刀段式地址■段式地驾页式地址址页式地■束运行址束运行址■清输公所您咨弟3理袈多葭麦作丹经/贝面大小为256请输入逻辑:的段号felt得号页内地址富过段号找到贝表首地址5619611通过口号找到映号56130唠理地址=页表昔地址♦块号共页面长度♦页内地址颂理地址=19611+130・256・65坳理通江为52956_________________________________段号长度越界中断如图7:,C:\User5\H\Desktop\main\Debug\编程演示三种存储管遑方式的地址换算过程.exe,地址换算过程父页式地刀段式地址磐页式地址束运行址地址换算过程----------------------------------------------情输幺您您酒繇3微触遍鹘大小为期3页内地址6段号大于段表长度越界中断266256,货号长度越界如图8,C:\User5\ll\Desktop\main\Debug\编程演示三种存储管三里方式的地址安算过程.exe,----------------地址换算过程----------------------------------------------靖输鸳学您酒单3123412341234MMMMMM微觞揄健大小为期56页号289阿内地址56页号大于页表长度越界中断289256,页内地址长度越界如图9图9■・C:\Use0H\Desktop\main\Debug\编程演示三种存储管遑方式的地址换算过程.exe・[]回.K6设计小结(即收获和体会)----------------地址换舁过程----------------------------------------------■这页次式课地程设址计,让我彻底明白了三种存储管理方式的地址换算算法,还让我知道做事情要心中个整■段式地址体的概念,然后再去脚踏实地的去学习,得到自己想要的结果,开始的时候我没有进行深入的考虑,只页式地■束运行址是认为■简单,但是做的时候就发现并不是这样,调试了很久都没没有成功,然后我就去查看资料,彻底的去了解要用到的知识点及算法,经过努力,我得到了自己期望的结果这次课程设计,不仅让我对操作系统这门课程有了更深入的了解,还给了我很大的启示,做一件事情,就要从根本上去了解它,然后缪的远择3_寻页求设解定决段的方案,这样才能达到自己的目的,一味的去追求结果是个很不好的习惯,我们应该在解决问题修番楹翁鳄面大小为256的过程中去提高自己1234。
个人认证
优秀文档
获得点赞 0