programing tip

System V IPC 대 POSIX IPC

itbloger 2020. 10. 17. 10:03
반응형

System V IPC 대 POSIX IPC


  1. 의 차이점은 무엇입니까 System V IPC와는 POSIX IPC?
  2. 두 가지 표준이있는 이유는 무엇입니까?
  3. 사용할 IPC 기능을 결정하는 방법은 무엇입니까?

둘 다 동일한 기본 도구 (세마포어, 공유 메모리 및 메시지 큐)를 가지고 있습니다. 이러한 도구에 대해 약간 다른 인터페이스를 제공하지만 기본 개념은 동일합니다. 주목할만한 차이점 중 하나는 POSIX가 Sys V가 제공하지 않는 메시지 대기열에 대한 일부 알림 기능을 제공한다는 것입니다. (참조 mq_notify())

Sys V IPC는 오랫동안 사용되어 왔으며 몇 가지 실질적인 의미가 있습니다.

첫째, POSIX IPC는 덜 널리 구현됩니다. 나는 POSIX IPC를위한 파이썬 래퍼를 작성했고 그 문서에는 다양한 플랫폼에서 POSIX IPC 구현에 대해 알고있는 내용이 나열되어 있습니다 .

해당 문서에 나열된 모든 플랫폼에서 Sys V IPC는 AFAIK를 완전히 구현 한 반면 POSIX IPC는 그렇지 않습니다.

상대적 연령의 두 번째 의미는 POSIX IPC가 Sys V IPC가 한동안 사용 된 후에 설계되었다는 것입니다. 따라서 POSIX API 설계자는 Sys V API의 강점과 약점을 배울 수있었습니다. 결과적으로 POSIX API는 IMO를 더 간단하고 사용하기 쉬우 며 Sys V API보다 권장합니다.

두 가지를 비교하기 위해 성능 테스트를 실행 한 적이 없습니다. 이전 API (Sys V)가 성능 조정에 더 많은 시간을 할애했을 것이라고 생각하지만, 이는 물론 실제 테스트를 대체 할 수없는 추측 일뿐입니다.

두 가지 표준이있는 이유는 POSIX가 Sys V 표준의 개선이라고 생각했기 때문에 표준을 만들었습니다. 그러나 모두가 POSIX IPC가 더 낫다는 데 동의한다면 많은 많은 프로그램이 여전히 Sys V IPC를 사용하고 있으며 모두 POSIX IPC로 이식하는 데 몇 년이 걸릴 것입니다. 실제로는 노력할 가치가 없으므로 내일 현재 모든 새로운 코드가 POSIX IPC를 사용하더라도 Sys V IPC는 수년 동안 계속 유지 될 것입니다.

무엇을 하려는지에 대해 더 많이 알지 않고는 어떤 것을 사용해야하는지 말할 수 없지만 여기에있는 답변은 스스로 결정할 수있는 충분한 정보를 제공해야합니다.


  1. 가장 큰 차이점은 모든 POSIX IPC는 스레드로부터 안전하지만 대부분의 SysV IPC는 [ 1 ] 이 아니라는 것 입니다.
  2. 유닉스 전쟁 때문에 [ 2 ]. 단일 UNIX 사양 (SUS) [ 3 ], POSIX 일명 유닉스 기반 시스템에 인터페이스를 표준화하기 위해 만들어졌다.
  3. POSIX를 원할 것입니다. 전적으로 귀하의 요구 사항에 따라 다릅니다.

System V IPC는 이전 버전이고 POSIX IPC는 최신 버전입니다. 그러나 일부 측면에는 약간의 차이가 있습니다. 항상 Posix가 System V보다 나은 것은 아닙니다.

  1. Posix의 세마포어, 큐 및 공유 메모리에는 Ascii 문자열 이름이 있지만 System V에서는 정수 번호로 제공됩니다.

  2. System V 세마포어는 프로세스가 종료되면 자동으로 해제되도록합니다 (semop SEM_UNDO 플래그). Posix에는 그런 것이 없습니다.

  3. Linux와 FreeBSD에서는 posix 큐의 큰 장점이 있습니다. mq_open이 제공하는 핸들러는 기본적으로 폴링 /에 폴링 / 선택 / kqueued 할 수있는 파일 디스크립터이기 때문입니다.


  • Systen V와 POSIX IPC는 서로 다르지만 동일한 구현과 관련이 있습니다.

"일반적으로 약어로 SysV (일반적으로"System Five "로 발음 됨)로 발음되는 Unix System V는 Unix 운영 체제의 최초 상용 버전 중 하나입니다. 원래 American Telephone & Telegraph (AT & T)에서 개발했습니다. 1983 년에 처음 출시되었습니다. "

-위키 백과

"POSIX 또는"Portable Operating System Interface [for Unix] "는 IEEE에서 API (응용 프로그래밍 인터페이스)를 정의하기 위해 지정한 관련 표준 제품군의 이름입니다."

-위키 백과

  • Systm V는 더 일찍 거기에있었습니다. POSIX는 IEEE의 표준화 이니셔티브에서 발전했습니다.

  • GNU / Linux는 partiallyPOSIX를 준수합니다. 사용할 OS는이 IPC를 사용하는 OS에 따라 다릅니다. 대부분의 공급 업체는 POSIX.

Unix 네트워크 프로그래밍 : Richard Stevens의 Interprocess Communications v. 2 는이 두 가지를 잘 살펴 봅니다.

유닉스 네트워크 프로그래밍

참고 URL : https://stackoverflow.com/questions/4582968/system-v-ipc-vs-posix-ipc

반응형