进程同步操作系统(国外英文资料).docVIP

进程同步操作系统(国外英文资料).doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
进程同步操作系统(国外英文资料)

进程同步操作系统(国外英文资料) # include stdio . h # include malloc.h / /只能在独立的情况下使用; / / #定义getmem(类型)(*)型malloc(sizeof(类型) #定义buffersize 5 int processnum = 0;/ /进程的num struct pcb { / *定义进程控制块pcb * / 标志;/ / flag = 1表示生产者;旗= 2表示消费者; int numlabel; char产品; char状态; struct pcb * processlink; } * exe =零,* =零; typedef struct pcb印刷电路板; PCB * readyhead = NULL,* readytail =零; PCB * consumerhead = NULL,* consumertail =零; PCB * producerhead = NULL,* producertail =零; / /产品数量 int productnum = 0; int = 0,空= buffersize;/ /信号量 字符缓冲区(buffersize);/ /缓冲区 int bufferpoint = 0;/ /缓冲区指针 空白linkqueue(PCB *过程,PCB * *尾); * getq PCB(印刷电路板*头,PCB * *尾); bool hasElement(PCB * pro); 空白显示(PCB * p); 空白linklist(PCB * p,PCB * listhead); 空白freelink(PCB * linkhead); bool processproc(); bool waitempty(); bool waitfull(); 空白signalempty(); 空白signalfull(); 空白producerrun(); 空白comsuerrun(); bool hasElement(PCB * pro); 空白linklist(PCB * p,PCB * listhead) { PCB *光标= listhead; 而(游标- processlink ! = NULL){ 光标=游标- processlink; } 游标- processlink = p; } 空白freelink(PCB * linkhead) { PCB * p; 而(linkhead ! = NULL){ p = linkhead; linkhead = linkhead - processlink; 自由(p); } } 空白linkqueue(PCB *过程,PCB * *尾巴) { 如果((*)! = NULL){ (*)- processlink =过程; (*)=过程; } 其他{ printf(队列未初始化!”); } } * getq PCB(印刷电路板*头,PCB * *尾巴) { PCB * p; p =主管- processlink; 如果(p ! = NULL){ 主管- processlink = p - processlink; p - processlink =零; 如果(主管- processlink = = NULL) (*)=头; } 其他的 返回NULL; 返回p; } bool processproc() { int i,f,num; char ch; PCB * p =零; PCB * * p1 =零; printf( \ n请输入希望产生的进程个数?”); scanf(“% d”,num); 获取字符(); / /如果(num = 100){ / / printf(您怎么要产生这么多进程!要求否认!”); / /返回错误; / / } (我= 0; num;+ +){ printf( \ n请输入您要产生的进程:输入1为生产者进程;输入2为消费者进程\ n”); scanf(% d、f); 获取字符(); p =(PCB *)malloc(sizeof(PCB)); 如果(p){ printf(内存分配失败”); 返回错误; } p - 标志= f; processnum + +; p - numlabel = processnum; p - 状态= w ; p - processlink =零; 如果(p - 标志= = 1){ printf(您要产生的进程是生产者,它是第% d个进程。请您输入您要该进程产生的字符! \ n”,processnum); scanf(“% c”,ch); 获取字符(); p - 产品= ch; productnum + +; pri

文档评论(0)

f8r9t5c + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8000054077000003

1亿VIP精品文档

相关文档