第2章进程的描述与控制(part5)详解.ppt

  1. 1、本文档共25页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第2章进程的描述与控制(part5)详解

Heb Nomal University Department of Computer Science * 第二章 进程的描述与控制 2.1 前驱图和程序执行 2.2 进程 的描述 2.3 进程控制 2.4 进程同步 2.5 经典进程的同步问题 2.6 进程通信 2.7 线程的基本概念 2.8 线程的实现 * 关 于 进程同步 P.V操作必须成对出现 当为互斥操作时,它们同处于同一进程 当为同步操作时,则不在同一进程中出现 如果P(S1)和P(S2)两个操作在一起,那么P操作的顺序至关重要。 * 掌握信号量的物理意义 (1)一般考查对记录型信号量的理解。 信号量的物理含义: S-value0表示有S-value个资源可用; S-value==0表示无资源可用; S-value0则|S-value|表示等待队列中的进程个数。 说明:根据以上信号量的物理意义,可以计算信号量的变化范围。 (2)S-value的初值 表示系统中某类资源的数目,称为资源信号量。 若S-value的初值为1,表示只允许一个进程访问,此时信号量转化为互斥信号量。 (3)对信号量只能执行wait、signal操作 wait(S)表示申请一个资源 ; signal(S)表示释放一个资源。 注意:整型信号量不会取负值,可由此判断题目中的信号量是整型信号量还是记录型信号量。 * semaphore empty=1, full=0; item buffer; void producer(){ do{ wait(empty); putdata; signal(full); }while(1); } void consumer(){ do{ wait(full); getdata; signal(empty); }while(1); } void main(){ cobegin producer();consumer(); coend } 说明:对资源信号量empty和full的wait和signal操作,同样需要成对地出现,但处于不同的程序中。 1. 利用记录型信号量解决生产者—消费者问题 设置2个信号量full和empty。 Full:表示buffer中有数据的缓冲区个数,初值为0; Empty:表示buffer中空缓冲区的个数,初值为1; 取值范围都是[-1,1]。 buffer 生产者 消费者 * 复杂情况(既有同步,又有互斥): 一个buffer,n个生产者,m个消费者,生产者不断地生产,消费者不断地消费。只有buffer为空时生产者才能进行putdata操作,只有buffer有数据时消费者才能进行getdata操作。 buffer变成了临界资源,不允许多个进程同时操作buffer。即不允许多个生产者同时进行putdata操作,也不允许多个消费者同时进行getdata操作。 与简单情况相比,需要增加一个信号量mutex来实现对buffer的互斥访问,其初始值为1。 信号量full和empty的变化范围与简单情况有所不同。full初值仍然为0,变化范围:[-m,1],n是消费者进程总数量;empty初值仍然为1,变化范围:[1-n,1],m是生产者进程总数量。 buffer 生 产 者 消 费 者 * semaphore empty=1, full=0,mutex=1; item buffer; void producer(){ do{ wait(empty); putdata; signal(full); }while(1); } void consumer(){ do{ wait(full); getdata; signal(empty); }while(1); } void main(){ cobegin producer();consumer(); coend

文档评论(0)

ee88870 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档