预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共15页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

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

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

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

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

磁盘调度算法的模拟实现 学院 专业 学号 学生姓名 指导教师姓名 2014年3月19日 目录 HYPERLINK\l"_Toc3075"一、课设简介 2 HYPERLINK\l"_Toc25535"1.1课程设计题目 2 HYPERLINK\l"_Toc9672"1.2课程设计目的 2 HYPERLINK\l"_Toc2279"1.3课程设计要求 2 HYPERLINK\l"_Toc31889"二、设计内容 3 HYPERLINK\l"_Toc23774"2.1功能实现 3 HYPERLINK\l"_Toc1854"2.2流程图 3 2.3具体内容.......................................3 HYPERLINK\l"_Toc11551"三、测试数据......................................4 HYPERLINK\l"_Toc16482"3.3测试用例及运行结果 4 HYPERLINK\l"_Toc8976"四、源代码 5 HYPERLINK\l"_Toc22090"五、总结 12 HYPERLINK\l"_Toc8381"5.1总结............................................  一、课设简介 课程设计题目 磁盘调度算法的模拟实现1 程序设计目的 操作系统课程设计是计算机专业重要的教学环节,它为学生提供了一个既动手又动脑,将课本上的理论知识和实际有机的结合起来,独立分析和解决实际问题的机会。 1)进一步巩固和复习操作系统的基础知识。 2)培养学生结构化程序、模块化程序设计的方法和能力。 3)提高学生调试程序的技巧和软件设计的能力。 4)提高学生分析问题、解决问题以及综合利用C语言进行程序设计的能力。 1.3设计要求 1)磁头初始磁道号,序列长度,磁道号序列等数据可从键盘输入,也可从文件读入。 2)最好能实现磁道号序列中磁道号的动态增加。 3)磁道访问序列以链表的形式存储 4)给出各磁盘调度算法的调度顺序和平均寻道长度 二、设计内容 2.1功能实现 设计并实现一个本别利用下列磁盘调度算法进行磁盘调度的模拟程序。 先来先服务算法FCFS 最短寻道时间优先算法SSTF 2.2流程图 开始 选择算法 S S T F F C F S 结束 2.3具体内容 1)先来先服务算法FCFS 这是一种比较简单的磁盘调度算法。它根据进程请求访问磁盘的先后次序进行调度。此算法的优点是公平、简单,且每个进程的请求都能依次得到处理,不会出现某一进程的请求长期得不到满足的情况。此算法由于未对寻道进行优化,在对磁盘的访问请求比较多的情况下,此算法将降低设备服务的吞吐量,致使平均寻道时间可能较长,但各进程得到服务的响应时间的变化幅度较小。 2)最短寻道时间优先算法SSTF 该算法选择这样的进程,其要求访问的磁道与当前磁头所在的磁道距离最近,以使每次的寻道时间最短,该算法可以得到比较好的吞吐量,但却不能保证平均寻道时间最短。其缺点是对用户的服务请求的响应机会不是均等的,因而导致响应时间的变化幅度很大。在服务请求很多的情况下,对内外边缘磁道的请求将会无限期的被延迟,有些请求的响应时间将不可预期。 三、测试数据 3.1先来先服务算法 输入磁道序列:555839189016015038184 当前磁道号:100 3.2最短寻道时间优先算法 (1)当前磁道号大于磁道序列中的最大的磁道号时 输入磁道序列:555839189016015038184 当前磁道号:100 3.3测试结果 四、源代码 #include<iostream> #include<cmath> #include<stdio.h> usingnamespacestd; typedefstructnode { intdata; structnode*next; }Node,*Linklist; voidmain() { voidCreate_Linklist(Node*); voidfcfs();//声明先来先服务函数FCFS voidsstf();//声明最短寻道时间优先函数SSTF voidprint(Node*);//输出链表函数 ints;//s是选择哪个算法 printf("**************磁盘调度算法***************\n"); printf("\t***1,先来先服务算法FCFS\n"); printf("\t***2,最短寻道时间优先算