목차
개요
IPC 즉 프로세스간 통신의 한 종류인 파이프에 대해서 알아보자
먼저 파이프는 두 종류가 있는데 익명 파이프와 지명 파이프로 나뉘어져있다.
파이프를 구현하는데에는 여러가지 옵션을 고려해야하는데
- 단방향 통신인가? 양방향 통신인가?
- 양방향인 경우에는 반이중 방식인가? 전이중 방식인가?
- 두 프로세스 간에 부모-자식 같은 특정 관계가 존재하는가?
이번 포스팅에서는
양방향 통신도 가능하고 부모-자식 관계도 필요하지 않은 지명 파이프에 대해 알아보겠다.
익명 파이프에 대해서도 궁금하다면 ⬇⬇⬇ (읽는 것을 추천한다)
익명 파이프와 차이
일반 파이프, 익명 파이프는 오직 한쌍의 프로세스가 단방향으로만 통신할 수있고 통신 과정에서 보다 싶이 통신을 할 당시에만 파이프가 존재한다. 이러한 특성에 비해서 지명 파이프는 좀 더 강력한 통신 도구를 제공한다고 볼 수 있다.
통신은 양방향으로도 가능하며 부모-자식 과 같은 익명파이프에서는 필수였던 관계도 필요하지 않다. 또한 여러 프로세스들이 구축된 지명 파이프로 통신이 가능하게도된다. 실제로 여러명의 writer 들이 하나의 지명파이프를 사용을 한다.
개념 및 특성
UNIX에서 FIFO 라고도 불리는 지명 파이프는 파일 시스템의 보통 파일처럼 존재하며 이를 일반 파이프와 비슷하게 여러 시스템 콜로 조작된다.
위에서 양방향 통신을 지원한다고는 했지만 동시에 양쪽으로는 보내지는 못하는 전이중 통신 방식을 가지고 있어 동시에 양방향 통신을 하기 위해서는 두개의 파이프를 사용해야한다.
또한 두 파이프 모두 동일한 기계 내에 존재해야한다는 조건이 있다. 다른 기계에 존재하는 IPC를 하기 위해서는 소켓 통신 방식을 사용해야한다. 하지만 Windows 내에 구현되어있는 지명파이프는 UNIX의 파이프보다 더 풍부한 기법을 제공해주고 있어서 굳이 소켓 통신을 하지 않아도 다른 기계간의 IPC 가 가능하다.
'CS > Operating System' 카테고리의 다른 글
프로세스 :: 익명 파이프(anonymous pipes) (0) | 2022.09.21 |
---|---|
프로세스 :: 버퍼(Buffer), 버퍼링(Buffering) (0) | 2022.09.06 |
프로세스 :: 메시지 전달 시스템 at Mach(iOS) (0) | 2022.08.31 |
프로세스 :: 공유 메모리 시스템 at POSIX (0) | 2022.08.31 |
프로세스 :: 프로세스 간 통신(IPC) 개념, 종류 (0) | 2022.08.29 |