#include "stdio.h"#include "stdlib.h"#include "string.h" struct PCB { char NAME[10]/*进程名*/ int ROUND/*进程轮转时间片*/ int REACHTIME/*进程到达时间*/ int CPUTIME/*进程占用CPU时间*/ int COUNT/*计数器*/ int NEEDTIME/*进程完成还要的CPU时间*/ char STATE/*进程的状态*/ struct PCB *NEXT/*链指针*/}struct LINK { /*PCB的链结构*/ struct PCB *RUN/*当前运行进程指针*/ struct PCB *READY/*就绪队列头指针*/ struct PCB *TAIL/*就绪队列尾指针*/ struct PCB *FINISH/*完成队列头指针*/}void INIT(LINK *)/*对PCB的链结构初始化*/void INSERT(LINK *)/*将执行了一个单位时间片数且还未完成的进程的PCB插到就绪队列的队尾*/void FIRSTIN(LINK *)/*将就绪队列中的第一个进程投入运行*/void PRINT(LINK *)/*打印每执行一个时间片后的所有进程的状态*/void PR(PCB *)/*打印一个进程的状态*/int CREATE(LINK *,int)/*创建新的进程*/void ROUNDSCH(LINK *)/*按时间片轮转法调度进程*/ void main() { LINK pcbsint iINIT(&pcbs)i=0printf("创建5个进程\n\n")while(i<5) { if(CREATE(&pcbs,i+1)==1) { printf("进程已创建\n\n") i++ } else printf("进程创建失败\n\n")} FIRSTIN(&pcbs)ROUNDSCH(&pcbs)} void ROUNDSCH(LINK *p) { PCB *pcbwhile(p->RUN!=NULL) { pcb=(PCB *)malloc(sizeof(PCB)) strcpy(pcb->NAME,p->RUN->NAME) pcb->ROUND=p->RUN->ROUND pcb->REACHTIME=p->RUN->REACHTIME pcb->CPUTIME=p->RUN->CPUTIME pcb->COUNT=p->RUN->COUNT pcb->NEEDTIME=p->RUN->NEEDTIME pcb->STATE=p->RUN->STATE pcb->NEXT=p->RUN->NEXT pcb->CPUTIME++ pcb->NEEDTIME-- pcb->COUNT++ if(pcb->NEEDTIME==0) { pcb->NEXT=p->FINISH->NEXT p->FINISH->NEXT=pcb pcb->STATE='F' p->RUN=NULL if(p->READY!=p->TAIL)FIRSTIN(p) } else { p->RUN=pcb if(pcb->COUNT==pcb->ROUND) {pcb->COUNT=0 if(p->READY!=p->TAIL) { pcb->STATE='W'INSERT(p)FIRSTIN(p) } } } PRINT(p)}} void INIT(LINK *p) { p->RUN=NULLp->TAIL=p->READY=(PCB *)malloc(sizeof(PCB))p->READY->NEXT=NULLp->FINISH=(PCB *)malloc(sizeof(PCB))p->FINISH->NEXT=NULL} int CREATE(LINK *p,int n) { PCB *pcb,*qpcb=(PCB *)malloc(sizeof(PCB))flushall()printf("请输入第%d个进程的名称:\n",n)gets(pcb->NAME)printf("请输入第%d个进程的轮转时间片数:\n",n)scanf("%d",&(pcb->ROUND))printf("请输入第%d个进程的到达时间:\n",n)scanf("%d",&(pcb->REACHTIME))pcb->CPUTIME=0pcb->COUNT=0printf("请输入第%d个进程需运行的时间片数:\n",n)scanf("%d",&(pcb->NEEDTIME))pcb->STATE='W'pcb->NEXT=NULLif(strcmp(pcb->NAME,"")==0||pcb->ROUND<=0||pcb->NEEDTIME<=0) /*输入错误*/ return 0q=p->READYwhile(q->NEXT!=NULL&&q->NEXT->REACHTIME<=pcb->REACHTIME) q=q->NEXTpcb->NEXT=q->NEXTq->NEXT=pcbif(pcb->NEXT==NULL) p->TAIL=pcbreturn 1} void FIRSTIN(LINK *p) { PCB *qq=p->READY->NEXTp->READY->NEXT=q->NEXTq->NEXT=NULLif(p->READY->NEXT==NULL) p->TAIL=p->READYq->STATE='R'p->RUN=q} void INSERT(LINK *p) { PCB *pcbpcb=(PCB *)malloc(sizeof(PCB))strcpy(pcb->NAME,p->RUN->NAME)pcb->ROUND=p->RUN->ROUNDpcb->REACHTIME=p->RUN->REACHTIMEpcb->CPUTIME=p->RUN->CPUTIMEpcb->COUNT=p->RUN->COUNTpcb->NEEDTIME=p->RUN->NEEDTIMEpcb->STATE=p->RUN->STATEpcb->NEXT=p->RUN->NEXTp->TAIL->NEXT=pcbp->TAIL=pcbp->RUN=NULLpcb->STATE='W'} void PRINT(LINK *p) { PCB *pcbprintf("执行一个时间片后的所有进程的状态:\n\n")if(p->RUN!=NULL) PR(p->RUN)if(p->READY!=p->TAIL) { pcb=p->READY->NEXT while(pcb!=NULL) { PR(pcb) pcb=pcb->NEXT } } pcb=p->FINISH->NEXTwhile(pcb!=NULL) { PR(pcb) pcb=pcb->NEXT}} void PR(PCB *p) { printf("进程名:%s\n",p->NAME)printf("进程轮转时间片:%d\n",p->ROUND)printf("进程到达时间:%d\n",p->REACHTIME)printf("进程占用CPU时间:%d\n",p->CPUTIME)printf("计数器:%d\n",p->COUNT)printf("进程完成还要的CPU时间:%d\n",p->NEEDTIME)printf("进程的状态:%c\n\n",p->STATE)}jingchendiaodu.cpp #include "stdio.h" #include <stdlib.h> #include <conio.h> #define getpch(type) (type*)malloc(sizeof(type)) #define NULL 0 struct pcb { /* 定义进程控制块PCB */ char name[10] char state int super int ntime int rtime struct pcb* link }*ready=NULL,*p typedef struct pcb PCB sort() /* 建立对进程进行优先级排列函数*/ { PCB *first, *second int insert=0 if((ready==NULL)||((p->super)>(ready->super))) /*优先级最大者,插入队首*/ { p->link=ready ready=p } else /* 进程比较优先级,插入适当的位置中*/ { first=ready second=first->link while(second!=NULL) { if((p->super)>(second->super)) /*若插入进程比当前进程优先数大,*/ { /*插入到当前进程前面*/ p->link=second first->link=p second=NULL insert=1 } else /* 插入进程优先数最低,则插入到队尾*/ { first=first->link second=second->link } } if(insert==0) first->link=p } } input() /* 建立进程控制块函数*/ { int i,num clrscr()/*清屏*/ printf("\n 请输入进程号?") scanf("%d",&num) for(i=0i<numi++) { printf("\n 进程号No.%d:\n",i) p=getpch(PCB) printf("\n 输入进程名:") scanf("%s",p->name) printf("\n 输入进程优先数:") scanf("%d",&p->super) printf("\n 输入进程运行时间:") scanf("%d",&p->ntime) printf("\n") p->rtime=0p->state='w' p->link=NULL sort()/* 调用sort函数*/ } } int space() { int l=0PCB* pr=ready while(pr!=NULL) { l++ pr=pr->link } return(l) } disp(PCB * pr) /*建立进程显示函数,用于显示当前进程*/ { printf("\n qname \t state \t super \t ndtime \t runtime \n") printf("|%s\t",pr->name) printf("|%c\t",pr->state) printf("|%d\t",pr->super) printf("|%d\t",pr->ntime) printf("|%d\t",pr->rtime) printf("\n") } check() /* 建立进程查看函数 */ { PCB* pr printf("\n **** 当前正在运行的进程是:%s",p->name)/*显示当前运行进程*/ disp(p) pr=ready printf("\n ****当前就绪队列状态为:\n")/*显示就绪队列状态*/ while(pr!=NULL) { disp(pr) pr=pr->link } } destroy() /*建立进程撤消函数(进程运行结束,撤消进程)*/ { printf("\n 进程 [%s] 已完成.\n",p->name) free(p) } running() /* 建立进程就绪函数(进程运行时间到,置就绪状态*/ { (p->rtime)++ if(p->rtime==p->ntime) destroy()/* 调用destroy函数*/ else { (p->super)-- p->state='w' sort()/*调用sort函数*/ } } main() /*主函数*/ { int len,h=0 char ch input() len=space() while((len!=0)&&(ready!=NULL)) { ch=getchar() h++ printf("\n The execute number:%d \n",h) p=ready ready=p->link p->link=NULL p->state='R' check() running() printf("\n 按任一键继续......") ch=getchar() } printf("\n\n 进程已经完成.\n") ch=getchar() }
用C语言编写并调试一个模拟的进程调度程序,采用“简单时间片轮转法”调度算法对五个进程进行调度。
给您推荐相同类型的内容:
CSS如何怎么设置div边框颜色宽度和高度?
CSS设置div边框颜色宽度和高度步骤如下:1、新建一个html文件,创建一个类名为wrap的div。2、先通过css类选择器选择到div来控制div的宽度和高度和背景颜色(没有边框时方便看出来div的大小)。3、通过div 的borde在CSS样式应用中怎样区别ID、class、style??
这样跟你说吧.ID就是JS程序要用到的标签,可以给ID样式.ID是独一无二的.ID在写样式的时候用" # "class就是样式啦,普通的样式.class在样式表里面写样式的时候用 " . "style怎么把输入法关闭?
如何关闭输入法 关闭输入法很简单ctrl+空格就可以了。替换系统文件,只要重新启动激8进入安全模式.然后就可以替换了.为什么非要替换?如果是出现以下错误,“rundll32.exe-损坏的图象 c:\WINDOWS\systeasyui 支持python吗
肯定支持0.前言本文说明如何在flask框架下使用前端组件EasyUI。在flask框架中链接css文件,js脚本和图片等静态文件的方式和其他web服务器存在差别。在flask框架中这些静态文件一般存放与static文件夹中,并通过url_js防水涂料多少钱一桶?优缺点及施工工艺介绍
对于新房子的装修异常重要,是我们都非常头疼的情,那么大家都知道常用的装修材料吗?js防水涂料就是其中一个非常重要的材料,很多朋友可能对此都不太了解,没关系,小编今天就带大家一起来看看js防水涂料是什么,以及这种js防水涂料的优缺点和使用范围怎么做js文件
1,建立一个扩展名为JS的文件,比如myjs.js2,复制<script type="textjavascript">和<script>中间的JS代码到这个文件中,然后轴的一般公差范围是多少?
H7H8h6等都是国标中公差配合的一种规定(便于图纸交流的统一规定),其中以大写字母开头的(如H7、K7、Js7)表示孔的公差,小写字母开头的(如h7、k7、js7)表示轴的公差。对于这些公差代号所表示的具体公差是多少,须根据基本尺寸的大小创建函数,R语言求解cutoff, AUC, 95%置信区间,敏感性,特异性
cal_metrics <- function(label, pred){ roc.p=pROC::roc(label, pred,ci =T) if (roc.p$auc>0.5){ chtml css写代码的时候 怎么缩进 合适?
一般用tab键进行缩进,占位4个字符,不要用空格。这个主要看个人习惯,统一即可。各个编辑器的缩进方式sublime里面用tab缩进,是默认的4个字符。phpstorm中写代码可以设定4个字符的缩进,或者2个字符缩进。使用CSS的text-ijquery使用css选择器来选取元素吗
是的,jQuery使用 CSS 选择器来选取元素。jQuery 使用 CSS 选择器来选取 HTML 元素。例如:$("p") 选取 <p>元素。$("p.intro") 选取怎样用css写出圆形边框
1、首先打开sublime text编辑器,新建一个html文件,里面写入一个p标签:2、然后设置p标签的样式,这里先设置一个边框,然后设置圆角边框,主要使用CSS3属性border-radius属性定义圆角效果。其中的数值为参数lengtJS防水涂料可不可以掺水泥使用
最好不要这样使用!因为JS防水涂料的粉料部分是生产厂家按照国标《聚合物水泥防水涂料》中要求配制的,你自己改变液料(乳液):粉料的配制会导致涂膜物理指标达不到国标要求。造成后果可能是涂膜防水层使用寿命的降低,防水效果降低,严重时甚至失去防水效js如何制作图片轮播
工具材料Sublime Text01首先在SublimeText下面准备一个html和5张图片,图片宽高为600px和400px,如下图所示02然后在HTML页面中布局轮播图的结构,如下图所示,主要包括图片js 正则 匹配 数字和字母或下划线
1、 必须包括 数字 或 字母 或 下划线,那么是否可以包括其他字符?2、 是否可以包括空格?如果上面两个答案都是否的话,那么正则是这样:^[0-9a-zA-Z]+$以上,请采纳,请给分。<!DOCTYPE html&a电脑桌面老是弹广告怎么办
1. 电脑桌面老是弹出广告怎么处理 1、电脑总是弹出广告是因为你在浏览器上没有设置禁止弹出广告。在浏览器工具-广告过滤那里就可设置即可2、一般来说,电脑浏览器设置好了之后就会生效,但是对个别的浏览器木用。这个时候你就需要借助腾讯电脑JAVA如何写XML文件?
import java.io.*x0dx0ax0dx0aimport org.dom4j.*x0dx0a import org.dom4j.io.OutputFormatx0dx0a import org.dom4j.i在淘宝上如何截图
问题一:淘宝上买东西怎么截图?看好物品 然后加卖家为好友 进行详谈 看看还有货么 卖家有货并且可以发货时 你进行买进 等你收到货时 进行确认付款 然后交易完成时 双方可以打分 请采纳答案,支持我一下。问题二:电脑淘宝上怎如何用js实现点击图片切换另一图片,再次点击恢复?
代码示例:<html><head><meta http-equiv="Content-Type" content="texthtml char这是辆什么车!布加迪哪个型号的!
Renaissance是 加拿大的一名设计师向Carscoop网站发去了这款提议可替代布加迪威龙的新车型的假想图。这款新车型被命名为布加迪Renaissance,是一名设计系新生John Mark Vicente的作品。“这些设计是我个人对我的世界pe传送枪js怎么用?
一种补丁,相当于外挂,我觉得少用比较好,依靠js多了,MC就失去了原有的意思!点启动器第二项,点第一行可输入.js文件,第二行可输编号联网下载js,第四行可以自己写js’function useItem(x,y,z,itemId,block电脑键盘被锁定了,怎么解开?
电脑键盘被锁定了,解开的具体步骤如下:我们需要准备的材料分别是:电脑、1、首先我们打开需要解开数字键盘的电脑。2、然后我们在小键盘的左上角找到“Nnm lk scr lk”键。3、然后我们按一下小键盘上的“Nnm lk scr lk”键怎么用电脑往U盘上下载歌曲?
用电脑往U盘上下载歌曲的具体操作步骤是:1、将U盘连接到电脑上,识别出优盘后就会出现以下图标;2、打开QQ音乐,酷狗音乐等软件,找到喜欢的音乐,点击下载;3、在弹出的对话框里选择保存位置,即选择电脑里显示的U盘盘符;4、打开U盘点选保CSS布局浮动(float)和定位(position)属性的区别和如何使用
float: left|right可以自动排列自动折行, 但需要clear来配合清除浮动display: inline-block 有些时候可以替代float实现相同的效果.position: absolute|relative要配合tcss把标题改成蓝底白字的代码?
给你写一段代码<div style="background:#00aff0color:#ffffont-size:14px">蓝底白字演示代码<div>https:l电脑如何基本操作
电脑基本操作有:1、电脑开、关机的方法以及开机顺序;2、鼠标、键盘的使用方法;3、简单的上网操作和进行信息搜寻;4、文本文档、演示文稿、图表的基本制作及应用;5、较为快速的打字输入方法;6、将网络平台上的信息下载到个人电脑。电脑的配置,是衡如何把JS文件添加到HTML里?JS代码如图:
1、J首先输入s_file01.js,程序代码 document.write(" <script language="javascript" src="com Js_fil电脑怎么下载谷歌浏览器
电脑下载谷歌浏览器的方法如下:工具/原料:联想YOGA14s、windows7、谷歌浏览器87.0.421、电脑打开百度,搜索“谷歌浏览器”,再点击它的网站。2、在网站页面,点击“下载Chrome”。3、在下载页面,点击“下载chrom如何自学 Python
其实python非常适合初学者入门。相比较其他不少主流编程语言,有更好的可读性,因此上手相对容易。自带的各种模块加上丰富的第三方模块,免去了很多“重复造轮子”的工作,可以更快地写出东西。我是真正零基础开始学Python的,从一开始的一窍不在css中怎样让边角具有弧度
在css中,让边角具有弧度只需要用border-radius这个属性。如图,这是一个测试页面,它们的边角分别为25PX和50PX半径的圆角。写法像这样:border-radius:25px测试代码如下<div style=&DVD光盘的css加密是什么意思?
这里说的好明白.二.母盘制作就是在盘片复制以前,完成母盘的制作,并把经过编码后的视频、音频等数据放到玻璃母盘上的这个过程。与DVD-ROM 制作母盘不同的是, DVD-Video 的母盘制作通常还包括另外的步骤,如CSS加密,Macrovi