명명된 파이프 기능은 OS/2에서 다른 응용 프로그램과 통신할 수 있는 SAS 시스템에서 사용할 수 있는 가장 강력한 도구 중 하나입니다. 명명된 파이프 기능을 사용하면 네트워크를 통해 별도의 컴퓨터에 있는 동일한 컴퓨터에 있는 응용 프로그램 또는 응용 프로그램 간에 양방향 데이터 또는 메시지 교환이 가능합니다. 명명된 파이프를 사용하는 통신은 이러한 두 가지 기본 통신 방법을 보여 줍니다. 파이프는 둘 이상의 관련 또는 상호 연관된 프로세스 간의 통신 매체입니다. 한 프로세스 내에서 또는 자식프로세스와 상위 프로세스 간의 통신일 수 있습니다. 또한 부모, 자식 및 손자 손녀 간의 통신과 같은 다단계 통신이 될 수 있습니다. 통신은 파이프에 하나의 프로세스 쓰기 및 파이프에서 다른 읽기에 의해 달성된다. 파이프 시스템 호출을 얻으려면 두 개의 파일을 만지작입니다. 파이프 메커니즘은 파이프로 물을 일부 컨테이너에 채우는 것과 같은 실시간 시나리오로 볼 수 있습니다. 충전 과정은 파이프에 쓰는 것일 뿐이며 읽기 프로세스는 파이프에서 검색하는 것일 뿐입니다.

이는 한 출력(물)이 다른 출력(버킷)에 대한 입력임을 의미합니다. 이 시스템 호출은 단방향 통신을 위한 파이프를 생성하고, 즉 두 개의 설명기를 생성하고, 첫 번째는 파이프에서 읽기 위해 연결되고 다른 하나는 파이프에 쓰기 위해 연결된다. 오늘의 블로그에서 우리는 파이프라는 리눅스에서 매우 간단한 프로세스 통신 메커니즘 중 하나에 대해 설명합니다. IPC는 리눅스 두 프로세스 사이에 통신이 일어날 수 있습니다. 파이프, 메시지 큐, netlink 등과 같은 몇 가지 방법이 있습니다. 대부분의 경우 기본 전제는 공유 메모리의 개념을 중심으로 합니다. 이 공유 메모리에는 다른 IPC 메커니즘에서 사용하는 다른 추상화가 있습니다. 예를 들어 /dev/shm을 사용하여 공유 메모리를 만든 다음 프로세스 주소 공간에 메모리를 매핑하는 경우 IPC를 용이하게 하는 하나의 메커니즘이 될 수 있습니다. 이 경우 메모리가 Linux 페이지 캐시에 만들어지고 /dev/shm에 의해 생성된 파일이 프로세스 주소 공간에 다시 매핑됩니다.

개념적으로 파이프는 한 프로세스의 표준 출력이 다른 프로세스의 표준 입력이 되도록 두 프로세스 간의 연결입니다. UNIX 운영 체제에서 파이프는 관련 프로세스(프로세스 간 통신) 간의 통신에 유용합니다. 이제 자식 프로세스로 전환해 보겠습니다. 또한 자식 프로세스는 “hPipe”라고 명명된 파이프 핸들을 만들고 동일한 이벤트 이름을 기반으로 “자식이벤트”와 “자식 이벤트”를 엽니다. 부모 프로세스에 의해 신호 될 “자식 이벤트”를 기다린 후, 자식 프로세스는 명명 된 파이프 파일에서 데이터를 읽습니다 : 3 단계 – 각 통신에 필요한 하나의 끝으로 원치 않는 끝을 닫습니다. 파이프는 FIFO(첫 번째 처음 에서 처음)를 동작하고 파이프는 큐 데이터 구조처럼 동작합니다. 읽기 및 쓰기 의 크기는 여기에 일치할 필요가 없습니다. 한 번에 512바이트를 쓸 수 있지만 파이프에서 한 번에 1바이트만 읽을 수 있습니다.

다음은 양방향 통신을 달성하기위한 단계입니다 – 파이프 통신은 단방향 통신 즉, 부모 프로세스가 쓰고 자식 프로세스가 읽거나 그 반대의 경우도 마찬가지로 간주됩니다. 그러나 부모와 자식이 파이프를 동시에 작성하고 읽어야 하는 경우 이 솔루션은 파이프를 사용하는 양방향 통신입니다.

Scroll Up