conditional variable을 사용하여 producer-consumer (Bound buffer) problem을 해결하는 과정에서 pipe라는 용어가 나왔고는데,
추가적인 공부를 위해 anonymous pipe와 named pipe를 알아보려 한다.
일단 anonymous pipe와 named pipe 둘 다 프로세스 간 통신 (IPC, Inter-Process Communication) 방법 중 하나로,
데이터를 전달하는 데 사용된다.
Anonymous pipe
특징
1. 일회성 연결: 주로 부모 프로세스와 자식 프로세스 간의 통신을 위해 사용된다.
2. 단방향 통신: 한쪽 방향으로만 데이터가 흐른다.
데이터 송신과 수신을 위한 별도의 파이프가 필요하다.
3. 익명성: 시스템 내에서 이름이 없으므로 파일 시스템에서 확인할 수 없다.
4. 간단한 사용: 하나는 보내기만, 하나는 받기만 하니 생성 및 사용이 상대적으로 간단하다.
5. 수명: 파이프를 생성한 프로세스가 종료되면 파이프도 함께 소멸된다.
Named pipe
특징
1. 지속성 연결: 시스템 내의 모든 프로세스 간의 통신을 지원한다.
2. 양방향 통신: 데이터를 양방향으로 주고 받을 수 있다.
3. 이름을 가짐: 파일 시스템 내에서 이름을 가지므로 여러 프로세스가 접근 가능하다.
4. 복잡한 사용: 익명 파이프보다 설정이 복잡하다.
5. 수명: 파이프를 삭제하지 않는 한 파일 시스템에 지속적으로 존재한다.
결론 !!
필요에 따라 적절한 파이프를 선택하여 프로세스 간 통신을 구현
'SKKU SW > Operating System' 카테고리의 다른 글
[OS] [Linux] atime, ctime, mtime (0) | 2024.06.09 |
---|---|
[OS] [Linux / UNIX] sync, fsync 함수 (1) | 2024.06.09 |
[OS] Multiprocessor Scheduling - SQMS와 MQMS (1) | 2024.04.06 |
[OS] Multiprocessor Scheduling(1) - Cache Coherence(캐시 일관성) & Bus snooping(버스 스누핑) (2) | 2024.03.26 |
[OS] System call 시스템 콜 (0) | 2024.03.25 |