mfc 프로세스간 통신 예제

이러한 각 그룹과 다르게 의사 소통할 수 있습니다. 그러나 효과적인 의사 소통은 누구와 의사 소통하든 거의 동일합니다. 링크에는 일시적으로 상주할 수 있는 메시지 수를 결정하는 일부 용량이 있으며, 모든 링크에는 0용량 또는 바인딩된 용량 또는 무한 용량일 수 있는 큐가 연결되어 있습니다. 용량이 0이면 보낸 사람이 보낸 사람이 메시지를 받았다는 것을 발신자에게 알릴 때까지 기다립니다. 용량이 0이 아닌 경우 프로세스는 송신 작업 후에 메시지가 수신되었는지 여부를 알 수 없습니다. 이를 위해 보낸 사람은 수신자에게 명시적으로 통신해야 합니다. 링크의 구현은 상황에 따라 달라지며, 직접 통신 링크 또는 인-지향 통신 링크일 수 있다. 직접 통신 링크는 프로세스가 통신에 특정 프로세스 식별자를 사용하지만 미리 보낸 자를 식별하기 어려울 때 구현됩니다. 예: 인쇄 서버입니다.

인-지향 통신은 메시지 큐로 구성된 분쇄기 사서함(포트)을 통해 수행됩니다. 보낸 사람은 메시지를 사서함에 보관하고 수신자가 메시지를 선택합니다. 플랫폼 간 공유 메모리 클래스인 QSharedMemory는 운영 체제의 공유 메모리 구현에 대한 액세스를 제공합니다. 여러 스레드 및 프로세스에 의해 공유 메모리 세그먼트에 안전하게 액세스할 수 있습니다. 또한 QSystemSemaphore를 사용하여 시스템에서 공유하는 리소스에 대한 액세스를 제어하고 프로세스 간에 통신할 수 있습니다. 동기 및 비동기 메시지 전달: 차단된 프로세스는 리소스사용 가능 여부 또는 I/O 작업 완료와 같은 일부 이벤트를 기다리는 프로세스입니다. IPC는 동일한 컴퓨터의 프로세스와 네트워크/분산 시스템에서 다른 컴퓨터에서 실행되는 프로세스 간에 가능합니다. 두 경우 모두 메시지를 보내거나 메시지를 수신하려고 시도하는 동안 프로세스가 차단되거나 차단되지 않을 수 있으므로 메시지 전달이 차단되거나 차단되지 않을 수 있습니다. 차단은 동기식으로 간주되며 전송을 차단하면 수신자가 메시지를 수신할 때까지 보낸 보낸 자가 차단됩니다.

마찬가지로 수신을 차단하면 메시지를 사용할 수 있는 때까지 수신자 블록이 있습니다. 비차단은 비동기로 간주되며 비차단 전송은 보낸 보낸 사람들이 메시지를 보내고 계속합니다.

Posted in Uncategorized