- 8
- 0
- 约9.75千字
- 约 76页
- 2018-06-27 发布于湖北
- 举报
第10讲-嵌入式OS内核-任务通信及同步
第10讲任务通信与同步 主要内容 概述 信号灯 消息队列 事件 管道 概述 多任务系统中任务之间的关系 相互独立 仅竞争CPU资源 竞争除CPU外的其他资源(互斥) 同步 协调彼此运行的步调,保证协同运行的各个任务具有正确的执行次序 通信 彼此间传递数据或信息,以协同完成某项工作 进程同步的例子 只有当售票员关门之后司机才能启动车辆,只有司机停车之后售票员才能开车门。司机和售票员的行动需要一定的协调。同样地,两个进程之间有时也有这样的依赖关系,因此我们也要有一定的同步机制保证它们的执行次序 概述 任务能以以下方式与中断处理程序或其他任务进行同步或通信: 单向同步或通信:一个任务与另一个任务或一个ISR同步或通信。 双向同步或通信:两个任务相互同步或通信。双向同步不能在任务与ISR之间进行,因为ISR不能等待。 概述 在单处理器平台上,嵌入式操作系统内核提供的同步、互斥与通信机制主要包括: 信号灯(semaphore),用于互斥与同步 事件(组)(event group),用于同步 异步信号(asynchronous signal),用于同步 邮箱(mailbox)、消息队列(message queue),用于消息通信 管道(pipe),提供非结构化数据交换和实现同步 概述 以下一些机制也可用于同步与通信(在单处理器或多处理器系统中): 全局变量 共享内存 套接字(Sockets) 远程过程调用(Remote Procedure Call) Linux下任务通信手段 信号 消息队列 管道 信号灯 套接字 共享存储段 第一节信号灯 信号灯的种类及用途 信号灯(Semaphore或称信号量)用于实现任务与任务之间、任务与中断处理程序之间的同步与互斥。 信号灯一般分为三种: 互斥信号灯 用互斥信号灯保护的代码区称作“临界区”,临界区代码通常用于对共享资源的访问。 互斥信号灯的值被初始化成1,表明目前没有任务进入“临界区”,但最多只有一个任务可以进入“临界区”。 第一个试图进入“临界区”的任务将成功获得互斥信号灯,而随后试图进入用同一信号灯保护的临界区的所有其他任务就必须等待。 当任务离开“临界区”时,它将释放信号灯并允许正在等待该信号灯的任务进入“临界区”。 互斥信号灯 共享资源可能是一段存储器空间、一个数据结构或I/O设备,也可能是被两个或多个并发任务共享的任何内容。 使用互斥信号灯可以实现对共享资源的串行访问,保证只有成功地获取互斥信号灯的任务才能够释放它。 互斥信号灯是一种特殊的二值信号灯,一般它支持所有权、递归访问、任务删除安全和一些避免优先级反转、饥饿、死锁等互斥所固有问题的协议。 互斥信号灯状态图 互斥信号灯 所有权:当一个任务通过获取互斥信号灯而将其锁定时,得到该互斥信号灯的所有权。相反,当一个任务释放信号灯时,失去对其的所有权。 当一个任务拥有互斥信号灯时,其他的任务不能再锁定或释放它,即任务要释放互斥信号灯,必须事前先获取该信号灯。 二值信号灯 二值信号灯主要用于任务与任务之间、任务与中断服务程序之间的同步 用于同步的二值信号灯初始值为0,表示同步事件尚未产生; 任务申请信号灯以等待该同步事件的发生; 另一个任务或ISR到达同步点时,释放信号灯(将其值设置为1)表示同步事件已发生,以唤醒等待的任务。 二值信号灯 计数信号灯 计数信号灯 计数信号灯 哲学家就餐问题 问题描述: ??一个房间内有5个哲学家,他们的生活就是思考和进食。房间里有一张圆桌,中间放着一盘通心粉(假定通心粉无限多)。桌子周围放有五把椅子,分别属于五位哲学家每两位哲学家之间有一把叉子,哲学家进食时必须同时使用左右两把叉子。 仅当哲学家的左右两支筷子都可用时,才允许他拿起筷子进餐。利用信号量的保护机制实现。通过信号量mutex对就餐之前的取左侧和右侧叉子的操作进行保护,使之成为一个原子操作,这样可以防止死锁的出现。 信号灯机制的主要数据结构 信号灯机制的主要数据结构 信号灯控制块:管理所有创建的信号灯,内核在系统运行时动态分配和回收信号灯控制块 互斥和二值信号灯控制块结构: Binary_Semaphore_Control_Block 计数信号灯控制结构Counting_Semaphore_Control_Block wait_queue 任务等待队列 attributes 计数信号灯属性 maximum_count 最大计数值 wait_discipline 任务等待信号灯的方式 count 当前计数值 典型的信号灯操作 创建信号灯 获取(申请)信号灯 释放信号灯 删除信号灯 清除信号灯的任务等待列表 获取有关信号灯的各种信息 第二节消
您可能关注的文档
- 第10章 传感器信号处理.ppt
- 第10章 含有耦合电感电路-修改.ppt
- 第10章 MATLAB在信号及系统分析中的应用.ppt
- 第10章 常用设备、工具使用及.ppt
- 第10章 射频信号产生电路 无线通信射频电路技术及设计[文光俊].ppt
- 第07章 机械加工工艺规程制定1.ppt
- 第10章 数据仓库及数据挖掘的综合应用.ppt
- 第10章 数模转换及模数转换接口及其应用.ppt
- 第10章 数摸与模数转换接口.ppt
- 第10章 机械效率.ppt
- 小区绿化施工协议书.docx
- 墙面施工协议书.docx
- 1 古诗二首(课件)--2025-2026学年统编版语文二年级下册.pptx
- (2026春新版)部编版八年级道德与法治下册《3.1《公民基本权利》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《4.3《依法履行义务》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.2《按劳分配为主体、多种分配方式并存》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.1《公有制为主体、多种所有制经济共同发展》PPT课件.pptx
- 初三教学管理交流发言稿.docx
- 小学生课外阅读总结.docx
- 餐饮门店夜经济运营的社会责任报告(夜间贡献)撰写流程试题库及答案.doc
原创力文档

文档评论(0)