磁盘移臂调度过程模拟设计-先来先服务法、最短寻道时间.doc
《磁盘移臂调度过程模拟设计-先来先服务法、最短寻道时间.doc》由会员分享,可在线阅读,更多相关《磁盘移臂调度过程模拟设计-先来先服务法、最短寻道时间.doc(16页珍藏版)》请在沃文网上搜索。
1、武汉理工大学操作系统课程设计学 号: 课 程 设 计题 目磁盘移臂调度过程模拟设计先来先服务法、最短寻道时间优先算法学 院计算机科学与技术专 业计算机科学与技术班 级计算机姓 名指导教师2011年1月18日课程设计任务书学生姓名: 专业班级: 计 指导教师: 工作单位: 计算机科学与技术学院 题 目: 磁盘移臂调度过程模拟设计先来先服务法、最短寻道时间优先算法初始条件:1预备内容:阅读操作系统的文件管理章节内容,理解有关文件组织形式、存储设备的概念。2实践准备:掌握一种计算机高级语言的使用。要求完成的主要任务: (包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1编程序模拟磁盘调度的
2、过程,采用指定算法,模拟并输出存取臂的移动顺序,并计算存取臂移动的磁道总数。 能够处理以下的情形: 可根据需要输入当前磁头的位置,磁头移动方向; 能够输入柱面数,磁道访问序列等参数,并能够显示调度结果(磁盘访问请求的磁道号以及磁头移动的总磁道数)。2设计报告内容应说明: 课程设计目的与功能; 需求分析,数据结构或模块说明(功能与框图); 源程序的主要部分; 测试用例,运行结果与运行情况分析; 自我评价与总结:i)你认为你完成的设计哪些地方做得比较好或比较出色;ii)什么地方做得不太好,以后如何改正;iii)从本设计得到的收获(在编写,调试,执行过程中的经验和教训);iv)完成本题是否有其他的其
3、他方法(如果有,简要说明该方法);v)对实验题的评价和改进意见,请你推荐设计题目。时间安排:设计安排一周:周1、周2:完成程序分析及设计。周2、周3:完成程序调试及测试。周4、周5:验收,撰写课程设计报告。(注意事项:严禁抄袭,一旦发现,抄与被抄的一律按0分记)指导教师签名: 年 月 日系主任(或责任教师)签名: 年 月 日磁盘移臂调度过程模拟设计 先来先服务法、最短寻道时间优先算法1 设计目的与功能1.1 设计目的 编程序模拟磁盘调度的过程,采用指定算法,模拟并输出存取臂的移动顺序,并计算存取臂移动的磁道总数。 1.2 实现的功能 能够处理以下的情形: u 可根据需要输入当前磁头的位置,磁头
4、移动方向; u 能够输入柱面数,磁道访问序列等参数,并能够显示调度结果(磁盘访问请求的磁道号以及磁头移动的总磁道数)。1.3 实现的环境及语言u 集成环境:Visual Studio 2008u 语言:C#2 需求分析 在学完操作系统之后,了解了有关文件组织形式、存储设备的概念之后,采用一种计算机高级语言实现对模拟磁盘移臂调度算法的实现,从而练习并加深对磁盘调度的理解,并应用一种自己熟悉的高级语言将其实现。3 模块说明本次课程设计为设计模拟磁盘移臂调度过程,要求采用先来先服务法和最短寻道时间优先算法,再设计中我又添加了电梯算法。本程序包括三大模块: 用户输入部分 处理数据并输出结果部分 画图模
5、拟移臂部分 其中在处理数据中又分为采用先来先服务法、最短寻道时间优先算法及电梯算法,电梯算法又分为从左向右和从右向左。4 源程序的主要部分4.1 主要界面4.2 主要方法和事件4.2.1 根据选择的算法计算并输出结果 /按下按钮事件:先来先服务法、最短寻道时间优先法、电梯算法 private void btn_confirm_Click(object sender, EventArgs e) int current = 0; int direction = 0; int cylinder = 0; int visitors = null; int algorithm = 0; try curr
6、ent = int.Parse(tb_current.Text.Trim(); direction = cmb_direction.SelectedIndex; cylinder = int.Parse(tb_cylinder.Text.Trim(); string nums = tb_visitors.Text.Trim().Split( ); visitors = new intnums.Length; access = new intnums.Length; movement = new intnums.Length; for (int i = 0; i cylinder) Messag
7、eBox.Show(磁道数不能大于柱面数!, 出错信息, MessageBoxButtons.OK, MessageBoxIcon.Information); return; algorithm = cmb_algorithm.SelectedIndex; catch MessageBox.Show(输入不能为空,请输入完整!, 出错信息, MessageBoxButtons.OK, MessageBoxIcon.Information); return; if (current cylinder) MessageBox.Show(当前磁头位置不能大于柱面数!, 出错信息, MessageBo
8、xButtons.OK, MessageBoxIcon.Information); return; if (algorithm = 0) /先来先服务法 access = visitors; movement0 = Math.Abs(access0 - current); for (int i = 1; i movement.Length; i+) movementi = Math.Abs(accessi - accessi - 1); else if (algorithm = 1) /最短寻道时间优先法 for (int i = 0; i visitors.Length; i+) int t
9、emp = cylinder; int record = 0; for (int j = 0; j visitors.Length; j+) if (Math.Abs(visitorsj - current) temp) & (visitorsj != -1) temp = Math.Abs(visitorsj - current); record = j; current = visitorsrecord; accessi = visitorsrecord; movementi = temp; visitorsrecord = -1; else /电梯算法 Array.Sort(visito
10、rs); if (direction = 1) /从左到右 int temp = cylinder; int record=0; for (int i = 0; i 0) & (visitorsi - current temp) & (visitorsi != -1) temp = visitorsi - current; record = i; for (int j = record; j -1; j-) /向左访问 accessvisitors.Length - j - 1 = visitorsj; for (int j = 0; j access.Length; j+) /更新移动的磁道
11、数 movementj = Math.Abs(accessj - current); current = accessj; else if (direction = 2) int temp = cylinder; int record=0; for (int i = 0; i 0) & (visitorsi - current -1; j-) /向左访问 accessrecord - 1 - j = visitorsj; for (int j = record; j visitors.Length; j+) /向右访问 accessj = visitorsj; for (int j = 0;
12、j access.Length; j+) /更新移动的磁道数 movementj = Math.Abs(accessj - current); current = accessj; else MessageBox.Show(请选择磁头移动方向!, 出错信息, MessageBoxButtons.OK, MessageBoxIcon.Information); return; /输出结果 string straccess = ; string strmovement = ; int inttotal = 0; for (int i = 0; i access.Length; i+) stracc
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 磁盘 调度 过程 模拟 设计 先来先 服务 最短寻道 时间