信号量管理.ppt

上传人:本田雅阁 文档编号:2330307 上传时间:2019-03-22 格式:PPT 页数:14 大小:861.01KB
返回 下载 相关 举报
信号量管理.ppt_第1页
第1页 / 共14页
信号量管理.ppt_第2页
第2页 / 共14页
信号量管理.ppt_第3页
第3页 / 共14页
亲,该文档总共14页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《信号量管理.ppt》由会员分享,可在线阅读,更多相关《信号量管理.ppt(14页珍藏版)》请在三一文库上搜索。

1、信号量管理,os_sem.c Lzp,什么是信号量?,信号量可以用来保护两个或多个关键代码段,这些关键代码段不能并发调用。在进入一个关键代码段之前,线程必须获取一个信号量。 只有获取了信号量才能进入代码临界段 ucosii信号量由两部分组成:一个16位的无符号整型数;一个由等待该信号量的任务组成的任务等待表,Ucosii提供的基本操作,OSSemCreate-创建一个信号量 OSSemDel-删除一个信号量 OSSemPend-有等待的获取一个信号量 OSSemPost-发出一个信号量 OSSemAccept-无等待的获取一个信号量 OSSemQuery-查询信号量信息 OSSemSet-把信

2、号量计数设为指定的数,创建一个信号量,删除信号量,获取一个信号量,调用OSSemPend获取一个信号量,如果信号量计数0,则将该计数减一,然后返回 否则将阻塞在这里,等待信号量计数0 不能在isr中获取信号量,why? 因为如果在isr中获取信号量,万一信号量计数0,一个中断isr是无法挂起的,它不是个任务,发送信号量,OSSemPost发送一个信号量就是将信号量计数加一,同时判断是否有任务pending在这个信号量上,如果是则唤醒这些任务中优先级最高的那个任务 中断服务程序isr中也可以调用这个函数发送个信号量,查询信号量,查询信号量的信息:有哪些任务在等待这个信号量?信号量的计数当前是多少?等等 查询可以在isr中进行,也可以在任务中进行 查询到的信息通过OS_SEM_DATA返回,设置信号量计数,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1