CS/운영체제

[OS] 프로세스간 통신(IPC)

초코chip 2024. 9. 2. 19:42

배경

프로세스 종류

  • 독립적(independent): 아무런 데이터를 공유하지 않는 프로세스
  • 협력적(cooperating): 다른 프로세스에게 영향을 주거나 or 받는 프로세스
    • 즉, 데이터를 공유하고 있는 상황
    • 이럴때 IPC(Inter-Process Communication)가 필요

 

IPC

  • 정의: 협력적 프로세스간의 데이터를 교환하는 방법
  • 종류: 2가지 모델이 존재
    • 공유 메모리(shared memory)
    • 메세지 패싱(message passing)
공유 메모리 메세지 패싱
정의:
- 협력 프로세스 간 공유되는 메모리 공간을 통해 데이터를 교환하는 방식이다.
- 협력 프로세스들은 해당 공간에 직접 접근하여 필요한 데이터를 읽고 쓰기가 가능하다
정의:
- 협력 프로세스들이 OS(커널)을 통해 데이터를 교환하는 방식이다.
- 협력 프로세스들은 메세지를 커널에 전달하고, 커널을 해당 메세지를 목적지 프로세스에 전달한다.
 - 장점: 중간 매개체 없이 직접 접근하기에 속도가 빠르다.
 - 단점: 여러 프로세스가 데이터에 동시에 접근하면 일관성 유지에 문제가 발생할 수 있음(동기화 문제)
- 장점: OS(커널)이 데이터 교환 과정을 관리하기 때문에 여러 프로세스가 동시에 접근을 해도 문제가 발생하지 않는다. (동기화 문제x)
- 단점: 모든 데이터 교환 과정에 OS(커널)이 간섭하기에 성능이 저하된다.

 

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

[OS] CPU 스케줄링  (1) 2024.09.02
[OS] 스레드  (0) 2024.09.02
[OS] 프로세스 구조, PCB와 Context Switching  (1) 2024.09.02
[OS] 시스템콜과 I/O인터럽트  (3) 2024.09.02
[OS] 운영체제란  (0) 2024.08.19