프로세스간 통신의 개념

프로세스가 다른 프로세스와 데이터를 주고받는 것을 말하며 프로세스 내부 데이터 통신, 프로세스 간 데이터 통신, 네트워크를 이용한 통신이 있다. (원격 프로시저 호출: Remote Procedure Call, RPC도 통신의 한 종류이다.)

 

프로세스 간 통신의 분류
분류 방식 종류
통신 방향에 따른 분류 양방향통신 일반적 통신, 소켓
반양방향 통신 무전기
단방향 통신 전역 변수, 파일, 파이프
통신 구현 방식에 따른 분류 대기가 있는 통신(동기화 통신) 파이프, 소켓
대기가 없는 통신(비동기화 통신) 전역 변수, 파일

 

프로세스 간 통신의 종류
  • 전역 변수를 이용한 통신
    공동으로 관리하는 메모리를 사용하여 데이터를 주고 받는 것
  • 파일을 이용한 통신
    저장장치에 파일을 읽고 쓰는 방법으로 데이터를 주고 받는 것
  • 파이프를 이용한 통신
    운영체제가 제공하는 동기화 통신방식으로 파이프에 쓰기 연산을 하면 데이터가 전송되고 읽기 연산을 하면 데이터를 받는다.
  • 소켓을 이용한 통신
    여러 컴퓨터에 있는 프로세스와 프로세스를 소켓으로 연결하여 데이터를 주고받는 것. 소켓에 연산을 하면 데이터가 전송되고 읽기 연산을 하면 데이터를 받는다.

 

공유 자원 (share resource)

여러 프로세스가 공동으로 이용하는 변수, 메모리, 파일 등을 말한다. 공유 자원은 공동으로 이용되기 때문에 누가 언제 데이터를 읽거나 쓰느냐에 따라 그 결과가 달라질 수 있다.

 

임계구역 (critical section)

공유 자원 접근 순서에 따라 실행 결과가 달라지는 프로그램의 영역을 말한다.

 

임계구역 해결 조건
  • 상호 배제
    한 프로세스가 임계구역에 들어가면 다른 프로세스는 임계구역에 들어갈 수 없다.
  • 한정 대기
    어떤 프로세스도 무한 대기하지 않아야 한다.
  • 진행의 융통성
    한 프로세스가 다른 프로세스의 진행을 방해해서는 안된다.

 

임계구역 해결 방법
  • 피터슨 알고리즘, 데커 알고리즘
    임계구역 해결 조건을 모두 만족하는 소프트웨어적인 해결 방법이다.
  • 세마포어
    임계구역에 진입하기 전에 스위치를 사용중으로 놓고 임계구역으로 들어가는 방법으로, 피터슨 알고리즘이나 데커 알고리즘보다 간단하고 사용하기 쉽다.
  • 모니터
    세마포어 알고리즘을 자동으로 처리하도록 설계한 코드이다. 보호할 자원을 임계구역으로 숨기고 임계구역에서 작업할 수 있는 인터페이스만 제공하여 자원을 보호한다.