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

相关文章

来自专栏阿杜的世界

Servlet系列:目录

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

742
来自专栏云计算

基于微服务的 Abixen 平台中的领域驱动设计方法

原文地址:https://dzone.com/articles/ddd-tiers-approach-in-microservices-based-abixen

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

不喜欢SAP GUI?那试试用Eclipse进行ABAP开发吧

Jerry和SAP成都研究院一些新同事聊天时,谈到ABAP和SAP GUI这个话题。很多新同事在加入SAP成都之前,是做Java和C++开发的,习惯了Eclip...

2765
来自专栏违法举报

有人利用服务器做违法生意

举报域名www.idaikan.com,经过查询,此域名ip119.28.49.236属于腾讯云

1.4K0
来自专栏数据和云

自相矛盾:一个进程可以自成死锁么?

崔华,网名 dbsnake Oracle ACE Director,ACOUG 核心专家 编辑手记:感谢崔华授权我们独家转载其精品文章,也欢迎大家向“Oracl...

3514
来自专栏SpringBoot 核心技术

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

1634
来自专栏Gaussic

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

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

2972
来自专栏码字搬砖

sqoop连接sqlServer

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

1182
来自专栏JackieZheng

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

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

2116
来自专栏Python中文社区

Python中文社区开源项目计划:pymysql-connpool

A simple connection pool based PyMySQL. Mainly focus on multi threads or async m...

1402

扫码关注云+社区