Advertisement

unix编程-信号量

阅读量:

信号量的相关内容在此不再赘述,因为在先前学习操作系统课程时已对其进行过详细讲解。

我们之所以引入信号量,其核心目标在于应对多任务环境下共享资源访问过程中可能出现的同步冲突问题。

该机制的核心操作主要体现在PV操作上,这两个字母分别源自荷兰语词汇passerenvrijgeven,意为“通过”和“释放”。

LINUX 操作系统为信号量的操作提供了相应的接口函数集合,所有相关定义均包含在头文件sys/sem.h之中。

信号量创建机制

通过调用semget函数,可以实现信号量的创建操作,其函数原型如下:(其中sem为信号量semaphore的缩写形式)

复制代码
    #include <sys/types.h>
    #include <sys/ipc.h>
    #include <sys/sem.h>
    int semget(key_t key, int nsems, int semflg);
    
    
      
      
      
      
    

与先前的消息队列创建函数类似,其行为模式一致,即若目标已存在则直接访问,若不存在则进行创建操作。

参数nsems用于定义所要创建的信号量数量。

参数semflg的低9位用于设定信号量所属的用户组以及其它用户对该信号

全部评论 (0)

还没有任何评论哟~