728x90
반응형

IPC 3

UNIX - [Shared memory]

shared memory (공유 메모리) 둘 이상의 프로세스가 물리적 메모리의 일부를 공유 가장 효율적인 IPC기법이다. shmget 시스템 호출 #include #include #include int shmget(key_t key, size_t size, int permflag); /* > key : 공유 메모리 영역의 identifier > size : 공유 메모리 영역의 최소 크기 > permflag : access permission|IPC_CREAT|IPC_EXCL > return 값 : 공유 메모리 영역의 identifier */ 공유 메모리 생성 예 512byte의 문자를 저장 할 공유 메모리 생성 shmid1 = shmget(0111, 512, 0600|IPC_CREAT); 10개의 정수를..

UNIX - [시스템 V의 프로세스간 통신 - Message queue]

시스템 V의 프로세스간 통신 유닉스는 처음 개발된 이래 다양한 형태로 발전했다. 크게 BSD 계열과 시스템 V 계열로 구분할 수 있다. 시스템V계열 유닉스에서 개발해 제공하는 프로세스간 통신 방법이 메세지 큐, 공유 메모리, 세마포어 이다. 이 세가지를 묶어서 시스템V IPC 라고 한다. 이것은 SVR2에서 처음 개발되었고, SVR4에서도 제공하고 있으며 현재는 대부분의 유닉스 시스템에서 제공하고 있다. IPC 설비 IPC(Inter-Process Communication)란 프로세스 간 통신을 의미한다. UNIX의 대표적인 IPC는 message_queue, semaphore, shared memory segment가 있다. key • key는 message_queue, semaphore, shared..

UNIX - [PIPE]

유닉스의 프로세스 간 통신 방법 즉 IPC 통신에는 PIPE가 있다. PIPE란 이름처럼 두 프로세스 간에 데이터가 오고 가는 관. 즉 영어로 파이프를 생성해서 두 프로세스가 데이터를 주고받는 방법이다. 이 파이프는 fifo의 성질을 띄고있으며 단방향 통신이라는 특징이 있다. 파이프는 read와 write 시스템 콜을 이용해서 데이터를 주고받으며, 기본적으로 blocking read/ blocking write를 사용한다. 파이프를 이용해서 프로세스간 동기화 작업을 수행할 수 있으며, 프로세스 간 서버와 클라이언트의 동작을 구현할 수 있다. pipe 만들기 #include int pipe(int filedes[2]); → filedes[0] : 읽기용 → filedes[1] : 쓰기용 → 성공시 0, 실..

728x90
반응형