资源简介
FCFS HRN SJF 多级反馈队列 时间片轮转 首次适应算法 最高优先数 最坏适应算法 最佳适应算法 九个算法的代码及可执行文件,包括实验报告
代码片段和文件信息
#include
#include
#include
#define getpch(type) (type*)malloc(sizeof(type))
//#define NULL 0
struct jcb { /* 定义作业控制块JCB */
int jnum; //作业号
char jname[10]; //作业名
char state; //作业状态
int atime; //作业提交时间
int ntime; //作业需运行时间
int stime; //作业开始执行时间
int ftime; //作业完成时间
int ctime; //作业周转时间
float wtime;//作业带权周转时间
struct jcb* next;//下个节点的指针
}*p;
typedef struct jcb JCB;
jcb *ready=NULL*rear=NULL; //未完成作业队列
jcb *finish=NULL*frear=NULL; //完成作业队列
int t=0; //cpu时间计数器用于显示cpu当前时刻
void insert()
{
if(ready==NULL)
{
ready=p;
rear=ready;
}
else
{
rear->next=p;
rear=p;
}
}
int getident()//让用户只能输入正整数
{
char ch;
int i = 0;
fflush(stdin);
ch = getchar();
while(ch == ‘\n‘){
printf(“\tf输入不能为空..请重新输入\n“);
fflush(stdin);
ch = getchar();
}
while(ch != ‘\n‘){
if(ch > ‘9‘ || ch < ‘0‘){
printf(“\t输入有误!!输入只能为正整数,请重新输入...\n“);
fflush(stdin);
i = 0;
ch = getchar();
}else{
i = i*10 + (ch-‘0‘);
ch = getchar();
}
}
return i;
}
void input() /* 建立作业控制块输入函数*/
{
int inum;
printf(“\n 请输入作业总个数:“);
num=getident();
for(i=1;i<=num;i++)
{
p=getpch(JCB);
printf(“\n 请输入作业号“);
p->jnum=getident();
printf(“\n 输入作业名:“);
scanf(“%s“p->jname);
printf(“\n 输入作业提交时间:“);
p->atime=getident();
printf(“\n 输入作业需运行时间:“);
p->ntime=getident();
printf(“\n“);
p->stime=0; //作业开始时间默认为0
p->ftime=0; //作业完成时间默认为0
p->ctime=0; //作业周转时间默认为0
p->wtime=0; //作业带权周转时间默认为0
p->state=‘w‘; //状态默认为等待态
p->next=NULL;
insert(); /* 调用insert函数*/
}
}
int count() //用于计算JCB个数
{
int l=0;
JCB* pr=ready;
while(pr!=NULL)
{
l++;
pr=pr->next;
}
return(l);
}
void disp(JCB *pr) /*建立作业显示函数用于显示当前作业*/
{
printf(“\njnum \t jname \t state \t atime \t ntime \t stime \t ftime \t ctime \t wtime \n“);
printf(“ %d\t %s\t %c\t %d\t %d\t %d\t %d\t %d\t %f\t\n“pr->jnumpr->jname
pr->statepr->atimepr->ntimepr->stimepr->ftimepr->ctimepr->wtime);
}
void check() /* 建立作业查看函数 */
{
JCB* pr;
pr=p;
if(pr!=NULL)
{
printf(“\n当前正在运行的作业是:%s“pr->jname); /*显示当前运行作业*/
disp(pr);
}
pr=ready;
printf(“\n当前就绪队列状态为:\n“); /*显示就绪队列状态*/
while(pr!=NULL)
{
disp(pr);
pr=pr->next;
}
pr=finish;
printf(“\n当前完成队列状态为:\n“); /*显示完成队列状态*/
while(pr!=NULL)
{
disp(pr);
pr=pr->next;
}
}
void finsert() /*建立作业完成插入函数*/
{
printf(“\n 作业 [%s] 已完成.\n“p->jname);
if(finish==NULL)
{
finish=p;
frear=finish;
}
else
{
frear->next=p;
frear=p;
}
p=NULL;
}
void running() //建立作业就绪函数作业运行时间到更改状态
{
if(p->atime>=t)
{
p->stime=p->atime;
t=(p->stime)+(p->ntime);
p->ftime=t;
}
else
{
p->stime=t;
t+=p->ntime;
p->ftime=t;
}
p->ctime=t-(p->atime);
p->wtime=(float)(p
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1798656 2015-01-15 19:42 3212005944林翠丽\操作系统实验报告.doc
文件 4545 2015-01-14 03:07 3212005944林翠丽\FCFS.cpp
文件 94540 2015-01-14 03:07 3212005944林翠丽\FCFS.exe
文件 6430 2015-01-14 03:14 3212005944林翠丽\HRN.cpp
文件 95162 2015-01-14 03:14 3212005944林翠丽\HRN.exe
文件 5705 2015-01-14 03:11 3212005944林翠丽\SJF.cpp
文件 94559 2015-01-14 03:11 3212005944林翠丽\SJF.exe
文件 3906 2015-01-14 02:25 3212005944林翠丽\多级反馈队列.cpp
文件 93415 2015-01-14 02:25 3212005944林翠丽\多级反馈队列.exe
文件 4012 2015-01-14 01:38 3212005944林翠丽\时间片轮转.cpp
文件 93047 2015-01-14 01:38 3212005944林翠丽\时间片轮转.exe
文件 7336 2015-01-14 03:42 3212005944林翠丽\最佳适应算法.cpp
文件 94653 2015-01-14 03:42 3212005944林翠丽\最佳适应算法.exe
文件 7334 2015-01-14 03:45 3212005944林翠丽\最坏适应算法.cpp
文件 94653 2015-01-14 03:45 3212005944林翠丽\最坏适应算法.exe
文件 5882 2015-01-14 01:44 3212005944林翠丽\最高优先数.cpp
文件 94270 2015-01-14 01:44 3212005944林翠丽\最高优先数.exe
文件 6664 2015-01-14 03:48 3212005944林翠丽\首次适应算法.cpp
文件 94095 2015-01-14 03:48 3212005944林翠丽\首次适应算法.exe
目录 0 2015-01-14 04:46 3212005944林翠丽
----------- --------- ---------- ----- ----
2698864 20
- 上一篇:运筹学教程第四版胡运权.pdf
- 下一篇:labview can 通讯
相关资源
- 重大软院操作系统实验二:线程调度
- 广工操作系统实验报告文档+代码+可执
- 东北大学软件学院操作系统实验报告
- 《MIT JOS Lab1: Booting a PC》实验代码
- 操作系统实验 7种进程调度算法的实现
- 北邮操作系统实验报告
- 01011011-盖聂-操作系统实验报告.pdf
- 浙江理工大学操作系统实验3+主存空间
- 东北大学操作系统实验报告+源代码
- 广工操作系统实验及课程设计
- 操作系统实验二:进程、线程之间的
- Linux操作系统实验教程高清版
- 苏州大学操作系统实验二进程间通信
- 山东大学软件学院_操作系统实验1
- 山东大学 操作系统实验四 调度算法
- 操作系统实验八 磁盘移臂调度算法实
- 山东大学操作系统实验代码
- 苏州大学操作系统实验报告四可变分
- 华中科技大学操作系统实验
- 北京科技大学操作系统实验
- 操作系统实验四、时钟中断处理程序
- 东华大学 操作系统实验 存储管理 含
- 操作系统实验三源代码加实验报告
- 华南理工大学操作系统实验:生产者
- 2016东华大学燕彩蓉操作系统实验七
- 操作系统实验 华工 Linux
- 四川大学操作系统实验课件
- 华中科技大学计算机学院操作系统一
- 四川大学操作系统实验报告week1
- 操作系统实验模拟操作系统的页面置
评论
共有 条评论