通信方式概述.pdf

  1. 1、本文档共52页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
通信方式概述 • 任务间的通信方式 共享数据结构(存储器) 可以是全局变量,指针,缓冲区等,但是要注意互斥(大数 据文件) 消息系统 消息队列、邮箱(同步) 管道通信 • 管道:连接两个要进行通信的读写进程的一个共享文件。 • 管道通信:读写进程利用“管道”这个共享文件来进行通信。 发送进程将数据写入管道(共享文件),接收进程从管道中 取数据。它存储的数据是非结构化的字节流; 信号量也是一种通信的方式,但无法传递大量的数据。 1 通信方式概述 • 任务间的通信方式 – 直接通信。在通信过程中双方必须明确地知 道(命名)彼此: • Send (P,message) – 发送一个消息到任务P • Receive(Q,message) – 从任务Q接收一个消息 – 间接通信。通信双方不需要指出消息的来源 或去向,而通过中间机制来通信。如: • send(A,message) – 发送一个消息给邮箱A • receive(A,message) – 从邮箱A接收一个消息 消息、消息队列、邮箱 2 概述 • 消息:内存空间中一段长度可变的缓冲区,其 长度和内容均可以由用户定义,其内容可以是 实际的数据、数据块的指针或空。 • 对消息内容的解释由应用完成。 – 从操作系统观点看,消息没有定义的格式,所有的 消息都是字节流,没有特定的含义。 – 从应用观点看,根据应用定义的消息格式,消息被 解释成特定的含义。 – 应用可以只把消息当成一个标志,这时消息机制用 于实现同步,任务可以在一个空消息队列上等待其 他任务发出的消息,以实现两个任务间的同步。 3 概述 • 一些操作系统内核把消息进一步分为:邮箱和 消息队列 – 邮箱仅能存放单条消息,它提供了一种低开销的机 制来传送信息。每个邮箱可以保存一条大小为若干 个字节的消息。发送消息方请求将消息内容放进邮 箱,接收消息方从邮箱中将消息取出。 – 除了包括一个代表消息的指针型变量外,每个邮箱 都有相应的正在等待的任务队列。要得到消息的任 务发现邮箱是空的,就挂起,并加入到该邮箱的等 待队列中。通常,内核允许用户为任务等待消息设 定超时,如果在等待时间内仍未收到消息,则进入 就绪态,返回等待超时信息。 4 μC/OS_ Ⅱ中用邮箱作为 μC/OS_ Ⅱ中用邮箱作为 二值信号量 二值信号量 Task1() Task2() { Task2 申请信号量 { sem1 失败,系统 ……

文档评论(0)

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

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

1亿VIP精品文档

相关文档