初级会员
- 积分
- 189
- 金钱
- 189
- 注册时间
- 2015-8-4
- 在线时间
- 38 小时
|
本帖最后由 hblgxy 于 2016-9-22 23:56 编辑
各位大神求教,视屏学习里说信号量相当于变量,下面有几点疑问
1.下图是OSSemCreate();函数创建信号量,创建一个二进制信号量将初始值置1,那么运行OSSemPost();信号量加一,信号量会不会归零?
2.请求信号量是什么意思?CPU执行到一个任务函数OSSemPend();处等待其他任务释放信号量,这个等待的过程称为请求信号量吗?CPU既然在等待信号量释放那就不会去执行其他任务释放信号量的函数,这样不就永远等不到信号量吗?还是在执行OSSemPend();时发生了任务调度?3.信号量请求函数OSSemPend()怎样才算请求到信号量?是信号量的值不为0吗?当函数OSSemPend()请求到信号量时信号量的值是否减1?假如有多个任务共用一个信号量,一个任务释放信号量时想哪个任务释放信号量呢?如果将OPT参数设为OS_OPT_POST_ALL,同时又有多个任务在请求信号量哪么该如何执行?能否请求信号量的特定值,当信号量为一个特定值时才视为函数OSSemPend()请求到信号量?
|
|