标签:
it/科技 |
分类: 机顶盒设计 |
信号量(Semaphores),用于任务间同步,以及互斥访问共享资源。信号量结构
体semaphore_t中主要包括三部分:
3)信号量所占用的内存分区
信号量用如下结构体类型来描述:
struct
{
};
信号量的创建使用如下函数:
sempahore_t
sempahore_t
sempahore_t
sempahore_t
value);
注意:由于OS20平台硬件上提供了信号量,使得不超时和超时所调的创建函数不相同,而OS21平台上则不存在这种情况。
OS21提供了两种类型的信号量,任务在等待队列中的排列方式有所不同:
1)FIFO
Semaphores:
2)Priority
Semaphores:
允许任务在队列间跳跃;最高优先级的任务最先获得信号量,这种信号量是
通过调用semaphore_create_priority()或semaphore_create_priority_p()实现的。
semaphore_t * semaphore_create_fifo (int count)
{
}
semaphore_t * semaphore_create_fifo_p (partition_t * pp, int count)
{
}
static semaphore_t * _semaphore_create_generic (partition_t * pp)
{
}
void _semaphore_init_fifo (semaphore_t * sp, int count)
{
#if defined CONF_DEBUG_CHECK_SEM
#endif
}
当创建一个信号量时,调用_semaphore_create_generic ()为该信号量分配空间,然后调用_semaphore_init_fifo()初始化信号量结构体的的其他成员。

加载中…