哈尔滨理工大学
课 程 设 计
(计算机操作系统)
题 目: SCAN磁盘调度算法 学 院: 计算机科学与技术学院 班 级: 姓 名: 指导教师: 系主任:
20XX年03月01日
目 录
1.6 源代码...............................................................................................................3 2 4
1.SCAN磁盘调度算法课程设计
1.1 题目分析
本课程设计的目的是通过设计一个磁盘调度模拟系统,从而使磁盘调度算法更加形象化,容易使人理解,使磁盘调度的特点更简单明了,能使使用者加深对先来先服务算法、最短寻道时间优先算法、扫描算法以及循环扫描算法等磁盘调度算法的理解。此算法基本上克服了最短寻道时间优先算法的服务集中于中间磁道和响应时间变化比较大的缺点,而具有最短寻道时间优先算法的优点即吞吐量较大,平均响应时间较小,但由于是摆动式的扫描方法,两侧磁道被访问的频率仍低于中间磁道。
1.2 数据结构
SCAN磁盘调度算法问题中涉及的数据结构包括手动输入磁道的信号量、选择调度算法的信号量、SCAN调度算法的信号量、显示运行结果的信号量…等。
用伪代码表示如下: int scan(Linklist L,int Current){ LNode *p,*q,*s; float sum=0; if(L->next!=NULL){
p=L->next;
while(p->data 移,直到大于磁道号时中断 } p=p->next; printf(\扫描算法顺序是:\ for(q=p;q!=NULL;q=q->next){//输出大于当前磁道号的数 printf(\ sum+=abs(Current-q->data); Current=q->data; } for(s=p->prior;s!=NULL;s=s->prior){//磁臂换向,自外向里移动,依次输出指针之前的数据 printf(\ sum+=abs(Current-s->data); Current=s->data; } printf(\ printf(\平均寻道长度为:%.1f\\n\ } return 0; } p 1.3 流程图 结束 显示运行结SCAN算法 选择调度算法 手动输入磁道 开始 1.4 实现技术 为实现上述设计,采用C++语言,VS20XX开发环境。具体采用的技术如下: (1)白盒测试技术 白盒测试也称结构测试或逻辑驱动测试,它是按照程序内部的结构,通过测试来检测产品内部动作是否按照设计规格说明书的规定正常进行,检验程序中的每条通路是否都能按预定要求正确工作。 这一方法是把测试看作一个打开的盒子,测试人员依据内部相关信息,设计或选择,对程序所有逻辑进行测试,通过在不同点检查程序的状态,确定实际