- 2
- 0
- 约4.5千字
- 约 14页
- 2018-12-19 发布于福建
- 举报
TI_DSP_BIOS_4:内存调度(_part_2_)
DSP BIOS 4:线程调度( part 2 ) 4.6 信号灯(信号量) (1) 应用环境:信号灯经常用于在一组竞争的任务间协助访问共享资源。DSP/BIOS提供了一组基于信号灯的用于任务间同步和通讯的函数。SEM模块提供了一组用于访问信号灯对象的函数。SEM对象是计数信号灯(counting semaphores),既可以实现任务同步,也可以实现互斥访问。使用方法:计数信号灯对象有一个内部计数器,计数值对应资源的有效性,如果计数值大于0,任务在请求信号灯时不会阻塞。4.6 信号灯(2) 创建和删除:动态创建和删除,SEM_create,SEM_delete 配置工具创建SEM_pend:SEM_pend用于等待一个信号灯。如果信号灯计数值大于0,则SEM_pend只是简单的将计数值减1并返回。否则,SEM_pend等到另一个线程调用SEM_post触发(post)这个信号灯(即释放资源)。SEM_pend函数的超时参数允许任务等待一段时间,也可以无限等待(取值SYS_FOREVER),或不等待(取值0)。SEM_post:给一个信号灯发信号(signal),如果有一个任务正在等待这个信号灯,SEM_post将这个任务从信号灯队列中移去,并将它放入就绪任务队列等待调度。如果没有任务等待这个信号灯,SEM_post简单地将计数值加1并返回。 4.6.1· 信号灯的例子 不同于
原创力文档

文档评论(0)