信号量通讯机制

信号量通讯机制主要用来实现进程的同步,防止进程并发的访问共享资源。当同步访问一个资源时,能够设置一个信号量,其初始值设可用资源的数目。每当进程想要获取资源时,都要检测相关的信号量。信号量大于0代表资源可用,当获取对资源的访问权限时,将信号量减一。为保证程序运行的正确性,对信号量的检测和减操做都必须是原子性的。若是检测到信号量值为0,则代表资源不可用看,请求进程必须等待;当一个进程结束时,对与该进程对应的信号量加一,代表此进程归还对此资源的使用。最简单的信号量为二元信号量,例如对打印机的占用,任何一个时刻只有一个进程打印文档,信号量为1表明打印机可用,为0表明不可用。数组

咱们一般所说的建立一个信号量实际上建立了一个信号量集合,在这个信号量集合中可能会有多个信号量,表示的数据结构为:数据结构

信号量数据集合struct semid_ds : 在此数据结构中定义了整个信号量集合的基本属性,如访问的权限。并发

信号量struct sem{ int semval ; int sempid; } :在信号量集合中使用一个指针,指向一个由信号量组成的数组。指针

相关文章
相关标签/搜索