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 条评论
登录 后参与评论

相关文章

来自专栏Java Web

Spring学习(1)——快速入门

认识 Spring 框架 Spring 框架是 Java 应用最广的框架,它的成功来源于理念,而不是技术本身,它的理念包括 IoC (Inversion of ...

4935
来自专栏Java帮帮-微信公众号-技术文章全总结

8 个最好的 Java RESTful 框架

过去的每一年,涌现出越来越多的Java框架。就像JavaScript,每个人都认为他们知道一个好的框架的功能应该是怎么样的。连我的老祖母现在也使用 一个我从来没...

2885
来自专栏阿杜的世界

Servlet系列:目录

这个系列教程来自《Head First Servlets & JSP》一书,该书讲得深入浅出。在阅读过程中深感好记心不如烂笔头,于是动手总结了该书的脑图和一系列...

672
来自专栏码字搬砖

sqoop连接sqlServer

背景:最近公司需要把sqlServer的数据导入到hive中方便数据组的同事进行分析。国内资料相对老套,很多资料针对于sqoop1.3及其以下的,所以记录以下,...

802
来自专栏JackieZheng

Spring实战——无需一行xml配置实现自动化注入

  已经想不起来上一次买技术相关的书是什么时候了,一直以来都习惯性的下载一份电子档看看。显然,如果不是基于强烈的需求或强大的动力鞭策下,大部分的书籍也都只是蜻蜓...

2026
来自专栏Hadoop实操

如何使用Flume准实时建立Solr的全文索引

2752
来自专栏H2Cloud

linux下IPC latency 进程间通讯延迟测试结果

详文请见  VLoveIYhttp://ffown.sinaapp.com/?p=40 CPU name : Intel(R) Xeon(R) CPU E540...

3584
来自专栏SpringBoot 核心技术

第三十一章:SpringBoot配置文件application.properties参数详解

1524
来自专栏Albert陈凯

2018-03-14 IntelliJ Idea解决Could not autowire. No beans of 'xxx' type found错误提示

Mybatis 的Dao Idea检查的时候报错,看着这么多的红杠杠,简直要逼死强迫症啊。 Could not autowire. No beans of '...

4524
来自专栏Gaussic

Spring In Action 4(Spring实战第四版)翻译与理解 第一章 付诸行动

        这几天笔者阅读了一下Spring In Action 4,感觉还是有一定的收获的。在之前的项目上,只会简单地使用Spring MVC,对于很多概...

2162

扫码关注云+社区