ReWorks实时操作系统核心功能分析.pptVIP

  • 176
  • 0
  • 约9.54千字
  • 约 49页
  • 2022-06-10 发布于四川
  • 举报
* 实例描述:生产者-消费者问题 一群生产者任务在生产消息,并将此消息提供给消费者任务去消费。 为使生产者和消费者能并发执行,在它们之间设置一个具有N个缓冲区的缓冲池,生产者将生产的消息放入一个缓冲区,消费者从一个缓冲区取得一个消息消费。 所有的生产者和消费者任务都是以异步方式运行,但它们之间必须保持同步。 问题的提出 3.2 任务通信 * 当生产者任务将生产的消息放到缓冲区后,要及时通知消费者任务 消费消息,使得两个任务同步,实现同步的机制主要有: 信号量:生产者通过获取和释放二进制信号量通知消费者任务消费消息。在多个任务需要同步情况下,可以通过计数信号量实现。 事件:生产者任务将消息放入缓冲区后,发送特定事件,消费者任务接收到该事件后开始运行。 消息队列:生产者任务将生产的消息放到指定消息队列中,消费者任务接收消息,实现任务同步。 同时,生产者任务和消费者任务都会访问存放消息的缓冲区,为了保 护缓冲区内容,只能让一个任务独占该资源,可以通过以下机制实现: 互斥信号量:特殊的二进制信号量,它支持所有权、递归访问、任务删除安全和一个或多个协议,以避免互斥固有的问题。 解决方法 3.2 任务通信 * 任务通信 信号量是任务同步的最主要手段,在一定程度上亦可提供互斥功能。 ReWorks下信号量被优化,是能够提供最快的任务间通信服务的机制。 信号量分类 二进

文档评论(0)

1亿VIP精品文档

相关文档