문제

IPC와 UNIX 도메인 소켓과 명명 된 파이프의 다른 점은 무엇입니까?

나는 다양한 책에서 모호한 정의를 얻었지만 어디에서 사용해야하는지 명확하게 얻을 수 없었습니다.

도움이 되었습니까?

해결책

서로 통신하는 두 프로세스는 IPC의 형태로 간주 될 수 있습니다.

예를 들어:

  1. 이름없는 파이프 (cat file.txt | grep foo) 또는 명명 된 파이프
  2. 유닉스 도메인 소켓
  3. TCP 또는 UDP 소켓
  4. Linux의 NetLink 소켓
  5. 메모리 매핑 파일과 같은 다양한 공유 메모리 메커니즘
  6. 다음과 같은 고속 메시지 전달 Zeromq

다른 팁

QRDL이 언급 한 바와 같이, UNIX-Domain 소켓과 명명 된 파이프는 모두 IPC 메커니즘입니다.

이 두 가지 중에서 명명 된 파이프는 작업하기가 더 간단하지만 Unix-Domain 소켓보다 훨씬 덜 유연합니다. 예를 들어, 각 쓰기 프로세스에 대해 하나 이상의 읽기 과정을 기대하면 UNIX- 도메인 소켓이 필수입니다. 쓰기 과정을 실행하는 동안 읽기 과정이 중지되고 시작될 것으로 예상되면 UNIX- 도메인 소켓이 필요합니다.

IPC 의지합니다 프로세스 간 통신. UNIX 도메인 소켓과 명명 된 파이프는 Wikipedia에 설명 된 두 가지 IPC 메커니즘에 불과합니다.

질문에 집중해 주셔서 감사합니다. 업데이트 된 기능은 몇 가지 있습니다.

도메인 소켓에서 실제 통신 (데이터 교환)은 파일 시스템을 사용하지 않고 커널 메모리의 버퍼를 사용합니다. 기본적으로 전이중 모드입니다.

이름이 지정된 파이프는 액세스 포인트로 식별되며, 데이터 처리를 위해 파일 시스템에 보관 된 파일입니다. 기본적으로 명명 된 파이프는 차단 된 읽기 및 쓰기 작업을 지원합니다. 그러나 O_NONBLOCK 플래그를 열면서 명명 된 파이프가 비 블로킹 작업을 지원할 수 있습니다. 명명 된 파이프는 읽기 전용 또는 쓰기 전용을 열어야합니다. 일방 통화 채널 인 반 듀플렉스이기 때문에 읽기 쓰기를 위해 열어서는 안됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top