IPC 란
IPC는 프로세스 간 통신(Inter-Process Communication)의 약자로, 컴퓨터 시스템에서 여러 프로세스가 서로 통신할 수 있도록 하는 방법과 메커니즘을 의미한다. IPC를 통해 서로 다른 프로세스가 정보를 공유하고, 활동을 동기화하며, 운영을 조정하여 공통의 목표를 달성할 수 있습니다.
IPC 방법
- 공유 메모리: 프로세스는 메모리의 일부를 공유할 수 있으므로 동일한 메모리 위치에 읽고 쓰는 방식으로 정보를 교환할 수 있습니다.
- 메시지 전달: 프로세스는 통신 채널을 통해 메시지를 주고받음으로써 통신할 수 있습니다.
- 파이프 및 FIFO: 프로세스는 공통 파일 설명자에 쓰고 읽음으로써 통신할 수 있습니다.
- 소켓: 프로세스는 서로 다른 컴퓨터 간의 통신을 위한 표준 인터페이스를 제공하는 소켓을 사용하여 네트워크를 통해 통신할 수 있습니다.
IPC는 운영 체제에서 중요한 개념이며 현대 컴퓨터 시스템에서 서로 다른 프로세스 간의 통신을 가능하게 하고 시스템 리소스의 효율적인 사용을 용이하게 하기 위해 광범위하게 사용된다.
RPC(Remote Procedure Call) 란
RPC(원격 프로시저 호출)는 한 프로그램이 다른 컴퓨터나 네트워크에 있는 다른 프로그램에 서비스나 데이터를 요청하고 응답을 받을 수 있도록 하는 프로토콜입니다. RPC는 클라이언트 프로그램이 서버 프로그램에 요청하고 서버 프로그램이 요청을 처리하고 응답을 반환하는 클라이언트-서버 아키텍처에서 사용됩니다.
RPC는 함수 또는 메소드 호출의 매개변수를 네트워크를 통해 독립된 외부 프로그램으로 전송되는 메시지로 캡슐화하여 작동합니다. 독립된 외부 프로그램은 메시지를 수신하고 매개변수의 압축을 풀고 제공된 매개변수로 함수 또는 메소드를 실행합니다. 그런 다음 결과는 응답 메시지로 호출자 프로그램에 반환됩니다.
RPC는 프로그램이 서로 다른 하드웨어 및 소프트웨어 플랫폼 간에 통신할 수 있도록 하며 프로그램 간의 통신 세부 사항을 추상화하는 방법을 제공합니다. RPC는 분산 시스템, 클라이언트-서버 응용 프로그램 및 웹 서비스와 같은 많은 응용 프로그램에서 사용할 수 있습니다. RPC 프로토콜의 예로는 RPC(원격 프로시저 호출 프로토콜), SOAP(단순 개체 액세스 프로토콜) 및 REST(Representational State Transfer)가 있습니다.
IPC RPC 차이점
IPC(Inter-Process Communication)와 RPC(Remote Procedure Call)는 모두 분산 컴퓨팅 환경에서 프로세스가 서로 통신할 수 있도록 하는 방법입니다. 그러나 이 둘 사이에는 몇 가지 주요 차이점이 있습니다:
IPC:
IPC는 분산 시스템에서 동일한 시스템 또는 노드에서 실행되는 프로세스 간의 통신을 위한 메커니즘입니다. 프로세스가 데이터를 공유하고 작업을 동기화할 수 있습니다. IPC는 공유 메모리, 파이프, 메시지 전달 등과 같은 여러 기술을 사용하여 구현할 수 있습니다. IPC의 주요 목표는 프로세스가 동일한 시스템 내에서 통신하고 작업을 조정할 수 있는 메커니즘을 제공하는 것입니다.
RPC:
반면, RPC는 분산 시스템에서 서로 다른 시스템이나 노드에서 실행되는 프로세스 간의 통신을 위한 메커니즘입니다. RPC는 클라이언트 프로세스가 원격 서버 프로세스의 함수나 프로시저를 호출하고 마치 함수가 로컬에서 실행된 것처럼 결과를 수신할 수 있도록 합니다. RPC의 주요 목표는 원격 프로세스가 네트워크를 통해 상호 작용할 수 있도록 간단하고 투명한 방법을 제공하는 것입니다.
요약하자면, IPC는 동일한 시스템 내의 프로세스 간 통신에 사용되는 반면, RPC는 네트워크를 통해 서로 다른 시스템 내의 프로세스 간 통신에 사용된다.
'개발 > Android Studio' 카테고리의 다른 글
[Android Studio] 부팅시 service 구동하기 (0) | 2023.03.13 |
---|---|
[Android Studio] Context, getApplicationContext 란 (0) | 2023.03.13 |
[Android Studio] parcel, marshalling 이란 (0) | 2023.03.06 |
[Android Studio] Service 란, Service 생명주기 (0) | 2023.03.03 |
[Android Studio] Activity란, Activity생명주기 (0) | 2023.03.03 |