프로세스는 시스템 전반에 걸쳐 다른 프로세스와 어떻게 통신합니까?

프로세스는 시스템 전반에 걸쳐 다른 프로세스와 어떻게 통신합니까?

다음 IPC 메커니즘에 대해 배웠습니다.

  • BSD 스타일 반이중 파이프

  • SYSV 스타일 메시지 큐

  • SYSV 스타일 세마포어 세트

  • SYSV 스타일 공유 메모리 세그먼트

  • BSD 스타일 소켓



반이중 파이프1-1 프로세스 통신, 단방향으로 사용할 수 있습니다. 연결된 모든 프로세스는 관련 상위 항목을 공유해야 합니다. pipe()프로세스 간 통신을 허용하고,시스템 내에서.


메시지 대기열(연결된 목록)은 두 프로세스 간 양방향 1-1 프로세스 통신에 사용할 수 있습니다( long mtype).시스템 내에서. 각 프로세스에 대해 대기열 항목을 읽거나 삭제하는 다른 프로세스에 msgsnd()해당하는 항목이 대기열(연결된 목록)에 생성됩니다 .msgrcv()

여기에 이미지 설명을 입력하세요.


공유 메모리다대다 프로세스 통신에 양방향으로 사용할 수 있습니다.시스템 내에서. 내부적으로는 여러 프로세스에 의해 매핑되고 공유되는 메모리 영역(세그먼트)의 맵입니다.

여기에 이미지 설명을 입력하세요.


BSD 소켓( /// socket())은 많은(bind()listen()accept()고객)-하나(섬기는 사람) 양방향 통신다양한 운영 체제에 걸친 시스템,하지만클라이언트-서버 모드.


질문:

1)

OS와 유사한 시스템에서 다대다 프로세스 통신을 위한 IPC 메커니즘(Linux에서 제공)은 무엇입니까?비클라이언트 서버모델?

2)

서로 다른 OS를 사용하는 시스템 간의 다대다 프로세스 통신을 위한 IPC 메커니즘(Linux에서 제공)은 무엇입니까?비클라이언트 서버모델?

답변1

귀하의 정의에 따라 저는 명명된 파이프를 포함하는 공유 파일 시스템의 파일을 사용하겠습니다. 9p 프로토콜은 이를 위해 특별히 설계되었으며, 프로그램은 가상 파일 시스템을 내보내고 이벤트에 반응합니다.

원래 목록에서 명명된 파이프를 제거한 이유를 잘 모르겠습니다.

관련 정보