[OS] IPC란? - IPC의 종류와 특징

정은·2024년 2월 28일

OS

목록 보기
3/3

IPC (Inter Process Communication) 설명

IPC (Inter Process Communication)은 프로세스 간 통신을 말한다.

해당 그림처럼 Process는 완전히 독립된 실행 객체이다.

  • 장점 : 다른 프로세스의 영향을 받지 않는다
  • 단점 : 독립되어 있는 만큼 별도의 설비 없이는 서로 간 통신이 어렵다.

이를 위해서 커널 영역에서 IPC라는 내부 프로세스 간 통신을 제공하게 되어 프로세스는 커널이 제공하는 IPC 설비를 이용해서 프로세스간 통신을 할 수 있게 되었다.

IPC의 표준

System Ⅴ IPC

  • 오래된 버전, 코드 호환성을 확실히 보장해주만 API가 오래되었음.

POSIX IPC

  • 비교적 최근 버전, 직관적으로 API가 구성되어 있어 상대적으로 개발하기가 편리함.

IPC 설비들

현실에서도 다양한 통신 장비가 존재하는 것 처럼 IPC에도 상황에 맞는 설비를 선택할 필요가 있다. 그 중 System Ⅴ 방식에서 쓰는 내용만 설명하겠다.

1) Message Q

메시지 큐(Message Queue)는 프로세스 또는 프로그램 간에 데이터를 교환할 때 사용하는 통신 방법 중에 하나로, 메시지 지향 미들웨어(Message Oriented Middleware:MOM)를 구현한 시스템을 의미한다.

  • 장점 : 메시지 큐에 쓸 데이터에 번호를 붙임으로써 여러 개의 프로세스가 동시에 데이터를 쉽게 다룰 수 있다.

2) Semaphore

다른 IPC 설비들이 대부분 프로세스 간 메시지 전송을 목적으로 하는데 반면, Semaphore는 프로세스 간 데이터를 동기화하고 보호하는데 그 목적을 둔다.

프로세스 간 메시지 전송을 하거나 혹은 공유 메모리를 통해 특정 데이터를 공유하게 될 경우, 공유된 자원에 여러개의 프로세스가 동시에 접근하면 안되며, 단지 한번에 하나의 프로세스만 접근 가능하게 만들 때 사용되는 것이 Semaphore이다.

3) Shared Memory

데이터를 공유하는 방법에는 크게 두가지가 있다.
1. 통신을 이용해서 데이터를 주고 받기 2. 데이터를 아예 공유하여 함께 사용하기

Shared Memory는 프로세스 간 메모리 영역을 공유해서 사용할 수 있도록 허용한다. 프로세스가 공유 메모리 할당을 커널에 요청하면 해당 프로세스에 메모리 공간을 할당한다.

[References]

profile
정니의 이런거 저런거 기록 일지 😛

0개의 댓글