본문 바로가기
CS Study

[운영체제] 멀티 프로세스 환경에서 프로세스간의 데이터 이동

by 창브로 2024. 9. 23.
728x90

프로세스끼리는 데이터 공유를 하고있지 않음

그러므로 데이터를 주고 받기 위해 IPC를 사용한다.

크게 공유메모리 방식과 메시지 전달방식으로 나뉨

 

IPC란?
프로세스는 각자 자신만의 독립적인 주소 공간을 가지는데 다른 프로세스가 이 주소공간을 참조할수 없다.

이때 프로세스끼리 데이터를 주고 받을수 있게 도와주는게 IPC
크게 공유메모리와 메시지 전달방식으로 나뉨

 

공유메모리

- 프로세스들이 주소 공간 일부 공유

- 공유한 메모리 영역에 읽기/쓰기를 통해서 통신

- 커널에 공유 메모리 할당을 요청

- 공유 메모리가 구축되면 커널 도움 없이 접근이 가능

- 빠르다는 장점 하지만 충돌 회피 해야함

 

메시지 전달방식

- system call(프로세스가 커널에 요청)을 사용하여 구현

- 커널을 통해 send와 receive를 제공 받음

- 프로세스1이 보내고 싶은 메시지를 커널에보내면 프로세스2에게 커널이 데이터를 보내줌

- 속도가 조금 느리지만 충돌을 회피할 필요가 없음 (적은양의 데이터를 교환하는데 유용)