经典调度算法

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

经典调度算法

实践课题:

姓名:

学号:

指导老师:

学院:

课程设计实践时间

2014.3.11~2014.3.22

目录

1.设计目的----------------------------------------3

2.设计内容----------------------------------------3

3.设计要求----------------------------------------3

4.程序流程图--------------------------------------4

5.设计摘要----------------------------------------7

6.源程序------------------------------------------8

7.运行结果---------------------------------------16

一课程设计的目的:

操作系统课程设计是计算机专业重要的教学环节,它为学生提供了一个既动手又动脑,将课本上的理论知识和实际有机的结合起来,独立分析和解决实际问题的机会。

1.进一步巩固和复习操作系统的基础知识

2.培养学生结构化程序、模块化程序设计的方法和能力。

3.提高学生调试程序的技巧和软件设计的能力。

4.提高学生分析问题、解决问题以及综合利用C语言进行程序设计的能力。

二设计内容:

实现以下几种调度算法

1.FCFS

2.SJF

3.高响应比优先调度算法。

三.设计要求:

1.不同的功能使用不同的函数实现(模块化),对每个函数的功能和调用接口要注释清楚。对程序其它部分也进行必要的注释。

2.对系统进行功能模块分析、画出总流程图和各模块流程图。3.用户界面要求使用方便、简洁明了、美观大方、格式统一。所有功能可以反复使用,最好使用菜单。

4.通过命令行相应选项能直接进入某个相应菜单选项

的功能模块。

5. 所有程序需调试通过。

四、设计结束需提交下列资料:

1、课程设计报告。报告中至少应包括:相关操作系统的知识介绍,程序总的功能说明、程序各模块的功能说明、程序设计的流程图源程序清单。

2、源程序和编译连接后的可执行程序文件。

五、进程调度模拟程序流程图

主函数流程图1-1

先来先服务算法调度1-2

短作业优先调度1-3

高响应比优先调度1-4

六、设计摘要及背景

利用高级语言,实现经典进程调度算法,有先来先服务、短作业优先、响应比高优先,进一步理解了进程调度各种算法的概念及含义。

在OS中,调度的实质是一种资源分配,调度算法即指:根据系统的资源分配策略所规定的资源分配算法。对于不同的系统和系统目标,通常采用不同的调度算法,如在批处理系统中,为照顾为数众多的短作业,采用短作业有限调度算法;采用算法时,则要考虑多方面因素,以便达到最佳效果。

七、源程序代码

#include

#include

using namespace std;

#define MAX 8

struct task_struct

{

char name[10]; /*进程名称*/

float come_time; /*到达时间*/

float run_begin_time; /*开始运行时间*/

float run_time; /*运行时间*/

float run_end_time; /*运行结束时间*/

int order; /*运行次序*/

int run_flag; /*调度标志*/

}tasks[MAX],a[MAX];

int counter; /*实际进程个数*/ int fcfs(); /*先来先服务*/ int sjf(); /*短作业优先*/

int hrrn(); /*高响应比优先*/

int pinput(); /*进程参数输入*/

int poutput();

void main()

{

system("color 6a");

int option;

pinput();

while(1)

{

printf("请选择调度算法(0~3):\n");

printf("1.先来先服务\n");

printf("2.短作业优先\n");

printf("3. 高响应比优先\n");

printf("0.退出\n");

scanf("%d",&option);

switch (option)

{

case 0:

//save();

printf("运行结束。\n");

exit(0);

break;

case 1:

printf("对进程按先来先服务调度。\n\n");

fcfs();

poutput();

break;

case 2:

printf("对进程按短作业优先调度。\n\n");

sjf();

poutput();

break;

case 3:

printf("对进程按高响应比优先调度。\n\n");

hrrn();

poutput();

break;

相关文档
最新文档