Linux进程间通信(3):信号量

本文介绍Linux环境下进程间通信的重要机制之一:信号量。信号量用于解决进程间的同步与互斥问题,通过PV操作实现对临界资源的访问控制。文章详细解释了信号量的创建、初始化、使用及删除过程。

接上一篇的内容——Linux进程间通信(2):信号

参考书籍:《从实践中学嵌入式linux应用程序开发》(华清远见嵌入式学院)

UNIX网络编程 卷2 进程间通信(第2版)(中文版)

参考链接:http://www.ibm.com/developerworks/cn/linux/l-ipc/part4/

http://www.cnblogs.com/osyun/articles/2660434.html

同步与互斥:

临界资源:

信号量是用来解决进程间的同步与互斥问题的一种进程间通信机制。

PV操作:

实现步骤:

  1. 创建信号量或获得在系统中已经存在的信号量,此时需要调用semget()函数。不同进程通过使用同一个信号量键值来获得同一个信号量;
  2. 初始化信号量,此时使用semctl()函数的IPC_SETVAL操作。使用二维信号量时,通常将信号量初始化为1;
  3. 进行信号量的PV操作,此时调用semop()函数。这一步是实现进程间的同步与互斥的核心工作部分;
  4. 如果不需要信号量,则从系统中删除它,此时调用semctl()函数的IPC_RMID操作。需要注意的是,在程序中不应该出现对已经删除的信号量的操作。

<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值