操作系统课程设计报告-磁盘调度算法

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

华南农业大学数学与信息学院(软件学院)

《操作系统分析与设计实习》成绩单

开设时间:2015学年第一学期

评价指标:

题目内容和要求完成情况 优□ 良□ 中□ 差□ 对算法原理的理解程度 优□ 良□ 中□ 差□ 程序设计水平 优□ 良□ 中□ 差□ 程序运行效果及正确性 优□ 良□ 中□ 差□ 课程设计报告结构清晰 优□ 良□ 中□ 差□ 报告中总结和分析详尽 优□

良□ 中□ 差□

一、需求分析

(1)输入的形式和输入值的范围:

在文本框输入序列长度,输入值为int 类型 (2)输出的形式:

输出每种磁盘调度算法的服务序列; 输出每种算法的平均寻道长度。 (3)程序所能达到的功能:

模拟实现FCFS 、SSTF 、SCAN 、C-SCAN 算法,并计算及比较磁头移动道数。 (4)测试数据:

包括正确的输入及其输出结果和含有错误的输入及其输出结果:

二、概要设计

1)主程序流程图:

输出随机生成

400个磁道号序

主菜单选择算法

开始

FCFS SSTF

SCAN

C-SCAN 结束

(2)各程序模块之间的调用关系

磁头初始位置输入及

合法性检查

冒泡排序算法

由外向内输出磁道序列

由内向外输出磁道序列

由当前位置向内再向

输出磁道序列由当前位置向外再向

输出磁道序列

由当前位置向内再由

外向内输出磁道序列由当前位置向外再由

内向外输出磁道序列

就近选择

主函数

FCFS

SSFT

SCAN

C-SCAN

三、详细设计

1)各操作伪码算法

(1)实现磁头初始位置的输入并进行合法性检查

int printstarter()//磁头初始位置输入

{

输入:磁头初始位置;

if输入小于0或大于1500

{

输出:"输入数据类型有误,请重新输入!" <

重新输入

}

Else 返回合法的磁头初始位置

}

(2)冒泡排序算法

int *bubble//冒泡排序算法

{

for 从数组的第一个元素开始重复

{

依次和后续元素表较大小;

If后面元素大于当前元素

交换数值;

}

输出排序后的数组;

返回数组;

}

(3)int out_to_in//由磁道最外向内输出磁道序列{

for 从最外磁道开始

{

依次输出磁道号;

当前磁道号与磁头初始未至的绝对值求和;

磁头初始位置=当前磁道号;

}

返回绝对值之和;

}

(4)int in_to_out//由磁道最内向外输出磁道序列{

for 从最内磁道开始

{

依次输出磁道号;

当前磁道号与磁头初始未至的绝对值求和;

磁头初始位置=当前磁道号;

}

返回绝对值之和;

}

(5)int out_to_in_to_out//先由当前位置向内再向外{

找到小于等于磁头初始位置的磁道

for由该磁道开始

{

向内依次输出磁道号;

当前磁道号与磁头初始未至的绝对值求和;

}

for由该磁道的外侧磁道开始

{

向外依次输出磁道号;

当前磁道号与磁头初始未至的绝对值求和;

}

返回绝对值之和;

}

(6)int in_to_out_to_in//先由当前位置向外再向内{

找到大于等于磁头初始位置的磁道

for由该磁道开始

{

向外依次输出磁道号;

当前磁道号与磁头初始未至的绝对值求和;

}

for由该磁道的内侧磁道开始

{

向内依次输出磁道号;

当前磁道号与磁头初始未至的绝对值求和;

}

返回绝对值之和;

}

(7)int out_to_in_twice由当前磁道向内再从最外向内

{

找到小于等于磁头初始位置的磁道;

for由该磁道开始

{

向内依次输出磁道号;

当前磁道号与磁头初始未至的绝对值求和;

}

for由最外侧磁道开始

{

向内依次输出磁道号直到小于等于初始位置的磁道的外侧一个磁道;

当前磁道号与磁头初始未至的绝对值求和;

}

返回绝对值之和;

}

(8)int in_to_out_twice由当前磁道向外再从最内向外

{

找到大于等于磁头初始位置的磁道

for由该磁道开始

{

向内依次输出磁道号;

当前磁道号与磁头初始未至的绝对值求和;

}

for由最内侧磁道开始

{

向外依次输出磁道号直到小于等于初始位置的磁道的内侧一个磁道;

当前磁道号与磁头初始未至的绝对值求和;

}

返回绝对值之和;

}

(9)int nearest_select就近选择

相关文档
最新文档