프로세스간 통신 예제

이 튜토리얼은 프로세스 간 통신의 기본 개념과 다른 구성 요소가 작동하는 방법을 이해하고자하는 초보자를 위해 설계되었습니다. 이것은 리눅스에서 프로세스 간 통신 (IPC)에 대 한 시리즈의 첫 번째 문서입니다. 이 시리즈는 C의 코드 예제를 사용하여 다음과 같은 IPC 메커니즘을 명확히 합니다. 동기화에는 일부 정보(예: 잠금 사용 여부, 대기 프로세스 수 등)가 포함되지만 주로 정보 전달 통신이 아닙니다. 메커니즘당. 운영 체제는 두 통신 방법을 모두 구현할 수 있습니다. 먼저 공유 메모리 통신 방법을 설명한 다음 메시지 전달에 대해 설명합니다. 공유 메모리를 사용하는 프로세스 간의 통신에는 일부 변수를 공유하는 프로세스가 필요하며 프로그래머가 이를 구현하는 방법에 따라 완전히 달라집니다. 공유 메모리를 사용하는 통신의 한 가지 방법은 다음과 같이 상상할 수 있습니다: process1 및 process2가 동시에 실행되고 일부 리소스를 공유하거나 다른 프로세스의 일부 정보를 사용하는 경우 process1은 특정 계산에 대한 정보를 생성합니다.

또는 사용 중인 리소스를 공유 메모리에 레코드로 유지합니다. process2가 공유 정보를 사용해야 하는 경우 공유 메모리에 저장된 레코드를 체크 인하고 process1에서 생성된 정보를 기록하고 그에 따라 조치를 취합니다. 프로세스는 공유 메모리를 사용하여 다른 프로세스의 레코드로 정보를 추출하고 특정 정보를 다른 프로세스로 전달할 수 있습니다. 공유 메모리 메서드를 사용하여 프로세스 간의 통신 예제를 살펴보겠습니다. 이것은 리눅스에서 프로세스 간 통신 (IPC)에 대 한 시리즈의 세 번째이자 마지막 문서입니다. 첫 번째 아티클은 공유 저장소(파일 및 메모리 세그먼트)를 통해 IPC에 중점을 두었으며 두 번째 아티클은 파이프(명명및 명명되지 않은) 및 메시지 큐와 같은 기본 채널에 대해 동일한 작업을 수행합니다. 이 문서는 하이 엔드 (소켓)에서 IPC에서 로우 엔드 (신호)에서 IPC로 이동합니다. 코드 예제는 세부 정보를 구체화합니다. 독립적인 프로세스는 다른 프로세스의 실행에 의해 영향을 받지 않지만 협력 프로세스는 다른 실행 프로세스의 영향을 받을 수 있습니다.

독립적으로 실행되는 프로세스가 매우 효율적이지만 실질적으로 실행될 것이라고 생각할 수 있지만, 연동 적 특성을 통해 컴퓨팅 속도, 편의성 및 모듈성을 높이는 데 사용할 수 있는 상황이 많이 있습니다.

프로세스간 통신 예제