操作系统fcfs和sjf及hrn算法
将操作系统涉及的先到先服务,短作业优先,最高响应比 这三者的算法集中在这一个程序里。
#include<stdio.h>
#include<malloc.h>
#include<windows.h>
typedef struct inode
{
char pid;//进程名
int ta;//到达时间
int tf;//服务时间
float quan;//权值计算
int zhout;//周转时间
float quan_zhout;//带权周转时间
struct inode *next;
}LNode,*LinkList;
//单链表的创建当输入的x为0是结束
LinkList Create_LinkList()
{
LinkList L=NULL;
LNode *s;
int flag=0;
char x;int y,z;
printf("创建链表按照倒序插入输入0时结束链表\n");
printf("输入PID:");
scanf("%c",&x);
printf("输入到达时间:");
scanf("%d",&y);
printf("输入服务时间:"); scanf("%d",&z); while( !(y==0&&z==0)) { s=(LNode *)malloc(sizeof(LNode)); s->pid=x; s->ta=y; s->tf=z; s->next=L; L=s; fflush(stdin);//清空输入内容缓冲区 printf("输入PID:"); scanf("%c",&x); printf("输入到达时间:"); scanf("%d",&y); printf("输入服务时间:"); scanf("%d",&z); }
将操作系统涉及的先到先服务,短作业优先,最高响应比 这三者的算法集中在这一个程序里。
printf("链表创建结束\n");
return L;
}
//计算优先权
float quan(LNode *p,int t)
{
float quan;
quan=(float)(t-(p->ta)+p->tf)/(float)p->tf;
return quan;
}
//初始化所有结点的优先权
LinkList init_quan(LinkList L,int t)
{
LNode *p;
p=L;
p->quan=quan(p,t);
//printf("%f\n",p->quan);
while(p->next)
{
p=p->next;
p->quan=quan(p,t);
//printf("%f\n",p->quan);
}
return L;
}
//在单链表L中查找第i个元素结点,找到返回指针,否则返回空
LNode *Get_LinkList(LinkList L,int i)
{
LNode *p=L;
int j=0;
while(p->next!=NULL&&j<i)
{p=p->next;j++;}
if(j==i)return p;
else return NULL;
}
//单链表的长度
int Length_LinkList(LinkList L)
{
LNode *p=L;
int j=1;
while(p->next)
{
p=p->next;j++;
将操作系统涉及的先到先服务,短作业优先,最高响应比 这三者的算法集中在这一个程序里。
return j;
}
//求平均带权周转时间
float avg_quan_zhou(LinkList L)
{
float sum=0;
for(int i=0;i<Length_LinkList(L);i++)
{
sum=Get_LinkList(L,i)->quan_zhout+sum;
}
return sum/Length_LinkList(L);
}
//求平均周转时间
float avg_zhou(LinkList L)
{
float sum=0;
for(int i=0;i<Length_LinkList(L);i++)
{
sum=Get_LinkList(L,i)->zhout+sum;
}
return sum/Length_LinkList(L);
}
//求链表中第i个结点后的结点中最小的到达时间
int min_ta(LinkList L,int i)
{
LNode *p;
p=L;
int min=Get_LinkList(L,i)->ta;//min初始为第一个节点的到达时间
for(int j=i+1;i<Length_LinkList(L);i++)
{
if(Get_LinkList(L,i)->ta<min)
min=Get_LinkList(L,i)->ta;
}
return min;
}
//链表的简单输出
void printf2(LinkList H)
{
LNode *p=H;int i=0;
printf("%c",p->pid);
while(p->next)
将操作系统涉及的先到先服务,短作业优先,最高响应比 这三者的算法集中在这一个程序里。
i++;
p=p->next;
printf("%c",p->pid);
}
}
//链表的的输出
void printf(LinkList H)
{
LNode *p=H;int i=0;
printf("新程序%c到达时间为%d执行需%d秒\n",p->pid,p->ta,p->tf);
for( i=1;i<=p->tf;i++)
{
printf("程序%c正在执行。。。还需%d秒\n",p->pid,p->tf+1-i);
Sleep(1000);
}
printf("程序%c结束\n",p->pid);
while(p->next)
{
i++;
p=p->next;
printf("新程序%c到达时间为%d执行需%d秒\n",p->pid,p->ta,p->tf);
for(int i=1;i<=p->tf;i++)
{
printf("程序%c正在执行。。。还需%d秒\n",p->pid,p->tf+1-i);
Sleep(1000);
}
printf("程序%c结束\n",p->pid);
}
printf("平均周转时间为%3.2f,平均带权
间%3.2f\n",avg_zhou(H),avg_quan_zhou(H));
}
//单链表L的第i位置插入结点q
LinkList Insert_LinkList(LinkList L,int i,LNode *q)
{
LNode *s,*p;
if(i==0)
{
p=Get_LinkList(L,0);
s=(LNode *)malloc(sizeof(LNode));
s->pid=q->pid;s->ta=q->ta;s->tf=q->tf;
s->next=p; 周转时
将操作系统涉及的先到先服务,短作业优先,最高响应比 这三者的算法集中在这一个程序里。
} return L; } p=Get_LinkList(L,i-1); if(p==NULL) { printf("参数%d错误",i); } else { s=(LNode *)malloc(sizeof(LNode)); s->pid=q->pid;s->ta=q->ta;s->tf=q->tf; s->next=p->next; p->next=s; } return L;
//删除单链表L第i个数据结点
LinkList Del_LinkList(LinkList L,int i)
{
LinkList p,s;
s=L;
p=Get_LinkList(L,i-1);
if(p==NULL)
{printf("第%d个结点不存在",i-1);}
else
{
p->next=p->next->next;
}
return L;
}
//单链表的排序,先到先服务(FCS)算法,规则:先比较到达时间,在比较服务时间 LinkList fcs_LinkList(LinkList L)
{
LNode *p,*q;
int i,j;
int t=0;//当前时间
for( i=0;i<(Length_LinkList(L));i++)
{
printf("i=%d ",i);
for(j=i+1;j<Length_LinkList(L);j++)
{
printf("j=%d ",j);
将操作系统涉及的先到先服务,短作业优先,最高响应比 这三者的算法集中在这一个程序里。
q=Get_LinkList(L, j); if(q- …… 此处隐藏:3061字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [高等教育]一年级家长课程教案
- [高等教育]封丘县人民医院深入推进纠正医药购销领
- [高等教育]2017年6月大学英语四级真题试卷及答案(
- [高等教育]2017年北京第二外国语学院文学院824中
- [高等教育]7 高中历史第7单元1861年俄国农奴制改
- [高等教育]【K12学习】4、实际测量-苏教版六年级
- [高等教育]药具培训试卷题库及部分参考答案
- [高等教育]本土电子元器件目录分销商如何赢得生意
- [高等教育]七年级岭南版美术教案
- [高等教育]书作文之书法活动通讯稿
- [高等教育]Endnote X 软件使用入门和用法总结(LS)
- [高等教育]嵌入式系统的现状及发展状况
- [高等教育]2012抗菌药物专项整治活动方案解读
- [高等教育]人教版新课本一年级数学下册期末试卷
- [高等教育]爱课程民法学观后感
- [高等教育]930机组使用说明书1
- [高等教育]煤气设备设施点检标准
- [高等教育]常见室内观叶植物图解
- [高等教育]312党员群众路线心得体会
- [高等教育]小学信息(苗版)第一册全册教案
- 在市---局2010党建大会上的讲话
- 《科哲》提纲及补充阅读材料(2010.7)
- 苏州高博软件技术职业学院论文开题报告
- 兼职导游管理的困境及对策探讨
- 基于通用设计理念的现代厨房产品语义研
- 康乐一中2010年至2011年度鼓号队、花束
- 第10章_数据收集整理与描述_期末复习课
- 2008年黑龙江林甸商贸购物中心营销策划
- 水硬度的测定实验报告
- 五分钟教你拍摄夜景光绘照
- 2014年临床妇产科三基三严试题及答案
- 0第二课 纾解压力第一站了解压力
- 解析建筑工程电气设备安装施工技术要点
- 地方性应用型本科高校“双师型”师资队
- 高考语文专题复习课件:小说阅读指导
- 装饰工程投标书2
- 大学生就业难问题探讨及对策
- English and Its History
- 青岛市城市房屋修缮工程质量监督管理办
- 初中英语形容词和副词的用法和练习题




