




已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课内实验报告课 程 名: 操作系统 任课教师: 沈超 专 业: 信息管理与信息系统 学 号: 姓 名: 二一四至二一五 年度 第 一 学期南京邮电大学 管理学院 操作系统 课程实验第 一 次实验报告一、实验目的与基本要求1、了解进程管理的实现方法;2、理解和掌握处理进程同步问题的方法。二、实验仪器与设备硬件:微型计算机。中央处理器PentiumIV以上;显示器256色VGA以上;内存使用128兆;硬盘300M以上。软件:学生可以采用任何一种自己熟悉的编程语言完成算法的程序设计,如C/C+、Delphi、VB、VC、C#等。三、实验内容: 实现银行家算法、进程调度过程的模拟、读者-写者问题的写者优先算法。实验结果:成绩评定:该生对待本次实验的态度 认真 良好 一般 比较差。本次实验的过程情况 很好 较好 一般 比较差对实验结果的分析 很好 良好 一般 比较差文档书写符合规范程度 很好 良好 一般 比较差综合意见:成绩指导教师签名沈超日期 操作系统 课程实验第 二 次实验报告实验内容及基本要求:一、实验目的与基本要求1、理解各类置换算法的原理2、理解虚拟存储器管理的方法二、实验仪器与设备硬件:微型计算机。中央处理器PentiumIV以上;显示器256色VGA以上;内存使用128兆;硬盘300M以上。软件:学生可以采用任何一种自己熟悉的编程语言完成算法的程序设计,如C/C+、Delphi、VB、VC、C#等。三、实验内容:编程实现LRU算法或CLOCK/改进算法等置换算法(二选一),模拟实现虚拟存储器的地址变换过程。实验结果:源代码:#include using namespace std; int size; int *w; /定义一个动态数组 struct mem int num; int count; memBlock3=0,0,0,0,0,0; void LRU() for( int i = 0; i size; i+ ) int maxCount = memBlock0.count; int maxPos = 0; int j = 0; bool bFind = false; for( j = 0; j 3; j+ ) / 标记出count值最大的位置 if( maxCount memBlockj.count ) maxCount = memBlockj.count; maxPos = j; / 将所有的count值都+1 memBlockj.count+; / 如果命中,将其count值置为0 if( wi = memBlockj.num ) memBlockj.count = 0; bFind = true; / 未命中,将count最大的拿来替换 if( !bFind ) memBlockmaxPos.num = wi; memBlockmaxPos.count = 0; for(j = 0; j 3; j+) /输出 cout memBlockj.num ; cout endl; int main() /主函数 cout请输入需访问的页面数量:size; w = new intsize; cout请输入需要访问的页面endl; for(int a=0;awa;/输入数组 coutendl(LRU)endl; LRU(); return 0; 成绩评定:该生对待本次实验的态度 认真 良好 一般 比较差。本次实验的过程情况 很好 较好 一般 比较差对实验结果的分析 很好 良好 一般 比较差文档书写符合规范程度 很好 良好 一般 比较差综合意见:成绩指导教师签名沈超日期 操作系统 课程实验第 三次实验报告实验内容及基本要求:一、实验目的与基本要求1、理解磁盘调度算法的设计2、理解提高磁盘访问速度的原理二、实验仪器与设备硬件:微型计算机。中央处理器PentiumIV以上;显示器256色VGA以上;内存使用128兆;硬盘300M以上。软件:学生可以采用任何一种自己熟悉的编程语言完成算法的程序设计,如C/C+、Delphi、VB、VC、C#等。三、实验内容:模拟实现磁盘调度算法:最短寻道时间优先(SSTF)和扫描(SCAN)算法。实验结果:源代码:#include#include#include#include#define maxsize 1000/*判断输入数据是否有效*/int decide(char str) /判断输入数据是否有效 int i=0;while(stri!=0) if(stri9)return 0;break;i+;return i;/*将字符串转换成数字*/int trans(char str,int a) /将字符串转换成数字int i;int sum=0;for(i=0;ia;i+)sum=sum+(int)(stri-0)*pow(10,a-i-1);return sum;/*冒泡排序算法*/int *bubble(int cidao,int m) int i,j;int temp; for(i=0;im;i+) /使用冒泡法按从小到大顺序排列 for(j=i+1;jcidaoj) temp=cidaoi; cidaoi=cidaoj; cidaoj=temp; cout排序后的磁盘序列为:; for( i=0;im;i+) /输出排序结果 coutcidaoi ; coutendl; return cidao; /*最短寻道时间优先调度算法*/void SSTF(int cidao,int m) int k=1; int now,l,r; int i,j,sum=0; int a; char str100; float ave; cidao=bubble(cidao,m); /调用冒泡排序算法排序 coutstr; /对输入数据进行有效性判断 a=decide(str); if(a=0) cout输入数据的类型错误,请重新输入!endl; goto C; else now=trans(str,a); /输入当前磁道号 if(cidaom-1=now) /若当前磁道号大于请求序列中最大者,则直接由外向内依次给予各请求服务 cout=0;i-) coutcidaoi=now) /若当前磁道号小于请求序列中最小者,则直接由内向外依次给予各请求服务 cout磁盘扫描序列为:; for(i=0;im;i+) coutcidaoicidao0&nowcidaom-1) /若当前磁道号大于请求序列中最小者且小于最大者 cout磁盘扫描序列为:; while(cidaok=0)&(rm) /当前磁道在请求序列范围内 if(now-cidaol)=(cidaor-now) /选择与当前磁道最近的请求给予服务 coutcidaol ; sum+=now-cidaol; now=cidaol; l=l-1; else coutcidaor ; sum+=cidaor-now; now=cidaor; r=r+1; if(l=-1) /磁头移动到序列的最小号,返回外侧扫描仍未扫描的磁道 for(j=r;jm;j+) coutcidaoj=0;j-) coutcidaoj ; sum+=cidaom-1-cidao0; ave=(float)(sum)/(float)(m); coutendl; cout平均寻道长度: aveendl;/*扫描调度算法*/void SCAN(int cidao,int m) /先要给出当前磁道号和移动臂的移动方向 int k=1; int now,l,r,d; int i,j,sum=0; int a; char str100; float ave; cidao=bubble(cidao,m); /调用冒泡排序算法排序 coutstr; /对输入数据进行有效性判断 a=decide(str); if(a=0) cout输入数据的类型错误,请重新输入!endl; goto D; else now=trans(str,a); /输入当前磁道号 if(cidaom-1=now) cout=0;i-) coutcidaoi=now) cout磁盘扫描序列为:; for(i=0;im;i+) coutcidaoicidao0&nowcidaom-1) while(cidaoknow) k+; l=k-1; r=k; coutd; if(d=0) /选择移动臂方向向内,则先向内扫描 cout=0;j-) coutcidaoj ; /输出向内扫描的序列 for(j=r;jm;j+) / coutcidaoj ; /输出向外扫描的序列 sum=now-2*cidao0+cidaom-1; else /选择移动臂方向向外,则先向外扫描 cout磁盘扫描序列为:; for(j=r;jm;j+) coutcidaoj=0;j-) / coutcidaoj ; sum=-now-cidao0+2*cidaom-1; ave=(float)(sum)/(float)(m); coutendl; cout平均寻道长度: aveendl;void main() int a; int c; /菜单项 int cidaomaxsize; int i=0,count; char str100; cout请输入磁道序列(0结束):str; /对输入数据进行有效性判断 a=decide(str); if(a=0) cout输入数据的类型错误,请重新输入!str; /对输入数据进行有效性判断 a=decide(str); if(a=0) cout输入数据的类型错误,请重新输入!endl; else cidaoi=trans(str,a); i+; count=i-1; /要访问的磁道数 cout你输入的磁道序列为:; for(i=0;icount;i+) coutcidaoi ; /输出磁道序列 coutendl; while(1) coutendl; cout* 1. 最短寻道时间优先 *endl; cout* 2. 扫描调度 *endl; cout* 0. 退出 *endl; G:coutstr; /对输入数据进行有效性判断 a=decide(str); if(a=0) cout输入数据的类型错误,请重新输入!2) cout数据输入错误!请重新输入endl; goto G; switch(c) case 1: /使用SSTF算法 SSTF(cidao,count); break; case 2: /使用SCAN算法 SCAN(cidao,count); break; 成绩评定:该生对待本次实验的态度 认真 良好 一般 比较差。本次实验的过程情况 很好 较好 一般 比较差对实验结果的分析 很好 良好 一般 比较差文档书写符合规范程度 很好 良好 一般 比较差综合意见:成绩指导教师签名沈超日期 操作系统 课程实验第 四 次实验报告实验内容及基本要求:一、实验目的与基本要求1、了解操作系统中文件系统的结构和管理过程。2、掌握经典的算法:混合索引与成组链接法等方法。二、实验仪器与设备硬件:微型计算机。中央处
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 林业安全知识培训内容
- 林业安全生产培训课件
- 家庭人际关系处理课件
- 2025护士节知识竞赛题库及答案50题(附答案)
- 马克思主义新闻观培训班测试题及答案
- 劳动法、劳动合同法测试题题库(含答案)
- 杜卡迪售后保养课件
- 药学(士)《专业实践能力》题库及参考答案
- 安全培训的内容和感悟课件
- 安全培训的具体建议课件
- 周围神经损伤(InjuryofPeripheralNerve)
- 2023-2024苏教版小学四年级数学上册(全册)教案设计
- 烟草行业应急预案编制与管理培训
- 2024事业单位食堂考试题及答案
- 酒店定位分析报告
- 光学设计 第3讲 色度学
- 合并同类项 公开课比赛一等奖
- 行政事业单位食堂会计核算流程和方式
- 教师教学发展综合管理系统需求说明
- 《艺术概论》课件-第二章 艺术的功能
- UI视觉设计(适用培训、教学)-第6章-游戏界面设计
评论
0/150
提交评论