资源分配算法(Resource allocation algorithm).docVIP

资源分配算法(Resource allocation algorithm).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文档。上传文档
查看更多
资源分配算法(Resource allocation algorithm)

资源分配算法(Resource allocation algorithm) # includes string.h # includes ctype.h # includes malloc.h / * malloc () 等 * / # includes limits.h / * int _ max等 * / # includes stdio.h / * eofl (= ^ z或f6), null * / # includes stdlib.h / * atoi () * / # includes io.h / * - eof () * / # includes math.h / * floor (), ceil (), abs () * / # includes process.h / * exit () * / # includes iostream using namespace std; # includes time.h # define buf 10 / / 缓存的大小 # define max 20 / / 最大可以输入的字符 / / 数据结构的定义和全局变量 typedef struct pcb { char name [10]; / / 进程名 char were [10]; / / 运行状态 char reason [10]; / / 若阻塞, 其原因 int breakp; / / 断点保护 struct pcb * next; / / 阻塞时的顺序 } * link; pcb int s1, s2; / / 信号量 link p1; / / 生产者进程 link c1; / / 消费者进程 char str [max]; / / 输入的字符串 char buffer [buf]; / / 缓冲池 int len); / / 输入长度 int sp = 0; / / string的指针 int = 0; / / 生产者指针 int out = 0; / / 消费者指针 char temp; / / 供打印的临时产品 char chr _ p [max]; / / 生产记录 int rp1 = 0; / / 生产记录指针 char chr _ c [max]; / / 消费记录 int rp2 = 0; / / 消费记录指针 link ready; / / 就绪队列 link b _ s1; / / s1阻塞队列 link b _ s2; / / s2阻塞队列 int bw; / / 程序计数器 int count; / / 字符计数器 int with _ cnt; / / 消费计数器 void init (); / / 初始化 void f (int); / / p操作 void v (int s); / / v操作 void block (int s); / / 阻塞函数 void wakeup (int s); / / 唤醒函数 void control (); / / 处理机调度 void processor (); / / 处理机执行 void print (); / / 打印函数 void init () {/ / 初始化 s1 = buf; s2 = 0; p1 = (link) malloc (sizeof (pcb)); / / 建立新的结点, 并初始化为生产者 strcpy (p1 - name, producer); strcpy (p1 - , ready). strcpy (p1 - reason, null); p1 - breakp = 0; p1 - next = null; c1 = (link) malloc (sizeof (pcb)); / / 建立新的结点, 并初始化为消费者 strcpy (c1 - name, consumer); strcpy (c1 - , ready). strcpy (c1 - reason, null); c1 - breakp = 0; c1 - next = null; ready = p1. ready - next = 1; / / 初始化为生产进程在前, 消费进程在后 c1 - next = null; b _ s1 = null; b _ s2 = null; / / 阻塞进程为null pc = 0; with _ cnt = 0; / / 消费计数器 } void f (int) { if (n = = 1) {/ / p (s1) s1 - -; if (s1 0) block (1); / / 阻塞当前生产进程 else { cout \ t *

您可能关注的文档

文档评论(0)

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

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

版权声明书
用户编号:8000054077000003

1亿VIP精品文档

相关文档