非抢占式优先算法例题_非抢占短作业优先算法源代码(C语言)

#include

#include

#define MAX 5 //进程数

/*短作业优先算法*/

struct pro

{

int num; //进程名

int arriveTime; //到达时间

int burst; //运行时间;

struct pro *next;

};

//函数声明

struct pro* creatList();

void insert(struct pro *head,struct pro *s);

struct pro* searchByAT(struct pro *head,int AT);

void run(struct pro *head);

void del(struct pro* p);

int getCount(struct pro *head,int time);

struct pro* creatList() //创建链表,按照进程的到达时间排列

{

struct pro* head=(struct pro*)malloc(sizeof(struct pro));

head->next=NULL;

struct pro* s;

int i;

for(i=0;i

{

s=(struct pro*)malloc(sizeof(struct pro));

printf("请输入进程名:\n");

scanf("%d",&(s->num));

printf("请输入到达时间:\n");

scanf("%d",&(s->arriveTime));

printf("请输入运行时间:\n");

scanf("%d",&(s->burst));

s->next=NULL;

insert(head,s);

}

return head;

}

void insert(struct pro *head,struct pro *s) //插入节点

{

struct pro *p=searchByAT(head,s->arriveTime);

s->next=p->next;

p->next=s;

return;

}

struct pro* searchByAT(struct pro *head,int AT) //查找第一个到达时间大于等于AT的节点,返回其前一个指针

{

struct pro *p,*q;

p=head;

q=head->next;

while(q!=NULL&&q->arriveTime<=AT)

{

p=q;

q=q->next;

}

return p;

}

void del(struct pro* p) //删除p的下一个节点

{

struct pro *tmp;

tmp=p->next;

p->next=tmp->next;

free(tmp);

return;

}

int getCount(struct pro *head,int time) //察看当前就绪队列中的进程数

{

int count=0;

struct pro *p,*q;

p=head;

q=p->next;

while(q!=NULL&&q->arriveTime<=time)

{

count++;

p=q;

q=q->next;

}

return count;

}

struct pro* SJF(struct pro *head,int count) //在头节点后的count个节点中选择burst最小的,返回其前一个节点的指针

{

int min;

struct pro *p,*q,*flag;

p=head;

q=p->next;

min=q->burst;

flag=p; //flag记录返回指针

while(count>0)

{

if(q->burst

{

min=q->burst;

flag=p;

}

count--;

p=q;

q=q->next;

}

return flag;

}

void run(struct pro *head) //按短作业优先算法调度进程,并输出其运行情况

{

int time=0,count;

struct pro *s,*t;

while(head->next!=NULL)

{

count=getCount(head,time);

if(count==0) //如果当前就绪队列中没有进程,时间自增

time++;

else if(count==1) //如果就绪队列中只有1个进程,则必定是第一个节点

{

t=head;

s=t->next;

printf("进程名:%d\n",s->num);

printf("到达时间:%d\n",s->arriveTime);

printf("运行开始时间:%d\n",time);

printf("响应时间:%d\n",time-s->arriveTime);

time+=s->burst;

printf("

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/306026.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机算法音乐专业,音乐信号分析算法的乐理简说(非音乐专业的乐理)

前言这篇文章不是讲乐理知识的&#xff0c;那是音乐制作人&#xff0c;编曲人员所需要钻研的学问&#xff0c;不过你要有兴趣也可以看看专业的乐理知识。这里仅仅是说在音乐信号分析的项目中&#xff0c;我们需要知道的一些参数的意义。在诸多信号处理&#xff0c;或图像处理算…

代码改变世界,也改变了我

愿2021的你&#xff0c;可以勇敢的踏出那一步&#xff0c;可以去追求自己想要的东西。脑图版代码版using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;namespace ConsoleApp14 {internal class Program{pr…

计算机基础与应用教程计算机硬件,计算机基础系列一:计算机硬件

1、编程语言的作用及与操作系统和硬件的关系一个完整的计算机系统包括硬件、操作系统、软件(即程序员开发的各种软件)三部分组成。各程序员开发的软件若直接调用计算机的硬件&#xff0c;如硬盘读取、音频播放等&#xff0c;则软件不仅编写复杂同时影响开发效率&#xff0c;因此…

宝塔mysql远程链接_宝塔apache启动失败:报错 AH00526: Syntax error on line 解决方案

错误信息&#xff1a;AH00526: Syntax error on line 54 of /www/server/apache/conf/httpd.conf:Cannot define multiple Listeners on the same IP:port朋友网站突然访问不了&#xff0c;进入宝塔后查看Apache服务器没运行&#xff0c;重启Apache时提示这个错误信息打开Apach…

Amazing 2020

Amazing 2020Intro2020 转眼即逝&#xff0c;2020 是比较艰辛的一年&#xff0c;因为疫情原因&#xff0c;很多人的工作以及生活都多多少少受到了一些影响。引用网上盛传的一句话——2020 实“鼠”不易&#xff0c; 2021 “牛”转乾坤。希望大家 2020 立的没有完成的 Flag 在 2…

游戏设计与计算机,RPG游戏设计与实现-数学与计算机系.doc

RPG游戏设计与实现-数学与计算机系XX学院毕业论文(设计)RPG游戏设计与实现院 系 &#xff1a;数学与计算机系专业(班级)&#xff1a;计算机科学与技术专业2班姓名&#xff1a;XXX学号:20084011023指导教师&#xff1a;XXX职称&#xff1a;讲师完成日期&#xff1a; 2012 年 5月…

C#-WinForm跨线程修改UI界面

背景在我做WinForm开发的过程中&#xff0c;经常会遇到耗时操作或阻塞操作。他们会引发软件的卡顿甚至假死&#xff0c;严重影响软件的使用。因此&#xff0c;这类耗时或阻塞的操作一般都会使用异步的方式去执行&#xff0c;不影响主线程&#xff08;UI线程&#xff09;与用户间…

1w存银行一年多少利息_如果你有1000万存入银行,一年能有多少利息?刺激!

如果你有1000万存入银行&#xff0c;一年能有多少利息&#xff1f;刺激&#xff01;每个人都想一夜暴富&#xff0c;世界上用钱可以解决90%的问题&#xff0c;还有剩下10%可以用钱去缓解&#xff0c;有钱男子汉&#xff0c;没钱汉子难&#xff0c;何以解忧&#xff0c;惟有暴富…

长春工业大学计算机科学与技术录取分数,2021年长春工业大学各省各专业最低投档录取分数线统计(文科 理科)...

2018年长春工业大学各省各专业最低投档录取分数线统计(文科 理科)同学们2019年高考是你们人生旅途的第一个加油站&#xff0c;它意味着你们的希望&#xff0c;你们的前途&#xff0c;甚至是命运&#xff0c;挑战六月就是挑战命运和未来&#xff0c;希望你们在高考中脱颖而出&am…

.NET 5 开源工作流框架elsa技术研究

编者注&#xff1a; 工作流框架 elsa 是.NET基金会下面的开源项目&#xff0c;2.0版本即将在3月份发布&#xff0c;目前正在紧锣密鼓的开发之中&#xff0c;2020年2月份我也介绍过推荐一个很棒的开源工作流elsa-core &#xff0c;今天给大家推荐MVP 周国庆写的这篇详细文章。今…

php 清空一个数组_PHP工程师学Python数据类型

一、背景继上篇文章比较了PHP与Python语法之后&#xff0c;这周又学习了Python数据类型&#xff0c;准备从通过这篇文章给自己进行一些总结&#xff0c;也给其他读者一些参考。二、内容概要字符串(str)列表(list)元组(tup)字典(dict)数据操作三、字符串(str)Python中字符串操作…

“开源、共享、创新” 2020 中国.NET开发者大会小结

大会的新闻稿在2020年12月31日正式发布&#xff1a;开源共享创新|2020年中国.NET开发者大会圆满收官&#xff01; , 本文是这篇新闻的补充性文章&#xff0c;仅代表个人对大会的各方面分享内容的一个小结。在2019年上海中国.NET开发者大会的基础上&#xff0c;2020年12月19日 继…

maya的颤动怎么做_必看!新手学习MAYA的几个建议

“学习是没有捷径可言的&#xff0c;唯一的捷径就是不断的学习和练习&#xff0c;只有这样才能学到真功夫”Maya设计刚刚开始接触Maya的同学都会有这些疑问&#xff0c;我适不适合学习Maya&#xff0c;学习Maya可以赚到钱吗&#xff1f;怎样才可以学好Maya&#xff0c;今天给大…

nginx lua以html显示,nginx 支持lua及lua脚本格式化日志

1.安装LuaJIT-2.0.4链接&#xff1a;http://luajit.org/download.htmltar -xf LuaJIT-2.0.4.tar.gzcd LuaJIT-2.0.4make PREFIX/usr/local/luajitmake install PREFIX/usr/local/luajit2.修改环境变量vim /etc/profileexport LUAJIT_LIB/usr/local/luajit/libexport LUAJIT_INC…

我的2020年终总结:新的角色,新的开始

【年终总结】| 作者/Edison Zhou又到了一年一度的年终盘点时刻&#xff0c;熟悉我的朋友应该都知道&#xff0c;这个时候我都会写一篇推文盘点一下这一年来的得失。1也谈2020关键事件回顾&#xff08;1&#xff09;扯证了&#xff0c;结婚了要说2020年我个人的最大里程碑&#…

docker es持久化_使用docker数据卷对容器数据持久化

volume是用于对Docker容器生成和使用的数据持久化的首选机制。如果您的容器生成非持久状态数据&#xff0c;请考虑使用 tmpfs挂载以避免将数据永久存储在任何地方&#xff0c;并通过避免写入容器的可写层来提高容器的性能。默认容器的数据存储在这里我们在容器中创建一些模拟的…

求职信计算机工程师英语作文,开发工程师英文求职信范文

开发工程师英文求职信范文respected leaders:hello:first salute you sincere thanks, thank you for taking the time to consult the of my application letter!i am aptech a student, now already graduated from junior year. major in.net direction, and ismitted to be…

微信适配国产操作系统:原生支持 Linux

喜欢就关注我们吧&#xff01;据 ZOL 报道&#xff0c;统信软件官方近日宣布上线适配统信 UOS 的微信桌面客户端&#xff0c;并称该微信版本为原生支持 Linux 的版本&#xff0c;同时支持龙芯、鲲鹏、麒麟等国产 CPU。据悉&#xff0c;统信 UOS 版的微信桌面客户端由腾讯公司研…

oracle拆分分区语法详解大全_Oracle hash的分区方法详解

hash的原理虽然简单&#xff0c;但是它在数据库中可以说是无处不在。其中hash partition是hash在数据库中一个简单的应用&#xff0c;虽然它没有range partition那么常用&#xff0c;但是我们在做数据库水平拆分时&#xff0c;其实就是利用了hash partition的原理&#xff0c;利…

计算机专业的吸引力,计算机专业文献翻译-面向对象编程具有多方面的吸引力.doc...

英文文摘Why has object-oriented programming had such a sweeping impact on the software development communityObject-oriented programming appeals at multiple levels. For managers, it promises faster and cheaper development and maintenance. For analysts and d…