该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

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语言实现)相关推荐

  1. C语言解析动态html,【c语言】使用gumbo解析HTML

    之前使用过PHP的Simple HTML DOM简单地解析HTML但PHP终非我所熟悉的语言,虽然我并不对语言抱有绝对的执着= =(什么你不相信,好吧,不管你信不信,反正我是信了= =).虽然可以简单 ...

  2. c语言建立动态链表ppt,C语言链表讲解.ppt

    第十一章 链表;例:跳马.依下图将每一步跳马之后的位置(x,y)放到一个"结点"里,再用"链子穿起来",形成一条链,相邻两结点间用一个指针将两者连到一起.;依上 ...

  3. 字符串的冒泡排序c语言,c语言单链表冒泡排序_c语言字符串排序冒泡法_c语言链表排序...

    1. #include 2. 3. struct Node; 4. 5. typedef struct Node *PtrToNode; 6. typedef PtrToNode List; 7. t ...

  4. c语言中数组的动态赋值法

    动态赋值法在c语言程序中有着很大的作用,比如输入几个数比较他们的大小,也可以与冒泡排序法相结合,从而使程序易于编译执行 #include <stdio.h>//动态赋值法,输入10个数,比 ...

  5. C语言冒泡排序(起泡法)

    C语言冒泡排序(起泡法) 冒泡法排序是C语言中较简单的 排序算法 的 . 定义:它重复地走访过要排序的元素列,依次比较两个相邻的元素,让较大的元素逐渐往后移动(交换两个元素的值),直到数组的末尾.如此 ...

  6. 01 C语言实现动态气泡碰撞和移动的效果,小球碰撞,Win7气泡壁纸,碰撞算法

    C语言实现动态气泡碰撞和移动的效果 作者 将狼才鲸 创建日期 2023-01-29 Git源码仓库地址:C语言实现动态气泡碰撞和移动的效果 CSDN文章地址:01 C语言实现动态气泡碰撞和移动的效果 ...

  7. C语言实现动态分区分配

    C语言实现动态分区分配 代码重复度还是很高的,存在简化的空间. #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include< ...

  8. 编译语言与解释语言,动态与静态,以及强类型和弱类型的区别

    编译和解释的区别是什什么? 编译器是把源程序的每一条语句都编译成机器语言,并保存成二进制文件,这样运行时计算机 可以直接以机器语言来运行此程序,速度很快; 而解释器则是只在执行程序时,才一条一条的解释 ...

  9. python是高级动态语言_Python动态语言之魅力揭秘

    之前的文章跟大家讲解了鸭子类型,其实鸭子类型是编程语言中动态类型语言中的一种设计风格.今天跟大家一起谈谈动态语言的魅力. 根据维基百科,动态编程语言是这样子定义的:动态编程语言是高级编程语言的一个类别 ...

  10. 【Groovy】Groovy 语言特点简介 ( 支持 Java 语法 | 支持 Java 虚拟机 | Groovy 语言是动态语言 | Groovy 扩展 JDK | 编译时元编程 )

    文章目录 一.Groovy 支持 Java 语法 二.Groovy 支持 Java 虚拟机 三.Groovy 语言是 动态语言 四.Groovy 扩展 JDK 五.Groovy 编译时元编程 一.Gr ...

最新文章

  1. 院士戴琼海:脑科学走向人工智能的重要路径
  2. “开源”将成为物联网开发生态链的标准
  3. matlab2015a支持的usb webcams support package
  4. 云端TensorFlow读取数据IO的高效方式
  5. 【OpenCV3】角点检测——cv::goodFeaturesToTrack()与cv::cornerSubPix()详解
  6. ubuntu ???????????? no permissions 问题解决
  7. 基于linux的贪吃蛇游戏设计_基于Unreal4的战棋类游戏《棋行傀儡》的设计与实现...
  8. Scheme 语言概要(下)
  9. 多项式的乘法满足结合律和交换律
  10. 深入浅出 RxJS 核心原理(源码实现)
  11. Alpha版本冲刺(三)
  12. 小国王(状压dp经典题)
  13. 木纹标识lisp_lisp:关于标识符:原子和列表初步
  14. 1099: PIPI的油田
  15. 使用 Fastai 构建食物图像分类器
  16. Intel芯片组大全最新版
  17. Windows下编译WebRTC
  18. 我是怎样把儿子王颖培养成为斯坦福博士的
  19. python迭代器面试题
  20. 通达信交易接口如何实现股票动态监测?

热门文章

  1. pg库使用dblink连接mysql_PG-跨库操作-dblink
  2. 将计算机知识应用于生活中,电脑知识在生活中的灵活运用(6页)-原创力文档...
  3. springboot 导出文件_开发阶段,将SpringBoot应用快速部署到K8S - 程序员欣宸
  4. python爬虫运行一遍后再运行不成功_python爬虫 - pyspdier run时运行到on_start就停止 但是单步调试可继续...
  5. python导入datetime模块_Python时间模块datetime用法
  6. java 截取掉数字前面的0_java 保留字符串数字的位数,不够前面补0
  7. 四川大学计算机学院 学术委员会,学术委员会完整列表
  8. Web前端-HTTP Cache-control
  9. Wordvec_句子相似度
  10. Mac下使用Docker快速搭建pinpont追踪系统APM