KR101562799B1 - 프로세스 간 통신 방법 및 그 컴퓨팅 장치 - Google Patents

프로세스 간 통신 방법 및 그 컴퓨팅 장치 Download PDF

Info

Publication number
KR101562799B1
KR101562799B1 KR1020130130423A KR20130130423A KR101562799B1 KR 101562799 B1 KR101562799 B1 KR 101562799B1 KR 1020130130423 A KR1020130130423 A KR 1020130130423A KR 20130130423 A KR20130130423 A KR 20130130423A KR 101562799 B1 KR101562799 B1 KR 101562799B1
Authority
KR
South Korea
Prior art keywords
data
receiver
value
recipient
status flag
Prior art date
Application number
KR1020130130423A
Other languages
English (en)
Other versions
KR20150050694A (ko
Inventor
정지원
강준호
김도현
이용준
Original Assignee
삼성에스디에스 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성에스디에스 주식회사 filed Critical 삼성에스디에스 주식회사
Priority to KR1020130130423A priority Critical patent/KR101562799B1/ko
Publication of KR20150050694A publication Critical patent/KR20150050694A/ko
Application granted granted Critical
Publication of KR101562799B1 publication Critical patent/KR101562799B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)

Abstract

프로세스 간 통신 데이터 유실 가능성을 최소화함으로써 운영 체제에서 제공하는 IPC 핸들러의 안정성을 보완할 수 있는 방법 및 그러한 방법을 수행하는 컴퓨팅 장치가 제공된다. 본 발명에 따른 프로세스 간 통신 방법은 컴퓨팅 장치의 프로세서에서 실행되는 서비스 프로세스가, 상기 프로세서에서 실행되는 송신자 프로세스로부터 전송 대상 데이터를 제공받는 단계, 상기 서비스 프로세스가, 상기 프로세서에서 실행되는 수신자 프로세스의 실행 여부를 확인하는 단계, 상기 확인의 결과 상기 수신자 프로세스가 미실행 상태인 경우, 상기 서비스 프로세스가 상기 수신자 프로세스를 실행시키는 단계, 상기 서비스 프로세스가, 상기 수신자 프로세스의 데이터 수신 가부를 가리키는 수신자 상태 플래그의 값을 체크하는 단계, 상기 체크의 결과 상기 수신자 상태 플래그의 값이 수신 불가를 가리키는 값인 경우, 상기 서비스 프로세스가 소정 시간 동안 슬립(sleep) 후 상기 수신자 상태 플래그의 값을 체크하는 것을 상기 수신자 상태 플래그의 값이 수신 가능을 가리키는 값으로 바뀔 때까지 반복하는 단계, 및 상기 체크의 결과 상기 수신자 상태 플래그의 값이 수신 가능을 가리키는 값일 때, 상기 서비스 프로세스가 상기 전송 대상 데이터를 상기 수신자 프로세스에 제공하는 단계를 포함한다.

Description

프로세스 간 통신 방법 및 그 컴퓨팅 장치{Inter process communication method and computing apparatus thereof}
본 발명은 프로세스 간 통신 방법 및 그 장치에 관한 것이다. 보다 자세하게는 수신자 프로세스가 실행 중인 상태가 아니거나, 메시지를 수신할 수 없는 상태에도 안전하게 메시지가 전달되도록 하는 프로세스 간 통신 방법 및 그 장치에 관한 것이다.
프로세스 간 통신(inter process communication)은 서로 다른 프로세스 간에 정보를 주고 받는 것을 의미한다. 운영체제는 각 프로세스가 다른 프로세스의 오류 등에 의하여 실행 환경이 침범하는 것을 방지하기 위하여 각각의 프로세스가 사용하는 메모리 영역을 분리하여 관리하기 때문에, 원칙적으로는 프로세스 간에 정보를 주고 받는 것이 불가능하다. 그러나, 소프트웨어 개발 시 프로세스 간에 정보를 주고 받는 동작을 하는 것이 필요한 상황이 발생하기 때문에, 대부분의 운영 체제(Operating System)에서는 프로세스 간 통신을 지원하는 IPC 핸들러를 제공하고 있다.
그러나, 기존의 IPC 핸들러는 프로세스 간에 정보를 안전하게 송수신하는 것을 보장하지 못한다. 예를 들어, 수신자 프로세스가 실행 중이지 않은 상태이거나, 수신자 프로세스가 실행 중이더라도 데이터를 수신하여 처리할 수 없는 상태인 경우 등에서는 정보가 정확하게 수신자 프로세스에 전달되지 않을 수 있다. 따라서, 운영 체제에서 제공하는 IPC 핸들러의 안정성을 보완할 수 있는 기술의 제공이 요청된다.
한국공개특허 2001-0064765 한국공개특허 2011-0130331
본 발명이 해결하고자 하는 기술적 과제는 프로세스 간 통신 데이터 유실 가능성을 최소화함으로써 운영 체제에서 제공하는 IPC 핸들러의 안정성을 보완할 수 있는 방법 및 그러한 방법을 수행하는 컴퓨팅 장치를 제공하는 것이다.
본 발명이 해결하고자 하는 다른 기술적 과제는 컴퓨팅 장치의 시스템 자원을 많이 사용하기 때문에 필요 기능만 수행하고 종료되는 수신자 프로세스에 대한 프로세스 간 데이터 송신 작업을 안정적으로 수행할 수 있는 방법 및 그러한 방법을 수행하는 컴퓨팅 장치를 제공하는 것이다.
본 발명이 해결하고자 하는 또 다른 기술적 과제는, 수신자 프로세스의 동작 상태가 데이터 수신이 불가능한 상태인 경우에는 프로세스 간 데이터 송신을 하지 않음으로써 데이터가 안전하게 처리되도록 하는 방법 및 그러한 방법을 수행하는 컴퓨팅 장치를 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 당업자에게 명확하게 이해 될 수 있을 것이다.
상기 기술적 과제를 달성하기 위한 본 발명의 프로세스 간 통신 방법의 일 실시예는, 컴퓨팅 장치의 프로세서에서 실행되는 서비스 프로세스가 상기 프로세서에서 실행되는 송신자 프로세스로부터 전송 대상 데이터를 제공받는 단계, 상기 서비스 프로세스가 상기 프로세서에서 실행되는 수신자 프로세스의 실행 여부를 확인하는 단계, 상기 확인의 결과 상기 수신자 프로세스가 미 실행 상태인 경우, 상기 서비스 프로세스가 상기 수신자 프로세스를 실행시키는 단계, 상기 서비스 프로세스가 상기 수신자 프로세스의 데이터 수신 가부를 가리키는 수신자 상태 플래그의 값을 체크하는 단계, 상기 체크의 결과 상기 수신자 상태 플래그의 값이 수신 불가를 가리키는 값인 경우, 상기 서비스 프로세스가 소정 시간 동안 슬립(sleep) 후 상기 수신자 상태 플래그의 값을 체크하는 것을 상기 수신자 상태 플래그의 값이 수신 가능을 가리키는 값으로 바뀔 때까지 반복하는 단계, 및 상기 체크의 결과 상기 수신자 상태 플래그의 값이 수신 가능을 가리키는 값일 때, 상기 서비스 프로세스가 상기 전송 대상 데이터를 상기 수신자 프로세스에 제공하는 단계를 포함한다.
상기 실시예에 따르면, 상기 수신자 상태 플래그는, 상기 서비스 프로세스와 상기 수신자 프로세스 간에 프로세스 간 동기화를 통하여 공유되는 것일 수 있다. 이 때, 상기 수신자 프로세스를 실행시키는 단계는, 상기 수신자 프로세스가, 프로세스 생성 완료 시 상기 수신자 상태 플래그의 값을 수신 가능을 가리키는 값으로 세팅 하는 단계를 포함할 수 있다.
이 때, 상기 프로세스 간 통신 방법은 상기 수신자 프로세스가, 상기 전송 대상 데이터를 수신하여 상기 전송 대상 데이터에 따른 루틴 수행이 완료된 후 소정 시간 동안 슬립(sleep)하는 단계, 및 상기 수신자 프로세스가, 상기 슬립 이후에도 상기 서비스 프로세스로부터 수신된 데이터가 없는 경우 상기 수신자 상태 플래그의 값을 수신 불가를 가리키는 값으로 세팅 한 후, 프로세스 종료 절차를 수행하는 단계를 더 포함할 수도 있다. 이 때, 상기 수신자 프로세스가, 상기 전송 대상 데이터를 수신하여 상기 전송 대상 데이터에 따른 루틴 수행이 완료된 후 소정 시간 동안 슬립(sleep)하는 단계는, 소정 시간 동안 슬립 하되, 슬립 하는 시간은 상기 수신자 프로세스의 상기 컴퓨팅 장치 자원 사용량이 많을 수록 감소하도록 설정되는 단계를 포함할 수 있다.
상기 실시예에 따르면, 상기 송신자 프로세스로부터 IPC를 통해 전송 대상 데이터를 제공받는 단계는 상기 전송 대상 데이터를 FIFO(First In First Out) 데이터 구조에 삽입하는 단계를 포함하고, 상기 전송 대상 데이터를 상기 수신자 프로세스에 제공하는 단계는 상기 FIFO 데이터 구조에서 하나의 상기 전송 대상 데이터를 제거하고, 상기 전송 대상 데이터를 상기 수신자 프로세스에 제공하는 단계, 및 상기 FIFO 데이터 구조에 전송 대상 데이터가 남아 있는 경우, 상기 확인하는 단계, 상기 실행시키는 단계, 상기 체크하는 단계, 상기 반복하는 단계를 수행하는 단계를 포함할 수 있다.
상기 실시예에 따르면, 상기 서비스 프로세스는 상기 프로세서에서 상시 실행되고, 상기 수신자 프로세스는 상기 전송 대상 데이터에 따른 루틴 수행이 진행된 후 자동 종료될 수 있다.
상기 기술적 과제를 달성하기 위한 본 발명의 컴퓨터로 읽을 수 있는 기록 매체의 일 실시예는, 프로세스 간 통신 방법을 수행하도록 하는 명령어들을 포함하는 하나 이상의 프로그램이 기록된 것일 수 있다. 상기 프로세스 간 통신 방법은 컴퓨팅 장치의 프로세서에서 실행되는 서비스 프로세스가 상기 프로세서에서 실행되는 송신자 프로세스로부터 전송 대상 데이터를 제공받는 단계, 상기 서비스 프로세스가 상기 프로세서에서 실행되는 수신자 프로세스의 실행 여부를 확인하는 단계, 상기 확인의 결과 상기 수신자 프로세스가 미실행 상태인 경우, 상기 서비스 프로세스가 상기 수신자 프로세스를 실행시키는 단계, 상기 서비스 프로세스가 상기 수신자 프로세스의 데이터 수신 가부를 가리키는 수신자 상태 플래그의 값을 체크하는 단계, 상기 체크의 결과 상기 수신자 상태 플래그의 값이 수신 불가를 가리키는 값인 경우, 상기 서비스 프로세스가 소정 시간 동안 슬립(sleep) 후 상기 수신자 상태 플래그의 값을 체크하는 것을 상기 수신자 상태 플래그의 값이 수신 가능을 가리키는 값으로 바뀔 때까지 반복하는 단계, 및 상기 체크의 결과 상기 수신자 상태 플래그의 값이 수신 가능을 가리키는 값일 때, 상기 서비스 프로세스가 상기 전송 대상 데이터를 상기 수신자 프로세스에 제공하는 단계를 포함한다.
상기 기술적 과제를 달성하기 위한 본 발명의 프로세스 간 통신을 지원하는 컴퓨팅 장치의 일 실시예는, 적어도 하나의 프로세서를 포함하되, 상기 프로세서는 수신자 프로세스 수행부에 송신할 전송 대상 데이터를 서비스 프로세스 수행부에 제공하는 송신자 프로세스 수행부, 상기 전송 대상 데이터를 제공받아, 수신자 프로세스의 실행 여부를 확인하여 상기 확인의 결과 상기 수신자 프로세스가 미실행 상태인 경우 상기 수신자 프로세스를 실행시키는 제1 동작, 상기 수신자 프로세스의 데이터 수신 가부를 가리키는 수신자 상태 플래그의 값을 체크하여 상기 체크의 결과 상기 수신자 상태 플래그의 값이 수신 불가를 가리키는 값인 경우 소정 시간 동안 슬립(sleep) 후 상기 수신자 상태 플래그의 값을 체크하는 것을 상기 수신자 상태 플래그의 값이 수신 가능을 가리키는 값으로 바뀔때까지 반복하는 제2 동작, 상기 체크의 결과 상기 수신자 상태 플래그의 값이 수신 가능을 가리키는 값일 때 상기 전송 대상 데이터를 상기 수신자 프로세스에 제공하는 제3 동작을 수행하는 서비스 프로세스 수행부, 및 프로세스 생성 완료 시 상기 수신자 상태 플래그의 값을 수신 가능을 가리키는 값으로 세팅하는 수신자 프로세스 수행부를 실행한다.
상기와 같은 본 발명에 따르면, 수신자 프로세스가 실행 중이 아닌 상태에 있거나, 수신자 프로세스가 데이터 수신 불가능한 상태에 있더라도 프로세스 간 통신 방식으로 전달될 데이터의 유실 가능성이 최소화됨으로써, 운영 체제에서 제공하는 IPC 핸들러의 안정성이 보완될 수 있는 효과가 있다.
도 1은 본 발명의 일 실시예에 따른 컴퓨팅 장치의 논리적 구성도이다.
도 2는 본 발명의 다른 실시예에 따른 프로세스 간 통신 방법의 순서도이다.
도 3은 본 발명의 또 다른 실시예에 따른 컴퓨팅 장치의 하드웨어 구성도이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명한다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 게시되는 실시 예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예들은 본 발명의 게시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
본 명세서에서 "프로세스(process)"는 프로그램을 구동하여 메모리에 적재된 상태로 실행되는 하나의 작업 단위로, 프로세스 제어 블록(Process Control Block) 또는 프로세스 서술자 등의 데이터 구조에 의하여 표현되고, 운영 체제가 자원을 할당하는 대상이 되고, 실행 및 끝내기를 통한 관리의 대상이 되는 한 단위의 프로그램을 의미한다.
또한, 본 명세서에서 "프로세스 간 통신(IPC)"은 서로 다른 프로세스 간에 정보를 주고 받는 것을 의미한다.
또한, 본 명세서에서 "IPC 핸들러"는 운영체제가 상기 프로세스 간 통신을 지원하기 위하여 제공하는 프로그램 패키지를 의미한다.
본 명세서에서 제1, 제2 등이 다양한 소자, 구성요소 및/또는 섹션들을 서술하기 위해서 사용되나, 이들 소자, 구성요소 및/또는 섹션들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 소자, 구성요소 또는 섹션들을 다른 소자, 구성요소 또는 섹션들과 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 소자, 제1 구성요소 또는 제1 섹션은 본 발명의 기술적 사상 내에서 제2 소자, 제2 구성요소 또는 제2 섹션일 수도 있음은 물론이다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.
이하, 도 1을 참조하여 본 발명의 일 실시예에 따른 컴퓨팅 장치의 구성 및 동작에 대하여 설명하기로 한다.
도 1은 본 실시예에 따른 컴퓨팅 장치(10)의 논리적 구성도이다.
컴퓨팅 장치(10)는 컴퓨터, UMPC (Ultra Mobile PC), 워크스테이션, 넷북(net-book), PDA (Personal Digital Assistants), 포터블(portable) 컴퓨터, 웹 타블렛(web tablet), 무선 전화기(wireless phone), 모바일 폰(mobile phone), 스마트폰(smart phone), 스마트 TV(smart TV), 셋탑박스(set-top box), e-북(e-book), PMP(portable multimedia player), 휴대용 게임기, 네비게이션(navigation) 장치, 블랙박스(black box), 디지털 카메라(digital camera), 3차원 수상기(3-dimensional television), 디지털 음성 녹음기(digital audio recorder), 디지털 음성 재생기(digital audio player), 디지털 영상 녹화기(digital picture recorder), 디지털 영상 재생기(digital picture player), 디지털 동영상 녹화기(digital video recorder), 디지털 동영상 재생기(digital video player), 정보를 무선 환경에서 송수신할 수 있는 장치, 홈 네트워크를 구성하는 다양한 전자 장치들 중 하나, 컴퓨터 네트워크를 구성하는 다양한 전자 장치들 중 하나, 텔레매틱스 네트워크를 구성하는 다양한 전자 장치들 중 하나, RFID 장치, 또는 컴퓨팅 시스템을 구성하는 다양한 구성 요소들 중 하나 등과 같은 전자 장치의 다양한 구성 요소들 중 하나로 제공된다.
컴퓨팅 장치(10)는 프로세스 간 통신(inter process communication)을 지원하는 IPC 핸들러가 구비된 운영 체제(Operating System)(미도시)가 구비된 것이다. 즉, 컴퓨팅 장치(10)에서 실행되는 사용자 레벨(user level)의 응용 프로그램은 송신자 프로세스(106) 및 수신자 프로세스(108) 간에 IPC 핸들러(110)를 이용하여 데이터를 전송하는 동작을 포함할 수 있다.
송신자 프로세스(106)는 I/O(102)를 통한 사용자 입력이 있거나, 네트워크 인터페이스(104)를 통하여 외부 네트워크로부터 소정의 데이터가 수신되거나, 내부 이벤트(105)의 발생이 있는 경우 등에 수신자 프로세스(108)에 대한 프로세스 간 통신 방식의 데이터 송신을 요청할 수 있다.
본 실시예에 따른 컴퓨팅 장치(10)는 프로세스 간 통신 과정에 서비스 프로세스(112)가 개입한다. 서비스 프로세스(112)는 컴퓨팅 장치(10)가 부팅되어 있는 동안에는 상시 실행되는 것이 바람직하다. 즉, 서비스 프로세스(112)는 사용자가 특정 응용 프로그램을 실행시키지 않아도, 컴퓨팅 장치(10)의 부팅 이후 이뤄지는 초기 프로세스 실행 과정에서 실행되는 것일 수 있다.
반면에, 수신자 프로세스(108)는 송신자 프로세스(106)로부터 서비스 프로세스(112)를 통하여 제공 받은 전송 대상 데이터에 따른 루틴 수행이 완료된 후 프로세스 종료함으로써, 컴퓨팅 장치(10)의 불필요한 자원 소모를 최소화할 수 있다. 예를 들어, 수신자 프로세스(108)가 컴퓨팅 장치(10)의 자원 소모를 많이 하는 경우, 수신자 프로세스(108)가 불필요하게 지속적으로 실행 상태에 있을 필요는 없을 것이다.
송신자 프로세스(106), 수신자 프로세스(108) 및 서비스 프로세스(112) 모두 컴퓨팅 시스템(10)에 구비된 운영 체제에 의하여 각각의 독립적인 프로세스로 관리 되는 것이다.
본 실시예에 따른 송신자 프로세스(106)는 IPC 핸들러(110)를 통해 수신자 프로세스(108)에 직접 데이터를 송신하는 대신, 서비스 프로세스(112)에 데이터 송신을 의뢰한다. 즉, 송신자 프로세스(106)는 서비스 프로세스(112)에 데이터 송신을 의뢰하기만 하고, 수신자 프로세스(108)에 대한 실제 데이터 송신은 서비스 프로세스(112)에 의하여 수행된다. 서비스 프로세스(112)에 대한 데이터 통신 의뢰는, 송신자 프로세스(106)가 IPC 핸들러(110)를 통해 서비스 프로세스(112)에 전송 대상 데이터를 제공함으로써 이뤄진다.
일 실시예에 따르면, 송신자 프로세스(106), 수신자 프로세스(108) 및 서비스 프로세스(112)는 1:1:1의 관계로 대응될 수 있다. 이 때, 서비스 프로세스(112)는 특정 송신자 프로세스(106) 및 수신자 프로세스(108) 전용의 프로세스 간 통신 서비스 모듈인 것으로 이해될 수 있다. 따라서, 이러한 경우에는 송신자 프로세스(106)가 수신자 프로세스(108)를 지정하여 데이터 송신을 의뢰하지 않아도 된다.
반면에, 다른 실시예에 따르면, 송신자 프로세스(106), 수신자 프로세스(108) 및 서비스 프로세스(112)가 M:N:1(M, N은 서로 다른 2 이상의 자연수)의 관계로 대응될 수도 있다. 이 때, 서비스 프로세스(112)는 범용 프로세스 간 통신 서비스 모듈인 것으로 이해될 수 있다. 이러한 경우에는 서비스 프로세스(112)가 수신자 프로세스(108)를 특정할 수 없기 때문에, 송신자 프로세스(106)는 데이터 송신을 의뢰할 때 수신자 프로세스(108)에 대한 정보를 서비스 프로세스(112)에 제공할 필요가 있다. 수신자 프로세스(108)에 대한 정보는 패키지화 된 상기 전송 대상 데이터의 헤더 부분에 포함될 수도 있고, 상기 전송 대상 데이터와 별개로 서비스 프로세스(112)에 제공될 수도 있다.
이하, 송신자 프로세스(106)로부터 전송 대상 데이터를 제공받은 서비스 프로세스(112)의 동작을 설명하기로 한다.
서비스 프로세스(112)는 전송 대상 데이터를 관리하기 위한 FIFO(First In First Out) 방식의 데이터 구조(1120)를 운영한다. 상기 FIFO 방식의 데이터 구조는 선입-선출 방식의 데이터 구조로, 예를 들어 큐(Queue), 원형 큐(Circular Queue) 등 일 수 있다.
서비스 프로세스(112)는 수신자 프로세스(108)의 상태를 확인하기 위한 대기 기간을 갖기 위하여 타이머(1122)를 이용할 수 있다.
서비스 프로세스(112)는 수신자 프로세스(108)의 상태를 가리키는 수신자 상태 플래그("STATE FLAG")(1124)도 관리할 수 있다. 수신자 상태 플래그(1124)는 서비스 프로세스(112)와 수신자 프로세스(108) 간에 프로세스 간 동기화를 통하여 공유될 수 있다. 예를 들어, 서비스 프로세스(112)와 수신자 프로세스(108)는 공유 메모리(shared memory) 영역 내에 수신자 상태 플래그(1124)를 기록하고, 수신자 상태 플래그(1124) 값에 대한 서비스 프로세스(112)와 수신자 프로세스(108) 간 동기화 기술이 사용되어 수신자 상태 플래그(1124) 값의 무결성이 보장될 수 있다.
상기 동기화 기술은, 서비스 프로세스(112) 및 수신자 프로세스(108)가 동시에 수신자 상태 플래그(1124) 값을 수정할 수 있고, 이러한 경우 어느 한쪽은 잘못된 값을 수신자 상태 플래그(1124)의 값으로 인지할 수 있는 문제를 해결하기 위한 것으로, 예를 들어 세마포어(semaphore)와 같은 널리 알려진 프로세스 간 동기화 기술이 활용될 수 있다.
수신자 상태 플래그(1124)는 데이터 수신 불가를 가리키는 값(BLOCKED)과 데이터 수신 가능을 가리키는 값(READY) 중 하나를 가질 수 있다. 서비스 프로세스(112)는 수신자 상태 플래그(1124)를 데이터 수신 불가를 가리키는 값(BLOCKED)으로 초기화한다. 예를 들어, 서비스 프로세스(112)는 프로세스 생성 시점에 수신자 상태 플래그(1124)를 데이터 수신 불가를 가리키는 값(BLOCKED)으로 초기화할 수 있다.
상기 설명한 것과 같이, 서비스 프로세스(112)는 전송 대상 데이터를 관리하기 위한 FIFO(First In First Out) 데이터 구조(1120) 및 수신자 프로세스(108)의 상태를 가리키는 수신자 상태 플래그("STATE FLAG")(1124)를 관리하고, 수신자 프로세스(108)의 상태를 확인하기 위한 대기 기간을 갖기 위하여 타이머(1122)를 이용한다.
송신자 프로세스(106)로부터 전송 대상 데이터가 제공되면, 서비스 프로세스(112)는 제공된 전송 대상 데이터를 FIFO 데이터 구조(1120)에 삽입하고, 수신자 프로세스(108)의 실행 상태를 확인하고, 수신자 프로세스(108)의 데이터 수신 가부를 가리키는 수신자 상태 플래그(1124)의 값을 체크한다.
서비스 프로세스(112)는 기 지정된 메모리 번지에 수신자 프로세스(108)의 명령어들이 로드 되어 있는지 확인하거나, 컴퓨팅 장치(10)의 운영 체제에 특정 식별자를 가진 프로세스의 로딩 여부를 조회하는 등의 방식을 이용하여 수신자 프로세스(108)의 실행 상태를 확인할 수 있다. 수신자 프로세스(108)가 미 실행 상태인 경우, 서비스 프로세스(112)가 컴퓨팅 장치(10)의 운영 체제를 통해 수신자 프로세스(108)를 실행시킬 수 있다. 서비스 프로세스(112)는 수신자 프로세스(108)를 실행시킨 후, 타이머(1122)를 이용하여 수신자 상태 플래그의 값이 데이터 수신 가능을 가리키는 값(READY)으로 변경될 때까지 대기한다.
상기 언급된 바와 같이, 서비스 프로세스(112)는 수신자 상태 플래그(1124)를 데이터 수신 불가를 가리키는 값(BLOCKED)으로 초기화하기 때문에, 수신자 프로세스(108)는 프로세스 생성 시점에 수신자 상태 플래그(1124)의 값을 데이터 수신 가능을 가리키는 값(READY)으로 세팅 한다. 그 결과, 수신자 프로세스(108)가 미 실행 상태인 경우라도, 서비스 프로세스(112)에 의한 수신자 프로세스(108) 실행(Wake up)에 의하여 수신자 프로세스(108)는 송신자 프로세스(106)로부터 제공된 전송 대상 데이터를 처리할 수 있는 상태가 된다.
한편, 서비스 프로세스(112)는 수신자 프로세스(108)가 실행 중인지 여부뿐만 아니라, 수신자 프로세스(108)가 데이터 수신 가능한 상태인지 여부까지도 체크한다. 예를 들어 수신자 프로세스(108)가 종료 직전인 경우, 수신자 프로세스(108)의 상태는 실행 중인 상태로 파악 될 것이나, 수신자 프로세스(108)에 전송 대상 데이터를 전달하더라도 수신자 프로세스(108)는 곧바로 종료 될 것이다. 따라서, 이러한 경우 전송 대상 데이터는 유실될 가능성이 있다. 이러한 경우 발생할 수 있는 데이터 유실을 방지하기 위하여, 수신자 프로세스(108)는 종료 직전에 수신자 상태 플래그(1124)의 값을 데이터 수신 불가를 가리키는 값(BLOCKED)으로 세팅 할 수 있다.
이 경우, 서비스 프로세스(112)는 수신자 프로세스(108)가 실행 중인 상태이더라도 수신자 상태 플래그(1124)의 값이 데이터 수신 불가를 가리키는 값(BLOCKED)인 경우에는 전송 대상 데이터를 수신자 프로세스(108)에 제공하지 않고, 수신자 상태 플래그(1124)의 값이 데이터 수신 가능을 가리키는 값(READY)으로 바뀔 때까지 타이머(1122)를 이용하여 대기할 수 있다.
상기 언급된 동작을 통해 서비스 프로세스(112)는 수신자 프로세스(108)의 실행 여부 및 데이터 수신 가부와 무관하게 전송 데이터의 유실 없이 데이터 전달을 안전하게 수행할 수 있다.
도 1의 각 구성요소는 소프트웨어(software) 또는, FPGA(field-programmable gate array)나 ASIC(application-specific integrated circuit)과 같은 하드웨어(hardware)를 의미할 수 있다. 그렇지만 상기 구성요소들은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니며, 어드레싱(addressing)할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 실행시키도록 구성될 수도 있다. 상기 구성요소들 안에서 제공되는 기능은 더 세분화된 구성요소에 의하여 구현될 수 있으며, 복수의 구성요소들을 합하여 특정한 기능을 수행하는 하나의 구성요소로 구현할 수도 있다.
이하, 도 2를 참조하여, 본 발명의 다른 실시예에 따른 프로세스 간 통신 방법을 설명한다. 도 2에 도시된 순서도에 따른 동작들은 도 1에 도시된 컴퓨팅 장치에 의하여 수행될 수 있으나, 수행 주체가 도 1에 도시된 구성을 가지는 컴퓨팅 장치로 한정되는 것은 아니다.
컴퓨팅 장치의 프로세서에서 실행되는 서비스 프로세스(112)가 프로세스 초기화 과정에서 수신자 상태 플래그("STATE FLAG")의 값을 데이터 수신 불가를 가리키는 값(BLOCKED)으로 초기화 한다(S100). 상기 수신자 상태 플래그는 서비스 프로세스(112)와 수신자 프로세스(108) 간에 프로세스 간 동기화를 통하여 공유되는 변수 일 수 있다.
서비스 프로세스(112)는 상기 컴퓨팅 장치가 부팅 되어 있는 상태에서는 계속 실행 중인 상태를 유지하는 것이 바람직하다.
송신자 프로세스(106)에서 데이터 전달 상황(예, 사용자 입력, 외부 네트워크로부터 데이터 수신, 내부 이벤트 발생)이 발생한 경우(S102), 송신자 프로세스(106)는 전송 대상 데이터가 포함된 데이터 전달 요청을 프로세스 간 통신(IPC)을 통해 서비스 프로세스(112)에 제공한다(S104).
서비스 프로세스(112)는 FIFO 데이터 구조에 상기 제공 된 전송 대상 데이터를 삽입한다(S106).
서비스 프로세스(112)는, 수신자 프로세스(108)가 실행 중인지 확인한다(S108). 수신자 프로세스(108)가 미 실행 중인 경우, 수신자 프로세스를 실행한다(S110).
한편, 수신자 프로세스(108)는 프로세스 초기화 과정에서 상기 수신자 상태 플래그의 값을 데이터 수신 가능을 가리키는 값(READY)으로 세팅 한다(S114).
다시, 서비스 프로세스(112)의 동작을 설명하면, 수신자 프로세스의 실행 여부 확인(S108)을 수행한 후, 상기 수신자 상태 플래그의 값이 데이터 수신 가능을 가리키는 값(READY)인지 여부를 체크한다(S116). 상기 수신자 상태 플래그의 값이 데이터 수신 가능을 가리키는 값(READY)이 아닌 경우, 타이머를 이용하여 기 지정된 시간(SLEEP_TIME1) 동안 대기한 후, 수신자 프로세스의 실행 여부 확인(S108) 및 수신자 상태 플래그의 값 확인(S116)을 재 수행한다.
상기 수신자 상태 플래그의 값이 데이터 수신 가능을 가리키는 값(READY)인 경우, 상기 FIFO 데이터 구조에서 전송 대상 데이터를 하나 제거하여(S118), 수신자 프로세스에 전달한다(S122).
서비스 프로세스(112)는 하나의 전송 대상 데이터를 수신자 프로세스(108)에 전달한 후, 상기 수신자 상태 플래그의 값을 데이터 수신 불가를 가리키는 값(BLOCKED)으로 세팅 할 수 있다(S123). 추후 설명하겠지만, 상기 수신자 상태 플래그의 값은 수신자 프로세스(108)가 상기 전송 대상 데이터에 따른 루틴을 실행한 후, 수신자 프로세스(108)에 의하여 데이터 수신 가능을 가리키는 값(READY)으로 변경될 수 있다(S127). 서비스 프로세스(112)가 전송 대상 데이터를 수신자 프로세스(108)에 전달한 후 수신자 상태 플래그의 값을 데이터 수신 불가를 가리키는 값(BLOCKED)으로 세팅하는 이유는, 수신자 프로세스(108)가 전송 대상 데이터에 따른 루틴을 실행하는 도중 갑자기 프로세스가 종료되거나, 비정상적 동작(예를 들어, 무한 루프에 빠지는 것)을 하는 경우 수신자 프로세스(108)에 추가적인 데이터 전송을 하지 않기 위함이다.
한편, 수신자 프로세스(108)는 서비스 프로세스(112)로부터 제공된 전송 대상 데이터가 존재하는 경우(S124), FIFO 데이터 구조에서 하나의 전송 대상 데이터를 제거하여 제거된 전송 대상 데이터에 따른 루틴을 실행한다(S126). 그 후, 수신자 프로세스(108)는 상기 수신자 상태 플래그의 값을 데이터 수신 가능을 가리키는 값(READY)으로 변경한다(S127).
그 후, 수신자 프로세스(108)는 타이머를 이용하여 기 지정된 시간(SLEEP_TIME2) 동안 대기(S128)한 후, 처리할 데이터가 더 존재하는지 판단한다(S124). 처리할 데이터가 더 존재하지 않는 경우, 수신자 프로세스(108)는 상기 수신자 상태 플래그의 값을 데이터 수신 불가를 가리키는 값(BLOCKED)으로 세팅(S130)한 후, 프로세스를 종료한다(S132). 이 때, 수신자 프로세스(108)의 대기 시간(SLEEP_TIME2)은 수신자 프로세스(108)의 컴퓨팅 장치 자원 사용량에 따라 다르게 설정될 수 있다. 예를 들어, 수신자 프로세스(108)의 컴퓨팅 장치 자원 사용량이 많을수록 대기 시간(SLEEP_TIME2)이 줄어들 수 있다. 수신자 프로세스(108)의 컴퓨팅 장치 자원 사용량이 많을수록 더 짧은 대기 시간(SLEEP_TIME2)을 지정하면, 많은 자원을 사용하는 프로세스 일수록 신속하게 종료 시켜 줌으로서, 컴퓨팅 장치의 자원 활용을 효율적으로 할 수 있는 효과가 있다.
한편, 서비스 프로세스(112)는, 상기 FIFO 데이터 구조에서 전송 대상 데이터를 하나 제거하여 수신자 프로세스에 전달(S118, S122)한 후, 수신자 프로세스(108)에 전달되어야 할 전송 대상 데이터가 상기 FIFO 데이터 구조에 더 존재하는지 판정한다(S134). 전달되어야 할 전송 대상 데이터가 상기 FIFO 데이터 구조에 더 존재하는 경우, 서비스 프로세스(112)는 수신자 프로세스의 실행 여부 확인(S108) 및 수신자 상태 플래그의 값 확인(S116)을 재 수행한 후, 수신자 프로세스가 실행 중이고, 수신자 상태 플래그의 값이 데이터 수신 가능을 가리키는 값(READY)을 가리키는 경우, 전송 대상 데이터를 수신자 프로세스(108)에 전달한다.
전달되어야 할 전송 대상 데이터가 상기 FIFO 데이터 구조에 존재하지 않는 경우, 서비스 프로세스(112)는 송신자 프로세스(106)로부터 데이터 전달 요청이 제공될 때까지 대기한다.
본 발명의 개념은 컴퓨터가 읽을 수 있는 매체 상에 컴퓨터가 읽을 수 있는 코드로 구현될 수 있다. 상기 컴퓨터가 읽을 수 있는 매체는 컴퓨터가 읽을 수 있는 저장 매체 및 컴퓨터가 읽을 수 있는 전송 매체를 포함할 수 있다. 상기 컴퓨터가 읽을 수 있는 저장 매체는 데이터를 저장하고, 저장된 데이터는 추후 컴퓨터 시스템에 의하여 리드(read)되는 데이터 스토리지 장치일 수 있으며, 예를 들어, ROM, RAM, CD-ROM, 자기 테이브, 플로피 디스크, 기타 옵티컬 저장 장치일 수 있다. 상기 컴퓨터가 읽을 수 있는 저장 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 각 컴퓨터가 읽을 수 있는 코드가 저장되고 실행되는 것이 분산 처리 방식에 의하여 수행되도록 할 수 있다. 상기 컴퓨터가 읽을 수 있는 전송 매체는 유무선 인터넷 접속을 통하여 반송파 또는 반송 신호(carrier wave, carrier signal)를 송신하는 것일 수 있다.
도 3은 본 발명의 또 다른 실시예에 따른 컴퓨팅 장치의 하드웨어 구성도이다.
도 3을 참조하면, 컴퓨팅 장치(10)는 사용자 입력을 처리하는 I/O(102), 스토리지(114), 외부 네트워크와의 데이터 송수신을 위한 네트워크 인터페이스(104), 명령어를 수행하는 프로세서(116), 프로세서(116)와 연결된 RAM(Random Access Memory)(118)를 포함할 수 있다. 상술한 본 발명의 일 실시예의 프로세스 간 통신 방법을 구현하는 프로그램 또는 소프트웨어 코드는 스토리지(114)에 저장되어, RAM(118)에 로드 되고 프로세서(116)에 의해 실행될 수 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
컴퓨팅 장치 10
송신자 프로세스 106
서비스 프로세스 112
수신자 프로세스 108

Claims (11)

  1. 컴퓨팅 장치의 프로세서에서 실행되는 서비스 프로세스가, 상기 프로세서에서 실행되는 송신자 프로세스로부터 전송 대상 데이터를 제공받는 단계;
    상기 서비스 프로세스가, 상기 프로세서에서 실행되는 수신자 프로세스의 실행 여부를 확인하는 단계;
    상기 확인의 결과 상기 수신자 프로세스가 미실행 상태인 경우, 상기 서비스 프로세스가 상기 수신자 프로세스를 실행시키는 단계;
    상기 서비스 프로세스가, 상기 수신자 프로세스의 데이터 수신 가부를 가리키는 수신자 상태 플래그의 값을 체크하는 단계;
    상기 체크의 결과 상기 수신자 상태 플래그의 값이 수신 불가를 가리키는 값인 경우, 상기 서비스 프로세스가 소정 시간 동안 슬립(sleep) 후 상기 수신자 상태 플래그의 값을 체크하는 것을 상기 수신자 상태 플래그의 값이 수신 가능을 가리키는 값으로 바뀔 때까지 반복하는 단계; 및
    상기 체크의 결과 상기 수신자 상태 플래그의 값이 수신 가능을 가리키는 값일 때, 상기 서비스 프로세스가 상기 전송 대상 데이터를 상기 수신자 프로세스에 제공하는 단계를 포함하는,
    프로세스 간 통신 방법.
  2. 제1 항에 있어서,
    상기 수신자 상태 플래그는, 상기 서비스 프로세스와 상기 수신자 프로세스 간에 프로세스 간 동기화를 통하여 공유되는 것을 특징으로 하는,
    프로세스 간 통신 방법.
  3. 제2 항에 있어서,
    상기 수신자 프로세스를 실행시키는 단계는,
    상기 수신자 프로세스가, 프로세스 생성 완료 시 상기 수신자 상태 플래그의 값을 수신 가능을 가리키는 값으로 세팅하는 단계를 포함하는,
    프로세스 간 통신 방법.
  4. 제2 항에 있어서,
    상기 서비스 프로세스가 상기 전송 대상 데이터를 상기 수신자 프로세스에 제공하는 단계는,
    상기 수신자 프로세스가, 상기 전송 대상 데이터를 수신하여 상기 전송 대상 데이터를 처리하는 루틴을 실행하고, 상기 루틴의 실행이 완료된 후 소정 시간 동안 슬립(sleep)하는 단계; 및
    상기 수신자 프로세스가, 상기 슬립 이후에도 상기 서비스 프로세스로부터 수신된 데이터가 없는 경우 상기 수신자 상태 플래그의 값을 수신 불가를 가리키는 값으로 세팅한 후, 프로세스 종료 절차를 수행하는 단계를 포함하는,
    프로세스 간 통신 방법.
  5. 제4 항에 있어서,
    상기 수신자 프로세스가, 상기 전송 대상 데이터를 수신하여 상기 전송 대상 데이터를 처리하는 루틴을 실행하고, 상기 루틴의 실행이 완료된 후 소정 시간 동안 슬립(sleep)하는 단계는,
    소정 시간 동안 슬립하되, 슬립하는 시간은 상기 수신자 프로세스의 상기 컴퓨팅 장치 자원 사용량이 많을 수록 감소하도록 설정되는 단계를 포함하는,
    프로세스 간 통신 방법.
  6. 제1 항에 있어서,
    상기 서비스 프로세스가, 상기 전송 대상 데이터를 상기 수신자 프로세스에 제공하는 단계는,
    상기 서비스 프로세스가, 상기 전송 대상 데이터를 제공한 후 상기 수신자 상태 플래그의 값을 수신 불가를 가리키는 값으로 세팅 하는 단계; 및
    상기 수신자 프로세스가, 상기 전송 대상 데이터를 처리하는 루틴을 실행하고, 상기 루틴의 실행이 완료된 후 상기 수신자 상태 플래그의 값을 수신 가능을 가리키는 값으로 세팅 하는 단계를 포함하는,
    프로세스 간 통신 방법.
  7. 제1 항에 있어서,
    상기 송신자 프로세스로부터 IPC를 통해 전송 대상 데이터를 제공받는 단계는,
    상기 전송 대상 데이터를 FIFO(First In First Out) 데이터 구조에 삽입하는 단계를 포함하고,
    상기 전송 대상 데이터를 상기 수신자 프로세스에 제공하는 단계는,
    상기 FIFO 데이터 구조에서 하나의 상기 전송 대상 데이터를 제거하고, 상기 전송 대상 데이터를 상기 수신자 프로세스에 제공하는 단계; 및
    상기 FIFO 데이터 구조에 전송 대상 데이터가 남아 있는 경우, 상기 확인하는 단계, 상기 실행시키는 단계, 상기 체크하는 단계, 상기 반복하는 단계를 수행하는 단계를 포함하는,
    프로세스 간 통신 방법.
  8. 제1 항에 있어서,
    상기 서비스 프로세스는 상기 프로세서에서 상시 실행되는 것이고,
    상기 수신자 프로세스는 상기 전송 대상 데이터를 처리하는 루틴을 실행하고, 상기 루틴의 실행이 진행된 후 자동 종료되는 것인,
    프로세스 간 통신 방법.
  9. 제1 항에 있어서,
    상기 송신자 프로세스로부터 전송 대상 데이터를 제공받는 단계는,
    상기 전송 대상 데이터를 제공받기 전에, 상기 수신자 상태 플래그의 값을 수신 불가를 가리키는 값으로 초기화하는 단계를 포함하는,
    프로세스 간 통신 방법.
  10. 제1 항 내지 제9 항 중 어느 하나의 프로세스 간 통신 방법을 수행하도록 하는 명령어들을 포함하는 하나 이상의 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록 매체.
  11. 프로세스 간 통신을 지원하는 컴퓨팅 장치에 있어서,
    상기 컴퓨팅 장치는 적어도 하나의 프로세서를 포함하고,
    상기 프로세서는,
    수신자 프로세스 수행부에 송신할 전송 대상 데이터를 서비스 프로세스 수행부에 제공하는 송신자 프로세스 수행부;
    상기 전송 대상 데이터를 제공받아, 수신자 프로세스의 실행 여부를 확인하여 상기 확인의 결과 상기 수신자 프로세스가 미실행 상태인 경우 상기 수신자 프로세스를 실행시키는 제1 동작, 상기 수신자 프로세스의 데이터 수신 가부를 가리키는 수신자 상태 플래그의 값을 체크하여 상기 체크의 결과 상기 수신자 상태 플래그의 값이 수신 불가를 가리키는 값인 경우 소정 시간 동안 슬립(sleep) 후 상기 수신자 상태 플래그의 값을 체크하는 것을 상기 수신자 상태 플래그의 값이 수신 가능을 가리키는 값으로 바뀔때까지 반복하는 제2 동작, 상기 체크의 결과 상기 수신자 상태 플래그의 값이 수신 가능을 가리키는 값일 때 상기 전송 대상 데이터를 상기 수신자 프로세스에 제공하는 제3 동작을 수행하는 서비스 프로세스 수행부; 및
    프로세스 생성 완료 시 상기 수신자 상태 플래그의 값을 수신 가능을 가리키는 값으로 세팅하는 수신자 프로세스 수행부를 실행하는,
    컴퓨팅 장치.
KR1020130130423A 2013-10-30 2013-10-30 프로세스 간 통신 방법 및 그 컴퓨팅 장치 KR101562799B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020130130423A KR101562799B1 (ko) 2013-10-30 2013-10-30 프로세스 간 통신 방법 및 그 컴퓨팅 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130130423A KR101562799B1 (ko) 2013-10-30 2013-10-30 프로세스 간 통신 방법 및 그 컴퓨팅 장치

Publications (2)

Publication Number Publication Date
KR20150050694A KR20150050694A (ko) 2015-05-11
KR101562799B1 true KR101562799B1 (ko) 2015-10-26

Family

ID=53388369

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130130423A KR101562799B1 (ko) 2013-10-30 2013-10-30 프로세스 간 통신 방법 및 그 컴퓨팅 장치

Country Status (1)

Country Link
KR (1) KR101562799B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100258398B1 (ko) 1991-10-30 2000-06-01 비센트 비.인그라시아 멀티프로세서 통신 시스템에서의 데이타 충돌 검출을 위한 방법 및 장치

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100258398B1 (ko) 1991-10-30 2000-06-01 비센트 비.인그라시아 멀티프로세서 통신 시스템에서의 데이타 충돌 검출을 위한 방법 및 장치

Also Published As

Publication number Publication date
KR20150050694A (ko) 2015-05-11

Similar Documents

Publication Publication Date Title
US10437631B2 (en) Operating system hot-switching method and apparatus and mobile terminal
US10521393B2 (en) Remote direct memory access (RDMA) high performance producer-consumer message processing
CN106161537B (zh) 远程过程调用的处理方法、装置、系统及电子设备
KR101915198B1 (ko) 프로세서간 메시지처리장치 및 방법
US8352710B2 (en) Off-loading of processing from a processor blade to storage blades
AU2011370439B2 (en) Method and apparatus for rapid data distribution
US11178076B2 (en) Packet processing with reduced latency
US20140280709A1 (en) Flow director-based low latency networking
US10313450B2 (en) Method for transparently connecting augmented network socket operations
CN112395097A (zh) 一种消息处理方法、装置、设备和存储介质
US20090157896A1 (en) Tcp offload engine apparatus and method for system call processing for static file transmission
US8863149B2 (en) Message processing apparatus and message processing method
KR101562799B1 (ko) 프로세스 간 통신 방법 및 그 컴퓨팅 장치
KR102274930B1 (ko) 채널 연결 관리 방법 및 장치
US8806082B2 (en) Direct memory access device for multi-core system and operating method of the same
EP2726992B1 (en) Network control model driver
US9588924B2 (en) Hybrid request/response and polling messaging model
CN103514126A (zh) 一种数据的接收方法、系统以及装置
CN118069387A (zh) 一种基于硬件多线程的rdma数据发送队列管理方法及装置
CN115203334A (zh) 数据处理方法、装置、电子设备和存储介质
CN117785762A (zh) 一种信息存储方法、装置、设备和存储介质
JP2013191202A (ja) マルチコアプロセッサ

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee