下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、上机实验报告南京工程学院上机实 验 报 告 课 程 名 称: 操作系统 实验项目名称: 移动臂调度算法的实现 学生班级: 学生学号: 学生姓名: 指导教师: 实 验 时 间: 实 验 地 点: 信息楼专业机房 实验成绩评定: 2016-2017-1学期1- 3 -一、实验目的及内容掌握操作系统的设备管理功能,熟悉移动臂调度算法,设计恰当的数据结构和算法,模拟实现移动臂调度算法。要求至少模拟实现一种磁盘移臂调度算法。二、实验相关知识简介磁盘移臂调度的目标就是要使磁盘访问的总时间中的寻找时间最小。因此,磁盘移臂调度要尽量减少磁盘移动臂移动的距离。磁盘移臂调度算法很多,常用的也有好几种,一个好的磁盘
2、调度算法,不仅要使磁盘寻找时间最小,同时,还要避免移动臂频繁地改变移动方向,因为频繁的改向不仅使时间增加,还容易损耗机械部件。常用的磁盘移臂调度算法有:先来先服务、最短寻找时间优先、单向扫描、双向扫描调度算法等。 三、解决问题思路及关键程序代码分析(一) 最短寻找时间优先调度算法简介最短寻找时间调度算法总是使寻找时间最短的请求最先得到服务,跟请求者的请求时间先后顺序无关。这种算法具有比先来先服务更好的性能。但是该算法可能会出现请求者被“饿死”的情况,当靠近磁头的请求源源不断地到来,这会使早来的但离磁头较远的请求长时间得不到服务。该算法的优点是可以得到较短的平均响应时间,有较好的吞吐量。该算法的
3、缺点是缺乏公平性,对中间磁道的访问比较“照顾”,对两端磁道访问比较“疏远”,相应时间的变化幅度较大。该算法与先来先服务算法一样,都会导致移动臂频繁改向。(二) 算法模拟1. 对算法设计进行说明该算法的实现中,主要是选择调度处理的磁道是与当前磁头所在磁道距离最近的磁道,以使每次的寻道时间最短。当选择了某个离当前磁头所在磁道最近的磁道,下一轮的当前磁道便改成了上一轮的最近磁道,并且把这个最近的磁道从请求序列取消,直到请求序列中不再有请求的磁道。2. 关键代码分析 import java.io.*;import java.util.*;public class private static int
4、maxsize = 100;private static int Disc = new intmaxsize; /请求序列private static int count;/要访问的磁道数private static int disc; /当前磁道号private static int perTime;/移过每个柱面需要时间private static int Distance=0;/总寻道长度private static int FindTime;/查找时间private static double AvgDistance;/平均寻道长度 public Suanfa(int disc,int
5、 count,int perTime,int Disc)this.disc=disc;this.count=count;this.perTime=perTime;for(int i=0;i<Disc.length;i+)Disci=Disci;public void input() System.out.print("请输入当前磁道号:");Scanner s1=new Scanner(System.in); disc=s1.nextInt();System.out.print("请输入要访问的磁道数:");Scanner s2=new Scann
6、er(System.in); count=s2.nextInt();System.out.print("请输入移过每个柱面需要的时间:");Scanner s3=new Scanner(System.in); perTime=s3.nextInt();System.out.print("请输入磁盘请求序列(以空格隔开):"); Scanner s4=new Scanner(System.in);for(int i=0;i<count;i+)Disci=s4.nextInt();public void Delete(int arr,int n)for
7、(int i=n;i<arr.length-1;i+)arri=arri+1;public void running() int j=0,count1=count;int min;int discc=disc;int Discc=new intcount;while(j<count)int num=0;min=(Disc0>=discc)?(Disc0-discc):(discc-Disc0); for(int i=0;i<count1;i+) if(Disci>=discc)&&(Disci-discc<min)|(Disci<dis
8、cc)&&(discc-Disci<min) min=(Disci>=discc)?(Disci-discc):(discc-Disci); num=i; Disccj+=Discnum; Distance+=min; discc=Discnum; Delete(Disc,num); count1-;AvgDistance=(double)Distance/count;FindTime=perTime*Distance;System.out.print("n服务序列:"+disc+" ");for(int i=0;i<c
9、ount;i+)System.out.print(Discci+" ");System.out.println("n总寻道长度:"+Distance);System.out.println("平均寻道长度:"+AvgDistance);System.out.println("寻道时间:"+FindTime+"ms");public static void main(String args)System.out.println("-最短寻找时间优先算法-");Suanfa Suanfa=new Suanfa(disc,count,perTime,Disc);Suanfa.input();Suanfa.running();
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年动物寄生虫病初级笔试模拟题
- 2026年中国邮政县公司邮快合作直播客服主管竞聘笔试模拟题
- 四川省成都市武侯区2026年中考语文一诊试卷
- 2026年航空安全员考试仿真题及解析
- 2026年小学生健康知识竞赛方案
- 2026年财务分析师笔试仿真题解析
- 2026年数据治理师初级考试模拟题及答案
- 2026年小学二年级上册语文易错字词专项突破练习卷含答案
- 2026年小学六年级上册数学人民币认识练习卷含答案
- 2026年海南省五指山市高三生物下册期末考试模拟试卷必考附答案
- 2026年九年级数学中考模拟试卷(重庆卷)
- 2026年广西职业技术学院教师招聘考试参考题库及答案解析
- 2026年超星尔雅人工智能与信息社会练习题库含答案详解【B卷】
- 《地理信息数据分类分级工作指南(试行)》
- 城市公园公共厕所堵塞应急预案
- 电视新闻培训教学课件
- 14 《我们都是中国人》 第一课时(教学设计)道法统编版二年级上册(新教材)
- 2025年自治区体育局直属单位自治区体育科研中心(自治区反兴奋剂中心)面向社会工作人员(5人)笔试历年典型考题(历年真题考点)解题思路附带答案详解
- 山林地置换协议书
- (零模)2026届广州市高三年级调研测试地理试卷(含答案及解析)
- 雨课堂学堂在线学堂云《劳动教育(西安理大 )》单元测试考核答案
评论
0/150
提交评论