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 |