상세 컨텐츠

본문 제목

3.5 IPC 시스템사례

Computer Science/OS Concepts

by RACC8N 2020. 4. 24. 12:04

본문

POSIX - Shared Memory IPC

segment id = shmget(IPC_PRIVATE,size,S_IRUSR | S_IWUSR); // 공유 메모리 세그먼트 생성, id 반환
shared_memory = (char*) shmat(id,NULL,0); //id가 지정하는 공유 메모리를 프로세스에 연결(attach)
sprintf(shared_memory,"Writing to shared memory"); // 공유 메모리 세그먼트에 읽고,쓰기
shmdt(shared_memory); // 공유 메모리를 프로세스에서 제거(detach)

- shm_open() : 공유메모리 객체 생성

- ftrunccate() : 객체의 크기 설정

- mmap() : 공유메모리 객체를 프로세스 메모리 공간 맵핑

- shm_unlink() : 공유메모리 객체 제거

 

Mach의 message passing

- msg_send() : 메일박스 전송

- msg-receiver() : 메일박스 수신

- msg_rpc() : remote proceduer call

- port_Allocate() : 메일박스 생성

 

Windows의 IPC - Local Procedure Calls

- 작은 메시지 : port의 메시지 큐 이용

- 대용량 메시지 : 공유 section object 이용

- 매우 큰 메시지 : 서버가 클라이언트 주소공간 직접 접근 API 사용

※ 클라이언트는 채널을 구축할 때, 큰 메시지를 보낼지 아닐지를 결정해야만 한다.

 

관련글 더보기

댓글 영역