非抢占式优先算法例题_非抢占短作业优先算法源代码(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("
非抢占式优先算法例题_非抢占短作业优先算法源代码(C语言)相关推荐
- 【计算机操作系统】用java模拟非抢占式(先来先到、短作业、高响应比),时间片轮转调度算法
. 首先,我来介绍一下该程序大致内容 程序使用了ArrayList链表来模拟各进程队列,并且结果会显示出每个时刻的进程的运行信息.最后的所有进程的执行结果和进程的执行顺序. ps:各个模拟程序是相互独 ...
- 【操作系统】-- 先来先服务算法(FCFS)、短作业优先算法(SJF)、高响应比调度算法(HRRN)
一.先来先服务(FCFS) 1.算法思想 主要从公平的角度考虑. 2.算法规则 按照 作业/进程 到达的先后顺序进行服务. 3.是否可抢占 非抢占式算法. 4.是否可导致饥饿 不会导致饥饿. 5.优缺 ...
- 非抢占式优先算法例题_三维点云的经典算法与前沿技术有哪些?
三维点云是最重要的三维数据表达方式之一. 从技术角度看,SLAM.三维重建.机器人感知等领域,点云都是最简单且最普遍的表达方式:相对于图像,点云有其不可替代的优势--深度,即三维点云直接提供了三维空间 ...
- 非抢占式优先算法例题_非抢占式高优先级调度算法
v1.0 可编辑可修改 1 /* 非抢占式高优先级调度算法(优先数越大级别越高) 算法思想: 在按进程达到时间由小到大的顺序输入进程信息后, 先对其优先数进行排列, 将 最先到达的进程的到达时间设为开 ...
- fp算法例题_机器学习(九)—FP-growth算法
本来老师是想让我学Hadoop的,也装了Ubuntu,配置了Hadoop,一时间却不知从何学起,加之自己还是想先看点自己喜欢的算法,学习Hadoop也就暂且搁置了,不过还是想问一下园子里的朋友有什么学 ...
- 非抢占式优先算法例题_非抢占式调度算法的实现(非抢占式、不可剥夺式)
时间如冲冲流水,一转眼间都毕业快一年了.这一年里忙忙碌碌,却又碌碌无为.有时又总想,生亦何苦,死亦何哀. 也好久没更新博文了,之前做了个STM8的脱机编程器,使用了EMWIN,学习到了人家的消息机制. ...
- 操作系统【抢占式处理机调度例题、LLF最低松弛度优先算法】
原文链接: 第3章 处理机调度与死锁45915 - 豆丁网 https://wenku.baidu.com/view/d96159851b5f312b3169a45177232f60ddcce780. ...
- 【JAVA操作系统——进程调度】非抢占式短作业优先算法
测试要求 进程信息如下: 进程 到达时间 服务时间 A 0 3 B 1 6 C 2 4 D 3 9 E 4 1 请输出进程的调度过程,以及系统平均带权周转时间. 代码实现 package com.zj ...
- C#进程调度的模拟实现:模拟先来先服务调度算法、短作业优先调度算法和优先级调度算法(考虑非抢占式和抢占式),进行算法评价,输出调度结果和算法评价指标。
没什么水平,希望能帮到你 环境:visual studio 2019 附带工程资源:C#进程调度的模拟实现附带资源-C#文档类资源-CSDN下载 先来先服务的调度算法:是一种非抢占式的算法,先来先服务 ...
最新文章
- MVC、JSP实现mysql的增删改查功能的封装和简陋的界面交互
- python selenium自动化获取oracle,python27+selenium3自动化登录测试
- 用 Celery 实现邮件推送系统
- 你知道Spring是怎么解析配置类的吗?
- r语言 xmlto html,R语言XML文件
- Request.ServerVariables 参数大全
- subline Text3 插件安装
- 数据仓库之电商数仓-- 3.4、电商数据仓库系统(ADS层)
- response 流和写能一起吗_余甘果蜂蜜能一起吃吗?余甘果泡蜂蜜有什么功效?
- vue-router(2.0)
- MySQL的安装与连接方法
- AWS redshift-hdb pg(Greenplum), 内置函数、数据类型、字符集
- 解决使用redis作为session缓存 报错 Error: no such key 的问题
- teraterm--一款超好用堪比MobaXterm的远程终端连接软件,能解决shell端tab键等自动补全命令功能的缺失问题
- VUE博客模板----FXBLOG
- Ubuntu 20.04 多GPU,涡轮GPU 风扇转速手动调节
- bootstrap~去除input选中时的蓝色边框线
- win10如何调整计算机时间同步,Win10系统如何设置时间同步间隔?修改时间同步频率的方法...
- spark系列11:RDD之间的依赖关系,窄依赖和宽依赖
- 随机论---生命起源随想
热门文章
- visual studio 2017发布dotnet core到docker
- Microsoft发布新工具,简化JavaScript Web应用的创建
- .NET应用迁移到.NET Core(一)
- [转]小白都能看懂的softmax详解
- HTTP1.0、HTTP1.1 、SPDY、HTTP2.0之演变过程和优化
- 链表之单链表约瑟夫问题(二)
- SQL UNION 和 UNION ALL 操作符(mysql)
- c2000 汇编语言指令,C2000系CMD文件的配置理解
- 神PS!老爸把儿子的画作P成现实,看完我笑哭了
- 女生心中的理想男生!这些条件你符合几条?