磁盘调度算法
学生姓名:
学生学号:
专业班级:
指导老师:
2013年6月20日
1、实验目的:
通过这次实验,加深对磁盘调度算法的理解,进一步掌握先来先服务FCFS、最短寻道时间优先SSTF、SCAN和循环SCAN算法的实现方法。
2、问题描述:
设计程序模拟先来先服务FCFS、最短寻道时间优先SSTF、SCAN 和循环SCAN算法的工作过程。假设有n个磁道号所组成的磁道访问序列,给定开始磁道号m和磁头移动的方向(正向或者反向),分别利用不同的磁盘调度算法访问磁道序列,给出每一次访问的磁头移动距离,计算每种算法的平均寻道长度。
3、需求分析
通过这次实验,加深对磁盘调度算法的理解,进一步掌握先来先服务FCFS、最短寻道时间优先SSTF、SCAN和循环SCAN算法的实现方法。
通过已知开始磁道数、访问磁道总数、磁道号访问序列、访问方向及访问方式得到访问序列及移动距离和平均移动距离!
(1)输入的形式;
int TrackOrder[MaxNumber];//被访问的磁道号序列 int direction;//寻道方向
int Num;//访问的磁道号数目
int start;//
(2)输出的形式;
int MoveDistance[MaxNumber]={0};//移动距离
double AverageDistance=0;//平均寻道长度
移动的序列!
(3)程序所能达到的功能;
模拟先来先服务FCFS、最短寻道时间优先SSTF、SCAN和循环SCAN算法的工作过程。假设有n个磁道号所组成的磁道访问序列,给定开始磁道号m和磁头移动的方向(正向或者反向),分别利用不同的磁盘调度算法访问磁道序列,给出每一次访问的磁头移动距离,计算每种算法的平均寻道长度。
(4)测试数据,包括正确的输入及其输出结果和含有错误的输入及其输出结果。
开始磁道号:100
磁道号方向:内(0)和外(1)
磁道号数目:9
页面序列:55 58 39 18 90 160 150 38 184
4、概要设计
说明本程序中用到的所有抽象数据类型的定义、主程序的流程以及各程序模块之间的层次(调用)关系。
int TrackOrder[MaxNumber];//被访问的磁道号序列int MoveDistance[MaxNumber]={0};//移动距离
double AverageDistance=0;//平均寻道长度
int direction;//寻道方向
int Num;//访问的磁道号数目
int start;//开始磁道号
5、详细设计
实现程序模块的具体算法。
6、调试分析
(1)调试过程中遇到的问题以及解决方法,设计与实现的回顾讨论和分析;
在SCAN_CSAN算法中在访问不同的数组时没有注意到上一个磁道号和要访问的磁道号的大小比较导致结果不对,后来在分析结果中找出原因。
(2)算法的性能分析(包括基本操作和其它算法的时间复杂度和空间复杂度的分析)及其改进设想;
FCFS:时间复杂度为O(1)空间复杂度为:O(1)
SSTF:时间复杂度为O(n^2)空间复杂度为:O(1)
SCAN_CSAN:时间复杂度为O(n^2)空间复杂度为:O(1)
7、用户使用说明
程序的使用说明,列出每一步的操作步骤。
(1)输入开始磁道号
(2)输入访问磁道号总数
(3)输入访问磁道号序列序列
(4)选择算法
(5)选择方向
(6)得出结果
8、测试结果
9、存在问题
在求移动距离时,若调用C++的库函数求绝对值会更方便!
10、心得体会
首先要明确磁盘调度的原理,画出算法流程图!这样在解决问题时更容易!
11、附录
程序源代码:
#include
#define MaxNumber 100
void FCFS(int TrackOrder[MaxNumber],int MoveDistance[MaxNumber], double AverageDistance,int start,int Num)
{
int i,temp=start,sum=0;
cout<<"移动顺序移动距离"< for(i=0;i { if(TrackOrder[i]>temp) MoveDistance[i]=TrackOrder[i]-temp; else MoveDistance[i]=temp-TrackOrder[i]; sum+=MoveDistance[i]; temp=TrackOrder[i]; cout< } cout< AverageDistance=sum*1.0/Num; cout<<"平均寻道长度:"< } void SSTF(int TrackOrder[MaxNumber],int MoveDistance[MaxNumber], double AverageDistance,int start,int Num) { int temp=start, sum=0,s,count=0,min; int kind[MaxNumber]={0}; cout<<"移动顺序移动距离"< while(count { for(int i=0;i { if(kind[i]==0) { if(TrackOrder[i]>temp) min=TrackOrder[i]-temp; else min=temp-TrackOrder[i]; s=i; break; } } int temp1; for( i=0;i { if(TrackOrder[i]>temp) temp1=TrackOrder[i]-temp; else temp1=temp-TrackOrder[i]; if(temp1 { min=temp1; s=i; } } MoveDistance[count]=min; sum+=MoveDistance[s]; temp=TrackOrder[s]; cout< kind[s]=1; count++; } cout< AverageDistance=sum*1.0/Num; cout<<"平均寻道长度:"< } void paixu(int a[MaxNumber],int n,int TrackOrder[MaxNumber])//从小到大排序{ int sym=0; while(sym==0) { int kind=0; for(int i=0;i { int s1=a[i]; int s2=a[i+1]; i f(TrackOrder[s1]>TrackOrder[s2]) { int s=a[i+1]; a[i+1]=a[i]; a[i]=s; kind=1; } } if(kind==0) sym=1; } } void SCAN_CSAN(int TrackOrder[MaxNumber],int MoveDistance[MaxNumber], double AverageDistance,int start,int Num,int direction,int chioce) { int sum=0; int a[MaxNumber],b[MaxNumber]; int temp=start; int i,num1=0,num2=0; cout<<"移动顺序移动距离"< for(i=0;i { if(TrackOrder[i]> temp) { a[num1]=i; num1++; } else { b[num2]=i; num2++; } } paixu(a,num1,TrackOrder);//将数组按从小到达排序 paixu(b,num2,TrackOrder);//将数组按从小到达排序 int s; if(direction==0) //访问方向向外 { for(i=0;i { s=a[i]; MoveDistance[s]=TrackOrder[s]-temp; sum+=MoveDistance[s]; temp=TrackOrder[s]; cout< } if(chioce==3)//SCAN算法 { for(i=num2-1;i>=0;i--) //再访问num2并且从后往前访问 { s=b[i]; MoveDistance[s]=temp-TrackOrder[s]; sum+=MoveDistance[s]; temp=TrackOrder[s]; cout< } } else //CSAN算法 { s=b[0]; MoveDistance[s]=temp-TrackOrder[s]; sum+=MoveDistance[s]; temp=TrackOrder[s]; cout< for(i=1;i { s=b[i]; MoveDistance[s]=TrackOrder[s]-temp; sum+=MoveDistance[s]; temp=TrackOrder[s]; cout< } } } else //访问方向向内 { for(i=num2-1;i>=0;i--)//先访问num2并且从后往前访问 { s=b[i]; MoveDistance[s]=temp-TrackOrder[s]; sum+=MoveDistance[s]; temp=TrackOrder[s]; cout< } if(chioce==3) //SCAN算法 { f or(i=0;i { s=a[i]; MoveDistance[s]=TrackOrder[s]-temp; sum+=MoveDistance[s]; temp=TrackOrder[s]; cout< } } else //CSAN算法 { s=a[num1-1]; MoveDistance[s]=TrackOrder[s]-temp; sum+=MoveDistance[s]; temp=TrackOrder[s]; cout< f or(i=num1-2;i>=0;i--)//再访问num1并且从后往前访问 { s=a[i]; MoveDistance[s]=temp-TrackOrder[s]; sum+=MoveDistance[s]; temp=TrackOrder[s]; cout< } } } cout< AverageDistance=sum*1.0/Num; cout<<"平均寻道长度:"< } void main() { int TrackOrder[MaxNumber];//被访问的磁道号序列 int MoveDistance[MaxNumber]={0};//移动距离 double AverageDistance=0;//平均寻道长度 int direction;//寻道方向 int Num;//访问的磁道号数目 int start;//开始磁道号 int kind=0,chioce; cout<<"请输入开始磁道号:"; cin>>start; cout<<"请输入访问的磁道号数目:"; cin>>Num; cout<<"请输入被访问的磁道号序列:"; for(int i=0;i cin>>TrackOrder[i]; while(kind==0) { cout<<"请选择算法:1-FCFS,2-SSTF,3-SCAN,4-循环SCAN: "; cin>>chioce; if(chioce==1) FCFS(TrackOrder,MoveDistance,AverageDistance,start, Num); else { if(chioce==2) SSTF(TrackOrder,MoveDistance,AverageDistance,start, Num); else { cout<<"请输入磁道号访问方向,0:增加;1:减少: "; c in>>direction; SCAN_CSAN(TrackOrder,MoveDistance, AverageDistance,start,Num,direction,chioce); } } cout<<"**********************************************"< cout<<"请选择继续还是结束,0:继续;1:结束 "; cin>>kind; } } 某某大学 课程设计报告课程名称:操作系统 设计题目:模拟磁盘调度算法 系别:计算机系 专业:计算机科学与技术 组别: 学生: 学号: 起止日期: 指导教师: 目录 第一章需求分析 (1) 1.1课程设计的简介 (1) 1.2课程设计的目的 (1) 1.3磁盘调度主要思想 (1) 1.4课程设计容 (2) 第二章概要设计 (3) 2.1设计思想 (3) 2.2 数据结构 (3) 2.3模块调用关系图 (3) 2.4子模块程序流程图 (5) 第三章详细设计 (6) 3.1模块划分 (6) 第四章代码测试 (9) 4.1先来先服务 (9) 4.1最短寻道时间优先 (11) 4.1扫描算法 (12) 第五章心得体会 (13) 第六章致 (13) 参考文献 (1) 附源代码 (2) 第一章需求分析 1.1课程设计的简介 这是一个用VC++6.0为工具、C++为编程语言而实现模拟先来先服务算法(FCFS)、最短寻道时间优先算法(SSTF)、扫描算法(SCAN)的一个磁盘调度程序。该程序设计系统主界面可以灵活选择某种算法并算出磁头移动的总磁道数以及平均磁道数。 1.2课程设计的目的 本课程设计的目的是通过设计一个磁盘调度模拟系统,从而使磁盘调度算法更加形象化,容易使人理解,使磁盘调度的特点更简单明了,能使使用者加深对先来先服务算法(FCFS)、最短寻道时间优先算法(SSTF)、扫描算法(SCAN)等磁盘调度算法的理解。 1.3磁盘调度主要思想 设备的动态分配算法与进程调度相似,也是基于一定的分配策略的。常用的分配策略有先请求先分配、优先级高者先分配等策略。在多道程序系统中,低效率通常是由于磁盘类旋转设备使用不当造成的。操作系统中,对磁盘的访问要求来自多方面,常常需要排队。这时,对众多的访问要求按一定的次序响应,会直接影响磁盘的工作效率,进而影响系统的性能。访问磁盘的时间因子由3部分构成,它们是查找(查找磁道)时间、等待(旋转等待扇区)时间和数据传输时间,其中查找时间是决定因素。因此,磁盘调度算法先考虑优化查找策略,需要时再优化旋转等待策略。 平均寻道长度(L)为所有磁道所需移动距离之和除以总的所需访问的磁道数(N),即: L=(M1+M2+……+Mi+……+MN)/N。其中Mi为所需访问的磁道号所需移动的磁道数。 启动磁盘执行输入输出操作时,要把移动臂移动到指定的柱面,再等待指定扇区的旋转到磁头位置下,然后让指定的磁头进行读写,完成信息传送。因此,执行一次输入输出所花的时间有: 《操作系统原理》 课程设计报告书 题目:磁盘调度 专业:网络工程 学号: 学生姓名: 指导教师: 完成日期: 目录 第一章课程设计目的 (1) 1.1编写目的 (1) 第二章课程设计内容 (2) 2.1设计内容 (2) 2.1.1、先来先服务算法(FCFS) (2) 2.1.2、最短寻道时间优先算法(SSTF) (2) 2.1.3、扫描算法(SCAN) (3) 2.1.4、循环扫描算法(CSCAN) (3) 第三章系统概要设计 (4) 3.1模块调度关系图 (4) 3.2模块程序流程图 (4) 3.2.1 FCFS算法 (5) 3.2.2 SSTF算法 (6) 3.2.3 SCAN算法 (7) 3.2.4 CSCAN算法 (8) 第四章程序实现 (9) 4.1 主函数的代码实现 (9) 4.2.FCFS算法的代码实现 (11) 4.3 SSTF算法的代码实现 (13) 4.4 SCAN算法的代码实现 (15) 4.5 CSCAN算法的代码实现 (17) 第五章测试数据和结果 (20) 第六章总结 (23) 第一章课程设计目的 1.1编写目的 本课程设计的目的是通过磁盘调度算法设计一个磁盘调度模拟系统,从而使磁盘调度算法更加形象化,容易使人理解,使磁盘调度的特点更简单明了,能使使用者加深对先来先服务算法、最短寻道时间优先算法、扫描算法以及循环扫描算法等磁盘调度算法的理解 1 第二章课程设计内容 2.1设计内容 系统主界面可以灵活选择某种算法,算法包括:先来先服务算法(FCFS)、最短寻道时间优先算法(SSTF)、扫描算法(SCAN)、循环扫描算法(CSCAN)。 2.1.1、先来先服务算法(FCFS) 这是一种比较简单的磁盘调度算法。它根据进程请求访问磁盘的先后次序进行调度。此算法的优点是公平、简单,且每个进程的请求都能依次得到处理,不会出现某一进程的请求长期得不到满足的情况。此算法由于未对寻道进行优化,在对磁盘的访问请求比较多的情况下,此算法将降低设备服务的吞吐量,致使平均寻道时间可能较长,但各进程得到服务的响应时间的变化幅度较小。 2.1.2、最短寻道时间优先算法(SSTF) 该算法选择这样的进程,其要求访问的磁道与当前磁头所在的磁道距离最近,以使每次的寻道时间最短,该算法可以得到比较好的吞吐量,但却不能保证平均寻道时间最短。其缺点是对用户的服务请求的响应机会不是均等的,因而导致响应时间的变化幅度很大。在服务请求很多的情况下,对内外边缘磁道的请求将会无限期的被延迟,有些请求的响应时间将不可预期。 2 操作系统上机 实验报告 成绩 教师: 2012 年 12月 5日 班级: 学号: 姓名: 实验地点: 实验时间: 实验一进程的建立 【实验目的】 创建进程及子进程 在父子进程间实现进程通信 【实验软硬件环境】 Linux 、Windows98、Windows2000 【实验内容】 创建进程并显示标识等进程控制块的属性信息; 显示父子进程的通信信息和相应的应答信息。 (进程间通信机制任选) 【实验程序及分析】 编程思路:首先本程序在Linux用C语言完成的,父子进程的创建用fork函数来实现,然后是父子进程间的通信,这里用pipe实现。可以定义chan1[2], chan1[2],chanx[0]表示读,chanx[1]表示写。他们配合使用。 【实验截图】 【实验心得体会】 通过这次上机练习,我熟悉了用c++实现进程的创建,销毁,父子进程间的通讯等一系列课程中需要学习的内容。本来进程的概念在一开始我始终无法清晰地理解,但是通过自己用mfc的方法去实现它后,我开始慢慢地理解操作系统的进程的运作机制。 虽然,我只是实现了一个父子进程的创建和通讯,但是,管中窥豹,我想自己开始明白一个操作系统正是由很多这种进程实现功能的。其中,系统整体的进程调度,管理等等还有很多东西等着我们去进一步学习、理解。 实验二进程间的同步 【实验目的】 理解进程同步和互斥模型及其应用 【实验软硬件环境】 Linux 、Windows98、Windows2000 【实验内容】 利用通信API实现进程之间的同步: 建立司机和售票员进程; 并实现他们间的同步运行。 【实验程序及分析】 程序总体思路:由于本次试验时用PV操作实现的互斥与同步模型,所以先实现P、V操作的函数,然后在主程序中利用PV操作函数实现司机和售票员的同步。司机和售票员分别为父进程和子进程,假设司机停车开门,此时为父进程中运行,然后申请开车,但是此时乘客没上车,所以只能阻塞。此时进入子进程,乘客上车,关门,售票员检票,释放开车,然后死机开车,到站,释放开车门。如此循环。 示意图 #include 操作系统磁盘调度算法 实验报告 Company number:【0089WT-8898YT-W8CCB-BUUT-202108】 目录 1.课程设计目的 编写目的 本课程设计的目的是通过磁盘调度算法设计一个磁盘调度模拟系统,从而使磁盘调度算法更加形象化,容易使人理解,使磁盘调度的特点更简单明了,能使使用者加深对先来先服务算法、最短寻道时间优先算法、扫描算法以及循环扫描算法等磁盘调度算法的理解。 2.课程设计内容 设计内容 系统主界面可以灵活选择某种算法,算法包括:先来先服务算法(FCFS)、最短寻道时间优先算法(SSTF)、扫描算法(SCAN)、循环扫描算法(CSCAN)。 1、先来先服务算法(FCFS) 这是一种比较简单的磁盘调度算法。它根据进程请求访问磁盘的先后次序进行调度。此算法的优点是公平、简单,且每个进 程的请求都能依次得到处理,不会出现某一进程的请求长期得不到满足的情况。此算法由于未对寻道进行优化,在对磁盘的访问请求比较多的情况下,此算法将降低设备服务的吞吐量,致使平均寻道时间可能较长,但各进程得到服务的响应时间的变化幅度较小。 2、最短寻道时间优先算法(SSTF) 该算法选择这样的进程,其要求访问的磁道与当前磁头所在的磁道距离最近,以使每次的寻道时间最短,该算法可以得到比较好的吞吐量,但却不能保证平均寻道时间最短。其缺点是对用户的服务请求的响应机会不是均等的,因而导致响应时间的变化幅度很大。在服务请求很多的情况下,对内外边缘磁道的请求将会无限期的被延迟,有些请求的响应时间将不可预期。 3、扫描算法(SCAN) 扫描算法不仅考虑到欲访问的磁道与当前磁道的距离,更优先考虑的是磁头的当前移动方向。例如,当磁头正在自里向外移动时,扫描算法所选择的下一个访问对象应是其欲访问的磁道既在当前磁道之外,又是距离最近的。这样自里向外地访问,直到 FIFO磁盘调度算法操作系统课程设计报告_(1) 哈尔滨理工大学 课程设计 (计算机操作系统)题目: FIFO磁盘调度算法 班级: 姓名: 指导教师: 系主任: 2014年03月01日 目录 1FIFO磁盘调度算法课程设计 (1) 1.1 题目分析 (1) 1.2 数据结构 (1) 1.3 流程图 0 1.4 实现技术 (1) 1.5 设计结论和心得 (4) 2 Linux代码分析 (5) 2.1 功能说明 (15) 2.2 接口说明 (15) 2.3 局部数据结构 (15) 2.4 流程图 (16) 2.5 以实例说明运行过程 (16) - - 1FIFO磁盘调度算法课程设计 1.1题目分析 本课程设计的目的是通过设计一个磁盘调度模拟系统,从而使磁盘调度算法更加形象化,容易使人理解,使磁盘调度的特点更简单明了,能使使用者加深对先来先服务磁盘调度算法的理解。 这是一种比较简单的磁盘调度算法。它根据进程请求访问磁盘的先后次序进行调度。此算法的优点是公平、简单,且每个进程的请求都能依次得到处理,不会出现某一进程的请求长期得不到满足的情况。此算法由于未对寻道进行优化,在对磁盘的访问请求比较多的情况下,此算法将降低设备服务的吞吐量,致使平均寻道时间可能较长,但各进程得到服务的响应时间的变化幅度较小。 1.2数据结构 1 先来先服务算法模块:void FCFS(int array[],int m) 输入磁道号,按先来先服务的策略输出磁盘请求序列,求平均寻道长度,输出移动平均磁道数。 主要代码:for(i=0,j=1;j 磁盘调度算法的模拟实现 学院 专业 学号 学生姓名 指导教师姓名 2014年3月19日 目录 一、课设简介 (2) 1.1 课程设计题目 (2) 1.2 课程设计目的 (2) 1.3 课程设计要求 (2) 二、设计内容 (3) 2.1功能实现 (3) 2.2流程图 (3) 2.3具体内容 (3) 三、测试数据 (4) 3.3 测试用例及运行结果 (4) 四、源代码 (5) 五、总结 (12) 5.1 总结............................................ 一、课设简介 1.1课程设计题目 磁盘调度算法的模拟实现1 1.2程序设计目的 操作系统课程设计是计算机专业重要的教学环节,它为学生提供了一个既动手又动脑,将课本上的理论知识和实际有机的结合起来,独立分析和解决实际问题的机会。 1)进一步巩固和复习操作系统的基础知识。 2)培养学生结构化程序、模块化程序设计的方法和能力。 3)提高学生调试程序的技巧和软件设计的能力。 4)提高学生分析问题、解决问题以及综合利用C语言进行程序设计的能力。 1.3 设计要求 1)磁头初始磁道号,序列长度,磁道号序列等数据可从键盘输入,也可从文件读入。 2)最好能实现磁道号序列中磁道号的动态增加。 3)磁道访问序列以链表的形式存储 4)给出各磁盘调度算法的调度顺序和平均寻道长度 二、设计内容 2.1 功能实现 设计并实现一个本别利用下列磁盘调度算法进行磁盘调度的模拟 程序。 1) 先来先服务算法FCFS 2) 最短寻道时间优先算法 SSTF 2.2流程图 2.3具体内容 1)先来先服务算法FCFS 这是一种比较简单的磁盘调度算法。它根据进程请求访问磁盘 的先后次序进行调度。此算法的优点是公平、简单,且每个进程的请 求都能依次得到处理,不会出现某一进程的请求长期得不到满足的情 况。此算法由于未对寻道进行优化,在对磁盘的访问请求比较多的情开始 选择算法 F C F S S S T F 结束 人和以吟实验报告学院(系)名称:计算机与通信工程学院 【实验过程记录(源程序、测试用例、测试结果及心得体会等) 】 #include 实验报告学院(系)名称:计算机与通信工程学院 【实验过程记录(源程序、测试用例、测试结果及心得体会等)】 #include 操作系统课程设计 说明书 学院名称: 专业班级: 姓名: 学号: 2010年7月16日 评分标准 优秀:有完整的符合标准的文档,文档有条理、文笔通顺,格式正确,程序完全实现设计要求,独立完成; 良好:有完整的符合标准的文档,文档有条理、文笔通顺,格式正确;程序完全实现设计要求,独立完成,但存在少量错误; 中等:有完整的符合标准的文档,有基本实现设计方案的软件,设计方案正确; 及格:有完整的符合标准的文档,有基本实现设计方案的软件,设计方案基本正确; 不及格:没有完整的符合标准的文档,软件没有基本实现设计方案,设计方案不正确。没有独立完成,抄袭或雷同。 成绩评定为:。 指导教师: 年月日 目录 一.进程调度算法4-----23 页二.银行家算法24-----34 页三.磁盘调度算法35------46页 进程调度算法 1.设计目的 在多道程序设计中,经常是若干个进程同时处于就绪状态,必须依照某种策略决定哪个进程优先占有处理机,因而必须解决进程调度的问题,进程调度算法就是要解决进程调度的问题。 2. 任务及要求 2.1 设计任务 设计程序来模拟进程的四种调度算法,模拟实现调度的基本功能。 2.2 设计要求 产生的各种随机数要加以限制,如alltime限制在40以内的整数。 进程的数量n不能取值过大。 3. 算法及数据结构 3.1算法的总体思想(流程) 每个用来标识进程的进程控制块PCB用结构来描述,包括以下字段: (1)进程优先数ID,其中0为闲逛进程,用户进程的标识数为1,2,3…。 (2)进程优先级Priority,闲逛进程(idle)的优先级为0,用户进程的优 先级大于0,且随机产生,优先数越大,优先级越高。 (3)进程占用的CPU时间CPUtime,进程每运行一次,累计值等于4。 (4)进程总共需要运行时间Alltime,利用随机函数产生。 (5)进程状态,0:就绪态;1:运行态;2:阻塞态。 利用链表将数据连接起来,实现数据的存储。 3.2 链表模块 3.2.1 功能 实现链表的存储功能,以及实现存储的查找功能。 操作系统实验报告课程名称:计算机操作系统 实验项目名称:磁盘调度实验时间: 班级:姓名:学号: 实验目的: 对操作系统的磁盘调度基础理论和重要算法的理解,加强动手能力。 实验环境: PC机 win7 Visual C++ 实验内容: 编程序实现下述磁盘调度算法,并求出每种算法的平均寻道长度,要求设计主界面以灵 活选择某算法,且以下算法都要实现: 1、先来先服务算法(FCFS) 2、最短寻道时间优先算法(SSTF) 3、扫描算法(SCAN) 4、循环扫描算法(CSCAN) 实验过程: 1.依次输入8个磁道数:123 45 31 67 20 19 38,并以0 结束 2.选择调度算法: (1)先来先服务算法(FCFS) (2)最短寻道时间优先算法(SSTF) 成绩: 指导教师(签名): (3)扫描算法(SCAN) (4)循环扫描算法(CSCAN) 实验心得: 通过本次实验,学习了解磁盘调度的工作原理及四种调度方法的工作原理,并且在当中模拟磁盘调度算法,操作系统课程设计报告书
操作系统磁盘调度算法实验报告
操作系统实验报告模板
操作系统磁盘调度算法实验报告
FIFO磁盘调度算法操作系统课程设计报告_(1)
磁盘调度算法的模拟实现
天津理工大学操作系统实验3:磁盘调度算法的实现
天津理工大学 操作系统实验3:磁盘调度算法地实现
进程调度算法磁盘调度算法银行家算法操作系统课程设计大全
磁盘调度实验报告