《微机原理及接口技术》全套电子课件教案-作业解答.ppt

《微机原理及接口技术》全套电子课件教案-作业解答.ppt

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

3.10.设在书3.6节中所描述的生产者-消费者问题中,其缓冲部分为m个长度相等的有界缓冲区组成,且每次传输数据长度等于有界缓冲区长度以及生产者和消费者可对缓冲区同时操作。重新描述发送过程deposit(data)和接收过程remove(data)。 设第I块缓冲区的公用信号量为mutex[I],保证生产者进程和消费者进程对同一块缓冲区操作的互斥,初值为1。 设信号量avail为生产者进程的私用信号量,初值为m。 信号量full为消费者进程的私用信号量,初值为0。 deposit (data) Begin P(avail) 选择一个空缓冲区i P(mutext[I]) 送数据入缓冲区i V(full) V(mutex[I]) ?End PA发送过程Send(0,m)和接收过程receive(1,m) send(0,m) Begin P(bufempty[0]) 按FIFO方式选择一个空缓冲区 送数据入缓冲区 V(buffull[0]) end * Remove (data) Begin P(full) 选择一个满缓冲区I P(mutext[I]) 取缓冲区i中的数据 V (avail) V(mutext[I]) ? End ? PB PA 3.11两进程PA,PB通过两FIFO缓冲区队列连接 ,每个缓冲区长度等于传送消息长度。 进程PA ,PB之间的通信满足如下条件: (a)??? 至少有一个空缓冲区存在时,相应的发送进程才能发送一个消息。 (b)当缓冲队列中至少存在一个非空缓冲区时,相应的接收进程才能接收一个消息。 试描述发送过程Send(I,m)和接收过程receive(I,m),这里i代表缓冲队列。 队列0 队列1 bufempty[0],buffull[1]是PA的私有信号量, buffull[0],bufempty[1]是PB的私有信号量。 bufempty[0]=bufempty[1]=n, (n为缓冲区队列的缓冲区个数) buffull[0]=buffull[l]=0 Receive (1,m) ? Begin P(buffull[1]) 按FIFO方式选择一个装满数据的缓冲区 取缓冲区i中的数据 V(bufempty[1]) End *

文档评论(0)

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

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

1亿VIP精品文档

相关文档