进程调度优先数 c语言,进程调度--动态优先数法(C语言实现)
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
ready=s;
}
}
//优先数创建初始PCB信息
void create1(char alg)
{
PCB *p;
int i,time;
char na[10];
ready=NULL; //就绪队列头文件
finish=NULL; //完成队列头文件
run=NULL; //运行队列头文件
printf("输入进程号和运行时间:\n"); //输入进程标志和所需时间创建PCB
for(i=1;i<=N;i++)
{
p=(PCB *)malloc(sizeof(PCB));
scanf("%s",na);
scanf("%d",&time);
strcpy(p->name,na);
p->cputime=0;
p->needtime=time;
p->state='w';
p->prio=50-time;
if(ready!=NULL) //就绪队列不空,调用插入函数插入
insert1(p);
else
{
p->next=ready; //创建就绪队列的第一个PCB
ready=p;
}
}
//clrscr();
printf(" 优先数算法输出信息:\n");
printf("***********************************************\n");
prt(alg); //输出进程PCB信息
run=ready; //将就绪队列的第一个进程投入运行
ready=ready->next;
run->state='R';
}
//优先数调度算法
void priority(char alg)
{
while(run!=NULL) //当运行队列不空时,有进程正在运行
{
run->cputime=run->cputime+1;
run->needtime=run->needtime-1;
run->prio=run->prio-3; //每运行一次优先数降低3个单位
if(run->needtime==0) //如所需时间为0将其插入完成队列
{
run->next=finish;
finish=run;
run->state='F'; //置状态为完成态
run=NULL; //运行队列头指针为空
if(ready!=NULL) //如就绪队列不空
firstin(); //将就绪队列的第一个进程投入运行
}
else //没有运行完同时优先数不是最大,则将其变为就绪态插入到就绪队列
if((ready!=NULL)&&(run->prioprio))
{
run->state='W';
insert1(run);
firstin(); //将就绪队列的第一个进程投入运行
}
prt(alg); //输出进程PCB信息
}
}
//主函数
void main()
{
char algo; //算法标记
//clrscr();
printf("输入进程数:\n");
scanf("%d",&N); //输入进程数
create1(algo); //优先数算法
priority(algo);
}
进程调度优先数 c语言,进程调度--动态优先数法(C语言实现)相关推荐
- C语言解析动态html,【c语言】使用gumbo解析HTML
之前使用过PHP的Simple HTML DOM简单地解析HTML但PHP终非我所熟悉的语言,虽然我并不对语言抱有绝对的执着= =(什么你不相信,好吧,不管你信不信,反正我是信了= =).虽然可以简单 ...
- c语言建立动态链表ppt,C语言链表讲解.ppt
第十一章 链表;例:跳马.依下图将每一步跳马之后的位置(x,y)放到一个"结点"里,再用"链子穿起来",形成一条链,相邻两结点间用一个指针将两者连到一起.;依上 ...
- 字符串的冒泡排序c语言,c语言单链表冒泡排序_c语言字符串排序冒泡法_c语言链表排序...
1. #include 2. 3. struct Node; 4. 5. typedef struct Node *PtrToNode; 6. typedef PtrToNode List; 7. t ...
- c语言中数组的动态赋值法
动态赋值法在c语言程序中有着很大的作用,比如输入几个数比较他们的大小,也可以与冒泡排序法相结合,从而使程序易于编译执行 #include <stdio.h>//动态赋值法,输入10个数,比 ...
- C语言冒泡排序(起泡法)
C语言冒泡排序(起泡法) 冒泡法排序是C语言中较简单的 排序算法 的 . 定义:它重复地走访过要排序的元素列,依次比较两个相邻的元素,让较大的元素逐渐往后移动(交换两个元素的值),直到数组的末尾.如此 ...
- 01 C语言实现动态气泡碰撞和移动的效果,小球碰撞,Win7气泡壁纸,碰撞算法
C语言实现动态气泡碰撞和移动的效果 作者 将狼才鲸 创建日期 2023-01-29 Git源码仓库地址:C语言实现动态气泡碰撞和移动的效果 CSDN文章地址:01 C语言实现动态气泡碰撞和移动的效果 ...
- C语言实现动态分区分配
C语言实现动态分区分配 代码重复度还是很高的,存在简化的空间. #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include< ...
- 编译语言与解释语言,动态与静态,以及强类型和弱类型的区别
编译和解释的区别是什什么? 编译器是把源程序的每一条语句都编译成机器语言,并保存成二进制文件,这样运行时计算机 可以直接以机器语言来运行此程序,速度很快; 而解释器则是只在执行程序时,才一条一条的解释 ...
- python是高级动态语言_Python动态语言之魅力揭秘
之前的文章跟大家讲解了鸭子类型,其实鸭子类型是编程语言中动态类型语言中的一种设计风格.今天跟大家一起谈谈动态语言的魅力. 根据维基百科,动态编程语言是这样子定义的:动态编程语言是高级编程语言的一个类别 ...
- 【Groovy】Groovy 语言特点简介 ( 支持 Java 语法 | 支持 Java 虚拟机 | Groovy 语言是动态语言 | Groovy 扩展 JDK | 编译时元编程 )
文章目录 一.Groovy 支持 Java 语法 二.Groovy 支持 Java 虚拟机 三.Groovy 语言是 动态语言 四.Groovy 扩展 JDK 五.Groovy 编译时元编程 一.Gr ...
最新文章
- 院士戴琼海:脑科学走向人工智能的重要路径
- “开源”将成为物联网开发生态链的标准
- matlab2015a支持的usb webcams support package
- 云端TensorFlow读取数据IO的高效方式
- 【OpenCV3】角点检测——cv::goodFeaturesToTrack()与cv::cornerSubPix()详解
- ubuntu ???????????? no permissions 问题解决
- 基于linux的贪吃蛇游戏设计_基于Unreal4的战棋类游戏《棋行傀儡》的设计与实现...
- Scheme 语言概要(下)
- 多项式的乘法满足结合律和交换律
- 深入浅出 RxJS 核心原理(源码实现)
- Alpha版本冲刺(三)
- 小国王(状压dp经典题)
- 木纹标识lisp_lisp:关于标识符:原子和列表初步
- 1099: PIPI的油田
- 使用 Fastai 构建食物图像分类器
- Intel芯片组大全最新版
- Windows下编译WebRTC
- 我是怎样把儿子王颖培养成为斯坦福博士的
- python迭代器面试题
- 通达信交易接口如何实现股票动态监测?
热门文章
- pg库使用dblink连接mysql_PG-跨库操作-dblink
- 将计算机知识应用于生活中,电脑知识在生活中的灵活运用(6页)-原创力文档...
- springboot 导出文件_开发阶段,将SpringBoot应用快速部署到K8S - 程序员欣宸
- python爬虫运行一遍后再运行不成功_python爬虫 - pyspdier run时运行到on_start就停止 但是单步调试可继续...
- python导入datetime模块_Python时间模块datetime用法
- java 截取掉数字前面的0_java 保留字符串数字的位数,不够前面补0
- 四川大学计算机学院 学术委员会,学术委员会完整列表
- Web前端-HTTP Cache-control
- Wordvec_句子相似度
- Mac下使用Docker快速搭建pinpont追踪系统APM