好文档 - 专业文书写作范文服务资料分享网站

模拟一种处理机调度算法

天下 分享 时间: 加入收藏 我要投稿 点赞

平均周转时间和平均带权周转时间。

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、Microsoft Visual C++ 6.0 4.2 源代码主要部分:

(1)信息输入函数:

void getInput(char *pname,int *priority,char *begintime,float *runtime) {

printf(\请输入优先级 \scanf(\printf(\请输入进程名: \scanf(\

}

printf(\请输入到达时间:\scanf(\

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

(2)先来先服务的算法: void fcfs(struct process *pro,int n) {

for(i = 0;i < n;i ++) {

for(j = 0;j < n - i -1;j ++) {

if(!timecompare(pro[j],pro[j+1])) { }

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

int i,j;

struct process p;

}

}

}

(3)优先级法的算法: void prior(struct process *pro,int n) {

int i,j,pt,t,bt,m; bt = 0;

int a[MAXPROCESS]; struct process p;

float curtime = 1500; for(i = 0;i < n;i ++) { }

for(i = 0;i < n;i ++) { t = 0;

if(curtime > pro[i].btime) { }

curtime = pro[i].btime;

模拟一种处理机调度算法

平均周转时间和平均带权周转时间。2.3.2设计思想:a)每个进程有一个进程控制块(PCB)表示。进程控制块可以包含如下信息:进程名、优先级数、到达时间、需要运行时间等等。b)进程的信息,包括到达时间,优先数及需要的运行时间等都是事先人为地指定。c)每个进程的状态可以是就绪W(Wait)、运行
推荐度:
点击下载文档文档为doc格式
31iig045et1jxus0i36f
领取福利

微信扫码领取福利

微信扫码分享