资深版主
- 积分
- 4306
- 金钱
- 4306
- 注册时间
- 2018-6-30
- 在线时间
- 808 小时
|
楼主 |
发表于 2019-1-25 20:47:55
|
显示全部楼层
1)优先级反转在可剥夺内核中是非常常见的
当一个低优先级任务和一个高优先级任务同时使用同一信号量,
而系统中还有其他中等优先级任务时。如果低优先级任务获得
信号量,那么高优先级的任务就会处于等待状态,但是,中等
优先级的任务可以打断低优先级任务而先于高优先级任务运行
(此时高优先级的任务在等待信号量,不能运行),这就是优先级反转
2)互斥信号量
创建信号量
OSMutexCreate (OS_MUTEX *p_mutex,
CPU_CHAR *p_name,
OS_ERR *p_err)
请求互斥型信号量
OSMutexPend (OS_MUTEX *p_mutex,
OS_TICK timeout,
OS_OPT opt,
CPU_TS *p_ts,
OS_ERR *p_err)
发送互斥信号量
OSMutexPost (OS_MUTEX *p_mutex,
OS_OPT opt,
OS_ERR *p_err)
3)任务内嵌信号量
请求\等待任务信号量
OS_SEM_CTR OSTaskSemPend (OS_TICK timeout,
OS_OPT opt,
CPU_TS *p_ts,
OS_ERR *p_err)
发布任务信号量
OS_SEM_CTR OSTaskSemPost (OS_TCB *p_tcb,
OS_OPT opt,
OS_ERR *p_err)
|
|