프로세스간 통신

Inter-process communication
프로세스 간 네트워크 통신을 통해 인터넷을 통해 많은 개인용 컴퓨터를 연결하는 그리드 컴퓨팅 시스템

프로세스간 통신(, IPC)은 컴퓨터 과학에서 프로세스가 공유 데이터를 관리하기 위해 제공하는 메커니즘입니다.일반적으로 응용프로그램은 클라이언트와 서버로 분류된 IPC를 사용할 수 있으며, 여기서 클라이언트는 데이터를 요청하고 서버는 클라이언트 요청에 응답합니다.[1]많은 애플리케이션이 분산 컴퓨팅에서 흔히 볼 수 있듯이 클라이언트와 서버 모두입니다.

IPC는 커널이 제공하는 기능의 수를 줄이는 마이크로커널나노커널의 설계 프로세스에 매우 중요합니다.그런 다음 IPC를 통해 서버와 통신함으로써 일반적인 단일 커널에 비해 통신이 크게 증가합니다.IPC 인터페이스는 일반적으로 가변 분석 프레임워크 구조를 포괄합니다.이러한 프로세스는 IPC 모델이 의존하는 다중 벡터 프로토콜 간의 호환성을 보장합니다.[2]

IPC 메커니즘은 동기식 또는 비동기식입니다.동기화 프리미티브는 비동기 IPC 메커니즘과 동기화 동작을 갖는 데 사용될 수 있습니다.

어프로치

IPC에 대한 다양한 접근 방식은 성능, 모듈화, 네트워크 대역폭지연 시간과 같은 시스템 환경 등과 같은 다양한 소프트웨어 요구 사항에 맞게 조정되었습니다.[1]

방법 짧은 설명 제공(운영 체제 또는 기타 환경)
파일 디스크에 저장된 레코드 또는 여러 프로세스에서 액세스할 수 있는 파일 서버에 의해 요구에 따라 합성된 레코드입니다. 대부분의 운영 체제
통신 파일 플랜 99P 프로토콜과 가장 유사한 1960년대 후반 IPC의 독특한 형태 다트머스 시분할 시스템
신호; 비동기 시스템 트랩 한 프로세스에서 다른 프로세스로 전송되는 시스템 메시지로, 일반적으로 데이터를 전송하는 데 사용되지 않고 파트너 프로세스를 원격으로 명령하는 데 사용됩니다. 대부분의 운영 체제
소켓 동일한 컴퓨터의 다른 프로세스 또는 네트워크의 다른 컴퓨터로 네트워크 인터페이스를 통해 전송되는 데이터입니다.스트림 지향(TCP; 소켓을 통해 쓰여진 데이터는 메시지 경계를 보존하기 위해 포맷이 필요함) 또는 드물게 메시지 지향(UDP, SCTP). 대부분의 운영 체제
유닉스 도메인 소켓 인터넷 소켓과 유사하지만 모든 통신은 커널 내에서 이루어집니다.도메인 소켓은 파일 시스템을 주소 공간으로 사용합니다.프로세스는 도메인 소켓을 아이노드로 참조하며, 여러 프로세스가 하나의 소켓과 통신할 수 있습니다. 모든 POSIX 운영 체제 및 Windows 10[3]
메시지 큐 소켓과 유사하지만 일반적으로 메시지 경계를 보존하는 데이터 스트림입니다.일반적으로 운영 체제에 의해 구현되는 이 시스템은 여러 프로세스가 서로 직접 연결되지 않고 메시지 큐에 읽고 쓸 수 있도록 합니다. 대부분의 운영 체제
익명 파이프 표준 입력출력을 이용한 단방향 데이터 채널.파이프의 쓰기 끝에 기록된 데이터는 파이프의 읽기 끝에서 읽을 때까지 운영 체제에 의해 버퍼링됩니다.프로세스 간 양방향 통신은 "방향"이 반대인 두 개의 파이프를 사용함으로써 이루어질 수 있습니다. 모든 POSIX 시스템, Windows
명명관 파일처럼 취급되는 파이프.익명 파이프와 같이 표준 입력과 출력을 사용하는 대신 프로세스는 일반 파일인 것처럼 명명된 파이프에 쓰고 이를 읽습니다. 모든 POSIX 시스템, Windows, AmigaOS 2.0+
공유메모리 여러 프로세스에 동일한 메모리 블록에 액세스할 수 있게 되면 프로세스 간에 서로 통신할 수 있는 공유 버퍼가 생성됩니다. 모든 POSIX 시스템, Windows
메시지 전달 메시지 큐 및/또는 비OS 관리 채널을 사용하여 여러 프로그램이 통신할 수 있도록 합니다.동시성 모델에서 일반적으로 사용됩니다. LPC, RPC, RMI, MPI 패러다임, Java RMI, CORBA, COM, DDS, MSMQ, MailSlots, QNX 등에서 사용
메모리 매핑 파일 RAM에 매핑된 파일로 스트림에 출력하지 않고 메모리 주소를 직접 변경하여 수정할 수 있습니다.이는 표준 파일과 동일한 이점을 공유합니다. 모든 POSIX 시스템, Windows

적용들

원격 프로시저 호출 인터페이스

플랫폼 통신 스택

IPC 메커니즘을 사용하지만 IPC 자체를 구현하지 않는 메시지 및 정보 시스템은 다음과 같습니다.

운영체제 통신 스택

플랫폼 또는 프로그래밍 언어별 API는 다음과 같습니다.

분산 객체 모델

IPC를 사용하지만 자체적으로 구현하지 않는 플랫폼 또는 프로그래밍 언어 특정 API는 다음과 같습니다.

참고 항목

참고문헌

  1. ^ a b "Interprocess Communications". Microsoft.
  2. ^ Camurati, P (1993). "Inter-process communications for system-level design". International Workshop on Hardware/Software Codesign.
  3. ^ "Windows/WSL Interop with AF_UNIX". Microsoft. 7 February 2018. Retrieved 25 May 2018.
  4. ^ "동시 프로그래밍 - 프로세스통신"
  5. ^ "IpcMain Electron".

외부 링크