프로세스의 개념에 대하 간략히 알고오시면 도움이 됩니다.
https://steady-snb.tistory.com/50
프로세스는 각자 독립적인 주소 공간을 가지고 있어서 다른 프로세스간의 통신이 불가능할 것 같지만
실제로 IPC(Inter-Process Communication)를 통해 프로세스간의 통신이 가능합니다.
IPC의 대표적 모델
- 공유메모리
- 파이프
- 파일
- 소켓
- 메시지 큐
- 메모리 맵
데이터를 공유하는 방법에는 2가지가 존재합니다.
1. 통신을 이용한 데이터 주고 받기 (Message-Passing)
2. 데이터를 공유하여 함께 사용하는 것 (Shared-Memory)
공유메모리 (Shared-Memory)
공유메모리는 데이터 공유방법 중 2번 데이터를 공유하여 함께 사용하는 쪽에 속합니다.
프로세스가 공유 메모리 할당을 커널에 요청하면 커널은 해당 프로세스에 메모리 공간을 할당해줍니다.
이후 어떤 프로세스건 해당 메모리영역에 접근할 수 있습니다.
* 공유메모리는 중간 매개체가 없어 IPC중 가장 빠르게 동작합니다.
파이프
통신을 위한 메모리 공간(버퍼)을 생성하여 프로세스가 데이터를 주고 받게끔 합니다.
1. 익명파이프(Anonymous PIPE)
- 통신할 프로세스가 명확할경우 사용
- 외부 프로세스에서 사용할 수 없음
- 파이프는 두 개의 프로세스를 연결하고, 하나는 읽기, 하나는 쓰기만 가능하기 때문에 반이중통신 이라고도 함
- 송/수신을 위해 두 개의 파이프를 만들어야 사용가능함
2. 네임드파이프(Named PIPE)
- 전혀 모르는 상태의 프로세스들 사이의 통신에 사용
- 외부와의 통신이 가능함
- 익명파이프와 동일하게 송/수신을 위해 두 개의 파이프를 만들어야 함
파일
파일을 읽어와 그 안의 저장된 데이터를 기반으로 통신하는 것을 의미합니다.
소켓
클라이언트와 서버간 네트워크 소켓 통신을 통해 데이터를 공유합니다.
메시지 큐
Queue(큐)는 선입선출의 자료구조를 가지는 통신설비로 커널에서 관리합니다.
입출력방식은 네임드파이프와 동일하며 네임드파이프는 데이터의 흐름이라면
메시지 큐는 메모리 공간이라는 점에서 차이가 납니다.
따라서 여러 개의 프로세스가 동시에 데이터를 쉽게 다룰 수 있습니다.
메모리 맵
메모리 맵은 열린 파일을 메모리에 매핑시켜서 공유하는 방식입니다.
위에서 설명한 공유메모리 + 파일을 합친 형태라 생각하시면 됩니다.
주로 대용량 데이터를 공유해야 할 때 사용됩니다.
출처 - https://dar0m.tistory.com/233
'IT지식 > Computer Science' 카테고리의 다른 글
운영체제에서 자원의 접근 방식, 공유자원과 임계영역 (0) | 2025.01.30 |
---|---|
프로세스와 스레드의 차이 (0) | 2025.01.30 |
페이지폴트의 과정과 스와핑 (0) | 2025.01.30 |
가상메모리의 정의와 페이지 테이블 (0) | 2025.01.30 |
프로세스의 메모리 할당 구조 및 역할 (0) | 2025.01.30 |