IPC의 종류와 특징

2021. 3. 9. 14:04운영체제

IPC (Inter Process Communication)

프로세스간 통신

  • 프로세스들 간에 데이터 및 정보를 주고받기 위한 메커니즘을 말함
  • 커널에서 IPC를 위한 도구를 제공하며, 시스템 콜 형태로 프로세스에게 제공됨

운영체제 내에서 실행되는 프로세스들은 독립적이거나 협력적인 프로세스일 수 있다.

 

1. 독립적인 프로세스 (Independent process)

  • 시스템에서 실행중인 다른 프로세스들에게 영향을 주거나 받지 않는 프로세

2. 협력적인 프로세스 (Cooperative process)

  • 시스템에서 실행중인 다른 프로세스들에게 영향을 주거나 받는 프로세스
  • IPC가 반드시 필요

 

 

 

IPC 종류

1. 공유 메모리 (Shared Memory)

  • 두 개 이상의 프로세스들이 주소 공간의 일부를 공유
  • 공유한 메모리 영역에 읽기/쓰기를 통해서 통신을 수행 (Read and Write)
  • 공유 메모리가 설정되면, 그 이후의 통신은 커널의 관여 없이 진행 가능

 

  • 중개자 없이 곧바로 메모리에 접근할 수 있기 때문에 모든 IPC 중에서 가장 빠르게 작동
    (= 커널의 관여 없이 메모리를 직접 사용하여 IPC 속도가 빠르다)
  • 프로그램 레벨에서 통신 기능을 제공하여 자유로운 통신이 가능

 

  • 구현하기 어렵다

 

 

 

2. 메시지 전달 (Message Passing)

  • 커널을 경유하여 고정길이 메시지, 가변길이 메시지를 송/수신자끼리 주고받음 (Send and Receive)

 

 

 

메시지 큐 (Message Queue)

선입선출(FIFO)의 자료구조인 큐를 사용한 통신설비

커널에서 관리

 

 

 

세마포어 (Semaphore)

프로세스 간 데이터를 동기화하고 보호

한번에 단 하나의 프로세스만이 접근 가능하도록 함

 

 

 

'운영체제' 카테고리의 다른 글

세마포어와 뮤텍스  (0) 2021.03.08
멀티 프로세스와 멀티 쓰레드의 차이  (0) 2021.03.08
쓰레드 (Thread)  (0) 2021.03.08
운영체제 유형별 특징  (0) 2021.03.08