티스토리 뷰
반응형
IPC mechanism 1: PIPE
- 공통 부모를 갖거나 부모와 자식 프로세스간 데이터 통신 방법이며 단방향 통신을 위한 선입선출(FIFO) 방식의 데이터 전달 기법이다.
- 단방향 통신으로 한쪽 방향으로만 데이터를 전송할 수 있어 A프로세스가 write()를 하면 B프로세스에서는 read()만 가능하다.
- 양방향 통신을 위해 두개의 PIPE를 사용해야하기 때문에 메모리 소비가 증가한다.
- read(), write()는 block mode 이기 때문에 한프로세스가 read() 대기중이면 write()를 할 수 없다.
- 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); } |
반응형
'DevOps > Distributed Computing' 카테고리의 다른 글
[분산시스템][공유메모리] Sequential consistency 구현 방법 (0) | 2021.11.28 |
---|
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 보안기사
- 코딩테스트
- Python
- t검정
- lightsail
- LangChain
- 우선순위큐
- java
- synflooding
- 백준
- 카카오페이면접후기
- 분산시스템
- llm
- Ai
- 시간초과
- 딥러닝
- 그리디
- t-test
- 자료구조
- 정보보안기사
- 다이나믹프로그래밍
- 보안
- 프로그래머스
- 파이썬
- 카카오페이
- FastAPI
- linux
- 정보보안
- springboot
- 리눅스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함