IPC란
동일한 시스템에서 실행되는 두 개 이상의 프로세스가 데이터를 교한하기 위한 메커니즘으로 다향한 종류의 데이터 구조와 메세지를 교환하거나 동기화하기 위해 사용된다.
IPC의 주요 목적은 정보 공유,계산 분산, 모듈화 등을 통한 프로그램의 성능 향상이다
IPC의 주요 방법
- Pipes
- Sockets
- Message Queue
- Shared Memory
PIPE
두 프로세스 간에 데이터를 전송하는 기본적인 메커니즘 중 하나이다.
단방향 데이터 흐름을 제공하여 하나의 프로세스에서 쓰고 다른 프로세스는 읽는 방식으로 작동한다.
Pipe의 특징
FIFO
단방향성 : 기본적인 파이프는 단방향이다.
버퍼링: 파이프는 일정량의 데이터를 버퍼에 저장할 수 있다
.
Named PIPE
서로 다른 두 프로세스가 서로 통신할 수 있도록 해준다. Named Pipe 는 익명 파이프와 다르게 서로 다른 프로세스가 각각 다른 시간에 실행되더라도 통신이 가능하다.
Named Pipe특징
파일 시스템 기반 : 파일 시스템에 저장되므로 이름을 가진다.
다중 프로세스 통신 : 익명 파이프와 달리 두 프로세스가 독립적인 시간에 실행이 가능하다.
단방향/양방향 : 양방향 통신이 가능하다.
Socket
네트워크 계층에서 가장 기본적은 IPC 방법 중 하나이다
소켓은 IP주소와 포트 번호로 구분되며 이를 토앻 두개 이상의 프로세스가 데이터를 교환할 수 있다.
주로 웹 서버와 클라이언트, 채팅 앱, 실시간 데이터 전송 등에 사용된다.
Socket 특징
플렛폼 독립적 : 운영체제에서 소켓 API를 제공하므로 플랫폼간 통신이 가능하다.
네트워크 지원 : 소켓은 네트워크를 통한 원격 통신이 가능하므로, 다른 컴퓨터나 네트워크 상의 다른 프로세스와 통신이 가능하다.
Message Queue
메세지 큐는 프로세스 또는 프로그램 간에 데이터를 교환할 때 시용하는 통신 방법으로 메세지 큐는 메세지 지향 미들웨어의 한 형태로 볼 수 잇다.
메세지 지향 미들웨어는 응용 프로그램이나 프로세스 간에 메세지 기반의 비동기 통신을 가능하게 해준다.
Message Queue 특징
비동기 처리 : 메세지 큐는 비동기적인 작업을 가능하게 한다.
유연성 : 생성자와 소비자는 서로 다른 속도로 작업을 처라할 수 있다.
분산 처리 가능 : 여러 시스템이 하나의 메시지 큐를 공유할 수 있으므로, 분산 아키텍처를 구현하는데 유용하다.
Share Memory
프로세스간 데이터를 공유하기 위해 사용하는 메모리 영역으로 이 메모리 영역은 물리적인 메모리(RAM)에 할당되어 여러 프로세스가 동시에 접근할 수 있다.
Share Memory 특징
빠른 속도 : 공유 메모리를 통한 데이터 교환은 메모리에서 이루어지므로 매우 빠르다
직접 접근 : 포인터나 배열을 사용해 공유 메모리에 직접 접근할 수 있다.
데이터 일관성 : 여러 프로세스가 동일한 데이터가 접근할 필요할 때 유용하나 이로 인해 동기화 문제가 발생할 수 있다.
'cs(운영체제)' 카테고리의 다른 글
블로킹 논블로깅 ,동기 비동기 (0) | 2023.09.08 |
---|---|
가상 메모리 (1) | 2023.09.08 |
교착 상태(DeadLock) (0) | 2023.09.06 |
프로세스 동기화 (1) | 2023.09.06 |
스케줄링 (0) | 2023.09.04 |