프로세스 간 통신
프로세스 간 의사소통하는 것을 IPC (Interprocess Communication)라고 한다.
컴퓨터 시스템에서 실행 중인 두 개 이상의 프로세스 간에 정보를 교환하고 상호 작용하는 메커니즘을 의미한다.
다수의 프로세스가 동시에 실행되는 다중 프로세스 환경에서 프로세스 간 통신은 중요한 개념이며, 이를 통해 프로세스들은 서로 협력하여 작업을 수행하거나 데이터를 공유할 수 있다.
프로세스 간 통신의 주요 목적은 다음과 같다.
- 1. 데이터 전송
- 프로세스들은 데이터를 주고받아야 할 때 통신을 사용한다.
- 이를 통해 프로세스 간에 정보를 교환하고 업무를 협력적으로 수행할 수 있다.
- 2. 동기화
- 프로세스들 간에 작업을 진행을 조절하기 위해 동기화 메커니즘이 필요하다.
- 하나의 프로세스가 다른 프로세스의 작업을 기다리거나, 작업을 동시에 실행하지 않도록 할 수 있다.
- 3. 프로세스 간 제어
- 하나의 프로세스가 다른 프로세스를 제어하거나 상태를 확인해야 할 때, 통신을 사용하여 제어 명령이나 상태 정보를 전달할 수 있다.
일반적으로 사용되는 프로세스 간 통신의 주요 방법을 간단하게 알아보자.
- 1. 파일을 이용한 통신 (메모리 맵)
- 파일을 사용하여 데이터를 공유하고 교환하는 방식이다.
- 파일을 가상 메모리 주소 공간에 매핑함으로써 파일을 메모리처럼 다룰 수 있게 해 준다.
- 하나의 프로세스는 파일에 데이터를 쓰고, 다른 프로세스는 해당 파일에서 데이터를 읽어온다.
- 2. 파이프 (Pipe)
- 두 프로세스 간에 단방향 또는 양방향 통신 파이프를 생성하여 데이터를 전송하는 방식이다.
- 주로 부모 프로세스와 자식 프로세스 간 통신에 사용된다.
- 3. 메시지 큐 (Message Queue)
- 프로세스 간에 메시지를 교환하기 위한 큐를 사용하는 방식이다.
- 메시지를 큐에 넣어두고, 다른 프로세스는 해당 큐에서 메시지를 꺼내어 사용한다.
- 4. 공유 메모리 (Shared Memory)
- 여러 프로세스가 동일한 메모리 영역을 공유하여 데이터를 공유하는 방식이다.
- 데이터를 직접 읽고 쓸 수 있어 빠른 속도를 제공한다.
- 5. 소켓 (Socket)
- 네트워크 소켓을 이용하여 프로세스 간 통신을 구현하는 방식이다.
- 로컬 또는 원격 프로세스 간에 통신이 가능하며, 네트워크 통신에 사용되는 일반적인 방법 중 하나이다.
'지식 정리' 카테고리의 다른 글
운영체제에서의 입출력(I/O) 관리 (0) | 2024.01.22 |
---|---|
스레드와 동시성 (0) | 2024.01.17 |
프로세스란? (0) | 2024.01.15 |
OS의 일반적인 작동 원리 (0) | 2024.01.12 |
호스팅이란? (0) | 2024.01.11 |