Computer Science/운영체제

프로세스 간 데이터 공유(IPC), 스레드 간 데이터 공유

양찬우 2021. 5. 30. 23:46
728x90

1. 프로세스 간 통신 IPC(Inter-process Communication)

Cooperating processes require an IPC mechanism
- that will allow them to exchange data
- that is, send data to and receeive data from each other.

(a)Shared memory (b)Message passing

A. 공유 메모리 shared memory

커널의 통신 서비스를 이용해 협력하는 프로세스들 사이에 공유되는 메모리 영역(shared memory)을 구축하는 방법이다. 메모리를 직접 접근하기 때문에 속도가 빠르고 사용이 편리하다.

문제점 : 프로세스A가 공유 메모리에 데이터 전달해도 프로세스B가 그것을 알 수 없다 => 별도의 동기화 기술이 필요하다.

 

B. message passing 

운영체제 커널 메모리 영역에 메시지 전달을 위한 채널을 만들어서 협력하는 프로세스들 사이에 메시지 형태로 정보를 Send/Receive 하는 방법이다. 커널에서 데이터의 주고 받음을 컨트롤할 수 있어 별도의 동기화 로직이 없어도 된다. 

하지만 커널을 통해서 데이터 주고 받기 때문에 성능 문제가 있을 수 있다.

2. 스레드 간 통신

동일 프로세스 내부의 스레드들은 공유 메모리 영역이 존재한다. 

지역변수, 전역변수를 통해 데이터 공유가 가능하다.  

728x90