심플하다

SIMPL
심플하다
개발자iCanProgram Inc.
안정된 릴리스
2012년 1월 26일 SIMPLE v3.3.7[1] 출시/2012년 1월 26일; 10년 전(2012년 01월 26일)
운영 체제리눅스
유형프로세스 간 커뮤니케이션
면허증.GNU 약소 일반 공중 사용 허가서[2]
웹 사이트www.icanprogram.com/simpl/

SIMPL(Synchronous Interprocess Messaging Project for LINUX)은 공유 메모리 및 Unix[3] 파이프와 같은 사용자 공간 기술을 사용하여 Linux 라이브러리를 추가하여 QNX 스타일의 동기 메시지를 전달할 수 있는 무료 오픈 소스 프로젝트입니다.SendMssg/ReceiveMssg/ReplyMssg프로세스 간 메시징 메커니즘.

메커니즘

메시지를 송신하는 클라이언트 스레드는 서버 스레드가 수신된 메시지 확인 응답을 송신하고 메시지를 처리하여 응답을 실행할 때까지 BLOCKED(프로세스 스레드 실행이 일시적으로 정지됨)된다.서버 스레드가 응답하면 클라이언트 스레드는 READY(차단되지 않음)가 됩니다.일반적으로 서버 스레드는 클라이언트 스레드로부터의 메시지 수신을 대기하며 루프합니다.

블로킹은 클라이언트스레드 실행을 동기화하여 블로킹하고 실행하도록 서버 스레드를 암묵적으로 스케줄링합니다.다른 형식의 IPC와 마찬가지로 다음으로 실행할 스레드를 결정하기 위해 커널에 의한 명시적인 프로세스 제어 작업이 필요하지 않습니다.

송수신 조작은 차단 및 동기화되어 있습니다.응답은 차단되지 않습니다.클라이언트 스레드는 응답을 기다리는 동안 이미 차단되어 있어 추가 동기화가 필요하지 않습니다.서버 스레드는 클라이언트에 응답하여 커널 및/또는 네트워킹코드가 응답 데이터를 클라이언트스레드에 비동기적으로 전달하고 [4]실행 가능으로 마크하는 동안 계속 실행됩니다.

동기화된 메시지 전달의 이점

Synchronized Message Passing에는 다음과 같은 이점이 있습니다.

  • 심플한 코딩 모델로 복잡한 시스템 분할 작업을 단순화하고 테스트에 도움이 됩니다.
  • 고유한 스레드 동기화가 통신 프로그램 실행을 조정합니다.
  • 데이터 버퍼링은 필요 없습니다.
  • 네트워크 상호 작용의 심플화 - 스레드는 다른 머신의 다른 프로그램에 존재할 수 있습니다.

제한 사항

SIMPLE은 스레드 세이프가 아닌 것 같습니다.

유사한 프로젝트

리눅스용으로 사용할 수 있는 다른 QNX 동기 메시지 전달 프로젝트가 하나 더 있습니다.SIMPLY 프로젝트와 관련된 QNX 호환 API 계층을 추가하는 Cogent Real-Time Systems, Inc.의 Sam Roberts와 Andrew Thomas의 SRR IPC(Send/Receive/Reply용)SRR은 QNX API와 호환되도록 설계된 로드 가능한 커널 모듈입니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ "2012Jan26 SIMPL v3.3.7 Released - enabling Mac and Cygwin compiles". 2012-01-26. Retrieved 2012-03-16.
  2. ^ "SourceForge SIMPL-Synchronous Interprocess Messaging Additional Project Details License". Retrieved 2012-03-16.
  3. ^ "SRR -- QNX API compatible message passing for Linux". Retrieved 4 February 2015. This module has some relationships with the SIMPL project, and I subscribe to the simpl mailing list. FC Software is using shared memory and Unix pipes to implement S/R/R message passing.
  4. ^ QNX. "Interprocess Communication (IPC)". Retrieved 2012-03-16.

외부 링크