System V 和 Posix 信号量之间的差异 [英] Differences between System V and Posix semaphores

查看:24
本文介绍了System V 和 Posix 信号量之间的差异的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

使用 System V 和 Posix 信号量之间的权衡是什么?

What are the trade-offs between using a System V and a Posix semaphore?

推荐答案

来自 奥莱利:

  • System V 和 POSIX 信号量之间的一个显着区别实现是在 System V 中你可以控制信号量的多少计数可以增加或减少;而在 POSIX 中,信号量计数增加和减少 1.
  • POSIX 信号量不允许操纵信号量权限,而 System V 信号量允许您更改权限信号量到原始的子集许可.
  • 信号量的初始化和创建是原子的(从用户的透视)在 POSIX 信号量中.
  • 从使用角度来看,System V 信号量是笨拙的,而 POSIX信号量很简单
  • POSIX 信号量(使用未命名信号量)的可扩展性很大高于 System V 信号量.在一个用户/客户端场景,其中每个用户创建她自己的服务器实例,使用POSIX会更好信号量.
  • System V 信号量,在创建信号量对象时,会创建一个数组信号量而 POSIX 信号量只创建一个.因为这功能,信号量创建(内存足迹方面)在系统中成本更高与 POSIX 相比的 V 信号量信号量.
  • 有人说 POSIX 信号量性能优于基于 System V 的信号量.
  • POSIX 信号量为进程范围的信号量提供了一种机制,而不是比系统范围的信号量.所以,如果一个开发人员忘记关闭信号量,在进程退出时信号量被清除.简单来说术语,POSIX 信号量提供了一个非持久化机制信号量.

这篇关于System V 和 Posix 信号量之间的差异的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆