하루에 한 문제

프로세스 간 통신 (IPC, Inter Process Communication) 본문

CS/운영체제

프로세스 간 통신 (IPC, Inter Process Communication)

dkwjdi 2021. 5. 18. 00:20

IPC (Inter-Process Communication)

  • 프로세스간 통신을 하기 위한 방법
  • 프로세스는 본래 독립적이나, 상황에 따라 프로세스 끼리의 협력이 필요한 경우가 있다. 이런 경우 프로세스 간 자원/데이터 공유가 필요한데, 이때 필요한 것이 바로 IPC이다

 

 

IPC가 필요한 이유

1. 정보공유 : 여러 사용자가 동일한 정보를 필요로 할 수 있다.

2. 계산 가속화 : 특정 작업을 빠르게 실행하기 위해 해당 작업을 부분 작업으로 나누어 병렬로 실행하게 한다.

3. 모듈성 :  특정한 시스템 기능을 별도로 프로세스(스레드)로 구분해 모듈식 형태로 시스템을 구성할 수 있다.

4. 편의성 : 여러 사용자들이 동시에 많은 작업을 수행할 수 있다.

 

Messaging passing(메세지 교환) VS Shared memory(데이터 공유)

1. Messagin passing(메세지 교환)

  • 커널(OS)가 memory protection을 위해 대리 전달해주는 방식이다.
  • 이 방법은 안전하고 동기화의 문제는 없지만 성능이 떨어진다는 단점을 가지고 있다!
  • Message passing은 direct communicationindirect communication방법으로 나뉜다.

2. shared memory

  • 두 프로세스간의 공유된 메모리를 생성 후 이용한다.
  • 성능이 좋지만 동기화 문제가 발생할 수 있다.

 

Messagin passing(메세지 교환)

프로세스 A가 커널로 메세지를 보내면 커널이 B에게 보내주는 방법이다!

direct commnunication은 커널에 메시지를 직접 주고 그걸 커널이 B에게 메시지를 직접 전달하는 것이고

indirect communication은 A가 '커널에 ABC라는 메시지 박스에 넣어둘 테니까 니가 가서 직접봐'하면 B가 그 ABC라는 메시지 박스에 가서 읽어오는 방식을 말한다.

둘 다 커널을 이용한 Message passing이지만 커널이 직접 주냐 안주냐로 방법이 나뉘는 것이다.

 

단점 : 오버헤드가 크다.

 

 

<Shared memory>

위의 방식과 다르게 Process A와 B가 모두 읽고 쓸 수 있는 메모리를 만들어주고 거기서 통신을 하게 하는 방법이다.

커널이 직접 관리하며 전달해주는 형식이 아니기 때문에 당연히 성능면에서는 우수하다.

 

단점 : 동기화 문제

 

 

참고

https://rebas.kr/854

https://apphappy.tistory.com/118

https://jhnyang.tistory.com/category/%EB%B3%84%EA%B1%B8%EB%8B%A4%ED%95%98%EB%8A%94%20IT/%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C%20OS?page=6

'CS > 운영체제' 카테고리의 다른 글

스케줄러 (scheduler) + Job,Ready,Device Queue란?  (0) 2021.05.18
멀티 프로세스와 멀티 스레드  (0) 2021.05.18
Thread(쓰레드)란?  (0) 2021.05.17
프로세스  (0) 2021.05.17
캐시  (0) 2021.05.17
Comments