操作系统课程设计---老化算法模拟分页系统.docVIP

操作系统课程设计---老化算法模拟分页系统.doc

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
老化算法模拟分页系统 摘 要 设计与编写程序使用老化算法模拟一个分页系统。页面访问序列从文件(文本文件)中读取。对于一个给定的输入文件,列出每1000个内存访问中发生缺页中断的数目。 目 录 摘要………………………………………………………………I 1总体设计………………………………………………………1 1.1概要设计………………………………………………………1 2 详细设计………………………………………………………2 2.1 模块设计……………………………………………………2 2.1.1 主函数模块………………………………………………2 2.1.2 修改R位模块……………………………………………3 2.1.3 读取文件模块……………………………………………3 2.1.4 判定缺页中断模块………………………………………4 2.1.5 读取R位模块……………………………………………6 2.2 流程图………………………………………………………7 3 调试与测试……………………………………………………8 3.1调试过程中的问题………………………………………………8 3.2测试结果………………………………………………………9 参考文献 ………………………………………………………10 心得体会 ………………………………………………………11 教师评语 ………………………………………………………12 附 录……………………………………………………………13 1 总体设计 1.1概要设计 1.编写一个程序,它使用老化算法模拟一个分页系统。页帧的数量是参数。页面的访问序列从文件中读取。对于一个给定的输入文件。列出每1000个内存访问中发生缺页中断的数目,它是可用页帧数的函数。(教材P141,41题); 2.一个简单的典型测试数据: 分配的内存帧数:3 进程页访问序列:0、1、2、3、4、1、2、0、1、2、3、4、0、1、2、3; 3.程序中相对地址空间为10个页。程序设计作为参数输入,假设页帧为3块,初始均为空;程序设计时作为参数输入,时钟周期为10个数; 4.按要求设计测试比较更大数据量的页面访问。 2 详细设计 2.1模块设计 整个程序运用老化算法并使用Visual Studio2008开发平台。整个程序中分为读取文件,修改R位,读取R位,判断缺页中断和主函数。 2.1.1主函数模块 main()程序流程控制和控制时钟周期以及最终的结果打印。 void main(){ char ch[Size]; read(ch); int i=0; while(0=ch[i] ch[i]=9){ printf(%c,ch[i]); //写入帧并判断缺页中断 dauflt(ch[i]); //修改R位 change(ch[i]); i++; //时钟周期为10个数 if(i%10 == 0){ printf(灬灬灬灬灬灬灬灬灬灬灬灬灬灬\n); printf(\n); //写入计数器 readch(); //清空R位 for(int i=0;i10;i++) R[i] = 0; } } printf(\n计数器最终情况:\n); for(int j=0;jrow;j++) { printf(\t\t); for(int k=0;k5;k++) printf(%d,count[k][j]); printf(\n); } printf(缺页中断数:\t%d\n,fault_num); } 2.1.2修改R位模块 change(char c)将读入的字符逐一进行判断并修改其对应的R位上的值,当R位上为0则改为1,1则无需做任何修改。 //读取R位 void readch(){ char ch; for(int i=0;i5;i++){ ch = frame[i]; //获取帧对应的R位,并写入计数器 count[i][row] = R[ch-48]; } row++; } 2.1.3读取文件模块 read(char ch[])判断文件是否存在,并将data.txt的内容读取到字符数组ch[]中。 //读取文件内容 void read(char ch[]) { int i=0; file=fopen(date.txt,rb); if(file==NULL) printf(can not open the date.txt file); while(!(feof(file))) { ch[i]=getc(file); i++; } fclose(file); } 2.

文档评论(0)

li455504605 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档