- 1、本文档共9页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验 磁盘调度管理实验
? (1)扫描算法
? (2)循环扫描算法
设计要求:
?1. 磁头初始磁道号,磁头初始运动方向,序列长度,磁道号序列等数据可键盘输入。
? 2. 最好能实现磁道号序列中磁道号的动态增加。
? 3. 磁道访问序列以链表的形式存储。
? 4. 给出各磁盘调度算法的调度顺序和平均寻道长度。
四、实验设计参考
1.算法说明
(1)扫描算法(SCAN)
扫描算法不仅考虑到欲访问的磁道与当前磁道的距离,更优先考虑的是磁头的当前移动方向。例如,当磁头正在自里向外移动时,扫描算法所选择的下一个访问对象应是其欲访问的磁道既在当前磁道之外,又是距离最近的。这样自里向外地访问,直到再无更外的磁道需要访问才将磁臂换向,自外向里移动。这时,同样也是每次选择这样的进程来调度,即其要访问的磁道,在当前磁道之内,从而避免了饥饿现象的出现。由于这种算法中磁头移动的规律颇似电梯的运行,故又称为电梯调度算法。此算法基本上克服了最短寻道时间优先算法的服务集中于中间磁道和响应时间变化比较大的缺点,而具有最短寻道时间优先算法的优点即吞吐量较大,平均响应时间较小,但由于是摆动式的扫描方法,两侧磁道被访问的频率仍低于中间磁道。
2、循环扫描算法(CSCAN)
循环扫描算法是对扫描算法的改进。如果对磁道的访问请求是均匀分布的,当磁头到达磁盘的一端,并反向运动时落在磁头之后的访问请求相对较少。这是由于这些磁道刚被处理,而磁盘另一端的请求密度相当高,且这些访问请求等待的时间较长,为了解决这种情况,循环扫描算法规定磁头单向移动。例如,只自里向外移动,当磁头移到最外的被访问磁道时,磁头立即返回到最里的欲访磁道,即将最小磁道号紧接着最大磁道号构成循环,进行扫描。
2.主要功能模块流程图
程序参考代码如下:
#include iostream
#include string
#include conio.h
#include windows.h
#includeiomanip
#include stdlib.h
using namespace std;
class LinList;
struct LinNode
{
int no;
LinNode *next;
};
class LinList
{
private :
LinNode *head;
public :
int size;
LinList() //构造函数,用于构造头结点和声明长度
{
head=new LinNode;
head-next=NULL;
size=0;
}
void Insert(int no)//插入函数
{
LinNode *newnode=new LinNode;
newnode-no=no;
newnode-next=NULL;
Index(size-1)-next=newnode;
size++;
}
LinNode *Index(int i)//定位函数
{
if(i-1||isize-1)
{
cout ;
exit(0);
}
if(i==-1)return head;
if(i==0)return head-next;
LinNode *p=head-next;
int k=0;
while(p!=NULLki)
{
p=p-next;
k++;
}
return p;
}
void SCAN1(int start_place)//电梯调度算法(向外寻道)
{
cout -SCAN调度算法(向外寻道)如下: ;
float sum=0;
float ave;
int *a=sort();
for(int i=0;isize;i++)
{
if(start_place=a[i])
{for(int m=i;msize;m++)
{
if(i==0m==size-1)
{couta[m]endl;sum+=abs(a[m]-a[m-1]);}
else
{
couta[m]-;
if(m==i){sum+=abs(start_place-a[i]);}
else
{sum+=abs(a[m]-a[m-1]);}
}
}
for(int n=i-1;n=0;n--)
{
if(n==i-1){sum+=abs(a[n]-a[size-1]);}
if(n!=i-1){sum+=abs(a[n
您可能关注的文档
- 实用英语508.ppt
- 世界地质公园科普布展中心施工组织设计要素.docx
- 实时图形课程设计报告格式.doc
- 实用细胞培养技术1.ppt
- 实用运筹学习题选详解.doc
- 实用非处方药.ppt
- 实训楼挖土方案.doc
- 世界建筑大师及作品要素.ppt
- 实用课件初二《苏州园林》.ppt
- 实际问题与一元一次方程4.1.ppt
- 第18讲 第17课 西晋的短暂统一和北方各族的内迁.docx
- 第15讲 第14课 沟通中外文明的“丝绸之路”.docx
- 第13课时 中东 欧洲西部.doc
- 第17讲 第16 课三国鼎立.docx
- 第17讲 第16课 三国鼎立 带解析.docx
- 2024_2025年新教材高中历史课时检测9近代西方的法律与教化含解析新人教版选择性必修1.doc
- 2024_2025学年高二数学下学期期末备考试卷文含解析.docx
- 山西版2024高考政治一轮复习第二单元生产劳动与经营第5课时企业与劳动者教案.docx
- 第16讲 第15课 两汉的科技和文化 带解析.docx
- 第13课 宋元时期的科技与中外交通.docx
文档评论(0)