- 1、本文档共66页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
5同步、互斥与通信
嵌入式系统及应用 主要内容 概述 信号量 邮箱和消息队列 管道 在单处理器平台上,嵌入式操作系统内核提供的同步、互斥与通信机制主要包括: 信号量(semaphore),用于互斥与同步 事件(组)(event group),用于同步 异步信号(asynchronous signal),用于同步 邮箱(mailbox)、消息队列(message queue),用于消息通信 管道(pipe),提供非结构化数据交换和实现同步 以下一些机制也可用于同步与通信(在单处理器或多处理器系统中): 全局变量 共享内存 Sockets 远程过程调用(Remote Procedure Call) 第一节信号量 什么是信号量 信号量被定义为一个整形变量,在其上定义了以下三个操作: 1、可以被初始化一个非负数 2、wait操作(P操作)将信号量的值减1后,若该值为负,则执行wait操作的任务等待 3、signal操作(V操作)将信号量的值增1后,若该值为非正,则执行signal操作的任务唤醒 信号量的种类及用途 信号量用于实现任务与任务之间、任务与中断处理程序之间的同步与互斥。 信号量一般分为三种: 互斥信号量 WaitB(S): /申请信号量 if S.value1; /当前没有其他任务使用信号量 then S.value=S.value-1=0/将信号量值修改为0,独占共享资源 else begin Insert(CALLER,S.L); /如果当前有其他任务使用信号量,将该任务放入等待 队列 Block(CALLER); /修改该任务的状态为等待态(阻塞任务) end SignalB(S): /释放信号量 if S.L queue is empty; /如果等待序列为空,没有其他任务等待使用该共享资源 then S.value=1; /释放信号量 else begin Remove(S.L,id); /如果有其他任务等待使用该共享资源,则从等待队列中 将该任务移除 wakeup(id); /将该任务的状态改为就绪态(唤醒任务) end 用信号量实现任务间的互斥 var mutex:Shared Semaphore; begin mutex:=1; parbegin P1:…… P2:…… …… Pi:repeat Wait(mutex); “进程Pi的临界代码段”; Signal(mutex); forever Pn:…… parend end 互斥信号量状态图 各种互斥机制比较 二值信号量 计数信号量 计数信号量 计数(一般)信号量同步原语 Wait(S): S.value:= S.value-1; /有新任务来使用共享资源将信号量的值减1 if S.value0 /如果信号量的值为负,表示共享资源已经分配完毕 then begin Insert(CALLER,S.L);/将该任务插入等待序列 Block(CALLER); /将该任务状态改为等待态(阻塞任务) end Signal(S): S.value:= S.value+1; /任务使用完共享资源,将信号量的值加1,释放 一个信号量 if S.value=0 /如果信号量为负,表示仍有等待该资源的任务被 阻塞 then begin Remove(S.L,id); /将等待队列中的一个任务从队列中移除 wakeup(id); /将该任务的状态修改为就绪态,唤醒任务 end S的绝对值表示在该信号量列表中已阻塞的任务数目 计数信号量 计数信号量 Var E,F:
您可能关注的文档
- 34节边缘分布.ppt
- 2第二章城镇用水量计算.ppt
- 3测量误差及数据处理.ppt
- 22向量组的秩和线性相关性.ppt
- 2014届高考数学理科,大纲版一轮复习配套课件:29函数的应用共31张.ppt
- 41路面工程第2章-石灰稳定土施工.ppt
- 21稳态电压下的击穿.ppt
- 40安全评价1.ppt
- 3接口4软件系统单片机课件.ppt
- 4mpcc讲义pm创建通知单和工单v12.ppt
- 石英纤维项目绩效评估报告.docx
- 江西省宜春市2022-2023学年八年级下学期期中物理试题【含答案,解析】.pdf
- 江西省上饶市广信区全区2022-2023学年八年级下学期期中物理试题【含答案,解析】.pdf
- 江西省宜春市丰城市2016-2017学年八年级下学期期中考试物理试题【含答案,解析】.pdf
- 江西省宜春市2021-2022学年八年级下学期期中物理试题【含答案,解析】.pdf
- 江西省宜春市广来联考2020-2021学年八年级下学期期中考试物理试题【含答案,解析】.pdf
- 江西省鹰潭市余江区2023-2024学年八年级下学期4月期中物理试题【含答案,解析】.pdf
- 江西省鹰潭市余江区2021-2022学年八年级下学期期中物理试题【含答案,解析】.pdf
- 江西省鹰潭市余江县2022-2023学年八年级下学期期中物理试题【含答案,解析】.pdf
- 【市级联考】江西省高安市2018-2019学年八年级下学期期中考试物理试题【含答案,解析】.pdf
文档评论(0)