- 1、本文档共24页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
进程调度算法模拟带答案版教程
实验二 进程管理
2.5 作业(进程)调度算法模拟
1.实验目的与要求
本实验的目的是通过作业或进程调度算法模拟设计,进一步加深对作业或进程调度算法的理解,通过计算平均周转时间和带权平均周转时间,进一步加深对算法的评价方法的理解。
2. 实验类型:验证型
3. 实验学时:4
4. 实验原理和知识点
掌握作业或进程调度算法。
平均周转时间和带权平均周转时间计算。
5. 实验环境(硬件环境、软件环境):
硬件环境:Intel Pentium III 以上CPU,128MB以上内存,2GB以上硬盘。
软件环境:linux操作系统gcc编译器或windows操作系统vc++集成开发环境。
6. 实验内容
设定一组作业或进程,给定相关参数,对这组进程或作业按调度算法实施调度,输出调度次序,并计算平均周转时间和带权平均周转时间。使用的调度算法有:
先来先服务调度算法。
优先级调度算法。
短作业(或进程)优先调度算法。
响应比高优先调度算法
6.1 使用的主要数据结构:
定义一个结构体,结构体的主要成员有:序号、作业(进程)号或名称、提交时间、运行时间、优先数、进入输入井时间、开始运行时间、尚需运行时间、运行结束时间、周转时间、带权周转时间、运行次序等。
利用定义的结构体,定义一个结构体数组,用来记录系统中的作业或进程。
6.2 算法描述:
1.主控程序算法描述
2.数据输入算法
3.数据输出算法
4.先来先服务调度算法描述
5.优先级调度算法
6.短作业(或进程)优先调度算法
7.响应比高优先调度算法
6.3 C语言程序实现
#includestdio.h
//using namespace std;
#define MAX 10
struct task_struct
{
char name[10]; /*进程名称*/
int number; /*进程编号*/
float come_time; /*到达时间*/
float run_begin_time; /*开始运行时间*/
float run_time; /*运行时间*/
float run_end_time; /*运行结束时间*/
int priority; /*优先级*/
int order; /*运行次序*/
int run_flag; /*调度标志*/
}tasks[MAX];
int counter; /*实际进程个数*/
int fcfs(); /*先来先服务*/
int ps(); /*优先级调度*/
int sjf(); /*短作业优先*/
int hrrn(); /*响应比高优先*/
int pinput(); /*进程参数输入*/
int poutput(); /*调度结果输出*/
void main()
{ int option;
pinput();
printf(请选择调度算法(0~4):\n);
printf(1.先来先服务\n);
printf(2.优先级调度\n);
printf( 3.短作业优先\n);
printf( 4.响应比高优先\n);
printf( 0.退出\n);
scanf(%d,option);
switch (option)
{ case 0:
printf(运行结束。\n);
break;
case 1:
printf(对进程按先来先服务调度。\n\n);
fcfs();
poutput();
break;
case 2:
printf(对进程按优先级调度。\n\n);
ps();
poutput();
break;
case 3:
printf(对进程按短作业优先调度。\n\n);
sjf();
poutput();
break;
case 4:
printf(对进程按响应比高优先调度。\n\n);
hrrn();
pout
文档评论(0)