操作系统实验模板1.doc_第1页
操作系统实验模板1.doc_第2页
操作系统实验模板1.doc_第3页
操作系统实验模板1.doc_第4页
操作系统实验模板1.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

课内实验报告课 程 名: 操作系统 任课教师: 沈超 专 业: 信息管理与信息系统 学 号: B13111809 姓 名: 邵园 二一五至二一六 年度 第 一 学期南京邮电大学 管理学院 操作系统 课程实验第 一次实验报告实验内容及基本要求:一、实验目的与基本要求1、理解磁盘调度算法的设计2、理解提高磁盘访问速度的原理二、实验仪器与设备硬件:微型计算机。中央处理器PentiumIV以上;显示器256色VGA以上;内存使用128兆;硬盘300M以上。软件:学生可以采用任何一种自己熟悉的编程语言完成算法的程序设计,如C/C+、Delphi、VB、VC、C#等。三、实验内容:模拟实现磁盘调度算法:最短寻道时间优先(SSTF)和扫描(SCAN)算法。实验结果:实验代码:#include#include#includeusingnamespacestd;constintMaxNumber=100;intTrackOrderMaxNumber; intMoveDistanceMaxNumber;/移动距离intFindOrderMaxNumber;/寻好序列doubleAverageDistance;/平均寻道长度booldirection;/方向true时为向外,false为向里intBeginNum;/开始磁道号intM=500;/磁道数intN;/提出磁盘I/O申请的进程数intSortOrderMaxNumber;/排序后的序列boolFinishedMaxNumber;voidInith()coutN;cout请依次输入要访问的磁道号:;for(inti=0;iTrackOrderi;for(intj=0;jN;j+)MoveDistancej=0;coutBeginNum;for(intk=0;kN;k+)Finishedk=false;for(intl=0;l=0;i-)for(intj=0;jSortOrderj+1)temp=SortOrderj;SortOrderj=SortOrderj+1;SortOrderj+1=temp;/SSTF,最短寻道法voidSSTF()inttemp,n;intA=M;temp=BeginNum;for(inti=0;iN;i+)for(intj=0;jN;j+)if(abs(TrackOrderj-temp)A&Finishedj=false)A=abs(TrackOrderj-temp);n=j;elsecontinue;Finishedn=true;MoveDistancei=A;temp=TrackOrdern;A=M;FindOrderi=TrackOrdern;/SCAN,扫描算法voidSCAN()intm,n,temp;temp=BeginNum;Sort();coutm;if(m=1)direction=true;elseif(m=0)direction=false;elsecout输入错误!;for(inti=0;iN;i+)if(SortOrderiBeginNum)continue;elsen=i;break;if(direction=true)for(inti=n;i=0;j-)MoveDistanceN-1-j=abs(SortOrderj-temp);temp=SortOrderj;FindOrderN-1-j=SortOrderj;elsefor(inti=n-1;i=0;i-)MoveDistanceN-i-4=abs(SortOrderi-temp);temp=SortOrderi;FindOrderN-i-4=SortOrderi;for(intj=n;jN;j+)MoveDistancej=abs(SortOrderj-temp);temp=TrackOrderj;FindOrderj=SortOrderj;/计算平均寻道时间voidCount()intTotal=0;for(inti=0;iN;i+)Total+=MoveDistancei;AverageDistance=(double)Total)/(double)N);voidShow()coutsetw(20)被访问的下一个磁道号setw(20)移动距离(磁道数)endl;for(inti=0;iN;i+)coutsetw(15)FindOrderisetw(15)MoveDistanceiendl;coutsetw(20)平均寻道长度:AverageDistanceendl;coutendl;intmain()inty=1;ints;Inith();while(y)couts;switch(s)case1:FCFS();Count();Show();break;case2:SSTF();Count();Show();break;case3:SCAN();Count();Show();break;case4:CSCAN();Count();Show();break;coutp;y=p;exit;return0;实验结果:实验心得:十几天的课设时间很快就过去了,其中既有欢乐又有痛苦。通过这次的课程设计,我认识到要将操作系统这门计算机专业的课学好不仅仅是要把书上的基本知识学好,还要不断进行实践,将所学的跟实践操作结合起来才能更好地巩固所学,才能提高自己实践能力.通过这次的设计使我认识到只停留在表面理解问题是很难使问题得到很好的解决的,实践能力与理论知识同样重要。这次试验的理论难度并不大,但是若要深入发掘其中的东西,并且实际去编程实现,就遇到了相当大的难度。我们的编程能力并不是特别突出,又要在很短的时间内给出算法的实现,非常困难。因此我们不仅要在课上认真试验,课后还要查资料、做实验,终于经过不懈的努力,我们克服了以上的种种困难,按时完成了课设的任务,再次感谢帮助我们的老师和同学。成绩评定:该生对待本次实验的态度 认真 良好 一般 比较差。本次实验的过程情况 很好 较好 一般 比较差对实验结果的分析 很好 良好 一般 比较差文档书写符合规范程度 很好 良好 一般 比较差综合意见:成绩指导教师签名沈超日期12.22 操作系统 课程实验第 二 次实验报告实验内容及基本要求:一、实验目的与基本要求1、了解操作系统中文件系统的结构和管理过程。2、掌握经典的算法:混合索引与成组链接法等方法。二、实验仪器与设备硬件:微型计算机。中央处理器PentiumIV以上;显示器256色VGA以上;内存使用128兆;硬盘300M以上。软件:学生可以采用任何一种自己熟悉的编程语言完成算法的程序设计,如C/C+、Delphi、VB、VC、C#等。三、实验内容:编程模拟实现混合索引和成组链接法算法。实验结果:实验代码:#include intMA4;/*空闲块数组*/ intA94=3,1,2,3,3,4,5,6,0,0,0,0,0,0,0,0,3,0,7,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0;/*磁盘空间*/intmark9;/*存放已分配的块*/intNo=0;/*已分配的块数*/voiddisplay1()inti,j,temp,count;No=0; if(MA1!=0)i=MA0; printf(ngroup1:);for(j=1;j=i;j+) printf(%d,MAj); mark+No=MAj;temp=MA1;count=2; while(Atemp1!=0) printf(ngroup%d:,count);i=Atemp0; for(j=1;j=i;j+) printf(%d,Atempj);mark+No=Atempj;count+;temp=Atemp1;printf(ngroup%d:,count);i=Atemp0; for(j=2;j0)printf(%d,Atempj);mark+No=Atempj;else i=MA0;if(i=1)printf(nTheblocksareallassigned);else printf(ngroup1:);for(j=2;j=i;j+) printf(%d,MAj);mark+No=MAj; voiddisplay()/*显示分组情况*/inti,j; if(MA0!=0)display1(); else i=MA1; for(j=0;j1)/*若该组不止一个空闲块*/i=MA0;s=MAi;MA0-; printf(numberoftheblock:%d,s);elseif(MA0=1)/*只剩一个空闲块*/ if(MA1!=0)/*还有其它空闲块组*/s=MA1; for(i=0;i=3;i+)A0i=Asi;MA0-; printf(numberoftheblock:%d,s);else/*没有其它空闲块组*/printf(Thereisntanyspace);return; else/*当前组已分配完*/for(i=0;i=3;i+)MAi=A0i;assign(); display();/*显示分组情况*/voidcallback()/*回收空闲块*/inti,j,temp; printf(inputtheNo.oftheblockyouwanttocallback:);scanf(%d,&j); getchar();/*得到待回收的空闲块号*/for(temp=1;temp=No;temp+)if(marktemp=j)break; if(tempNo+1)/*若该空闲块已在,退出*/printf(nTheblockisinthedisk);return;if(MA03)/*当前组不满3块*/i=MA0;MAi+1=j;MA0+; else/*已有3块*/for(i=0;i=3;i+)Aji=MAi;MA0=1; MA1=j; display();/*显示*/ voidmenu()/*功能选择函数*/intchoice;charjudge; printf(ninputyourchoice:(1-assign,2-callback):);scanf(%d,&choice);getchar();if(choice=1)assign(); elseif(choice=2)callback();else printf(ninvalidcommand!); printf(ncontinueornot?(y-Yes,n-Not):);scanf(%c,&judge);getchar(); if(judge=y)menu();else printf(Nowthegraphis:);display(); printf(npressanykeytoquit);getch();main()inti; for(i=0;i=3;i+)MAi=A0i;display(); menu();实验心得:我们每天都在用文件系统,已经习惯了有文件路径寻找的方便,每次找文件时,感觉好容易,可实际去设计这个程序时,却很难。用树形结构图去设计,要有较好的全局思想,而且一些节点的分配。在设计此系统时,发觉自己对文件系统理解得不够透彻。不知道如何来具体设计这个实验,后来耐心回到本学期学习的课本内容上,再次翻看了大二第一学期所学的数据结构的书,才觉悟对文件系统的理解,总而言之,操作系统的设计,不仅提升了自己的程序设计及编写技巧,更大大地加深了对操作系统的文件管理的了解。在本学期的操作系统课程设计的实验中,完成了进程控

温馨提示

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

评论

0/150

提交评论