驱动调度实验报告

上传人:bin****86 文档编号:60398657 上传时间:2018-11-15 格式:DOCX 页数:10 大小:19.06KB
返回 下载 相关 举报
驱动调度实验报告_第1页
第1页 / 共10页
驱动调度实验报告_第2页
第2页 / 共10页
驱动调度实验报告_第3页
第3页 / 共10页
驱动调度实验报告_第4页
第4页 / 共10页
驱动调度实验报告_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《驱动调度实验报告》由会员分享,可在线阅读,更多相关《驱动调度实验报告(10页珍藏版)》请在金锄头文库上搜索。

1、为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划驱动调度实验报告南通大学计算机科学与技术学院操作系统驱动调度实验报告班级_计091_姓名_学号_指导教师戴树贵一、实验内容模拟电梯调度算法、先来先服务算法、最短查找时间算法,实现对磁盘的驱动调度。二、实验目的1.进一步理解磁盘调度算法的相关内容2.了解磁盘寻址的方法3.通过编程掌握磁盘调度算法的运行方式三、实验环境MicrosoftVisualBasic中文版四、实验方法内容1.实验方法1)使用流程图描述演示程序的设计思想;2)选取c/c+、Java等计算机语言,编程调试,最终给出运

2、行正确的程序。算法#include#include#include#include#defineDISKMAX1000#defineDISKTOTAL1000#defineOK1#defineERROR-1intcmp(constvoid*a,constvoid*b)/*/return*(int*)a-*(int*)b;voidSetBaseDisk(int*base_num)/*设置磁盘磁道数*/inti;printf(ninputnumberofbasedisk(1%d):,DISKMAX);scanf(%d,base_num);if(*base_numDISKMAX)printf(ERR

3、OR!);exit(0);printf(nThebasediskis:n);for(i=0;iDISKTOTAL)printf(ERROR!);exit(0);printf(nSystemcreatesstochasticnumbersforrequestdisk:n);for(i=0;i=*base_num)printf(ERROR!);exit(0);/*先到先服务磁盘调度*/voidFCFS(int*R,intpresent_disk,intrequest_num)inti;intcount=0;/磁头移动总次数intstep;/访问下一个磁道磁头移动次数printf(nMovingOr

4、derMovingPathMovingSteps);step=abs(present_disk-R0);/*绝对值*/count+=step;printf(n1%d-%d%d,present_disk,R0,/*输出访问轨迹*/for(i=0;i%d%d,i+2,Ri,Ri+1,step);printf(nTotalmovingsteps:%d,count);/*输出磁头总移动次数*/printf(nAveragemovingsteps:%d,count/request_num);/*平均移动次数*/intSort(int*R,intrequest_num,intpresent_disk)/*

5、调用库函数的快速排序函数*/Rrequest_num=present_disk;/加入当前磁道qsort(R,request_num+1,sizeof(R0),cmp);return1;intSearchPresent(int*R,intrequest_num,intpresent_disk)/*二分查找法,寻找当前磁道*/intleft,right,middle;left=0;right=request_num;while(leftRmiddle)left=middle+1;elseright=middle-1;return-1;/*最短寻道时间优先算法*/voidSSTF(int*R,in

6、tpresent_disk,intrequest_num)inti=0;inttemp,key;intcount=0,step=0;intup=0,down=0;intup_step=0,down_step=0;key=SearchPresent(R,request_num,present_disk);/*查找当前磁道*/printf(nMovingOrderMovingPathMovingSteps);while(key!=0&key!=request_num)/*磁道未到头或尾*/i+;if(Rkey-Rkey-1-down)%d%d,i,Rkey,Rtemp,step);/*当前磁头在头

7、*/*记录下一个将要访问的磁道*/%d-%d%d,i,Rkey,Rtemp,step);%d-%d%d,i,Rkey,Rkey+1,step);/*当前磁头在尾*/*记录下一个将要访问的磁道*/%d-%d%d,i,Rkey,Rtemp,step);实验三驱动调度一、实验内容模拟电梯调度算法,实现对磁盘的驱动调度。二、实验目的磁盘是一种高速、大容量、旋转型、可直接存取的存储设备。它作为计算机系统的辅助存储器,担负着繁重的输入输出任务、在多道程序设计系统中,往往同时会有若干个要求访问磁盘的输入输出请求等待处理。系统可采用一种策略,尽可能按最佳次序执行要求访问磁盘的诸输入输出请求。这就叫驱动调度,使

8、用的算法称为驱动调度算法。驱动调度能降低为若干个输入输出请求服务所需的总时间,从而提高系统效率。本实验要求学生模拟设计一个驱动调度程序,观察驱动调度程序的动态运行过程。通过实验使学生理解和掌握驱动调度的职能。三、实验题目模拟电梯调度算法,对磁盘进行移臂和旋转调度。提示:磁盘是可供多个进程共享的存储设备,但一个磁盘每时刻只能为一个进程服务。当有进程在访问某个磁盘时,其他想访问该磁盘的进程必须等待,直到磁盘一次工作结束。当有多个进程提出输入输出要求而处于等待状态时,可用电梯调度算法从若干个等待访问者中选择一个进程,让它访问磁盘。选择访问者的工作由“驱动调度”进程来完成。由于磁盘与处理器是可以并行工

9、作的、所以当磁盘在作为一个进程服务时,占有处理器的另一进程可以提出使用磁盘的要求,也就是说,系统能动态地接收新的输入输出请求。为了模拟这种情况,在本实验中设置了一个“接收请求”进程。“驱动调度”进程和“接收请求”进程能否占有处理器运行,取决于磁盘的结束中断信号和处理器调度策略。在实验中可用随机数来模拟确定这两个进程的运行顺序,以代替中断处理和处理器调度选择的过程。因而,程序的结构可参考图31“接收请求”进程建立一张“请求I/O”表,指出访问磁盘的进程要求访问的物理地址,表的格式为:假定某个磁盘组共有200个柱面,由外向里顺序编号,每个柱面上有20个磁道,编号为019,每个磁道分成8个物理记录,

10、编号07。进程访问磁盘的物理地址可以用键盘输入的方法模拟得到。图32是“接收请求”进程的模拟算法。图32“接收请求”模拟算法在实际的系统中必须把等待访问磁盘的进程排入等待列队,由于本实验模拟驱动调度,为简单起见,在实验中可免去队列管理部分,故设计程序时可不考虑“进程排入等待队列”的工作。“驱动调度”进程的功能是查“请求I/O”表,当有等待访问磁盘的进程时,按电梯调度算法从中选择一个等待访问者,按该进程指定的磁盘物理地址启动磁盘为其服务。对移动臂磁盘来说,驱动调度分移臂调度和旋转调度。电梯调度算法的调度策略是与移动臂的移动方向和移动臂的当前位子有关的,所以每次启动磁盘时都应登记移动臂方向和当前位

11、子。电梯调度算法是一种简单而实用的驱动调度方法,这种调度策略总是优先选择与当前柱面号相同的访问请求,从这些请求中再选择一个能使旋转距离最短的等待访问者。如果没有与当前柱面号相同的访问请求,则根据移臂方向来选择,每次总是沿臂移动方向选择一个与当前柱面号最近的访问请求,若沿这个方向没有访问请求时,就改变臂的移动方向。这种调度策略能使移动臂的移动频率极小,从而提高系统效率。用电梯调度算法实现驱动调度的模拟算法如图33。图31中的初始化工作包括,初始化“请求I/O”表,置当前移臂方向为里移;置当前位置为0号柱面,0号物理记录。程序运行前可假定“请求I/O”表中已经有如干个进程等待访问磁盘。在模拟实验中

12、,当选中一个进程可以访问磁盘时,并不实际地启动磁盘,而用显示:“请求I/O”表;当前移臂方向;当前柱面号,物理记录号来代替图33中的“启动磁盘”这项工作。图33电梯调度模拟算法四、实验报告实验题目。程序中使用的数据结构及其说明。打印一份源程序并附上注释。打印驱动调度进程每次选择访问请求前的“请求I/O”表以及每次选中的进程名、访问的柱面号、物理记录号和当前移臂方向(用up代表里移,down代表外移。打印格式为:五、数据结构classI_O_Tablepublic:;voidInsert(stringNa,intC,intT,intP);voidclear();voiddisplay();/清除选中进程/I/O表登记函数stringName;intTrack_Num;intsign;/进程名/柱面号/磁道号/物理记录号/标志位,是否被选中/I/O请求表初始化intCylinder_Num;intPhysic_Rec;I_O_Table();/请求I/O表六、源代码#include#includeusingnamespacestd;#defineN10实验报告实验名称:磁盘驱动调度算法的模拟姓名:班级:实验地点:目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 总结/报告

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号