꾸준한 개발자

계속적인 성장을 추구하는 개발자입니다. 꾸준함을 추구합니다.

계속 쓰는 개발 노트

운영체제 (OS)

프로세스간 커뮤니케이션

gold_dragon 2021. 4. 19. 20:56

왜 필요할까?

프로세스들이 서로의 공간에 쉽게 접근하기 어렵습니다. 즉, 다른 프로세스의 주소에 접근하는 방법은 없습니다. 이에 프로세스간 통신을 할 수 있도록 했는데 이러한 기법을 IPC (Inter Process Communication)라 합니다. 프로세스간 통신은 성능을 높이기 위해 여러 프로세스를 동시에 실행할 때 필요합니다. 또한 웹서버로 요청이 올 때마다 프로세스를 따로 만들어서 응답할 때 상태값을 공유할 때도 필요합니다.

 

코드 간의 접근은 안되지만 저장매체는 공유가 가능합니다. 이러한 것도 IPC 기법이 될 수 있습니다. 하지만 파일을 통한 IPC 기법은 한계가 있습니다. file을 사용하면, 실시간으로 직접 원하는 프로세스에 데이터 전달이 어렵습니다.

IPC 기법 종류

1. file 사용

2. Message Queue

3. Shared Memory

4. Pipe

5. Signal

6. Semaphore

7. Socket

등이 있습니다.

2번 부터는 모두 커널 공간을 사용합니다.

정리

여러 프로세스 동시 실행을 통한 성능 개선, 복잡한 프로그램을 위해 프로세스간 통신이 필요합니다.

프로세스간 공간은 완전 분리돼 있습니다.

프로세스간 통신을 위한 특별한 기법이 IPC입니다.

대부분의 IPC 기법은 커널 공간을 활용하는 것입니다. -> 커널 공간은 공유하기 때문