CS/OS

[OS] 프로세스 간 통신 (IPC)

겜도리도리 2022. 8. 4. 23:59
반응형

개요

실행중인 프로세스가 다른 실행중인 프로세스들과 데이터를 공유하지 않는다면 그 프로세스는 독립적인 프로세스이고, 다른 프로세들에 영향을 주거나 받는다면 협력적인 프로세스이다.

 

협력적인 프로세스들은 데이터를 교환할 수 있어야 하므로 프로세스 간 통신 기법(InterProcess Communication, IPC)가 필요하다. 프로세스 간 통신에는 공유 메모리메시지 전달의 두 가지 모델이 있다.

공유 메모리 방식

협력 프로세스들에 의해 공유되는 메모리 영역이 구축된다. 프로세스들은 영역 안에 데이터를 읽고 쓰면서 정보를 교환한다.

공유 메모리 영역은 공유 메모리 세그먼트를 생성하는 프로세스의 주소 공간에 위치한다. 통신하고자 하는 다른 프로세스들은 세그먼트를 자신의 주소 공간에 추가해야 한다. 그런 후에 프로세스들은 공유 메모리에 읽고 씀으로써 정보를 교환할 수 있다.

 

생산자 - 소비자 문제를 해결하기 위하여 공유 메모리 방식을 사용할 수 있다.

 

프로세스간 동기화 문제가 발생하고, 이는 애플리케이션 프로그램이 알아서 해결해야 한다.

메시지 전달 방식

협력 프로세스들에 의해 교환되는 메시지를 통해 통신이 이루어진다.

충돌 회피를 고려할 필요가 없어 적은 양의 데이터를 교환하는 데 유용하다. 구현이 편하다. 시스템 콜을 사용하여 구현되므로 부가적인 시간이 필요하기 때문에 공유 메모리 방식보다는 느리다.

 

프로세스간 동기화 문제를 커널이 해결해 줄 수 있다.

반응형

'CS > OS' 카테고리의 다른 글

[OS] 프로세스  (0) 2022.08.02
[OS] 시스템 프로그램  (0) 2022.08.01
[OS] Paging  (0) 2022.06.13
[OS] VMM  (0) 2022.05.29
[OS] 커널 (마이크로 커널, 모놀리틱 커널)  (0) 2022.05.05