- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
南京工程学院 上机实 验 报 告
课
程 名 称:
操作系统
实验项目名称: 移动臂调度算法的实现 学生班级:
学生学号:
学生姓名:
指导教师:
实
实
验 时 间:
验 地 点:
信息楼专业机房
实验成绩评定:
2016-2017-1 学期
一、实验目的及内容
掌握操作系统的设备管理功能,熟悉移动臂调度算法,设计恰当的数据结构和算法, 模拟实现移动臂调度算法。要求至少模拟实现一种磁盘移臂调度算法。
二、实验相关知识简介
磁盘移臂调度的目标就是要使磁盘访问的总时间中的寻找时间最小。因此,磁盘移臂 调度要尽量减少磁盘移动臂移动的距离。磁盘移臂调度算法很多,常用的也有好几种,一 个好的磁盘调度算法,不仅要使磁盘寻找时间最小,同时,还要避免移动臂频繁地改变移 动方向,因为频繁的改向不仅使时间增加,还容易损耗机械部件。
常用的磁盘移臂调度算法有:先来先服务、最短寻找时间优先、单向扫描、双向扫描 调度算法等。
三、解决问题思路及关键程序代码分析
(一) 最短寻找时间优先调度算法简介
最短寻找时间调度算法总是使寻找时间最短的请求最先得到服务,跟请求者的请求时 间先后顺序无关。这种算法具有比先来先服务更好的性能。但是该算法可能会出现请求者 被“饿死”的情况,当靠近磁头的请求源源不断地到来,这会使早来的但离磁头较远的请 求长时间得不到服务。
该算法的优点是可以得到较短的平均响应时间,有较好的吞吐量。该算法的缺点是缺 乏公平性,对中间磁道的访问比较“照顾”,对两端磁道访问比较“疏远”,相应时间的 变化幅度较大。该算法与先来先服务算法一样,都会导致移动臂频繁改向。
(二) 算法模拟
1. 对算法设计进行说明
该算法的实现中,主要是选择调度处理的磁道是与当前磁头所在磁道距离最近的磁道, 以使每次的寻道时间最短。当选择了某个离当前磁头所在磁道最近的磁道,下一轮的当前 磁道便改成了上一轮的最近磁道,并且把这个最近的磁道从请求序列取消,直到请求序列 中不再有请求的磁道。
2. 关键代码分析
import java.io.*;
import java.util.*;
public class
{
private static int maxsize = 100;
private static int Disc[] = new int[maxsize]; //请求序列
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 count,int perTime,int Disc[])
{
this.disc=disc;
1
上机实验报告
this.count=count;
this.perTime=perTime;
for(int i=0;iDisc.length ;i++)
Disc[i]=Disc[i];
}
public void input()
{
System.out.print(请输入当前磁道号:);
Scanner s1=new Scanner(System.in);
disc=s1.nextInt();
System.out.print(请输入要访问的磁道数:);
Scanner s2=new Scanner(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;icount;i++)
Disc[i]=s4.nextInt();
}
public void Delete(int arr[],int n)
{
for(int i=n;iarr.length-1;i++)
arr[i]=arr[i+1];
}
public void running()
{
int j=0,count1=count;
int min;
int discc=disc;
int Discc[]=new int[count];
while(jcount)
{
您可能关注的文档
最近下载
- 北师大版八年级上册数学 第5章 二元一次方程 问题解决策略:逐步确定 教案.docx VIP
- 一年级上册数学第一单元试卷.doc VIP
- 地震数据分析软件:SeisComP二次开发_地震监测系统部署与维护.docx VIP
- 小红书种草营销师模拟试题及答案.docx VIP
- 音乐人吉他课.pptx VIP
- 隧道紧急停车带专项施工方案 - 生产安全.docx VIP
- 北师版八年级上册数学精品教学课件 第五章 二元一次方程组 ☆问题解决策略_逐步确定 (2).ppt VIP
- 北师版八年级上册数学精品教学课件 第五章 二元一次方程组 ☆问题解决策略_逐步确定.ppt VIP
- 问题解决策略:逐步确定 2025-2026学年北师大版数学八年级上册.pptx VIP
- 音乐人吉他课.docx VIP
文档评论(0)