>일반적인 문제 >프로세스 간 통신 방법은 무엇입니까?

프로세스 간 통신 방법은 무엇입니까?

coldplay.xixi
coldplay.xixi원래의
2021-02-04 11:56:4077740검색

프로세스 간 통신 방법은 다음과 같습니다. 1. 파이프는 일반적으로 UNIX 시스템에서 가장 오래된 IPC 형식인 명명되지 않은 파이프를 나타냅니다. 2. 파일 형식인 FIFO. 메시지 목록이며 커널에 저장됩니다. 4. 카운터인 세마포어.

프로세스 간 통신 방법은 무엇입니까?

이 문서의 운영 환경: Windows 7 시스템, Dell G3 컴퓨터.

프로세스 간 통신 방법은 다음과 같습니다.

1. 파이프

일반적으로 이름 없는 파이프라고 불리는 파이프는 UNIX 시스템에서 가장 오래된 IPC 형태입니다.

기능:

  • 읽기 및 쓰기 끝이 고정된 반이중(즉, 데이터가 한 방향으로만 흐를 수 있음)입니다.

  • 관계가 있는 프로세스 간(부모-자식 프로세스 또는 형제 프로세스 간) 통신에만 사용할 수 있습니다.

  • 특수 파일로 간주할 수 있으며 일반적인 읽기, 쓰기 및 기타 기능을 사용하여 읽고 쓸 수도 있습니다. 그러나 이는 일반적인 파일이 아니며, 다른 파일 시스템에 속하지 않으며, 메모리에만 존재합니다.

2. FIFO

FIFO는 Named Pipe라고도 알려진 파일 형식입니다.

1. 기능

  • FIFO는 이름 없는 파이프와 달리 관련 없는 프로세스 간에 데이터를 교환할 수 있습니다.

  • FIFO에는 연결된 경로 이름이 있으며 파일 시스템에 특수 장치 파일로 존재합니다.

3. 메시지 큐

메시지 큐는 커널에 저장된 메시지의 연결된 목록입니다. 메시지 큐는 식별자(큐 ID)로 식별됩니다.

Features

  • 메시지 대기열은 기록 지향적이며, 그 안에 있는 메시지는 특정 형식과 특정 우선순위를 갖습니다.

  • 메시지 대기열은 전송 및 수신 프로세스와 독립적입니다. 프로세스가 종료되면 메시지 큐와 해당 내용은 삭제되지 않습니다.

  • 메시지 큐는 메시지의 무작위 쿼리를 실현할 수 있습니다. 메시지는 선입선출 순서로 읽을 필요는 없지만 메시지 유형에 따라 읽을 수도 있습니다.

4. 세마포어

세마포어는 이미 소개된 IPC 구조와 다릅니다. 세마포어는 프로세스 간 통신 데이터를 저장하는 대신 프로세스 간 상호 배제 및 동기화를 구현하는 데 사용됩니다.

Features

  • 세마포어는 프로세스 간 동기화에 사용됩니다. 프로세스 간에 데이터를 전송하려면 공유 메모리와 결합해야 합니다.

  • 세마포어는 운영체제의 PV 연산을 기반으로 하며, 세마포어에 대한 프로그램의 연산은 모두 원자 연산입니다.

  • 세마포어의 각 PV 연산은 세마포어 값에 1을 더하거나 빼는 것으로 제한되지 않고 양의 정수를 더하거나 뺄 수도 있습니다.

  • 세마포어 그룹을 지원합니다.

5. 공유 메모리

공유 메모리(Shared Memory)는 둘 이상의 프로세스가 주어진 저장 영역을 공유하는 것을 말합니다.

Features

  • 공유 메모리는 프로세스가 메모리에 직접 액세스하기 때문에 가장 빠른 유형의 IPC입니다.

  • 여러 프로세스가 동시에 작동할 수 있으므로 동기화가 필요합니다.

  • 일반적으로 세마포어 + 공유 메모리를 함께 사용하며, 세마포어는 공유 메모리에 대한 액세스를 동기화하는 데 사용됩니다.

프로그래밍에 대해 더 자세히 알고 싶다면 php training 칼럼을 주목해주세요!

위 내용은 프로세스 간 통신 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.