码迷,mamicode.com
首页 > 其他好文 > 详细

信号量

时间:2016-07-14 19:38:03      阅读:184      评论:0      收藏:0      [点我收藏+]

标签:信号量

信号量的基本概念:

    信号量的本质是一种数据操作锁,它本身不具有数据交互的能力,而是通过控制其它的通信资源来实现进程间通信,它本身只是一种外部资源的标识。信号量在此过程中负责数据操作的同步与互斥等功能。

    互斥:对临界资源的独占。

    临界资源:多个进程能够访问共用的资源。

    临界区:访问临界资源的一段代码。

    同步:带有顺序性的访问,大多数的同步是建立在互斥的基础上的。

    原子性:只有一种状态或者只有一条汇编代码。

    信号量实际上就是计数器。

信号量的工作原理:

    由于信号量只能进行两种操作等待和发送信号,即P(sv)和V(sv),他们的行为是这样的:

    P(sv):如果sv的值大于零,就给他减一;如果它的值为零,就挂起该进程;

    V(sv):如果有进程因等待sv被挂起,就让它恢复运行,如果没有进程因等待它而挂起就给他加1.

信号量的意图:

    信号量的意图在于进程间同步,互斥锁和条件变量的意图则在于线程间的同步。但是信号量也可以用于线程间,互斥锁和条件变量也可以用于进程间。应根据原语决定使用哪种机制。


comm.h

技术分享

comm.c

技术分享

技术分享

技术分享

test.c

技术分享

技术分享


信号量

标签:信号量

原文地址:http://10548202.blog.51cto.com/10538202/1826433

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!