운영체제(OS)
프로세스 간 통신 (IPC : Interprocess Communication) 알아보기
yoongrammer
2021. 2. 1. 17:36
728x90
목차
프로세스 간 통신 (IPC : Interprocess Communication) 알아보기
프로세스가 동시에 실행될 때 두 가지 유형으로 나눌 수 있습니다.
- 독립적 프로세스(Independent process)
- 다른 프로세스에게 영향을 주거나 받을 수 없는 프로세스입니다. 독립적 프로세스는 데이터를 공유하지 않습니다.
- 협력 프로세스(Cooperating process)
- 다른 프로세스에게 영향을 주거나 받을 수 있는 프로세스입니다. 협력 프로세스는 데이터를 공유합니다.
협력 프로세스는 다음과 같은 장점이 있습니다.
정보 공유
- 여러 사용자가 상태나 데이터를 주고받으며 정보를 공유할 수 있습니다.
계산 속도 향상
- 여러 프로세스가 동시에 작업을 병렬로 처리하기 때문에 속도를 높일 수 있습니다.
모듈성
- 시스템 기능을 별도의 프로세스 또는 스레드로 분할하여 모듈 식 방식으로 시스템을 구성할 수 있습니다.
편의
- 한 번에 여러 작업을 수행할 수 있습니다.
협력을 하기 위해서는 프로세스 간 통신 메커니즘(IPC)
이 필요합니다.
프로세스 간 통신(IPC : Interprocess Communication)
프로세스 간 통신(IPC : Interprocess Communication)은 협력 프로세스 사이에서 서로 데이터를 주고받는 방법을 말합니다.
IPC에는 기본적인 두 가지 모델이 있습니다.
- Shared memory
- Message passing
728x90
Shared memory
서로 다른 프로세스 간에 일부 주소 공간을 공유하여 데이터를 주고받는 방식입니다.
장점
- 메모리를 직접 접근하기 때문에 message pasing 모델보다 속도가 빠릅니다.
단점
- 프로세스 A가 공유 메모리에 데이터 전달해도 프로세스 B가 그것을 알 수 없습니다. 그렇기 때문에 별도의 동기화 기술이 필요합니다.
Message passing
커널 메모리 영역에 메시지 전달을 위한 채널을 만들어서 협력하는 프로세스들 사이에 메시지 형태로 정보를 Send/Receive 하는 방법입니다.
장점
- 커널에서 데이터의 주고받음을 컨트롤할 수 있어 별도의 동기화 로직이 없어도 됩니다.
단점
- 커널을 통해서 데이터 주고받기 때문에 shared memory 모델보다 느립니다.
message passing에는 두 가지 방법이 있습니다.
1. Direct Communication : 통신하려는 프로세스의 이름을 명시적으로 표시하여 메시지를 직접 전달하는 방식
2. Indirect Communication : mailbox(또는 port)를 통해 메시지 간접 전달하는 방식
728x90