프로세스 간 통신이란 무엇입니까?
프로세스 간 통신 (IPC)은 서로 다른 소프트웨어가 상호 작용할 수 있도록하는 컴퓨터 프로그래밍에 사용되는 기술 그룹입니다. 대체 방법이 있지만 IPC는 종종 컴퓨터 운영 체제에 의해 촉진됩니다. 소프트웨어 간이 통신의 정확한 형식은 직접 메시지에서 정보가 저장되고 검색되는 중앙 보관소에 이르기까지 다양합니다. 프로세스 간 통신은 성능 향상, 컴퓨터 리소스 소비 감소 및 보안 강화와 같은 이점을 제공 할 수 있습니다.
프로그래밍 세계에서 소프트웨어는 컴퓨터의 CPU (중앙 처리 장치)에서 실행되거나 실행될 수있는 프로세스 또는 단일 코드 조각에 대해 이야기합니다. 많은 응용 프로그램이 실제로 둘 이상의 프로세스를 사용하므로 성능과 안정성이 향상 될 수 있습니다. 여러 개의 열린 페이지가있는 웹 브라우저는 별도의 프로세스를 사용하여 각 페이지를로드 할 수 있습니다. 이렇게하면 각 페이지가 다른 페이지와 분리되고 동작이 잘못된 웹 페이지가 전체 브라우저에서 충돌하는 것을 방지 할 수 있습니다. 이 예에서, 웹 페이지 렌더링을 담당하는 각 프로세스는 사용자 인터페이스 구성 요소와 같은 브라우저의 다른 측면을 처리하는 하나 이상의 프로세스와 통신합니다.
대부분의 컴퓨터 운영 체제는 프로세스 간 통신을위한 여러 가지 메커니즘을 제공합니다. 다른 소프트웨어 기술들도 IPC를 지원합니다. 또한 IPC는 단일 컴퓨터 또는 네트워크에서 사용할 수 있습니다. 이러한 메커니즘은 구현 방식이 다를 수 있지만 대부분의 방식은 통신 방식에 따라 몇 가지 범주로 그룹화 할 수 있습니다.
경우에 따라, 메시지는 종종 단방향 또는 비동기 방식으로 프로세스간에 직접 교환됩니다. 이러한 방식으로 작동하는 몇 가지 IPC 방법에는 신호, 파이프 및 소켓이 포함됩니다. 프로세스 간 통신은 둘 이상의 프로세스에서 데이터에 액세스 할 수있는 특정 위치를 사용하여 발생할 수도 있습니다. 이 중 하나의 예는 공유 메모리로서, 여러 프로세스가 컴퓨터 메모리의 동일한 부분에 액세스하여 정보를 교환하는 기술입니다. 프로그래머가 선택할 수있는 방법은 필요한 데이터 교환 속도와 볼륨 및 기타 고려 사항에 따라 다릅니다.
프로그래머가 소프트웨어 제작 과정에서 프로세스 간 통신을 활용하고자하는 많은 이유가 있습니다. 큰 응용 프로그램을 IPC를 통해 통신하는 여러 개의 작은 프로세스로 분할하면 성능뿐만 아니라 보안도 향상 될 수 있습니다. 프로그램은 한 번에 실행되고 하드웨어 리소스를 소비하는 모든 구성 요소 대신 필요에 따라 프로세스를 시작하고 종료 할 수 있습니다. 프로그램의 일부가 컴퓨터의 하드웨어 또는 실행중인 다른 소프트웨어에 대한 특별 액세스 권한이 필요한 경우 하나 이상의 프로세스가 관리자 또는 "루트"계정으로 작동하는 동안 나머지 프로그램은 일반 사용자로 실행됩니다.