内核并发控制
hs6662668
这个作者很懒,什么都没留下…
展开
-
内核并发控制---完成量
定义在头文件linux/completion.h中; 完成量(completion)是Linux系统提供的一种比信号量更好的同步机制,是对信号量的一种补充;它用于一个执行单元等待另一个执行单元完成某事;使用完成量等待时,调用进程是以独占睡眠方式进行等待的;不是忙等待; 1).定义完成量: struct completion my_completion; //定义完成量my_comple转载 2014-12-23 15:22:34 · 323 阅读 · 0 评论 -
Linux内核中锁机制之完成量、互斥量
八、完成量 下面讨论完成量的内容,首先需明确完成量表示为一个执行单元需要等待另一个执行单元完成某事后方可执行,它是一种轻量级机制。事实上,它即是为了完成进程间的同步而设计的,故而仅仅提供了代替同步信号量的一种解决方法,初值被初始化为0。它在include\linux\completion.h定义。 如图8.1所示,对于执行单元A而言,如果执行单元B不执行complete函数,执行单元A转载 2014-12-23 15:30:56 · 543 阅读 · 0 评论 -
等待队列和完成量
1 等待队列的实现类似于进程中异步中断的原理,都是为了最大化cpu的利用率,避免了cpu在资源无法满足时的轮询或空等待。 等待队列的实现原理举例:cpu向磁盘发出读数据请求,由于磁盘是速度慢,当前进程通过wait_queue_t结构睡眠在内核数据缓冲区的wait_queue_head_t中,并且发生进程切换;当磁盘准备好数据,向cpu发出异步中断请求,在中断处理过程中的软中断部分,cpu将数据拷转载 2014-12-23 16:04:10 · 591 阅读 · 0 评论