- 9
- 0
- 约3.27万字
- 约 21页
- 2016-10-19 发布于贵州
- 举报
进程共享资源信量控制详细实现(源码及解释)
信号量
信号量(Semaphore)简单的说就是用来控制多个进程对共享资源使用的计数器。它是常被用作一种锁定保护机制,当某个进程对资源进行操作时阻止其他进程对该资源的访问。需要注意的是,System V中的的信号量对象实际上是信号量的集合(set),它可以包含多个信号量,控制多个共享资源。
有关的数据结构
和消息队列一样,我们在介绍他的使用前先介绍一些相关的数据结构:
sem
前提提到,信号量对象实际是多个信号量的集合。在Linux系统中,这种集合是以数组的形式实现的。数组的每个成员都是一个单独的信号量,它们在系统中是以sem结构的形式存储的。Sem的结构在Linux系统linux/sem.h中定义是这样的:
/* One semaphore structure for each semaphore in the system. */
Struct sem{
Short sempid; /*pid of last operation*/
Ushort semval; /*current value*/
Ushort semncnt; /*num procs awaiting increase in semval*/
Ushort s
原创力文档

文档评论(0)