파이프 통신 예제

개념적으로 파이프는 한 프로세스의 표준 출력이 다른 프로세스의 표준 입력이 되도록 두 프로세스 간의 연결입니다. UNIX 운영 체제에서 파이프는 관련 프로세스(프로세스 간 통신) 간의 통신에 유용합니다. 파이프는 FIFO(첫 번째 처음 에서 처음)를 동작하고 파이프는 큐 데이터 구조처럼 동작합니다. 읽기 및 쓰기 의 크기는 여기에 일치할 필요가 없습니다. 한 번에 512바이트를 쓸 수 있지만 파이프에서 한 번에 1바이트만 읽을 수 있습니다. 이것은 IPC 파이프를 사용 하 여 리눅스에서 촉진 하는 방법에 대 한 매우 기본적인 예. 향후 블로그에서 다른 ipc 메커니즘의 예를 다룰 뿐만 아니라 ipc 리눅스 네임 스페이스 내에서 작동 하는 방법에 터치. 오늘의 블로그에서 우리는 파이프라는 리눅스에서 매우 간단한 프로세스 통신 메커니즘 중 하나에 대해 설명합니다. IPC는 리눅스 두 프로세스 사이에 통신이 일어날 수 있습니다. 파이프, 메시지 큐, netlink 등과 같은 몇 가지 방법이 있습니다. 대부분의 경우 기본 전제는 공유 메모리의 개념을 중심으로 합니다. 이 공유 메모리에는 다른 IPC 메커니즘에서 사용하는 다른 추상화가 있습니다. 예를 들어 /dev/shm을 사용하여 공유 메모리를 만든 다음 프로세스 주소 공간에 메모리를 매핑하는 경우 IPC를 용이하게 하는 하나의 메커니즘이 될 수 있습니다.

이 경우 메모리가 Linux 페이지 캐시에 만들어지고 /dev/shm에 의해 생성된 파일이 프로세스 주소 공간에 다시 매핑됩니다. 파이프 메커니즘은 파이프로 물을 일부 컨테이너에 채우는 것과 같은 실시간 시나리오로 볼 수 있습니다. 충전 과정은 파이프에 쓰는 것일 뿐이며 읽기 프로세스는 파이프에서 검색하는 것일 뿐입니다. 이는 한 출력(물)이 다른 출력(버킷)에 대한 입력임을 의미합니다. 공유 데이터는 부모 프로세스와 자식 프로세스 간에 빠르게 통신할 수 있는 방법입니다. 공유 데이터의 크기에 따라 명명된 파이프 또는 명명된 공유 메모리를 선택할 수 있습니다. 다음 예제에서는 두 경우를 모두 보여 주며 이벤트 개체를 사용하여 프로세스 간에 데이터 읽기 및 쓰기를 동기화하는 방법을 보여 줍니다. 명명된 파이프 기능은 OS/2에서 다른 응용 프로그램과 통신할 수 있는 SAS 시스템에서 사용할 수 있는 가장 강력한 도구 중 하나입니다. 명명된 파이프 기능을 사용하면 네트워크를 통해 별도의 컴퓨터에 있는 동일한 컴퓨터에 있는 응용 프로그램 또는 응용 프로그램 간에 양방향 데이터 또는 메시지 교환이 가능합니다.

명명된 파이프를 사용하는 통신은 이러한 두 가지 기본 통신 방법을 보여 줍니다. 다음은 양방향 통신을 달성하기위한 단계입니다 – 프로세스 사이의 양방향 통신을 위해, 두 개의 파이프를 설정할 수 있습니다, 각 방향에 대해 하나.

¡Contactanos!