IPC
- IPC(Inter Process Communication)는 프로세스 간의 상호 소통을 의미한다.
- 프로세스간의 상호 소통은 작업 수행의 중복과 같은 에러가 발생하지 않도록 방지하는 중요한 요소이다.
- ex) 프린트를 하고자 할 때 여러 프로세스가 동시에 프린터에 접근하면 프린트가 되지 않는 문제가 발생할 수 있다. - 이런 문제를 Race Condition이라고 한다.
- 메시지를 전달하는 방법(Message Passing) : 커널을 통해 메시지 전달
- 주소 공간을 공유하는 방법(Shared Memory) : 서로 다른 프로세스 간에도 일부 주소 공간을 공유하게 하는 Shared Memory 매커니즘이 있음
- Thread : Thread는 사실상 하나의 프로세스이므로 프로세스 간 협력으로 보기는 어렵지만 동일한 process를 구성하는 thread들 간에는 주소 공간을 공유하므로 협력이 가능
이러한 IPC 통신에서 프로세스 간 데이터를 동기화하고 보호하기 위해 세마포어(Semaphore)와 뮤텍스(Mutex)를 사용한다. (공유된 자원에 한번에 하나의 프로세스만 접근시킬 때)