这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 一个关于二进制信号量的问题

共2条 1/1 1 跳转至

一个关于二进制信号量的问题

菜鸟
2007-06-05 16:49:51     打赏

假定系统中有这样一个任务在执行:

FOREVER { semTake (semId, WAIT_FOREVER); printf (“Got the semaphore\n”); }

其优先级为100。由于它无法获取信号量,因此被阻塞。此时,在shell命令行下输入以下命令:

-> repeat(1, semGive, semId)

可以得到几次打印输出?

如果输入以下命令:

-> repeat(2, semGive, semId)

又能得到几次打印输出?

可以得到几次打印输出?

如果输入以下命令:

-> repeat(3, semGive, semId)

又能得到几次打印输出?

答案不是“一次,一次,一次”,也不是“一次,两次,三次”。

各位高手来看看!




关键词: 一个     关于     二进制     信号     问题    

菜鸟
2007-06-05 22:44:00     打赏
2楼
以下是引用yangergou在2007-6-5 8:50:00的发言:

假定系统中有这样一个任务在执行:

FOREVER { semTake (semId, WAIT_FOREVER); printf (“Got the semaphore\n”); }

其优先级为100。由于它无法获取信号量,因此被阻塞。此时,在shell命令行下输入以下命令:

-> repeat(1, semGive, semId)

可以得到几次打印输出?

如果输入以下命令:

-> repeat(2, semGive, semId)

又能得到几次打印输出?

可以得到几次打印输出?

如果输入以下命令:

-> repeat(3, semGive, semId)

又能得到几次打印输出?

答案不是“一次,一次,一次”,也不是“一次,两次,三次”。

各位高手来看看!

不确定吧


共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]