![操作系统课程设计-老化算法模拟分页系统_第1页](http://file4.renrendoc.com/view/8368f8f2aba0e843c94b0593caf2e4b2/8368f8f2aba0e843c94b0593caf2e4b21.gif)
![操作系统课程设计-老化算法模拟分页系统_第2页](http://file4.renrendoc.com/view/8368f8f2aba0e843c94b0593caf2e4b2/8368f8f2aba0e843c94b0593caf2e4b22.gif)
![操作系统课程设计-老化算法模拟分页系统_第3页](http://file4.renrendoc.com/view/8368f8f2aba0e843c94b0593caf2e4b2/8368f8f2aba0e843c94b0593caf2e4b23.gif)
![操作系统课程设计-老化算法模拟分页系统_第4页](http://file4.renrendoc.com/view/8368f8f2aba0e843c94b0593caf2e4b2/8368f8f2aba0e843c94b0593caf2e4b24.gif)
![操作系统课程设计-老化算法模拟分页系统_第5页](http://file4.renrendoc.com/view/8368f8f2aba0e843c94b0593caf2e4b2/8368f8f2aba0e843c94b0593caf2e4b25.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
操作系统课程设计老化算法模拟分页系统总体设计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.按要求设计测试比较更大数据量的页面访问。操作系统课程设计老化算法模拟分页系统全文共17页,当前为第3页。
2详细设计操作系统课程设计老化算法模拟分页系统全文共17页,当前为第3页。2.1模块设计整个程序运用老化算法并使用VisualStudio2008开发平台。整个程序中分为读取文件,修改R位,读取R位,判断缺页中断和主函数。2.1.1主函数模块main()程序流程控制和控制时钟周期以及最终的结果打印。voidmain(){ charch[Size]; read(ch); inti=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(inti=0;i<10;i++) R[i]=0; } } printf("\n计数器最终情况:\n"); for(intj=0;j<row;j++) {操作系统课程设计老化算法模拟分页系统全文共17页,当前为第4页。 printf("\t\t");操作系统课程设计老化算法模拟分页系统全文共17页,当前为第4页。 for(intk=0;k<5;k++) printf("%d",count[k][j]); printf("\n"); } printf("缺页中断数:\t%d\n",fault_num);}2.1.2修改R位模块 change(charc)将读入的字符逐一进行判断并修改其对应的R位上的值,当R位上为0则改为1,1则无需做任何修改。//读取R位voidreadch(){ charch; for(inti=0;i<5;i++){ ch=frame[i]; //获取帧对应的R位,并写入计数器 count[i][row]=R[ch-48]; } row++;}2.1.3读取文件模块 read(charch[])判断文件是否存在,并将data.txt的内容读取到字符数组ch[]中。//读取文件内容voidread(charch[]){ 操作系统课程设计老化算法模拟分页系统全文共17页,当前为第5页。 inti=0;操作系统课程设计老化算法模拟分页系统全文共17页,当前为第5页。file=fopen("date.txt","rb"); if(file==NULL) printf("cannotopenthedate.txtfile"); while(!(feof(file))) { ch[i]=getc(file); i++; } fclose(file);}2.1.4判定缺页中断模块 dauflt(charc)每当读入一个文件首先在frame[4]判断是否有空位,有则直接补到空位处并引发缺页中断;无则查看计数器,选择最小计数器对应的帧来存放,并同样引发缺页中断;另外,当此数在帧内存在时,无需做任何操作。//判断缺页中断voiddauflt(charc){ inth=0; intmin=0; intcounts[3]={0}; //判断是否有空位 for(h=0;h<3;h++){ if(frame[h]==c) break; if(0>frame[h]||frame[h]<9){ frame[h]=c; fault_num++; printf("丨"); break;操作系统课程设计老化算法模拟分页系统全文共17页,当前为第6页。 } 操作系统课程设计老化算法模拟分页系统全文共17页,当前为第6页。 } //无空位的情况 if(h==3){ //判断帧内是否有这个数 for(intp=0;p<3;p++){ if(frame[p]==c) break; } //帧内无这个数 if(p==3){ //发生缺页中断 fault_num++; printf("丨"); //统计计数器 for(intk=0;k<3;k++){ for(intj=0;j<row;j++){ counts[k]+=count[k][j]; } } //比较计数器,选择最小器 intminlin=counts[0]; for(intj=1;j<3;j++){ if(minlin>counts[j]){ min=j;操作系统课程设计老化算法模拟分页系统全文共17页,当前为第7页。 minlin=counts[j];操作系统课程设计老化算法模拟分页系统全文共17页,当前为第7页。 } } frame[min]=c; } } //输出当前帧内情况 printf("\t帧内情况:"); for(intz=0;z<3;z++){ printf("%c\t",frame[z]); } printf("\n");}2.1.5读取R位模块readch()每当时钟周期到时,调用此函数将帧frame[4]内的值写入计数器count[4][row]中,row表示当前处于第几个时钟周期。//读取R位voidreadch(){ charch; for(inti=0;i<3;i++){ ch=frame[i]; //获取帧对应的R位,并写入计数器 count[i][row]=R[ch-48]; } row++;操作系统课程设计老化算法模拟分页系统全文共17页,当前为第8页。}
2.2流程图操作系统课程设计老化算法模拟分页系统全文共17页,当前为第8页。主函数主函数main读取文件read读取文件read成功帧内是否存在帧内是否存在否否缺页中断dauflt是缺页中断dauflt是修改R位change修改R位change时钟周期是否到了时钟周期是否到了否否是是写入计数器,清空R位写入计数器,清空R位打印打印结果结束结束操作系统课程设计老化算法模拟分页系统全文共17页,当前为第9页。
3调试与测试操作系统课程设计老化算法模拟分页系统全文共17页,当前为第9页。3.1调试过程中的问题读取文件时候访问不了数据,页面访问序列存放到文件data.txt中,该文件放入工程目录下,然后将文件中的序列读入一个数组中。修改R位,每个页设置一个R位(访问位),取值为0(表示未访问),取值为1,当在一个时钟滴答内访问该页时,置为1。每个时钟滴答开始时置所有页的R位为0。操作系统课程设计老化算法模拟分页系统全文共17页,当前为第10页。
3.2测试结果操作系统课程设计老化算法模拟分页系统全文共17页,当前为第10页。data.txt中的数据:结果:操作系统课程设计老化算法模拟分页系统全文共17页,当前为第11页。
参考文献操作系统课程设计老化算法模拟分页系统全文共17页,当前为第11页。[1]塔嫰鲍姆:《现代操作系统》[M],机械工业出版社2009.7,第99页。操作系统课程设计老化算法模拟分页系统全文共17页,当前为第12页。
心得体会操作系统课程设计老化算法模拟分页系统全文共17页,当前为第12页。 每一次课程设计度让我学到了在平时课堂不可能学到的东西。所以我对每一次课程设计的机会都非常珍惜。不一定我的课程设计能够完成得有多么完美,但是我总是很投入的去研究去学习。一个多月的实验就这样到了尾声,我想我还学到了一些东西。学习这门课之前不知道上这门课的真正用途在哪里,现在才知道操作系统是那么有用,电脑中一重之重的基础软件,当然非常复杂,这次的实验我是做第三个题目,而这个程序题目要求也并非真正的分页系统,而是模拟老化算法的分页系统,所以做起来难度并非很高。操作系统课程设计老化算法模拟分页系统全文共17页,当前为第13页。
操作系统课程设计老化算法模拟分页系统全文共17页,当前为第13页。教师评语操作系统课程设计老化算法模拟分页系统全文共17页,当前为第14页。
#include<stdio.h>操作系统课程设计老化算法模拟分页系统全文共17页,当前为第14页。#include<stdlib.h>#include<string.h>FILE*file;#defineSize1000#defineNum10 //缺页中断数staticintfault_num=0; //帧static charframe[3]; //访问位static intR[10]={0}; //计数器static intcount[3][1000]={0}; //计数器的列数static introw=0;//读取文件内容voidread(charch[]){ inti=0;file=fopen("date.txt","rb"); if(file==NULL) printf("cannotopenthedate.txtfile"); while(!(feof(file))) { ch[i]=getc(file); i++; } fclose(file);}//修改R位voidchange(charc){ for(inti=0;i<10;i++){ i+=48; if(c==i) R[i-48]=1; i-=48; }}//读取R位voidreadch(){ charch; for(inti=0;i<3;i++){ ch=frame[i]; //获取帧对应的R位,并写入计数器 count[i][row]=R[ch-48];操作系统课程设计老化算法模拟分页系统全文共17页,当前为第15页。 }操作系统课程设计老化算法模拟分页系统全文共17页,当前为第15页。 row++;}//判断缺页中断voiddauflt(charc){ inth=0; intmin=0; intcounts[3]={0}; //判断是否有空位 for(h=0;h<3;h++){ if(frame[h]==c) break; if(0>frame[h]||frame[h]<9){ frame[h]=c; fault_num++; printf("丨"); break; } } //无空位的情况 if(h==3){ //判断帧内是否有这个数 for(intp=0;p<3;p++){ if(frame[p]==c) break; } //帧内无这个数 if(p==3){ //发生缺页中断 fault_num++; printf("丨"); //统计计数器 for(intk=0;k<3;k++){ for(intj=0;j<row;j++){ counts[k]+=count[k][j]; } } //比较计数器,选择最小器 intminlin=counts[0]; for(intj=1;j<3;j++){ if(minlin>counts[j]){ min=j; minlin=counts[j];操作系统课程设计老化算法模拟分页系统全文共17页,当前为第16页。 }操作系统课程设计老化算法模拟分页系统全文共17页,当前为第16页。 } frame[min]=c; } } //输出当前帧内情况 printf("\t帧内情况:"); for(intz=0;z<3;z++){ printf("%c\t",frame[z]); } printf("\n");}voidmain(){ charch[Size]; read(ch); inti=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"); print
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度建筑机械设备租赁安全生产合同范本
- 2025年中国装配式住宅行业市场前瞻与投资战略规划分析报告
- 2025年度建筑公工程转让与建筑安全风险评估合同
- 2025年度旅游节活动免责协议范本(含安全保障)
- 2025年度智慧城市运营管理技术咨询协议
- 2025年度教育信息化项目投资借款分期还款合同
- 2025年度可再生能源发电项目建筑工程总承包合同
- 2025年度国际货物运输与保险咨询服务合同
- 2025年度时尚服饰购货合同协议书(潮流风尚)
- 2025年度水利工程建设项目施工合同专用条款
- 2024年福建漳州人才发展集团有限公司招聘笔试参考题库附带答案详解
- JTGT F20-2015 公路路面基层施工技术细则
- Unit 3 Times change单元教学设计
- 科室医院感染风险评估表
- 山东省食用油(植物油)生产企业名录496家
- 《智慧农业》的ppt完整版
- GB∕T 33047.1-2016 塑料 聚合物热重法(TG) 第1部分:通则
- 经济学市场失灵与政府失灵课件
- 电力业务许可证豁免证明
- 建筑工程资料归档立卷分类表(全)
- 六年级上第二单元知识结构图
评论
0/150
提交评论