【问题标题】:why semaphore is considered as a IPC? [duplicate]为什么信号量被认为是IPC? [复制]
【发布时间】:2014-03-04 14:10:13
【问题描述】:

在所有书籍中,信号量都列在 IPC 机制下吗? 为什么会这样? 因为我知道信号量是用来同步的。

我在这个论坛上读过一个类似的问题,但这并没有消除疑问。

【问题讨论】:

  • "Semaphore 用于不同进程或线程之间的同步",这就是为什么它被视为 IPC。
  • 但是不方便通过它传输数据,对吧?只是因为两个或多个进程为了同步需要信号量,所以才叫IPC?
  • IPC代表'Inter-Process Communication','Communication'是指在进程之间传递信息,什么时候做一些动作(同步)就是要传递的信息进程之间。
  • @VirendraKumar 了解Concurrency control mechanism 使用信号量变量是一种技术(最简单),您可以使用它来控制协同进程的执行
  • 你读过什么书? 全部?

标签: linux ipc semaphore


【解决方案1】:

man page for sem_overview 告诉(说明如何操作):

POSIX 信号量允许进程和线程同步它们的操作。

因此信号量可用于进程间通信。

【讨论】:

    【解决方案2】:

    在linux中基本上有两种类型的信号量

    named semaphores
    unnamed semaphores
    

    我认为这里未命名的信号量基本上以 IPC 机制和锁定机制而闻名。命名的信号量仅用于锁定机制

    这个link 很有用

    【讨论】:

    • 你是对的,但是当我们在Linux书籍中阅读IPC时,这个主题是在同步和IPC下给出的,所以我问
    • @VirendraKumar 我又做了一些更正检查
    【解决方案3】:

    我认为原因是因为命名信号量。
    有两种类型的信号量,命名的和未命名的。

    通常命名信号量用于进程同步,而未命名信号量用于线程同步。

    This Multithreaded Programming Guide

    命名信号量类似于进程共享信号量,除了命名信号量 信号量使用路径名而不是 pshared 值引用。 命名信号量可由多个进程共享。


    *可以在进程之间共享未命名的信号量(例如与子进程),但这并不常见。

    【讨论】:

      猜你喜欢
      • 2011-01-15
      • 1970-01-01
      • 2012-09-27
      • 2016-03-13
      • 2014-11-05
      • 1970-01-01
      • 1970-01-01
      • 2014-03-26
      • 2011-08-13
      相关资源
      最近更新 更多