본문 바로가기
지식 정리

프로세스 간 통신

by Hyeongjun_Ham 2024. 1. 19.

프로세스 간 통신

 

프로세스 간 의사소통하는 것을 IPC (Interprocess Communication)라고 한다.

컴퓨터 시스템에서 실행 중인 두 개 이상의 프로세스 간에 정보를 교환하고 상호 작용하는 메커니즘을 의미한다.

다수의 프로세스가 동시에 실행되는 다중 프로세스 환경에서 프로세스 간 통신은 중요한 개념이며, 이를 통해 프로세스들은 서로 협력하여 작업을 수행하거나 데이터를 공유할 수 있다.


프로세스 간 통신의 주요 목적은 다음과 같다.

 

  • 1. 데이터 전송
    • 프로세스들은 데이터를 주고받아야 할 때 통신을 사용한다.
    • 이를 통해 프로세스 간에 정보를 교환하고 업무를 협력적으로 수행할 수 있다.
  • 2. 동기화
    • 프로세스들 간에 작업을 진행을 조절하기 위해 동기화 메커니즘이 필요하다.
    • 하나의 프로세스가 다른 프로세스의 작업을 기다리거나, 작업을 동시에 실행하지 않도록 할 수 있다.
  • 3. 프로세스 간 제어
    • 하나의 프로세스가 다른 프로세스를 제어하거나 상태를 확인해야 할 때, 통신을 사용하여 제어 명령이나 상태 정보를 전달할 수 있다.

 

일반적으로 사용되는 프로세스 간 통신의 주요 방법을 간단하게 알아보자.

 

메모리 맵

  • 1. 파일을 이용한 통신 (메모리 맵)
    • 파일을 사용하여 데이터를 공유하고 교환하는 방식이다.
    • 파일을 가상 메모리 주소 공간에 매핑함으로써 파일을 메모리처럼 다룰 수 있게 해 준다.
    • 하나의 프로세스는 파일에 데이터를 쓰고, 다른 프로세스는 해당 파일에서 데이터를 읽어온다.

 

파이프

  • 2. 파이프 (Pipe)
    • 두 프로세스 간에 단방향 또는 양방향 통신 파이프를 생성하여 데이터를 전송하는 방식이다.
    • 주로 부모 프로세스와 자식 프로세스 간 통신에 사용된다.

 

메시지 큐

  • 3. 메시지 큐 (Message Queue)
    • 프로세스 간에 메시지를 교환하기 위한 큐를 사용하는 방식이다.
    • 메시지를 큐에 넣어두고, 다른 프로세스는 해당 큐에서 메시지를 꺼내어 사용한다.

 

공유 메모리

  • 4. 공유 메모리 (Shared Memory)
    • 여러 프로세스가 동일한 메모리 영역을 공유하여 데이터를 공유하는 방식이다.
    • 데이터를 직접 읽고 쓸 수 있어 빠른 속도를 제공한다.

 

소켓

 

  • 5. 소켓 (Socket)
    • 네트워크 소켓을 이용하여 프로세스 간 통신을 구현하는 방식이다.
    • 로컬 또는 원격 프로세스 간에 통신이 가능하며, 네트워크 통신에 사용되는 일반적인 방법 중 하나이다.

 

 

'지식 정리' 카테고리의 다른 글

운영체제에서의 입출력(I/O) 관리  (0) 2024.01.22
스레드와 동시성  (0) 2024.01.17
프로세스란?  (0) 2024.01.15
OS의 일반적인 작동 원리  (0) 2024.01.12
호스팅이란?  (0) 2024.01.11