KR100356919B1 - 메시지큐와 공유메모리를 결합 이용한 프로세스 간의 통신 방법 - Google Patents

메시지큐와 공유메모리를 결합 이용한 프로세스 간의 통신 방법 Download PDF

Info

Publication number
KR100356919B1
KR100356919B1 KR1019990029074A KR19990029074A KR100356919B1 KR 100356919 B1 KR100356919 B1 KR 100356919B1 KR 1019990029074 A KR1019990029074 A KR 1019990029074A KR 19990029074 A KR19990029074 A KR 19990029074A KR 100356919 B1 KR100356919 B1 KR 100356919B1
Authority
KR
South Korea
Prior art keywords
shared memory
address
message queue
message
processes
Prior art date
Application number
KR1019990029074A
Other languages
English (en)
Other versions
KR20010010275A (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 KR1019990029074A priority Critical patent/KR100356919B1/ko
Publication of KR20010010275A publication Critical patent/KR20010010275A/ko
Application granted granted Critical
Publication of KR100356919B1 publication Critical patent/KR100356919B1/ko

Links

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
    • G06F9/544Buffers; Shared memory; Pipes
    • 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
    • G06F9/546Message passing systems or structures, e.g. queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)

Abstract

본 발명은 여러 개의 프로세스로 구성된 응용하에서 프로세스 간의 통신이 빈번하게 일어날 때 이를 지원하기 위한 통신방식에 대한 것으로서, 특히 메시지 큐와 공유메모리를 결합하여 사용함으로써 효율적으로 프로세스 간의 통신을 수행할 수 있는 통신방법에 관한 것이다.
본 발명은 프로세스 간의 통신 방법에 있어서, 가변적인 정보인 메시지의 파라미터는 공유 메모리를 통하고, 고정적인 정보인 주소정보와 메시지 이름은 메시지 큐를 통하게 함으로써, 메시지 큐 방식과 공유메모리 방식을 결합하여 사용하는 형태로 이루어지며, 메시지 큐 방식과 공유메모리 방식의 장점을 살려 두 기능을 혼합, 사용함으로써 프로세스간 통신이 빈번하게 사용되는 응용의 성능에 효율을 기할 수 있는 메시지 큐와 공유메모리를 결합 이용한 프로세스 간의 통신 방법을 개시한다.

Description

메시지 큐와 공유메모리를 결합 이용한 프로세스 간의 통신 방법{An interprocess communication method utilizing message queue combined with shared memory}
본 발명은 여러 개의 프로세스로 구성된 응용하에서 프로세스 간의 통신이 빈번하게 일어날 때 이를 지원하기 위한 통신방식에 대한 것으로서, 특히 메시지 큐와 공유메모리를 결합하여 사용함으로써 효율적으로 프로세스 간의 통신을 수행할 수 있는 통신방법에 관한 것이다.
통신 프로토콜은 일반적으로 여러 개의 계층으로 구분되며, 각 계층들은 다른 계층들과 결합되어 전체의 기능을 수행하게 된다. 즉, 하위 계층의 요구를 받아 이를 계층 고유의 처리를 행한 후 상위계층으로 보내거나, 상위 계층의 요구에 대하여 처리를 행한 후 하위 계층에 보낸다. 통신 프로토콜의 구현 시, 모든 프로토콜 계층을 하나의 프로세스로 구성하지 않는 한, 계층 별 혹은 몇 개의 계층을 묶어서 여러 개의 독립 프로세스(Process)로 구성할 것이므로, 전체 프로토콜의 동작은 여러 개 프로세스의 상호 협력하에 이루어지게 된다. 따라서, 프로세스간 통신의 문제가 중요한 문제로 대두된다.
유닉스 시스템 V(UNIX System V) 운영체제에는 여러 종류의 프로세스간 통신 메커니즘들이 존재하는데, 대표적인 것으로는 메시지 큐(Message Queue), 공유 메모리(Shared Memory), 그리고 세마포어(Semaphore) 방식이 있다.
메시지 큐 방식은 메시지 대기기능, 메시지 상태에 따른 프로세스 동기화(Synchronization), 메시지 우선순위(Priority) 등의 유용한 기능들을 포함하고 있으나, 자료의 내용 자체가 커널공간(Kernel Space)에 저장되므로 시스템 콜 사용에 따른 사용자 공간(User Space)과 커널공간 사이의 자료의 이동이 많다. 그 이유는 사용자가 어떠한 메시지를 보내고자 한다면, 그것은 일단 사용자 공간의 어떤 변수에 저장된 후, 메시지 큐 송신 시스템 콜에 의해서 사용자 공간에서 커널공간으로 자료가 복사되고, 이를 어떠한 프로세스가 수신하면 메시지 큐 수신 시스템 콜에 의하여 다시 커널공간에서 사용자공간으로 자료가 복사되기 때문이다. 만일, 길이가 긴 메시지를 송/수신하고자 한다면, 사용자공간과 커널공간사이의 자료이동에 많은 시간을 소모할 것이므로, 이는 시스템의 성능 저하를 가져오게 된다.
공유메모리 방법의 경우, 다수의 프로세스가 사용자 공간을 공유하여 자료를 읽거나 쓸 수 있도록 되어 있다. 공유메모리는 그 제어정보만 커널공간에 저장하고, 나머지 내용은 사용자 영역에 존재하므로 각 프로세스들은 자신의 변수에 자료를 쓰거나 읽어냄으로써 상호간 자료교환을 가능하게 한다. 그러나, 공유메모리 방식은 자료의 송/수신에 따르는 동기화 메커니즘을 제공하지 않기 때문에 프로세스들은 자료를 쓰고 자료를 읽어내는데, 미리 정해진 어떠한 규약을 정해야 한다. 다수의 프로세스가 다수의 메시지들을 동시 다발적으로 송신하고 수신하는 통신 프로토콜의 환경하에서는 그러한 규약을 정할 때 상당히 복잡한 제어가 요구될 수 있어, 제어에 따르는 많은 비용이 요구된다.
세마포어 방법은 프로세스간 상호배제(Mutual Exclusion)를 지원함으로써 다수의 프로세스가 동시에 하나의 자료를 접근할 때 이들간의 동기화를 지원한다. 그러나, 이 방법은 동기화만 지원할 뿐 자료의 전달기능은 없다. 통신 프로세스간 통신의 목적은 자료의 이동에 있으므로, 이 방식은 단독으로 자료의 송수신을 지원할 수는 없다.
프로세스가 다른 프로세스에게 메시지를 보낼 때, 메시지의 속성은 크게 둘로 나누어진다. 하나는 메시지의 이름이며, 하나는 메시지의 파라미터 들 이다. 이들은 양 프로세스간 인터페이스를 정의할 때 구체화된다. 일반적으로 메시지의 이름은 고정된 길이이고, 메시지내의 파라미터 들 은 메시지 특성에 따라 가변적이다.
본 발명에서는 프로세스간 통신에 있어서 위의 두 가지 메시지 속성 즉, 메시지이름과 메시지 파라미터를 나누어 서로 다른 기법을 사용하여 통신하고자 한다. 즉, 메시지의 이름과 관련된 정보는 메시지 큐를 이용하여 통신하고, 메시지내의 파라미터와 관련한 부분은 공유메모리를 통하여 통신한다. 파라미터를 담은 공유 메모리위치는 메시지 큐에 의해 메시지의 이름이 전달될 때 같이 전달한다. 만일 프로세스 A가 프로세스 B에게 메시지를 전달 하고자 한다면, 프로세스 A는 메시지의 파라미터를 공유메모리에 세팅하고, 메시지의 이름과 관련된 정보를 메시지 큐의 자료 구조에 세팅한다. 아울러 파라미터를 세팅한 공유 메모리의 주소정보를 메시지 큐의 자료구조에 세팅한다. 이를 수신한 프로세스 B는 메시지 큐로부터 메시지 이름과 공유메모리의 주소정보를 얻게 되고, 그 주소정보가 지시하는 공유 메모리로부터 프로세스 A가 세팅한 파라미터 정보를 얻게 된다.
따라서, 본 발명은 메시지 큐 방식과 공유메모리 방식의 장점만을 살려 결합 사용하여 프로세스간 통신에 있어서 효율을 기하는 방법에 관한 것으로서, 메시지 큐 방식에 대하여는 메시지의 동기화와 메시지 대기기능을 이용하면서 메시지 이름과 관련된 고정의 짧은 자료만을 전송함으로써 커널공간과 사용자 공간간의 자료이동에 따른 오버해드를 최대한도로 줄이고, 공유메모리 방식에 대해서는 사용자 공간의 자료를 손쉽게 이용하는 장점을 이용하면서 동기화 기능을 지원하지 못하는 단점을 메시지 큐 방식에 혼합함으로써 해결할 수 있는 메시지 큐와 공유메모리를 결합 이용한 프로세스간의 통신 방법을 제공하는데 있다.
상기한 목적을 달성하기 위한 본 발명은 프로세스 간의 통신 방법에 있어서, 가변적인 정보인 메시지의 파라미터는 공유 메모리를 통하고, 고정적인 정보인 주소정보와 메시지 이름은 메시지 큐를 통하게 함으로써, 메시지 큐 방식과 공유메모리 방식을 결합하여 사용하는 형태를 특징으로 한다.
도 1은 본 발명에 따른 메시지 큐와 공유메모리를 통한 프로세스간 통신 방법의 개념도.
도 2는 이벤트 제어블록의 구조도.
도 3은 오프셋주소 공간과 절대 주소공간간의 사상(Mapping)을 도시한 도면.
도 4는 주소 변환 함수의 절차를 나타낸 도면.
〈도면의 주요 부분에 대한 부호 설명〉
11 : 공유메모리 12 : 프로세스 A
13 : 프로세스 B 14 : 이벤트제어블록
15, 16, 17 및 18 : 사용자자료블록
20 : 메시지이름 21 : 운영변수
22 : 사용자제어블록주소정보 31 : 메시지 이름 필드
32 : 발신지 메시지 큐 번호 필드 33 : 착신지 메시지 큐 번호 필드
34 : 사용자 인스턴스 번호 필드 35 : 사용자자료블록 오프셋 필드
이하, 첨부된 도면을 참조하여 본 발명을 상세히 설명하기로 한다.
도 1은 본 발명에 따른 메시지 큐와 공유메모리를 통한 프로세스간의 통신의 내용을 개념적으로 표시한 것으로서, 프로세스간 통신이 이루어지는 형태를 나타내었다.
프로세스 A(12)를 어떠한 메시지를 송신할 발신지 프로세스라고 하고, 프로세스 B(13)을 프로세스 A(12)가 송신한 메시지를 수신할 착신지 프로세스라고 가정할 때, 프로세스 A(12)는 메시지의 내용을 분리하여 길이가 고정적인 부분인 메시지이름(20), 운영변수(21)등과, 길이가 가변적인 부분인 메시지 파라미터(23)로 나눈다. 이중 고정적인 부분은 이벤트제어블록(14)이라는 자료구조에 세팅하고, 가변적인 부분은 공유메모리(11) 상의 사용자제어블록의 풀(Pool)(15, 16, 17, 18)중에서 하나(16)를 할당 받아 그곳에 세팅한다. 이후, 할당 받은 사용자자료블록의 주소정보(22)를 이벤트제어블록(14)에 세팅한다. 이벤트제어블록(14)의 세팅이 모두 완료되었으면 프로세스 A(12)는 운영체제의 메시지 큐 송신 시스템 콜을 이용하여 이벤트제어블록(14)을 송신하게 된다.
프로세스 A(12)가 송신한 이벤트제어블록(14)은 운영체제의 메시지 큐 수신 시스템 콜에 의하여 프로세스 B(13)에 수신된다. 이후, 프로세스 B(13)는 우선 수신된 이벤트제어블록(14)내의 메시지 이름(20), 운영변수(21), 그리고 사용자제어블록 주소정보(22)를 얻어내게 된다. 사용자제어블록 주소정보(22)는 공유메모리(11) 상에서 프로세스 A(12)가 할당 받아 메시지 파라미터(23)을 세팅한 사용자자료블록(16)을 접근할 수 있는 주소정보 이므로, 그 정보를 기반으로 하여 프로세스 B(13)는 메시지 파라미터(16)를 얻을 수 있게 된다. 이로써 프로세스 A(12)가 송신하려 했던 메시지 이름(20), 운영변수(21), 그리고 메시지 파라미터(23)등의 모든 정보가 정확히 프로세스 B에게 전달되게 되는 것이다.
도 2는 도 1의 설명 중 언급되었던 이벤트제어블록(14)의 구조를 구체적으로 표시한 것이다.
메시지 이름 필드(31)에는 프로세스간 송/수신에 이용되는 다수의 메시지들을 구분하는 번호 정보를 담는 곳이다. 이 번호 정보의 정의 사항은 통신에 참여하는 프로세스들간에 미리 정해진 협약에 의한다. 이 필드는 4 바이트의 정수 값의 길이를 갖는다. 발신지 메시지큐 번호 필드(32), 착신지 메시지큐 번호 필드(33), 그리고 사용자 인스턴스 번호 필드(34)들은 메시지와 관련된 운영 변수들을 담는 곳이다. 발신지 메시지 큐 번호(32)는 메시지를 송신할 프로세스의 수신 메시지 큐의 번호를 의미하고, 착신지 메시지 큐 번호(33)는 메시지를 수신할 프로세스의 수신 메시지 큐의 번호를 의미한다. 이러한 정보를 운영하는 이유는 메시지를 수신하여 처리한 후, 그 메시지를 반송(Return)하고자 할 때 반송처를 손쉽게 찾도록 하고, 또한 디버깅을 위하여 프로세스간 통신내용을 모니터링할 필요가 있을 때 다수의 메시지들의 발신지와 착신지를 쉽게 알아볼 수 있도록 하기 위함이다. 메시지 큐의 번호는 운용체제의 메시지 큐 시스템 콜의 정의 사항에 4 바이트의 정수 길이로 정의되어 있으므로 여기서도 그 길이를 채용한다.
사용자 인스턴스 번호(34)는 송/수신하고자 하는 메시지에 어떤 사용자 고유의 실행 사례와 연관이 되어 있을 경우, 이를 구분하는 번호이다. 만일, 프로세스 A가 갑 이라는 사용자와 을 이라는 사용자의 실행사례를 동시 처리 중에 프로세스 B로의 메시지 송신 요구가 발생 한다면, 갑과 을에 대하여 고유의 사용자 인스턴스 번호를 할당하고 각각의 관련 메시지들의 사용자 인스턴스 번호 필드(34)에 사용자별 인스턴스 번호를 세팅하여 보낸다. 이를 수신한 프로세스 B는 수신된 사용자 인스턴스 번호를 그대로 유지하고 있다가 메시지 결과 반송시 그대로 세팅하여 보냄으로써 프로세스 A로 하여금 수신 메시지와 관련된 사용자 실행사례를 구분할 수 있도록 하는 것이다. 이러한 사용자 인스턴스 필드의 길이도 4 바이트 정수 값으로 운영한다.
마지막으로 사용자자료블록 오프셋 필드(35)는 도 1에 언급되었던 사용자자료블록의 주소정보를 담는 곳이다. 여기서 오프셋이란 개념은 주소의 절대값을 의미하는 것이 아니라, 공유메모리 주소의 시작점을 0으로 가정한 상대적인 위치를 값을 의미한다. 이는 두 프로세스가 공유메모리를 사용할 때, 그 공유메모리에 대한 절대 주소 값이 프로세스마다 상이함에 기인한 것이다. 이에 대한 설명은 도 3에서 자세히 하고자 한다.
상기에서 정의한 바와 같이 이벤트제어블록(14)은 4 바이트의 길이를 갖는 5개의 필드로 구성되므로 총 20 바이트의 고정 길이를 갖게 된다.
도 3은 공유메모리의 각 프로세스 상 절대 어드레스 공간이 상이함을 보이고, 이를 맞추기 위하여 도입한 오프셋 공간과의 사상(Mapping) 관계를 나타낸 것이다.
시스템상에 공유메모리(52)가 만들어지면 이는 운영체제상의 어떤 영역에 자리를 잡게되고, 이를 프로세스가 사용하려면 공유메모리(52)를 프로세스의 주소영역에 부착(Attach)하는 시스템 콜을 수행한 후, 사용하게 된다. 공유메모리(52)가프로세스내에 부착되는 절차가 성공적으로 수행되면, 그 프로세스는 공유메모리(52)를 자신의 영역처럼 사용이 가능하다. 각 프로세스가 사용하는 주소공간(51, 53)은 서로 상이하며, 따라서 한 프로세스의 주소공간은 그 프로세스에게만 유효할 뿐 다른 프로세스에게는 의미가 없다. 즉, 프로세스 A는 공유메모리를 0x10,000번지(64)부터 0x19,999번지(67)까지 부착하여 사용하고, 프로세스 B는 0x20,000번지(68) 부터 0x29,999번지(71)까지 부착하여 사용한다.
프로세스 A가 공유메모리 공간 중 사용자자료블록1(80)을 할당하여 그곳에 메시지 파라미터를 세팅하여 프로세스 B에게 전달하고자 할 경우, 그 사용자제어블록1(80)의 프로세스A 상에서의 절대주소 값인 0x11,000번지(65)는 프로세스 B에서는 의미가 없는 값이 되어버린다. 본 발명에서는 오프셋라는 상대주소 공간을 도입하여 이를 보정한다.
오프셋주소공간은 각 프로세스의 공유메모리 절대주소 공간의 시작값을 0으로 놓고, 그 지점부터의 절대 주소의 증가치를 표현한 상대주소 값으로 구성되어 있다. 그러므로, 시작 주소는 0이 되고, 끝 주소는 공유메모리 사이즈에서 1을 감한 값이 된다. 이러한 오프셋주소 공간은 프로세스마다 각각 운영된다. 도 1에서 프로세스 A의 오프셋주소공간(50)은 프로세스 A의 절대주소공간(51)과 대응되어 운영되고, 프로세스 B의 오프셋주소공간(54)은 프로세스 B의 절대주소공간(53)과 대응되어 운영된다. 프로세스 A의 오프셋주소공간(50)의 시작 주소와 끝 주소는 프로세스 A의 주소공간(51)의 시작 주소와 끝 주소인 0x10,000번지(64)와 0x19,999번지(67)와 대응되어, 0(60)과 9,999(63)로 각각 운영되며, 프로세스 B의오프셋주소공간(54)의 시작 주소와 끝 주소는 프로세스 B의 주소공간(53)의 시작 주소와 끝 주소인 0x20,000번지(68)와 0x29,999번지(71)와 대응되어 0(72)와 9,999(75)로, 각각 운영된다. 따라서, 두 프로세스의 오프셋주소공간(50, 54)의 주소값(60, 63, 72, 75)은 서로 일치하게 되므로, 프로세스간 상호 교환될 공유메모리 주소 정보로 활용될 수 있는 것이다.
이를 프로세스간 사용자자료블록1(80)의 전송의 경우를 예를 들어 설명하자면, 프로세스 A는 사용자자료블록1(81)에 메시지 파라미터의 세팅을 마친 후, 이의 주소정보로 절대주소인 0x11,000번지(65)를 보내는 것이 아니라, 이에 대응된 오프셋주소인 1,000(61)을 보낸다. 이를 수신한 프로세스 B는 오프셋주소인 1,000(73)과 대응된 프로세스 B의 절대주소인 0x21,000번지를 알게 되고, 그 주소로부터 프로세스 A가 전송한 메시지 파라미터를 엑세스하게 된다.
오프셋주소공간을 운영함에 있어서 절대주소 값과 오프셋주소간의 변환작업은 각 프로세스마다 주소변환 함수(55, 56)를 각각 운영 함으로써 해결한다. 주소변환 함수에 대한 내용은 도 4에서 자세히 기술한다.
도 4는 프로세스에서 절대주소 값과 오프셋주소 값 간의 변환을 행하는 주소변환 함수의 절차를 가상코드(Pseudo Code) 형태로 기술한 것이다.
UDBini()(90)는 공유메모리 생성 및 초기화를 수행하고, UDBreal()(91)과 UDBoffset(92)은 오프셋주소를 절대주소로 변환하거나 절대주소를 오프셋주소로 변환하는 기능을 각각 수행한다. 공유 메모리를 사용하려는 프로세스는 초기에UDBini()(90)를 한번은 사용하여야 한다. 발신지 프로세스는 사용자자료블록에 자료를 세팅한 후, 사용자자료블록의 절대 주소를 UDBoffset()(92)를 통하여 오프셋 주소로 변환하여 그 주소 값을 착신지 프로세스에게 보낸다. 이후, 착신지 프로세스는 수신한 오프셋 주소값을 UDBreal()(91)을 통하여 자신의 절대 어드레스 값으로 변환한 후 사용자 자료블록을 접근 하게 된다.
절차를 자세히 살펴보자면, UDBini()(90)에서는 우선 공유메모리를 생성한 후(100) 이를 자신의 주소공간에 부착하게 되는데, 이때 공유메모리의 시작주소 값을 프로세스내 정적 변수(Static Address)인 ShmStartAddr에 저장해 두어야 한다(101). UDBreal()(91)에서는 오프셋주소값을 입력 파라미터로 받는데, 오프셋 주소값 0은 절대주소 공간의 시작값인 ShmStartAddr과 대응되므로, 입력 파라미터인 오프셋주소와 ShmStartAddr를 더한 값은 오프셋 주소에 대응되는 공유 메모리내의 절대주소 값이 되므로 이를 반환하게 된다(103). 반대로, UDBoffset()(92)은 절대주소를 입력 파라미터로 받는데, 이것에서 ShmStartAddr를 감한 값은 공유 메모리내의 절대주소 값에 대응되는 오프셋주소 값이 되므로 이를 반환하게 된다(104).
이상에서 설명한 본 발명은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 있어 본 발명의 기술적 사상을 벗어나지 않는 범위에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시예 및 첨부된 도면에 한정되는 것이 아니다.
상술한 바와 같이, 본 발명에 따른 메시지 큐와 공유메모리를 결합 이용한 프로세스간 통신방법은 메시지큐의 프로세스 동기화, 메시지 대기기능과 공유메모리의 커널/사용자간의 자료이동을 요하지 않는 자료 접근등의 장점만을 살려 결합 이용함으로써, 프로세스간 통신을 행하는데 있어서 불필요한 오버해드를 줄여 프로세스간 통신기능을 필수적으로 빈번히 이용하는 통신 프로토콜 같은 응용의 전체적인 성능 향상을 가져온다는 장점이 있다.

Claims (5)

  1. 삭제
  2. UNIX 운영체제 하에서 메시지 큐와 공유메모리를 결합 이용한 프로세스 간의 통신 방법으로서,
    가변적인 정보인 메시지의 파라미터는 공유 메모리를 통하고,
    메시지 이름, 발신지 메시지 큐 번호, 착신지 메시지 큐 번호, 사용자 인스턴스 번호 및 사용자 자료블록 오프셋 정보를 포함하는 고정 길이의 자료구조인 이벤트 제어블럭은 메시지 큐를 통하여 통신하는 것을 특징으로 하는 메시지 큐와 공유메모리를 결합 이용한 프로세스 간의 통신 방법.
  3. 제 2 항에 있어서,
    상기 공유메모리의 주소정보를 설정시, 프로세스의 공유 메모리 절대주소의 시작 값을 0 으로 재 지정한 오프셋 주소공간이라는 상대 주소공간을 도입하여 오프셋 주소정보 정보가 다른 프로세스에게 의미가 있도록 하는 주소 사상(Mapping) 방식을 사용하는 것을 특징으로 하는 메시지 큐와 공유메모리를 결합 이용한 프로세스 간의 통신 방법.
  4. 제 3 항에 있어서,
    상기 오프셋 주소 공간과 공유메모리 절대주소 공간간의 변환을 행하기 위하여, UDBini(), UDBreal, UDBoffset()이라는 세가지 함수를 이용한 절차를 수행하는 것을 특징으로 하는 메시지 큐와 공유메모리를 결합 이용한 프로세스 간의 통신 방법.
  5. 제 4 항에 있어서,
    상기 UDBini(), UDBreal, UDBoffset()이라는 세가지 함수를 이용한 절차는 UDBini()에서 공유메모리 생성 및 초기화를 수행하는 단계와,
    발신지 프로세스에서 사용자자료블록에 자료를 세팅한 후, 사용자자료블록의 절대 주소를 UDBoffset()를 통하여 오프셋 주소로 변환하여 그 주소 값을 착신지 프로세스에게 전송하는 단계와,
    착신지 프로세스에서 수신한 오프셋 주소값을 UDBreal()을 통하여 자신의 절대 어드레스 값으로 변환한 후 사용자 자료블록을 접근하는 단계를 포함하여 이루어진 것을 특징으로 하는 메시지 큐와 공유메모리를 결합 이용한 프로세스 간의 통신 방법.
KR1019990029074A 1999-07-19 1999-07-19 메시지큐와 공유메모리를 결합 이용한 프로세스 간의 통신 방법 KR100356919B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019990029074A KR100356919B1 (ko) 1999-07-19 1999-07-19 메시지큐와 공유메모리를 결합 이용한 프로세스 간의 통신 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019990029074A KR100356919B1 (ko) 1999-07-19 1999-07-19 메시지큐와 공유메모리를 결합 이용한 프로세스 간의 통신 방법

Publications (2)

Publication Number Publication Date
KR20010010275A KR20010010275A (ko) 2001-02-05
KR100356919B1 true KR100356919B1 (ko) 2002-10-19

Family

ID=19602613

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019990029074A KR100356919B1 (ko) 1999-07-19 1999-07-19 메시지큐와 공유메모리를 결합 이용한 프로세스 간의 통신 방법

Country Status (1)

Country Link
KR (1) KR100356919B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150115211A (ko) 2014-04-03 2015-10-14 오픈스택 주식회사 사용자 스페이스와 커널 스페이스간의 콘텍스트 스위칭과 데이터 복사를 최소화하여 네트워크상의 복수의 목적지에 동일한 데이터를 전송하는 방법

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100871587B1 (ko) * 2007-04-20 2008-12-02 (주)엔텔스 공유 메모리 페이징 기법에 의한 프로세스간 가변 길이데이터 흐름 제어 방법 및 그 장치
US7627744B2 (en) * 2007-05-10 2009-12-01 Nvidia Corporation External memory accessing DMA request scheduling in IC of parallel processing engines according to completion notification queue occupancy level
KR101645268B1 (ko) * 2015-06-05 2016-08-03 이훈성 액티비티카운트를 이용한 게임수행방법
CN113608883B (zh) * 2021-06-21 2024-02-13 天津津航计算技术研究所 一种基于VxWorks实时操作系统的封装方法
CN113778706B (zh) * 2021-08-18 2023-08-15 北京自动化控制设备研究所 一种基于amp架构的操作系统核间通信方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1031616A (ja) * 1996-07-17 1998-02-03 Nec Corp プロセス間通信システム

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1031616A (ja) * 1996-07-17 1998-02-03 Nec Corp プロセス間通信システム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150115211A (ko) 2014-04-03 2015-10-14 오픈스택 주식회사 사용자 스페이스와 커널 스페이스간의 콘텍스트 스위칭과 데이터 복사를 최소화하여 네트워크상의 복수의 목적지에 동일한 데이터를 전송하는 방법

Also Published As

Publication number Publication date
KR20010010275A (ko) 2001-02-05

Similar Documents

Publication Publication Date Title
EP1358562B1 (en) Method and apparatus for controlling flow of data between data processing systems via a memory
JP3519920B2 (ja) オブジェクトのネーミングを管理するための方法、オブジェクトの物理corbaアドレス上でオブジェクトの論理アドレスを表示するための方法およびコンピュータシステム
US7409468B2 (en) Controlling flow of data between data processing systems via a memory
JPH04227562A (ja) データ処理システムのオペレーション実行装置とその方法
JPS58501065A (ja) パケツト音声統合交換のための処理設備
JPH07101407B2 (ja) スケジユーリング方法及び装置
JPH07281974A (ja) ネットワーク内のコンピュータ間でデータを交換するための通信システム
JPH0656598B2 (ja) コンピュータシステム・コンプレックス及びその操作方法
JPH1069391A (ja) マルチタスク環境において動作するアプリケーションのための汎用通信機構
EP0837391B1 (en) Multiprocessor system
JP2587190B2 (ja) システム間チャネルページング機構
KR100356919B1 (ko) 메시지큐와 공유메모리를 결합 이용한 프로세스 간의 통신 방법
JP2000020443A (ja) ソフトウェアエージェントシステム
CN113849449A (zh) 一种通信系统和信息交互方法、设备和介质
US6675239B1 (en) Method and apparatus for providing commands to a command memory
JPH06301655A (ja) 分散処理システム
KR100641095B1 (ko) 에스디알 시스템에서의 리소스 어댑터
JP3006187B2 (ja) 分散処理システム
JP2898985B2 (ja) 画像処理方法
JP2003530609A (ja) 単一イベントに応答して情報を処理する複数のセルを組み込む分散型処理システム
JPH09244977A (ja) 通信管理方式
JPH04274524A (ja) プロセス間通信制御方式
JP2005284840A (ja) メッセージ通信回路、メッセージ送信方法、メッセージ管理方法、およびメッセージ通信システム
JPH0381852A (ja) コネクション管理方式
JPH10320345A (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
FPAY Annual fee payment

Payment date: 20101001

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee