摘要: 需求源于项目中一部分设计的代码。struct semaphore类型的信号量,使用up()进行释放,down_interruptible()和down()获得指定信号量(前者中,若该信号量已争用则进入可中断睡眠,后者进入不可中断睡眠)。 理想中的流程应该是线程调用down()阻塞一个信号量,等待另一个线程调用up()释放,从而实现同步。但如果另一个线程使用up()释放多次,会有怎样的结果呢?LKD上没有进行详细的解释,我使用一个简单的测试程序,其中的核心代码如下:/* A线程,释放信号量 */while(!kthread_should_stop()){ up(&my_sem); ... 阅读全文
posted @ 2012-07-21 20:09 五岳 阅读(1134) 评论(0) 推荐(0) 编辑
回到顶部