1. IPC 란?
다른 프로세스끼리 통신하고 데이터를 교환할 수 있게 해주는 기술이다.
2. IPC를 왜 사용할까?
프로세는 생성될 때 메모리 공간 등을 복사하여 별도의 자원을 할당하기 때문에
기본적으로 독립적인 메모리 공간을 가지고 있다.
따라서 프로세스는 직접적으로 다른 프로세스에 접근할 수 없는데
IPC는 프로세스 간의 데이터 공유를 가능하게 해준다.
결론은 독립적인 프로세스의 정보들을 서로 공유할 수 있게 해주는 기술이 IPC다.
3. IPC의 종류
- 공유 메모리(Shared Memory)
여러 프로세스가 메모리 영역으로 공유하여 데이터를 읽고 쓰는 기술
데이터를 복사하지 않아도 되서 빠른 접근이 가능하지만 충돌로 인한 오류 방지 동기화 메커니즘이 필요하다.
- 메시지 큐(Message Queue)
메시지 큐나 통신 채널과 같은 중간 매체를 통해 프로세스 정보를 보내는 기술
메시지의 발신자가 수신을 확인하는 동기식,
메시지의 발신자가 수신을 확인하지 않는 비동기식이 있다.
- 파이프(Pipe)
한 프로세스의 출력은 다른 프로세스의 입력에 직접 연결하는 단방향 통신 채널(FIFO)
- 소켓(Sockets)
네트워크 통신 뿐만 아니라 컴퓨터 시스템 내에서도 프로세스의 통신이 가능하게 해주는 기술
- 시그널(Signals)
프로세스간의 이벤트 알림이나 예외 처리를 위한 방법
Kill 시스템 사용
- 원격 프로시저 호출(RPC)
원격 시스템에서 함수나 프로시저를 호출할 수 있는 기술
RPC는 IPC의 세부 정보를 숨겨 분산 애플리케이션 작성을 쉽게 해준다.
'간단한 IT 지식' 카테고리의 다른 글
[오늘의 지식] 바이트 정렬 (2) | 2024.02.28 |
---|---|
[오늘의 지식] 전략 패턴 (1) | 2024.02.27 |
[오늘의 지식] Unity에서 Enum형을 받을 때 주의점 (0) | 2024.02.23 |
[오늘의 지식] NGUI, UGUI (0) | 2024.02.22 |
[오늘의 지식] 라운드 로빈(Round Robin) 알고리즘 (0) | 2024.02.21 |