반응형
IPC, Inter-Process Communication
I. 협력적인 프로세스 간 통신 , IPC의 개요
- 협력적인 프로세스 간 통신을 위한 메모리 공유 및 메시지 전달 방식을 활용한 통신 메커니즘
- IPC 용도: 정보공유, 계속 가속화, 모듈성, 편의성 확보
II. IPC의 통신모델
구분 | Message Passing Model | Shared Memory Model |
개념 | - 프로세스 간 메시지 교환 | - 공유 메모리 이용 정보 교환 |
개념도 | ||
통신기능제공 | - 운영체제 | - 응용 프로그래머 |
충돌 | - 발생 불가능 | - 발생 가능 |
구현 난이도 | - 낮음 | - 높음 |
속도/용량 | - 저속/소량 | - 고속/대량 |
커널 간섭 | - 메시지 전달 시 마다 시스템 호출로 오버헤드 발생 - 커널 의존도 높음 |
- 공유메모리 구축 시만 시스템 호출 - 커널 의존도 낮음 |
주요기법 | - PIPE, FIFO, 메시지큐, 소켓, 세마포어 | - Shared Memory |
- 유닉스 초기 IPC 구현 3가지 기법으로 Message Queue, Shared Memory, Samaphore 사용
III. IPC 구현 주요기법
가. Message Queue
구분 | 설명 | |
정의 | - OS의 제어를 통해 커널 내 메시지 큐를 이용하여 프로세스간 메시지를 전달하는 단방향 통신 기법 | |
특징 | 높으 커널 의존성 | - 메시지 전달 시마다 운영체제 System call 필요 |
메시지 단위 전송 | - 프로세스 간 이산적 데이터를 메시지 형태로 전송 | |
직접/간접 통신 | - 송수신 프로세스를 직접 명시하는 직접 통신 방식과 메일박스를 이용해 간접적으로 통신하는 방식이 존재 | |
개념도 | ||
주요요소 | 메시지 | - 메시지 유형(정수값, id) + 바이트 집합 (데이터) |
시스템 호출 함수 | - msgget() : 메시지 큐 및 식별자 생성 | |
- msgsnd(), msgrcv() : 메시지 전송, 수신 | ||
- msgctl() : 메시지 큐 제어 | ||
동작방식 | 1. Sender 메시지 전송 : 메시지 큐 마지막에 연결 | |
2. Receiver 메시지 수신 : 사전 정의된 수신 정책 기준으로 메시지큐에서 수신 |
나. Shared Memory
구분 | 설명 | |
정의 | - 메모리의 일부 공간을 다수의 프로세스에서 공유하는 양방향 통신 기법 | |
특징 | 커널 통한 공유 메모리 할당 | - 프로레스가 공유 메모리 할당/제거를 커널에 요청하여 프로세스에 메모리 공간 할당 및 제거 |
빠른 속도 | - 포인터를 이용한 메모리 공유로 복사 등 오버헤드 미 발생 | |
동기화 문제 | - 세마포어 등 프로세스 간 동기화 기법의 적용 필요 | |
개념도 | ||
주요요소 | 공유메모리 | - 공유메모리 세그먼트를 생성하는 프로세스의 주소 공간에 위치 - 다른 프로세스가 이 세그먼트를 자신의 주소 공간에 추가 |
시스템호출 함수 | - shmget() : 공유메모리 및 식별자 생성 | |
- shmat() : 공유메모리와프로세스 데이터 영역 연결 | ||
- shmdt() : 연결 해제 | ||
- shmctl() : 공유메모리 제거 | ||
동작방식 | 1. 공유메모리 생성 : 커널에 공유메모리 생성 요청 | |
2. 메모리 공유 : 통신 프로세스 간 포인터 공유 | ||
3. 메모리 해제 : 커널에 공유메모리 해제 요청 |
다. Samaphore
구분 | 설명 | |
정의 | - 실행단위(프로세스 또는 쓰레드) 간의 동기화 기능을 제공하는 기법 | |
특징 | 상호배제 | - 임계영역에 대한 접근 순서 제어 |
커널모드 동기화 | 서로 다른 프로세스간 동기화 가능 | |
개념도 | ||
주요요소 | 세마포어 종류 | - Binary : 0/1flag를 통해 단일 자원 제어 |
- Counting : 0 이상 정수값 변수로 다수 자원 제어 | ||
시스템호출 함수 | - semget() : 세마포어 및 식별자 생성 | |
- semop() : 세마포어 연산 | ||
- semctl() : 세마포어 제어 | ||
동작방식 | 1. P함수 : 임계영역 진입 전 잠금 수행 | |
2. V함수 : 작업 종료 후 잠금 해제 |
반응형
'IT기술노트 > 컴퓨터구조 및 운영체제' 카테고리의 다른 글
FCFS 스케쥴링 (First Come First Service Scheduling) (0) | 2024.03.13 |
---|---|
교착 상태(Dead Lock) 발생의 필수조건과, 교착 상태 해결방안 (3) | 2023.11.25 |
GPGPU(General Purpose Graphic Processing Units) (0) | 2023.10.19 |
중앙처리장치 메이저 상태 (CPU Major State) (1) | 2023.10.09 |
모니터 (Monitor) (0) | 2022.07.28 |
세마포어 (Semaphore) (0) | 2022.07.28 |
뉴로모픽 칩(Neuromorphic Chip) (0) | 2022.07.04 |
DAS, NAS, SAN (0) | 2022.06.29 |
댓글