IPC- Posix与system v

 一、功能上的区别

posix和system v有什么区别/?现在在应用时应用那一标准 浮云484212 | 浏览 243 次 2014-11-06 10:36 2014-11-19 22:36 最佳答案 它们是有关信号量的两组程序设计接口函数。POSIX信号量来源于POSIX技术规范的实时扩展方案(POSIX Realtime Extension),常用于线程;system v信号量,常用于进程的同步。这两者非常相近,但它们使用的函数调用各不相同。前一种的头文件为semaphore.h,函数调用为sem_init(),sem_wait(),sem_post(),sem_destory()等等。后一种头文件为<sys/sem.h>,函数调用为semctl(),semget(),semop()等函数。 这也是我在论坛里看到的,希望对你有所帮助。

POSIX sem 实现是基于futex的。 在无竞争条件下,不需要陷入内核,执行系统调用, 其实现是非常轻量级的。 System V sem 则不同,无论有无竞争都要执行系统调用,因此性能落了下风。

POSIX sem 由于没有事事烦扰内核, 所以内核也无法帮他记录 sem_adj ,即POSIX sem 并没有UNDO(回滚)功能。

作者:Bean Lee 链接:https://www.zhihu.com/question/35169528/answer/69119464 来源:知乎

 二、来源上的区别

(一)POSIX介绍 

      POSIX(Portable Operating System Interface)可移植操作系统接口,这样的简写完全是为了和UNIX读起来更像而已。它是由IEEE(电子和电气工程师协会)开发,由ANSI(美国国家标准化学会)和OSI(国际标准化组织)两个机构标准化。由于早起各厂家对UNIX的开发各自为政,互相竞争,造成UNIX版本混乱,给软件移植造成困难,不利于UNIX长期发展,基于此,IEEE开发了POSIX,在源码级别定义了一组UNIX操作系统接口。

      目前POSIX已经成为类UNIX(Unix-like)操作系统编程的通用接口,极大方便了类UNIX环境下应用程序源码级的可移植性。Glibc(GNU C Library),即C运行库,是Linux系统中最底层的API,它就是完全按照POSIX标准编写的。

POSIX版本 

  1997年之前版本 

    POSIX.1(IEEE Std 1003.1-1988): Core Services 

    POSIX.1b (IEEE Std 1003.1b-1993): Real-time extensions

    POSIX.1c(IEEE Std 1003.1c-1995) :Threads extensions  

    POSIX.2(IEEE Std 1003.2-1992) :Shell and Utilities

  1997年之后的版本 

    POSIX.1-2001( IEEE Std 1003.1-2001) 

    POSIX.1-2004 (with two TCs)(IEEE Std 1003.1-2004 

    POSIX.1-2008 (with one TC))( IEEE Std 1003.1, 2013)

Wiki:https://en.wikipedia.org/wiki/POSIX  

(二)System V介绍

     System V(System Five),是Unix操作系统众多版本中的一支,就是当年UNIX厂家混战中,比较强大的一个诸侯王,最初由 AT&T 开发,在1983年第一次发布。一共发行了4个 System V 的主要版本:1、2、3 和 4,比如:System V Release 4,或者称为SVR4,是最成功的版本,比如现今依然使用的操作系统SUN Solaris 和 SCO UnixWare,都基于 System V Release 4的,SUN公司我想大家都知道吧,依然是现在商用服务器操作系统重要提供商,但是我们常用的Linux操作系统并不是基于此的,但是这里要感谢POSIX这样标准化的努力,是它兼容了绝大部分System V的规格,减少了各类操作系统之间移植的麻烦。 

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏HBStream流媒体与音视频技术

MP4大文件虚拟HLS分片技术,避免服务器大量文件碎片

对于大家经常见到和使用到的普通MP4来说,作为电影、电视文件的存储容器,是很好的,不过对于流媒体点播来说,最大的缺点就是它的媒体信息和关键帧索引都集中存放在mo...

49712
来自专栏腾讯技术工程官方号的专栏

让大象起舞:HTTPS 计算性能优化

HTTPS 很安全,与此同时却又要消耗非常多的CPU资源,STGW 针对 nginx 和 openssl 进行了大量优化,用以提升 HTTPS 的计算性能和访问...

1.7K2
来自专栏ThoughtWorks

Serverless实战:打造个人阅读追踪系统

阅读习惯和个人知识管理体系 进入互联网时代,知识的获取成本变得前所未有的低廉,但是无论再好的知识,若是没有对个人产生价值的话,那也只不过是一种信息噪音而已。 我...

4176
来自专栏SEO

「知识」你不知道的百度网页分块权重评估方法

2556
来自专栏Jerry的SAP技术分享

微信程序开发系列教程(二)微信订阅号+人工智能问答服务

我的前一篇文章微信程序开发系列教程(一)开发环境搭建 已经介绍了微信服务器的开发环境搭建。本文作为开发系列的第二篇文章,介绍如何给您的微信订阅号开发一个最简单的...

944
来自专栏开源优测

RFC2964 超文本传输协议(HTTP)状态管理的应用

1004
来自专栏张善友的专栏

[.NET网格计算框架] Alchemi

Alchemi [.NET网格计算框架] 是 一个以使用简易为目的的Windows下的网格计算框架。它提供了:a)开发网格软件的编程环境 和 b)建造网格和运行...

1758
来自专栏IMWeb前端团队

微信聊天图片大小生成算法~

本文作者:IMWeb DeepKolos 原文出处:IMWeb社区 未经同意,禁止转载 今天仿微信聊天时候的图片大小, 描了十几个点 , 用了半个早上...

1989
来自专栏生信技能树

【直播】我的基因组74:快速给测序reads比对到物种

其实这一讲只是把未比对到人类基因组的序列快速比对到细菌基因组,并得到各个种类的菌的占比。 在这之前我们讲的是对几亿条reads定位到指定参考基因组的具体某个坐标...

34413
来自专栏IMWeb前端团队

作为一个前端,可以如何机智地弄坏一台电脑?

有人说,前端的界限就在浏览器那儿。 无论你触发了多少bug,最多导致浏览器崩溃,对系统影响不到哪去。 这就像二次元各种炫酷的毁灭世界,都不会导致三次元的世界末日...

2070

扫描关注云+社区