매일 3분 운영 체제 수련 비적(15): 프로세스 간 통신(1): 소개
프로세스 간 통신
독립 실행형 운영 체제의 프로세스는 두 가지 유형으로 나눌 수 있습니다.
1. 독립 프로세스: 이 프로세스는 다른 프로세스와 아무런 교류도 하지 않습니다.
2. 공동 작업 프로세스: 둘 이상의 프로세스 간에 교류가 필요합니다.
예를 들어
ls /tmp
명령은 독립적으로 실행되고 다른 프로세스에 의존하지 않으며 cat a.log | grep 'abc'
명령의 두 프로세스는 협동 프로세스이다.grep 프로세스는cat 프로세스에 의존하고,grep는cat 프로세스가 생성한 데이터를 기다려야만 계속 실행할 수 있다.단일 기기에서 서로 다른 프로세스 간의 협력에 대해 각 프로세스 간에 데이터의 교류가 필요하다. 이런 행위를 프로세스 간 통신(Inter-process communication, IPC)이라고 부른다. 즉, 프로세스와 프로세스의 통신이다.
단기적인 여러 프로세스가 프로세스 간의 통신을 필요로 하는 것을 제외하고 다중 컴퓨터 간의 프로세스도 때때로 프로세스 간의 통신을 해야 한다. 이것은 흔히 볼 수 있다. 예를 들어 본 기기의 QQ 클라이언트 프로세스는 텐센트의 QQ 서버의 프로세스와 데이터 전송을 해야 하고 브라우저가 웹 페이지를 조회할 때 브라우저 프로세스는 웹 페이지가 있는 서버 프로세스와 데이터 전송을 해야 한다.
프로세스 간 통신 방식은 여러 가지가 있다.넓은 의미에서 말하자면 프로세스 간에 데이터를 공유하거나 전달할 수 있다면 프로세스 간의 통신이라고 할 수 있다.일반적인 프로세스 간 통신 방법은 다음과 같습니다.
프로세스 간 통신 방식
묘사
파일(File)
여러 프로세스에서 같은 파일의 데이터를 얻을 수 있습니다
파이프
일방적으로 데이터를 전송하는 파이프는 한쪽만 쓰고 다른 한쪽만 읽을 수 있다
소켓(Socket)
다중 프로세스 간의 통신은 물론 본 컴퓨터에서 두 프로세스가 socket 통신을 사용하도록 할 수도 있다
Unix 도메인 소켓(Unix Domain Socket)
단일 프로세스 간에 필드 플러그인 모드를 통해 통신하는 것은 양방향 파이프로 볼 수 있다
공유 메모리(Shared Memory, shm)
물리적 메모리에 하나의 메모리를 나누어 여러 프로세스가 이 메모리를 공유한다
파일 매핑(Memory-maped file)
파일의 데이터를 물리적 메모리에 비추고 여러 프로세스가 이 메모리를 공유합니다
메시지 큐
어떤 프로세스가 메시지를 메시지 대기열에 넣고 다른 프로세스가 대기열에서 메시지를 받는다
신호(Signal)
일부 신호를 보내서 다른 프로세스에 알리면 프로세스가 신호를 받아 다른 처리를 한다
신호량(Semaphore)
신호등이야.응용 방식은 여러 가지가 있는데 그 작용을 요약하면 신호등이나 신호등의 수량에 따라 프로세스를 막을지 안 막을지 결정하는 것이다
잠금(Lock)
자원에 자물쇠를 채웁니다. 만약 자원이 어떤 프로세스에 잠겼다면, 다른 프로세스가 이 자원을 수정하거나 읽으려면, 자물쇠가 열릴 때까지 막힐 것입니다.
파일을 통해 프로세스 간의 통신을 실현하는 방식은 소개할 것이 없고 나머지 몇 가지 프로세스 간의 통신 방식을 간단하게 소개한다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.