반응형
IPC(Inter-Process Communication)란?
프로세스끼리 데이터를 주고받고 공유 데이터를 관리하는 방법.
ex) 브라우저를 띄워 네이버 서버와 HTTP 통신해서 html 등의 파일을 가져오는 것
IPC의 종류
- 공유메모리
- 파일
- 소켓
- 파이프
- 메세지 큐
위 다섯가지 IPC 종류를 하나씩 살펴보자
공유메모리 (Shared Memory)
- 여러 프로세스가 메모리를 공유하여 서로 통신할 수 있도록 하는 것.
- 어떠한 매개체를 통해 데이터를 주고 받는게 아니라 메모리 자체를 공유.
때문에 불필요한 데이터 복사의 오버헤드가 발생하지 않음. - 고속 데이터 전송 : 메모리에 직접 접근하므로 속도가 가장 빠른 방법
- 같은 메모리 영역을 여러 프로세스가 공유하기 때문에 동기화 필요
파일(File)
- 디스크에 저장된 데이터를 기반으로 통신하는 것. 공용 파일을 통해 데이터를 주고 받음.
하나의 프로세스가 파일에 데이터를 쓰고 다른 프로세스가 이를 읽음. - 파일 입출력 기능을 사용하여 구현이 비교적 간단
- 디스크 입출력 속도가 느리기 때문에 실시간 통신에는 적합하지 않음. (저속)
- 데이터를 파일에 저장하므로 시스템 종료 후에도 데이터를 유지할 수 있다는 장점이 있음.(지속성)
소켓(Socket)
- TCP/IP 프로토콜을 사용하여 네트워크를 통해 서로 다른 호스트 간에도 통신이 가능.
- 네트워크 통신으로 로컬과 원격 시스템 간의 통신 가능.
- 다양한 프로토콜을 사용할 수 있음 (TCP, UDP)
파이프 (Pipe)
익명 파이프 (Anonymous Pipe, Unnamed pipe)
- 주로 부모-자식 프로세스간 통신에 사용.
- 파이프는 생성된 후 특정 프로세스 간에만 유효. 이름이 없어 외부에서 접근 불가
- 기본적으로 단방향 통신. 양방향을 위해서는 두개의 파이프가 필요.
명명 파이프
- 파일 시스템에 이름이 부여된 특별한 파일로, 파이프를 생성하고 나면 이름을 통해 접근
- 부모-자식 관계뿐만 아니라 독립적인 프로세스 간 통신이 가능.
- 양방향 통신 가능
- 운영체제에 따라 명명 파이프 생성과 사용법이 다를 수 있음
메시지 큐 (Message Queue)
- 운영체제에서 관리하는 메시지 큐를 통해 프로세스간 데이터를 주고받는 방법.
메시지는 큐에 저장되고 다른 프로세스가 이를 읽음. - 메시지 큐는 메시지의 순서를 유지하고 동기화를 자동으로 처리함.
- 다양한 크기의 메시지를 주고받을 수 있음.
- 운영체제에 따라 메시지 큐 구현과 사용법이 다를 수 있음.
728x90
반응형
'Computer Science > Operating System' 카테고리의 다른 글
멀티태스킹(Multitasking)과 CPU 스케줄링(선점형, 비선점형, 라운드로빈, 우선순위 기반 스케줄링, FIFO, SFJ ...) (0) | 2024.10.30 |
---|---|
프로세스의 상태 (0) | 2024.10.29 |
멀티프로세싱(Multiprocessing), 멀티스레딩(Multithreading) (0) | 2024.10.24 |
컨텍스트 스위칭(Context Switching) (0) | 2024.10.23 |
PCB(Process Control Block) (0) | 2024.10.23 |