🍋 CS

운영체제 - 프로세스간 통신

밈98 2023. 4. 11. 23:00

1. 프로세스간 통신의 개념

프로세스는 시스템 내에서 독립적으로 실행되기도 하고 데이터를 주고받으며 협업하기도 한다. 프로세스가 다른 프로세스와 데이터를 주고받는 프로세스 간 통신(IPC)에는 같은 컴퓨터 내에 있는 프로세스뿐만 아니라 네트워크로 연결된 다른 컴퓨터에 있는 프로세스와의 통신도 포함된다.

IPC
  • 프로세스들 간의 의사소통을 하는 것을 말한다 
  • 커널에서 IPC를 위한 도구를 제공하며, 시스템 콜의 형태로 프로세스에게 제공된다.

 

2. 프로세스 간 통신의 분류

PC 종류  PIPE Named PIPE  Mesage Queue  Shared Memory  Memory Map  Socket 
사용
시기
 부모 자식 간
단 방향 통신 시
다른 프로세스와 
단 방향 통신 시 
다른 프로세스와
 단 방향 통신 시  
다른 프로세스와
양 방향 통신 시 
다른 프로세스와 
양 방향 통신 시 
 다른 시스템간 
양 방향 통신 시
 공유
매개체
파일  파일  메모리  메모리  파일+메모리  소켓 
통신
단위
 Stream Stream 구조체 구조체  페이지 Stream 
 통신
 방향
 단 방향 양 방향  단 방향  양 방향  양 방향  양 방향 
통신 
가능 
범위
 동일 시스템 동일 시스템 동일 시스템  동일 시스템  동일 시스템  동일 + 외부 
시스템 

1. 공유 메모리(Shared Memory) 

1) 정의

  •  시스템 상의 공유 메모리를 통해서 통신

2) 구조

  • 일정한 크기의 메모리를 프로세스간에서 공유하는 구조이다
  • 공유 메모리는 커널에서 관리됨

3) 사용시기

  •  프로세스간 Read, Write 모두 필요할 때

4) 주의사항

  •  프로세스간의 상용할려면 메모리 크기 동일 해야함.

2. PIPE

1) 정의

  • 익명의 PIPE를 통해서 동일한 PPID를 가진 프로세스들 간에 단방향 통신을 지원

2) 구조

  • FIFO 구조
  • 생성된 PIPE에 대하여 Write 또는 Read만 가능

3) 사용시기

  • 부모 자식 프로세스간 통신 할때 사용

4) 주의사항

  •  쌍방 통신을 위해서는 Write용 PIPE하나 Read PIPE하나 씩 만들어야 한다.
  •  read()와 write()가 기본적으로 block 모드로 작동하기 때문으로 프로세스가 read대기중이라 read가 끝나기 전에는 write를 할수가 없게 된다.

3. Message Queue

1) 정의

  • 메모리를 사용한 PIPE이다.
  • 구조체 기반으로 통신을 한다.

2) 구조

  • FIFO 구조
  • msgtype에 따라 다른 구조체를 가져올수 있다.

3) 사용시기

  • 프로세스간 다양한 통신을 할 때 사용 할수 있다.

4) 주의사항

  • 커널에서 제공하는 Message queue 이기 때문에 EnQueue 하는데 제한이 존재 한다.

4. Socket

1) 정의

  • 네트워크 소켓통신을 시용한 데이터 공유

2) 구조

  • 네트워크 소켓을 이용하여 Client - Server 구조로 데이터 통신

3) 사용시기

  • 원격에서 프로세스간 데이터를 공유 할 때 사용

4) 주의사항

  • 네크워크 프로그래밍이 가능해야 한다.
  • 데이터 세그먼트 처리를 잘해야한다.

 

출처) 널널한 개발자 TV https://youtu.be/eELCTRdSj7o

https://doitnow-man.tistory.com/110

'🍋 CS' 카테고리의 다른 글

1장. 네트워크 기초  (0) 2023.08.27
운영체제 - 메모리(Memory)  (0) 2023.04.18
운영체제 - 공유자원 & 임계구역  (0) 2023.04.11
운영체제 - CPU 스케줄링  (0) 2023.04.07
운영체제 - 프로세스 관리  (0) 2023.03.31