模拟一种处理机调度算法讲解.docx

上传人:b****9 文档编号:25782592 上传时间:2023-06-14 格式:DOCX 页数:12 大小:224.62KB
下载 相关 举报
模拟一种处理机调度算法讲解.docx_第1页
第1页 / 共12页
模拟一种处理机调度算法讲解.docx_第2页
第2页 / 共12页
模拟一种处理机调度算法讲解.docx_第3页
第3页 / 共12页
模拟一种处理机调度算法讲解.docx_第4页
第4页 / 共12页
模拟一种处理机调度算法讲解.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

模拟一种处理机调度算法讲解.docx

《模拟一种处理机调度算法讲解.docx》由会员分享,可在线阅读,更多相关《模拟一种处理机调度算法讲解.docx(12页珍藏版)》请在冰豆网上搜索。

模拟一种处理机调度算法讲解.docx

模拟一种处理机调度算法讲解

课程设计报告

设计名称:

模拟实现一种处理机调度算法

学生姓名:

xxx

专业:

计算机科学与技术

班别:

xxxxxxxx

学号:

xxxxxx

指导老师:

xxxxx

日期:

2014年6月20日

 

初始条件:

1.预备内容:

阅读操作系统的处理机管理章节内容,对进程调度的功能以及进程调度算法有深入的理解。

2.实践准备:

掌握一种计算机高级语言的使用。

要求完成的主要任务:

(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)

1.模拟进程调度,能够处理以下的情形:

⑴能够选择不同的调度算法(要求中给出的调度算法);

⑵能够输入进程的基本信息,如进程名、优先级、到达时间和运行时间等;

⑶根据选择的调度算法显示进程调度队列;

⑷根据选择的调度算法计算平均周转时间和平均带权周转时间。

2.设计报告内容应说明:

⑴需求分析;

⑵功能设计(数据结构及模块说明);

⑶开发平台及源程序的主要部分;

⑷测试用例,运行结果与运行情况分析;

⑸自我评价与总结:

)你认为你完成的设计哪些地方做得比较好或比较出色;

)什么地方做得不太好,以后如何改正;

)从本设计得到的收获(在编写,调试,执行过程中的经验和教训);

)完成本题是否有其他方法(如果有,简要说明该方法);

进程调度模拟设计——先来先服务、优先级法

1、背景:

当计算机系统是多道程序设计系统时,通常会有多个进程或线程同时竞争CPU。

只要有两个或更多的进程处于就绪状态,这种情形就会发生。

如果只有一个CPU可用,那么就必须选择下一个要运行的进程。

在操作系统中,完成选择工作的这一部分称为调度程序,该程序使用的算法成为调度算法。

进程调度的核心问题是采用什么样的算法把处理机分配给进程,好的算法将提高资源利用率,减少处理机的空闲时间,避免有些作业长期得不到相应的情况发生等,从而设计出受欢迎的操作系统。

较常见的几种进程调度算法有:

先来先服务调度算法;短作业优先调度算法;时间片轮转调度算法;优先级调度算法;高响应比优先算法和多级反馈队列调度算法等。

2.1设计目的

无论是在批处理系统还是分时系统中,用户进程数一般都多于处理机数、这将导致它们互相争夺处理机。

另外,系统进程也同样需要使用处理机。

这就要求进程调度程序按一定的策略,动态地把处理机分配给处于就绪队列中的某一个进程,以使之执行。

本次课程设计的主要任务是用高级语言模拟进程调度的算法,包括先来先服务和优先级法。

通过输入进程的信息,模拟某种调度算法,得到进程调度的顺序,从而进一步分析进程的调度过程,并通过分析程序的运行,探讨各种调度算法的优劣。

2.2设计内容及要求

1)充分体现设计、实现过程;

2)报告包括算法流程描述、数据结构代码描述、算法实现代码描述、模拟执

行过程截图;

3)单人完成课程设计,每人一份报告;

4)报告双面打印;

2.3算法与设计的思想

2.3.1算法思想:

 

·一个进程的生命期可以划分为一组状态,这些状态刻画了整个进程。

系统根据PCB结构中的状态值控制过程。

在进程的生命期内,一个进程至少具有5种基本状态,它们是:

初始态、执行状态、等待状态、就绪状态和终止状态。

通过系统设计,实现进程相关数据结构的创建和查看功能;实现多种进程调度算法:

先来先服务算法、优先级调度算法、时间片轮转法等;实现对执行进程的阻塞,对等待进程的唤醒等功能。

进程的转换过程如上

·进程的先来先服务调度算法:

首先定义进程结构体,用于记录进程的基本信息,包括进程名,优先级,进程到达时间,进程运行时间,然后将用户输入的进程信息保存到定义的结构数组中,并按进程到达的先后时间对数组进行排序,并记录它们的周转时间、带权周转时间、平均周转时间及平均带权周转时间。

 

·进程的优先级调度算法:

同样先定义进程结构替,记录进程信息,将用户输入的进程信息保存在结构体数组中。

遍历数组,找出最先到达的进程,若有多个,则取优先级最高的一个,与数组中的第一个位置的进程互换位置,记录此进程执行完的时间,然后从第二个位置开始遍历数组,找到在第一个进程执行结束前到达的进程,若没有,则找到余下进程中到达时间最早的进程,找到优先级最高的一个,若并与数组的第二个位置的进程互换位置。

按同样的方法为余下的进程排序。

同样记录它们的周转时间,带权周转时间,并算出平均周转时间和平均带权周转时间。

2.3.2设计思想:

a)每个进程有一个进程控制块(PCB)表示。

进程控制块可以包含如下信息:

进程名、优先级数、到达时间、需要运行时间等等。

b)进程的信息,包括到达时间,优先数及需要的运行时间等都是事先人为地指定。

c)每个进程的状态可以是就绪W(Wait)、运行R(Run)、或完成F(Finish)三种状态之一。

2、功能设计(数据结构及模块说明);

3.1系统流程如下:

3.2数据结构及模块说明:

(1)输入模块

能够满足输入进程基本信息的功能,尽可能提供友好的交互界面。

给用户很好的提示,使用户能够方便的操作。

(2)算法模块

先来先服务算法:

可以根据进程到达的先后顺序来确定进程的运行顺序,并算出进程的周转时间,平均周转时间等。

优先级法:

根据进程的优先级和进程到达的时间来确定进程的调度顺序,并算出周转时间,带权周转时间等。

(3)输出模块

根据算法得到的进程调度顺序以及算出的其他参数,将其输出。

 

3、开发平台及源程序的主要部分;

4.1软硬件环境

●硬件设备:

PC机

●软件设备:

WINDOWSXP、MicrosoftVisualC++6.0

4.2源代码主要部分:

(1)信息输入函数:

voidgetInput(char*pname,int*priority,char*begintime,float*runtime)

{

printf("请输入进程名:

");

scanf("%s",pname);

printf("请输入优先级");

scanf("%d",priority);

printf("请输入到达时间:

");

scanf("%s",begintime);

printf("请输入¨运行时间(min):

");

scanf("%f",runtime);

}

(2)先来先服务的算法:

voidfcfs(structprocess*pro,intn)

{

inti,j;

structprocessp;

for(i=0;i

{

for(j=0;j

{

if(!

timecompare(pro[j],pro[j+1]))

{

p=pro[j+1];

pro[j+1]=pro[j];

pro[j]=p;

}

}

}

}

(3)优先级法的算法:

voidprior(structprocess*pro,intn)

{

inti,j,pt,t,bt,m;

bt=0;

inta[MAXPROCESS];

structprocessp;

floatcurtime=1500;

for(i=0;i

{

if(curtime>pro[i].btime)

{

curtime=pro[i].btime;

}

}

for(i=0;i

{

t=0;

pt=0;

for(j=i;j

{

if(pro[j].btime<=curtime)

{

a[t++]=j;

}

}

if(t==0)

{

curtime=1500;

for(j=i;j

{

if(curtime>pro[j].btime)

{

curtime=pro[j].btime;

}

}

for(j=i;j

{

if(pro[j].btime<=curtime)

{

a[t++]=j;

}

}

}

for(j=0;j

{

bt=a[j];

if(pro[bt].priority>pt)

{

pt=pro[bt].priority;

m=bt;

}

}

if(m!

=i)

{

p=pro[m];

pro[m]=pro[i];

pro[i]=p;

}

curtime=curtime+pro[i].runtime;

}

}

4、测试用例,运行结果与运行情况分析;

5.1测试用例:

①进程个数为4

②进程名唯一

③预计运行结果:

先来先服务:

cadb

优先级法:

cabd

进程名

进程到达时间

运行时间

优先级

a

2:

12

34

2

b

3:

10

31

3

c

1:

15

21

1

d

2:

13

11

2

 

5.2运行结果:

 

 

 

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 研究生入学考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1