高响应比算法.docx

高响应比算法.docx

ID:53119264

大小:13.90 KB

页数:9页

时间:2020-04-01

高响应比算法.docx_第1页
高响应比算法.docx_第2页
高响应比算法.docx_第3页
高响应比算法.docx_第4页
高响应比算法.docx_第5页
资源描述:

《高响应比算法.docx》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、#include#include#definebuffersize5//5个缓冲区intprocessnum=0;//初始化产品数量structpcb//定义进程控制块PCB{intflag;intnumlabel;charproduct;charstate;structpcb*processlink;}*exe=NULL,*over=NULL;typedefstructpcbPCB;PCB*readyhead=NULL,*readytail=NULL;PCB*consu

2、merhead=NULL,*consumertail=NULL;PCB*producerhead=NULL,*producertail=NULL;intproductnum=0;//产品数量intfull=0,empty=buffersize;//信号量charbuffer[buffersize];//缓冲区intbufferpoint=0;//缓冲区指针voidlinklist(PCB*p,PCB*listhead){//创建就绪队列PCB*cursor=listhead;while(cursor->pro

3、cesslink!=NULL){cursor=cursor->processlink;}cursor->processlink=p;}voidfreelink(PCB*linkhead){PCB*p;while(linkhead!=NULL){p=linkhead;linkhead=linkhead->processlink;free(p);}}voidlinkqueue(PCB*process,PCB**tail)//初始化队列{if((*tail)!=NULL){(*tail)->processlink=

4、process;(*tail)=process;}else{printf("队列序列化!");}}PCB*getq(PCB*head,PCB**tail){PCB*p;p=head->processlink;if(p!=NULL){head->processlink=p->processlink;p->processlink=NULL;if(head->processlink==NULL)(*tail)=head;}elsereturnNULL;returnp;}boolprocessproc()//初始化进

5、程{inti,f,num;charch;PCB*p=NULL;PCB**p1=NULL;printf("请输入希望产生的进程个数:");scanf("%d",&num);getchar();for(i=0;ifla

6、g=f;processnum++;p->numlabel=processnum;p->state='w';p->processlink=NULL;if(p->flag==1){printf("您要产生的进程是生产者,它是第%d个进程。请您输入您要该进程产生的字符:",processnum);scanf("%c",&ch);getchar();p->product=ch;productnum++;printf("您要该进程产生的字符是%c",p->product);}else{printf("您要生产的

7、进程是消费者,它是第%d个进程。",p->numlabel);}linkqueue(p,&readytail);}returntrue;}boolhasElement(PCB*pro)//判断队列中是否有进程存在{if(pro->processlink==NULL)returnfalse;elsereturntrue;}boolwaitempty()//判断生产者等待队列是否为空{if(empty<=0){printf("进程%d:缓存区存数,缓存区满,该进程进入生产者等待序列",exe->numla

8、bel);linkqueue(exe,&producertail);returnfalse;}else{empty--;returntrue;}}voidsignalempty()//唤醒生产者进程{PCB*p;if(hasElement(producerhead)){p=getq(producerhead,&producertail);linkqueue(p,&readytail);printf(

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。