티스토리 뷰

반응형

 

IPC mechanism 1: PIPE

Point 1. 모델/개념

- 공통 부모를 갖거나 부모와 자식 프로세스간 데이터 통신 방법이며 단방향 통신을 위한 선입선출(FIFO) 방식의 데이터 전달 기법이다.

 

 

Point 2. 특징

- 단방향 통신으로 한쪽 방향으로만 데이터를 전송할 수 있어 A프로세스가 write()를 하면 B프로세스에서는 read()만 가능하다.

- 양방향 통신을 위해 두개의 PIPE를 사용해야하기 때문에 메모리 소비가 증가한다.
- read(), write()
block mode 이기 때문에 한프로세스가 read() 대기중이면 write()를 할 수 없다.

 

Point 3. API function

- pipe()라는 함수에 배열을 입력하여 프로세스들이 공유할 PIPE를 생성. 하나의 파이프를 위해 두개의 파일 디스크립터가 생성된다.

 

[실습 코드1] pipe() 함수 실습 예제

int main(void) {
       int pipefds[2];
       char buffer[1024];
 
       if(pipe(pipefds) == -1) {
             printf("pipe error")
                  exit(1);
       }
       pid_t pid = fork();
 
       if(pid==0) {
             close(pipefds[0];
             write(pipefds[1], "BRAD ASSIGNMENT", 1024);
             printf("Child Process Write Success");
             sleep(2);
                  exit(1);
       }
       if(pid > 0) {
             close(pipefds[1];
             read(pipefds[0], buffer, 1024);
             printf("Parent Process Read Success: %s", buffer);
             exit(1);
       }
       exit(0);
}

 

반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함