프로세스 간의 통신(InterProcess Communication : IPC)
운영체제에서 동시에 수행되는 프로세스들은 독립적인 프로세스거나 서로 협력하는 프로세스 중 하나이다. 독립적인 프로세스는 다른 프로세스의 실행에 영향을 끼칠 수도 없고, 받을 수도 없다. 반면 협력적인 프로세스는 다른 프로세스의 실행에 영향을 끼칠 수도 있고, 받을 수도 있다. 프로세스간 협력을 해야하는 몇 가지 이유를 살펴보면 다음과 같다.
- 정보 공유
- 계산 속도 향상 : 병렬성은 계산속도를 향상시킨다.
- 모듈화 : 기능에 따라 프로세스로 나눈다.
- 편리성 : 동시에 수행하므로 편리
아무튼간에 협력하는 프로세스들은 서로간에 자료와 정보를 교환하기 위해 프로세스 간 통신 기법을 필요로 한다. 이번 장에서 다룰 내용이 바로 프로세스간 통신이다. 여러 프로세스를 함께 수행하면 편리하기 때문에 프로세스간 통신이 필요하게 된 것이라고 보면 될듯하다. 프로세스간 통신에는 기본적으로 (1)공유 메모리와 (2)메세지 전달의 두 가지 모델이 있다. 두 개의 모델에 대해 간략히 소개하고 시작하자.
(1)공유메모리
- 통신의 최대속도 및 편의성을 제공해 준다.
- 메모리 속도 수준으로 구현이 가능하다.
- 때문에 메세지 전달보다 신속하다.
(2)메세지 전달
- 충돌이 발생하지 않아야 하기 때문에, 소량의 데이터 교환에 유용하다. (커널이 개입되기 때문에 많은 시간 소요)
- 공유메모리 모델보다 구현이 쉽다.
< a : 메세지 전달 / b : 공유 메모리 >
-미완성-