-
0. IPC란?
- 프로세스는 독립적으로 실행된다. (독립적이라는 것은 다른 프로세스에게 영향을 받지 않는다는 말. )
- 이런 독립적인 구조를 가진 프로세스들이 서로 통신을 해야하는 상황이 있을 것이고,
그것을 가능하도록 해주는 것이 IPC 통신이다.
- 프로세스는 커널이 제공하는 IPC 설비를 이용해 프로세스 간 통신을 할 수 있다.
1. IPC 종류
IPC 설비 종류도 여러가지가 있다. 필요에 따라 설비를 선택해서 사용하면 된다.
1. 익명 PIPE
2. Named PIPE(FIFO)
3. Message Queue
4. 공유 메모리
5. 메모리 맵
6. 소켓* (익명) PIPE
익명의 PIPE를 통해서 동일한 PPID를 가진 프로세스들 간에 단방향 통신을 지원.
FIFO 구조
부모 자식 프로세스 간에 주로 쓰임.
생성된 파이프에 대해서는 WRITE 또는 READ 만 가능.
따라서 양방향 통신을 위해서는 READ용 하나, WRITE용 하나 총 두개 만들어야 한다.
* Named PIPE
이름을 가진 PIPE를 통해 프로세스들 간에 단방향 통신
서로 다른 프로세스들이 PIPE의 이름만 알면 통신이 가능하다.
FIFO 구조
연관이 전혀 없는 프로세스간에 통신을 할 때 주로 쓰임.
생성된 파이프에 대해서는 WRITE 또는 READ 만 가능.
* Message Queue
메모리를 사용한 PIPE
구조체 기반으로 통신을 한다.
FIFO 구조
프로세스간 다양한 통신을 할 때 쓰임.
*Shared Memory
임계 시스템상의 공유 메모리를 통해 통신한다.
일정한 크기의 메모리를 프로세스간에 공유하는 구조.
프로세스간 READ, WRITE를 모두 필요로 할 때 쓰임.
프로세스간에 메모리 크기가 동일해야 한다.
* Memory Map
파일을 프로세스의 메모리에 일정 부분 맵핑 시켜 사용한다.
파일로 대용량 데이터를 공유할 때 사용한다.
* Socket
네트워크 소켓통신을 사용한 데이터 공유
원격에서 프로세스 간 데이터를 공유할 때 사용.
IPC 종류 PIPE Named PIPE Mesage Queue Shared Memory Memory Map Socket 사용
시기부모 자식 간
단 방향 통신 시다른 프로세스와
단 방향 통신 시다른 프로세스와
단 방향 통신 시다른 프로세스와
양 방향 통신 시다른 프로세스와
양 방향 통신 시다른 시스템간
양 방향 통신 시공유
매개체파일 파일 메모리 메모리 파일+메모리 소켓 통신
단위Stream Stream 구조체 구조체 페이지 Stream 통신
방향단 방향 당 방향 단 방향 양 방향 양 방향 양 방향 통신
가능
범위동일 시스템 동일 시스템 동일 시스템 동일 시스템 동일 시스템 동일 + 외부
시스템
출처
https://github.com/gyoogle/tech-interview-for-developer/blob/master/Computer%20Science/Operating%20System/IPC(Inter%20Process%20Communication).md
'전공 지식 > OS' 카테고리의 다른 글
# 04-2 스케줄러 (0) 2022.11.07 # 07. Memory (3) 2022.09.19 # 05. 병행프로세스 동기화 (3) 2022.08.30 # 04. CPU 스케줄링 (0) 2022.08.30 # 03. Interrupt & System call (6) 2022.08.15