N-Step-SCAN-磁盘调度-操作系统课程设计.doc
上传人:天马****23 上传时间:2024-09-12 格式:DOC 页数:28 大小:217KB 金币:10 举报 版权申诉
预览加载中,请您耐心等待几秒...

N-Step-SCAN-磁盘调度-操作系统课程设计.doc

N-Step-SCAN-磁盘调度-操作系统课程设计.doc

预览

免费试读已结束,剩余 18 页请下载文档后查看

10 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

哈尔滨理工大学课程设计(操作系统)题目:N-Step-SCAN磁盘调度班级:计算机科学与技术学院计算机系10-8班姓名:唐楷航1004010825指导教师:高雪瑶系主任:林克正2013年03月01日---PAGEXXVII-目录TOC\o"1-3"\h\z\uHYPERLINK\l"_Toc349739000"1N-Step-SCAN磁盘调度课程设计HYPERLINK\l"_Toc349739001"1.1题目分析PAGEREF_Toc349739001\h1HYPERLINK\l"_Toc349739002"1.2数据结构PAGEREF_Toc349739002\h1HYPERLINK\l"_Toc349739003"1.3流程图PAGEREF_Toc349739003\h1HYPERLINK\l"_Toc349739004"1.4实现技术PAGEREF_Toc349739004\h2HYPERLINK\l"_Toc349739005"1.5设计结论和心得PAGEREF_Toc349739005\h2HYPERLINK\l"_Toc349739006"2Linux代码分析PAGEREF_Toc349739006\h4HYPERLINK\l"_Toc349739007"2.1功能说明18HYPERLINK\l"_Toc349739008"2.2接口说明.18HYPERLINK\l"_Toc349739009"2.3局部数据结构.......20HYPERLINK\l"_Toc349739010"2.4流程图.....21HYPERLINK\l"_Toc349739011"2.5以实例说明运行过程......................................................................................22HYPERLINK\l"_Toc349739011"2.5以实例说明运行过程PAGEREF_Toc349739011\h5哈尔滨理工大学课程设计报告--1N-Step-SCAN磁盘调度课程设计题目分析当有一个或者几个进程对某一磁道有较高的访问频率,即这些进程反复请求对某一磁道的I/O操作,从而垄断整个磁盘设备。在高密度的磁盘上容易出现此情况。N步SCAN算法是将磁道请求队列若干个长度为N的子队列。而每处理一个队列时又是按SCAN算法,对一个队列处理完后,再处理其他队列。数据结构N-Step-SCAN磁盘调度中涉及的数据结构包括N个队列、队列缓冲区、表示空缓冲区的信号量、表示满缓冲区的信号量…等。用伪代码表示如下:#include"stdio.h"#include"stdlib.h"//#include"iostream.h"#definemaxsize100//定义最大数组域intnow,s;voidSSTF(intarray[],intm){inttemp;intk=1;intnow,l,r;//当前磁道号now;找出的当前磁道左侧的磁道l,右侧的磁道rinti,j,sum=0;intavg;for(i=0;i<m;i++){for(j=i+1;j<m;j++)//对磁道号进行从小到大排列{if(array[i]>array[j])//两磁道号之间比较{temp=array[i];array[i]=array[j];array[j]=temp;}}}for(i=0;i<m;i++)//输出排序后的磁道号数组{printf("%d",array[i]);}printf("\n请输入当前的磁道号:");scanf("%d",&now);printf("\nSSTF调度结果:");if(array[m-1]<=now)//判断整个数组里的数是否都小于当前磁道号{for(i=m-1;i>=0;i--)//将数组磁道号从大到小输出printf("%d",array[i]);sum=now-array[0];//计算移动距离}elseif(array[0]>=now)//判断整个数组里的数是否都大于当前磁道号{for(i=0;i<m;i++)//将磁道号从小到大输出printf("%d",array[i]);s