15、system V 与 posix 信号量的简单比较

简介: 1、XSI system V的信号量是信号量集,可以包括多个信号灯(有个数组),每个操作可以同时操作多个信号灯 posix是单个信号灯,POSIX有名信号灯支持进程间通信,无名信号灯放在共享内存中时可以用于进程间通信。

1、XSI system V的信号量是信号量集,可以包括多个信号灯(有个数组),每个操作可以同时操作多个信号灯

posix是单个信号灯,POSIX有名信号灯支持进程间通信,无名信号灯放在共享内存中时可以用于进程间通信。

2、POSIX信号量在有些平台并没有被实现,比如:SUSE8,而SYSTEM V大多数LINUX/UNIX都已经实现。两者都可以用于进程和线程间通信。

3、POSIX有两种类型的信号量,有名信号量和无名信号量。有名信号量像system v信号量一样由一个名字标识。

4、POSIX通过sem_open单一的调用就完成了信号量的创建、初始化和权限的设置,而system v要两步。也就是说posix 信号是多线程,多进程安全的,而system v不是,可能会出现问题。

5、system V信号量通过一个int类型的值来标识自己(类似于调用open()返回的fd),而sem_open函数返回sem_t类型(长整形)作为posix信号量的标识值。

6、对于System V信号量你可以控制每次自增或是自减的信号量计数,而在Posix里面,信号量计数每次只能自增或是自减。

7、Posix无名信号量提供一种非常驻的信号量机制。

8、相关进程:

    如果进程是从一已经存在的进程创建,并最终操作这个创建进程的资源,那么这些进程被称为相关的。

参考

1http://bbs.chinaunix.net/viewthread.php?tid=631028&rpid=4251218&ordertype=0&page=1#pid4251218

2http://blog.csdn.net/yalizhi123/article/details/5812324

目录
相关文章
|
9月前
|
安全 容器
【POSIX信号量】
【POSIX信号量】
42 0
|
9月前
|
消息中间件 缓存 算法
【Linux】进程间通信——system V共享内存 | 消息队列 | 信号量
system V共享内存、system V消息队列和system V信号量的介绍。
|
11月前
|
消息中间件 存储 算法
【Linux】System V 共享内存、消息队列、信号量
【Linux】System V 共享内存、消息队列、信号量
103 0
|
12月前
|
消息中间件 安全 Linux
【Linux】system V 消息队列 | system V 信号量(简单赘述)
【Linux】system V 消息队列 | system V 信号量(简单赘述)
141 0
|
12月前
|
存储 设计模式 安全
【Linux】多线程 --- POSIX信号量+懒汉模式的线程池+其他常见锁
【Linux】多线程 --- POSIX信号量+懒汉模式的线程池+其他常见锁
18.pthread POSIX线程
(创建于 2018/3/1 上午7:11:44) 查看pthread所有方法 man -k pthread 输出结果 pthread_attr_destroy (3) - initialize and destroy thread attribute...
979 0
|
Unix
POSIX线程同步
在posix编程中,如果在不同的线程中几乎同一时间操作同一个变量的时候,就会出现不同步。 如何解决这样的问题,这里需要用到互斥量,互斥锁的概念。请看UNIX环境高级编程P299页 #include #include #include //线程1 void *thread_func1(v...
1097 0
|
Linux 计算机视觉 C++
linux C++ 多线程使用pthread_cond 条件变量
1. 背景 多线程中经常需要使用到锁(pthread_mutex_t)来完成多个线程之间的互斥操作。 但是互斥锁有一个明显到缺点: 只有两种状态,锁定和非锁定。 而条件变量则通过允许线程阻塞并等待另一个线程发送唤醒信号的方法弥补了互斥锁的不足,它常和互斥锁一起使用。
1994 0