第一范文网 - 专业文章范例文档资料分享平台

模拟一种处理机调度算法

来源:用户分享 时间:2025/5/18 10:12:24 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

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

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;

搜索更多关于: 模拟一种处理机调度算法 的文档
模拟一种处理机调度算法.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c31iig045et1jxus0i36f_2.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top