KR20010064248A - Member function call method of active objects in distributed system - Google Patents
Member function call method of active objects in distributed system Download PDFInfo
- Publication number
- KR20010064248A KR20010064248A KR1019990062398A KR19990062398A KR20010064248A KR 20010064248 A KR20010064248 A KR 20010064248A KR 1019990062398 A KR1019990062398 A KR 1019990062398A KR 19990062398 A KR19990062398 A KR 19990062398A KR 20010064248 A KR20010064248 A KR 20010064248A
- Authority
- KR
- South Korea
- Prior art keywords
- member function
- parallel object
- function call
- parallel
- receiving
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/465—Distributed object oriented systems
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
본 발명은 분산객체환경에서 병행객체의 멤버함수 호출 방법에 관한 것이다.The present invention relates to a method of calling a member function of a parallel object in a distributed object environment.
상세하게는 임의의 프로세스내에 존재하는 병행객체의 멤버함수를 호출하는 방법을 일반 객체의 멤버함수 호출과 동일한 방법으로 사용하도록 하고, 다른 프로세스 또는 다른 컴퓨터의 프로세스에 존재하는 병행객체의 멤버함수 호출도 같은 프로세스내에 존재하는 병행객체의 멤버함수호출과 동일한 방법으로 호출하도록 하는 병행객체의 멤버함수 호출 방법에 관한 것이다.In detail, the method of calling a member function of a parallel object existing in an arbitrary process is used in the same way as calling a member function of a general object. A method of calling a member function of a parallel object that is called in the same way as calling a member function of a parallel object existing in the same process.
병행객체는 종래의 객체가 가지는 있는 고유한 성질이나 모습을 표현하는 속성과 요구에 의하여 반응하는 동작을 기술하는 행위로 구성된 식별 가능한 실체이다. 병행객체의 행위는 병행객체의 실행에 필요한 자료구조를 초기화 하는 생성자 함수와 병행객체로의 요구를 수신하는 함수 부분(receptor 또는 리셉터 함수) , 수신한 요구를 실제적으로 실행하는 멤버함수로 구분한다.A parallel object is an identifiable entity that consists of attributes that describe the unique properties or appearances of a conventional object and behaviors that describe a response in response to a request. A parallel object's behavior is divided into a constructor function that initializes the data structures necessary to execute the parallel object, a function part that receives requests to the parallel object (a receptor or receptor function), and a member function that actually executes the received request.
기존의 객체는 단순히 서부루틴 호출과 같은 방식으로 객체의 멤버함수를 호출하였다. 그러나, 병행객체는 컴퓨터시스템에서 스케쥴을 받아 실행되는 개체이기 때문에 병행객체로의 멤버함수호출은 멤버함수 호출자와 멤버함수 수신자사이에 멤버함수 호출과 수신 요구를 처리하여 병행객체들을 스케쥴하도록 요구하는 기능을 필요로 한다.Existing objects simply call the member functions of the object in the same way as calling a western routine. However, since a parallel object is an object that is scheduled and executed by a computer system, the member function call to the parallel object is a function that requires the member function caller and the member function receiver to process the member function call and receive request to schedule the parallel objects. need.
이와 같은 필요에 의해 안출된 본 발명은 기존의 컴퓨터시스템의 수정이나 기능 첨가 없이 분산 객체 시스템에서 병행객체의 멤버함수 호출하고, 또 병행객체의 멤버함수 호출을 기존의 객체에서의 멤버함수와 동일한 형태로 호출할 수 있는 방법을 제공하는 데 그 목적이 있다.The present invention devised by such a need calls a member function of a parallel object in a distributed object system without modifying or adding a function of an existing computer system, and makes a member function call of a parallel object the same as a member function of an existing object. The purpose is to provide a way to call.
상기한 목적을 달성하기 위한 본 발명에서 병행객체는 하나의 프로세스 영역 내에서 생성되어 생성자 함수를 실행하여 초기화 과정을 거친 후 병행객체로의 요구를 수신하는 함수(receptor 또는 리셉터 함수)를 실행하여 멤버함수 호출을 대기하는 수신 블럭 상태에서 멤버함수 호출을 기다리게 된다. 멤버함수 호출 요구가 발생되면 우선 리셉터 함수가 호출 요구를 수신하여 병행객체를 수신블럭 상태에서 실행상태로 전환시키고, 요구한 호출 요구에 해당하는 멤버함수를 호출하여 멤버함수를 실행시킨다. 멤버함수가 복귀값(return value)을 가지는 경우에는 리셉터 함수에 의해 멤버함수를 호출한 스레드 또는 병행객체에 복귀값을 전달한다.In the present invention for achieving the above object, the parallel object is created in one process area, executes a constructor function, undergoes an initialization process, and then executes a function (receptor or receptor function) that receives a request to the parallel object. Wait for a member function call in the receive block waiting for a function call. When a member function call request occurs, the receptor function first receives the call request, switches the parallel object from the receive block state to the execution state, and executes the member function by calling the member function corresponding to the requested call request. If the member function has a return value, the return value is passed to the thread or a parallel object that called the member function by the receptor function.
이와 같은 병행객체의 멤버함수 호출 처리 과정을 사용자들의 응용 프로그램에서 완전 투명하게 구현하였다. 따라서 기존의 객체시스템에서 사용하던 멤버함수호출과 동일한 방법으로 병행객체의 멤버함수를 호출하도록 하였다.The process of calling the member function of the parallel object is completely transparent to users' applications. Therefore, the member function of the parallel object is called in the same way as the member function call used in the existing object system.
그리고, 본 발명에서 분산 객체 환경을 지원하기 위해서 병행객체중개자를 이용한다. 병행객체중개자는 스레드의 형태로 생성되어 한 개의 프로세스에 하나씩존재한다. 병행객체중개자는 프로세스 범위를 넘는 병행객체의 멤버함수 호출 요구를 수신하여 해당 프로세스에 존재하는 병행객체로의 멤버함수호출을 실행하도록 한다. 이때 프로세스는 같은 컴퓨터 내에 존재하거나 분산객체시스템내의 임의의 컴퓨터에 존재할 수 있다. 본 발명에서는 같은 프로세스내에 존재하는 병행객체의 멤버함수를 호출하는 방식과 동일하게 분산객체시스템에서의 멤버함수 호출이 가능하도록 하였다.In the present invention, a parallel object broker is used to support a distributed object environment. Parallel object brokers are created in the form of threads and exist in one process. The parallel object broker receives the member function call request of the parallel object beyond the process scope and executes the member function call to the parallel object existing in the process. The process can then be in the same computer or in any computer in the distributed object system. In the present invention, it is possible to call a member function in a distributed object system in the same manner as calling a member function of a parallel object existing in the same process.
도 1은 본 발명이 적용되는 범용 컴퓨터와 통신망(LAN)으로 구성된 분산객체시스템의 블록 구성도1 is a block diagram of a distributed object system composed of a general purpose computer and a communication network (LAN) to which the present invention is applied.
도 2는 도 1의 메인 메모리(main memory)에 적재되어 있는 프로세스들의 상태도FIG. 2 is a state diagram of processes loaded in the main memory of FIG. 1. FIG.
도 3은 도 2의 각 프로세스의 구조도3 is a structural diagram of each process of FIG.
도 4는 도 3의 프로세스내에 존재하는 병행객체멤버함수호출관리기의 기능도4 is a functional diagram of a parallel object member function call manager present in the process of FIG.
도 5는 도 3의 프로세스내에 존재하는 병행객체와 병행객체사이의 멤버함수 호출 관계를 나타내는 상태도5 is a state diagram showing a member function call relationship between a parallel object and a parallel object existing in the process of FIG.
도 6는 도 3의 프로세스내에 존재하는 스레드와 병행객체사이의 멤버함수 호출 관계를 나타내는 상태도6 is a state diagram showing a member function call relationship between a thread and a parallel object existing in the process of FIG.
도 7은 도 1의 분산객체시스템에서 임의의 프로세스에 존재하는 병행객체로의 멤버함수 호출 관계를 나타내는 상태도FIG. 7 is a state diagram showing a member function call relation to a parallel object existing in an arbitrary process in the distributed object system of FIG.
도 8은 멤버함수호출을 위한 송신처리부의 흐름도8 is a flowchart showing a transmission processing unit for calling a member function.
도 9는 멤버함수수신을 위한 수신처리부의 흐름도9 is a flowchart of a reception processing unit for receiving a member function;
* 도면의 주요부분에 대한 부호의 설명 *Explanation of symbols on the main parts of the drawings
1 : CPU 2 : 메인메모리1: CPU 2: Main Memory
3 : 통신포트 4 : LAN3: Communication port 4: LAN
5 : 멤버함수호출요구 6 : 원격멤버함수호출요구5: Member function call request 6: Remote member function call request
7 : 원격멤버함수호출요구전송 8 : 수신병행객체탐색요구7: Remote member function call request transmission 8: Receive parallel object search request
9 : 송신메시지저장요구 10 : 멤버함수수신요구9: Request to send message 10: Request to receive member function
11 : 수신메시지탐색요구 12 : 수신병행객체블럭요구11: Receive message search request 12: Parallel object block request
13 : 송신병행객체 14 : 수신병행객체13: parallel reception object 14: reception parallel object
15 : 멤버함수호출요구 16 : 수신병행객체호출15: Member function call request 16: Parallel object call
17 : 멤버함수호출 18 : 복귀값전달17: member function call 18: return value
19 복귀값전송요구 20 : 호출병행객체로의복귀값전달19 Return Value Request 20: Return Value to Call Parallel Object
21 : 송신스레드21: Send thread
22 : 병행객체중개자로의 멤버함수호출요구전달22: Passing member function call request to parallel object broker
23 : 멤버함수호출요구전달23: Passing member function call request
24 : 병행객체중개자로의 복귀값전송요구전달24: Delivery of request for return value to parallel object broker
25 : 복귀값전송요구전달25: Return value transfer request delivery
26 : 수신병행객체중개자 27 : 송신병행객체중개자26: receiving parallel object intermediary 27: transmitting parallel object intermediary
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세하게 설명한다.Hereinafter, with reference to the accompanying drawings will be described in detail a preferred embodiment of the present invention.
도 1은 본 발명이 적용되는 범용 분산 객체 시스템의 블록 구성도로서, 본 발명은 각기 다른 운영체제를 가지는 범용 컴퓨터시스템에서 동작 될 수 있다.1 is a block diagram of a general-purpose distributed object system to which the present invention is applied, and the present invention may be operated in a general-purpose computer system having different operating systems.
각각의 자료처리 시스템은 본체에 CPU(1)와 메인 메모리(2)를 포함하고 있으며 메인 메모리(1)에는 운영체제커널과 병행객체를 실행할 수 있는 프로세스 이미지들이 적재되어 진다. 다른 컴퓨터들과의 통신을 위해 통신포트(3)가 존재하고, 통신포트는 LAN(4)에 연결되어 다른 컴퓨터들과 정보를 교환하며 실행할 수 있다.Each data processing system includes a CPU 1 and a main memory 2 in a main body, and process images capable of executing an operating system kernel and a parallel object are loaded in the main memory 1. There is a communication port 3 for communication with other computers, and the communication port is connected to the LAN 4 so as to exchange information with other computers for execution.
도 2는 프로세스와 운영체제 커널이 메인 메모리에 적재되어 있는 상태를 도시한 것이다. 프로세스는 범용 컴퓨터에서 일반적으로 사용되는 용어로서 운영체제 또는 커널에 의해 스케쥴을 받아 CPU를 사용하게 하는 실행 단위이다. 본 발명에서는 하나의 컴퓨터 내에 다수의 프로세스가 실행되고 있는 환경을 기본적으로 사용한다.2 illustrates a state in which a process and an operating system kernel are loaded in main memory. A process is a term commonly used in general purpose computers and is a unit of execution that is scheduled by the operating system or kernel to use the CPU. The present invention basically uses an environment in which a plurality of processes are executed in one computer.
도 3은 각 프로세스의 구조도로서, 프로세스 내에서 독립적으로 실행 가능한 단위인 병행객체, 스레드 및 멤버함수호출 관리기를 나타낸 것이다.3 is a structural diagram of each process, which shows a parallel object, a thread, and a member function call manager which are independently executable units in a process.
여기서, 스레드는 범용 컴퓨터시스템에서 사용되어지는 일반적인 용어로 경량화 프로세스(light-weighted process)라고도 한다. 스레드도 프로세스와 같은 개념으로 운영체제 또는 커널에 의해 스케쥴을 받아서 CPU를 할당받아 실행되어지는 실행 단위이다. 병행객체는 기존의 객체가 가지는 기능에 스레드와 같이 운영체제 또는 커널에 의해 스케쥴 받아 실행될 수 있는 실행 단위이다. 병행객체멤버함수호출관리기는 프로세스 하나에 한 개씩 존재하고, 병행객체로의 멤버함수 호출을 관리한다.Here, a thread is a general term used in general-purpose computer systems, also referred to as a light-weighted process. A thread is a unit of execution in the same way as a process that is scheduled by an operating system or a kernel and allocated with a CPU. A parallel object is a unit of execution that can be scheduled and executed by an operating system or the kernel, such as a thread, for a function of an existing object. The parallel object member function call manager exists one per process and manages member function calls to the parallel object.
도 4는 병행객체멤버함수호출관리기의 내부 기능도이다.4 is an internal functional diagram of a parallel object member function call manager.
멤버함수 송신 처리부는 멤버함수를 호출하고자 하는 병행객체 또는 스레드로부터 멤버함수 호출 요구(5)를 받아 처리한다. 멤버함수 수신 병행객체가 원격(또는 다른 프로세스)에 존재하는 호츨(6)인 경우에는 원격멤버함수호출 처리부에 의해 수신 병행객체가 존재하는 프로세스의 병행객체중개자에 전달(7)된다.The member function transmission processing unit receives and processes a member function call request 5 from a parallel object or a thread which wants to call a member function. When the member function receiving parallel object is a call (6) that exists remotely (or another process), the remote member function calling processing unit transmits (7) to the parallel object intermediary of the process in which the receiving parallel object exists.
멤버함수 수신병행객체가 같은 프로세스에 존재하는 경우의 멤버함수 호출(8)은 수신 병행객체관리부에 의해 처리된다. 수신 병행객체관리부는 해당되는수신 병행객체를 병행객체블럭큐에 삽입하여 병행객체의 실행을 블록시키거나 블록되어 있는 병행객체를 블록큐에서 제거하여 다시 실행할 수 있도록 한다.The member function call 8 when the member function reception parallel object exists in the same process is processed by the reception parallel object management unit. The reception parallel object management unit inserts a corresponding reception parallel object into the parallel object block queue to block execution of the parallel object or to remove the parallel object from the block queue and execute it again.
멤버함수호출자는 멤버함수수신자가 블록큐에 존재하는 경우에는 수신병행객체를 블록큐에서 제거하고 실행가능상태로 한다. 수신병행객체가 블록큐에 없는 경우(9)에는 송신메시지처리부에 의해 멤버함수호출에 필요한 정보를 메시지큐에 저장시킨다.The member function caller removes the receiving parallel object from the block queue when the member function receiver exists in the block queue and makes it executable. If the reception parallel object does not exist in the block queue (9), the transmission message processing unit stores the information necessary for the member function call in the message queue.
멤버함수를 수신하는 병행객체가 멤버함수 수신 요구(10)를 하면 멤버함수수신처리부에 의해 처리된다. 멤버함수 수신병행객체는 송신메시지처리부에 의해 자신이 처리할 메시지가 도착되었는가를 검사(11) 한다. 도착되어 있는 메시지가 존재하면 즉시 메시지큐에서 메시지를 제거하고 수신병행객체의 관련된 멤버함수를 호출한다. 도착되어 있는 메시지가 없으면(12) 수신병행객체관리부에 의해 수신병행객체를 병행객체블럭큐에 삽입하고 수신병행객체의 상태를 블록상태로 한다.When the parallel object receiving the member function makes the member function reception request 10, it is processed by the member function receiving processing unit. The member function reception parallel object checks (11) whether the message to be processed by the transmission message processing unit has arrived. If there is a message arriving, it immediately removes the message from the message queue and calls the relevant member function of the receiving parallel object. If there is no message arrived (12), the reception parallel object management unit inserts the reception parallel object into the parallel object block queue and sets the state of the reception parallel object to a block state.
도 5는 송신병행객체(13)에서 수신병행객체(14)의 멤버함수 호출 관계를 나타내는 상태도이다.5 is a state diagram showing a member function call relation of the reception parallel object 14 in the transmission parallel object 13.
병행객체는 멤버 데이터(C1)와 멤버 함수(C2), 리셉터 함수(C3)로 구성된다. 멤버 데이터는 병행 객체 내에서 정의한 변수들이며 멤버 함수는 타 객체에서 호출할 수 있는 메소드들이다, 리셉터 함수는 각 멤버 함수로 분기하는 기능을 제공하는 함수로 컴파일러나 코드 생성 도구에 의하여 생성된 것이다.The parallel object is composed of member data C1, member function C2, and receptor function C3. Member data are variables defined in parallel objects, and member functions are methods that can be called from other objects. Receptor functions are functions that provide a branching function to each member function. They are generated by a compiler or a code generation tool.
송신병행객체(13)의 멤버함수에서 다른 병행객체의 멤버함수를 호출하면(15) 도 4의 병행객체멤버함수호출관리기는 멤버 함수의 엔트리를 알 수 있는 인식자와매개 변수들을 수신병행객체(14)의 리셉터함수로 전달한다(16). 수신병행객체(14)의 리셉터 함수는 이 인식자를 이용하여 멤버함수의 엔트리로 매개 변수들을 전달하고(17) 제어를 리셉터함수로 돌려받는다(18). 이때 리셉터 함수는 호출된 멤버함수에 복귀값이 있는 경우에는 병행객체멤버함수호출관리기에 복귀값을 전송하고(19) 멤버함수 수신 블럭 상태에서 다음의 멤버함수 호출 요구를 대기한다. 복귀값이 있는 멤버함수의 경우에 병행객체멤버함수호출관리기는 복귀값을 호출한 병행객체에게 돌려준다(20).When calling the member function of another parallel object from the member function of the transmitting parallel object 13 (15), the parallel object member function call manager of FIG. 4 recognizes the identifier of the member function entry and the parameters. It passes to the receptor function of 14). The acceptor function of the receiving parallel object 14 uses this identifier to pass parameters to the entry of the member function (17) and to return control to the receptor function (18). In this case, when the called member function has a return value, the receptor function transmits the return value to the parallel object member function call manager (19) and waits for the next member function call request in the member function reception block state. In the case of a member function with a return value, the parallel object member function call manager returns the parallel value to the calling parallel object (20).
도 6은 프로세스내에 존재하는 송신스레드(21)와 수신병행객체(14)간의 멤버함수 호출 관계를 나타내는 상태도이다. 앞서 설명한 도 5와 같이 동일하게 동작??괴며, 호출하는 개체가 병행객체가 아닌 스레드라는 차이가 있다. 프로그램을 작성하는 사용자의 입장에서는 호출하는 개체의 형태에 관계없이 동일한 방식으로 사용된다.FIG. 6 is a state diagram showing a member function call relationship between the transmitting thread 21 and the receiving parallel object 14 existing in the process. As described above with reference to FIG. 5, the operation is the same, there is a difference that the calling object is a thread rather than a parallel object. From the point of view of the user writing the program, it is used in the same way regardless of the type of object being called.
도 7은 분산객체시스템에서 다른 프로세스에 존재하는 병행객체로의 멤버함수 호출 관계를 나타내는 상태도이다.7 is a state diagram illustrating a member function call relation in a distributed object system to a parallel object existing in another process.
멤버함수호출 전달 관계는 도 5와 유사하다. 멤버함수호출요구(15)에 대해 병행객체멤버함수호출관리기는 수신병행객체가 다른 프로세스에 존재하는 경우에 멤버함수호출요구를 수신병행객체가 존재하는 프로세스의 병행객체중개자에게 전달(22)한다. 병행객체중개자는 스레드의 형태를 가지는 개체로서 프로세스내에하나씩 존재하고, 단순히 다른 프로세스로부터의 멤버함수호출요구를 수신하여 자신의 프로세스내에 존재하는 병행객체에게 전달해주는 역할을 수행한다. 수신병행객체중개자(26)는 멤버함수호출요구전달(22)을 통해 수신한 멤버함수호출 요구를 자신의 프로세스에 있는 병행객체멤버함수호출관리기에 전달(23)한다.The member function call transfer relationship is similar to FIG. With respect to the member function call request 15, the parallel object member function call manager transmits the member function call request to the parallel object mediator of the process in which the receiving parallel object exists when the receiving parallel object exists in another process. A parallel object broker is a thread-shaped object that exists one by one in a process, and simply receives member function calls from other processes and delivers them to the parallel objects in its own process. The reception parallel object intermediary 26 forwards the member function call request received through the member function call request delivery 22 to the parallel object member function call manager in its process (23).
이하의 전달과정은 도 5와 동일하다. 복귀값의 경우에도 도 5와 유사한 과정을 거쳐 수신프로세스의 병행객체멤버함수호출관리기로 전달(19)된다. 복귀값을 받아야 될 멤버함수호출 병행객체가 다른 프로세스에 존재하고 있기 때문에 멤버함수를 호출한 병행객체(13)이 존재하는 프로세스의 송신병행객체중개자(27)에게 복귀값전송요구를 전달(24)한다. 복귀값전송요구를 전달받은 송신병행객체중개자(27)는 자신의 프로세스에 존재하는 병행객체멤버함수호출 관리기에게 복귀값전송요구를 전달(25)한다. 송신병행객체중개자(27)의 복귀값전송요구를 전달(25)받은 병행객체멤버함수 호출 관리기는 복귀값을 호출한 병행객체에게 돌려준다(20).The following transfer process is the same as FIG. In the case of the return value, a process similar to that of FIG. 5 is transmitted to the parallel object member function call manager of the receiving process (19). Since the member function call parallel object to receive the return value exists in another process, the request to send the return value is transmitted to the transmission parallel object intermediary 27 of the process in which the parallel object 13 that called the member function exists. do. The transmission parallel object intermediary 27 that has received the return value transmission request forwards the return value transmission request to the parallel object member function call manager present in its process (25). The parallel object member function call manager, which has received the return value transmission request of the transmitting parallel object intermediary 27, returns the returned value to the parallel object calling the return value (20).
도 8은 멤버함수호출을 위한 병행객체멤버함수호출관리기내 송신처리부의 흐름도이다.8 is a flowchart of a transmission processing unit in a parallel object member function call manager for calling a member function.
멤버함수호출 요구가 발생되면 송신처리부는 멤버함수호출에 필요한 내용을 메시지형태로 구성한다(28). 복귀값이 있는 멤버함수호출(29)인 경우에는 복귀값을 돌려 받기 위한 멤버함수를 호출하고 있는 호출자의 정보를 추가적으로 메시지에 저장한다(30). 수신병행객체가 호출자와 다른 프로세스에 존재하는 원격멤버함수호출(31)인 경우에는 수신병행객체가 존재하는 프로세스의 병행객체중개자에게 멤버함수호출요구를 전달한다(32).When a member function call request is generated, the transmission processing unit constructs the contents necessary for the member function call in a message form (28). In the case of the member function call 29 having the return value, the information of the caller calling the member function for receiving the return value is additionally stored in the message (30). If the receiving parallel object is a remote member function call 31 present in a process different from the caller, the member function call request is transmitted to the parallel object intermediary of the process in which the receiving parallel object exists (32).
원격멤버함수호출이 아닌 경우에는 수신병행객체가 멤버함수를 수신하기 위해 병행객체블럭큐에 대기하고 있는지 검사한다(33). 병행객체블럭큐에 수신병행객체가 있는 경우에는 수신병행객체를 병행객체블럭큐에서 제거하고 메시지의 내용을 멤버함수에 전달하도록 한다(34). 수신병행객체는 커널에 의해 스케쥴 받아 멤버함수를 실행하게 된다. 그러나 수신병행객체가 병행객체블럭큐에 없는 경우에는 멤버함수호출에 관한 정보가 저장된 메시지를 메시지큐에 저장한다(35). 복귀값이 있는 멤버함수호출(36)인 경우에는 복귀값이 돌아올때까지 블록되어 기다리고(37), 복귀값을 받거나 복귀값이 필요없는 경우에는 멤버함수를 호출한 부분으로 복귀한다.If the remote member function is not called, it is checked whether the receiving parallel object is waiting in the parallel object block queue to receive the member function (33). If there is a receiving parallel object in the parallel object block queue, the receiving parallel object is removed from the parallel object block queue and the contents of the message are transmitted to the member function (34). Receive parallel objects are scheduled by the kernel to execute member functions. However, if the receiving parallel object is not in the parallel object block queue, the message storing the information on the member function call is stored in the message queue (35). In the case of a member function call 36 with a return value, the block is waited until the return value is returned (37). If the return value is received or the return value is not needed, the function returns to the part that called the member function.
도 9는 멤버함수를 수신하기 위한 병행객체멤버함수호출관리기내 수신처리부의 흐름도이다.9 is a flowchart of a reception processing unit in a parallel object member function call manager for receiving a member function.
멤버함수를 수신하여 처리하고자 하는 수신병행객체는 메시지큐를 탐색해서 자신이 처리해야 할 메시지, 즉 멤버함수호출요구가 있는지 검사한다(38). 처리해야 할 메시지가 없으면 병행객체블럭큐에 수신병행객체 자신을 삽입하고 수신병행객체를 수신블럭상태로 한다(39). 처리해야할 메시지가 메시지큐에 존재하는 경우, 즉 멤버함수호출요구가 있는 경우에는 메시지 큐에서 메시지를 제거하고 메시지 내용을 참조하여 멤버함수를 실행한다(40). 멤버함수 실행 후, 복귀값이 있는 멤버함수호출인 경우(41)에는 수신메시지를 참조하여 멤버함수를 호출한 호출자에게 복귀값을 전송한다(42). 수신병행객체는 다시 위의 과정을 반복한다.The receiving parallel object that wants to receive and process the member function searches the message queue and checks whether there is a message to be processed, that is, a member function call request (38). If there is no message to be processed, the reception parallel object is inserted into the parallel object block queue and the reception parallel object is placed in the reception block state (39). When a message to be processed exists in the message queue, that is, when a member function call request is made, the message is removed from the message queue and the member function is executed by referring to the message content (40). After the member function is executed, if the member function call has a return value (41), the return value is transmitted to the caller who called the member function with reference to the received message (42). The receiving parallel object repeats the above process.
상술한 바와 같이 본 발명은 병행객체의 멤버함수를 호출하는데 있어 병행객체가 아닌 기존의 일반 객체의 멤버함수호출과 동일한 방법으로 접근하도록 한다. 또한 다른 프로세스 또는 다른 컴퓨터에 존재하는 병행객체의 멤버함수호출도 같은 프로세스 또는 같은 컴퓨터에 존재하는 병행객체의 멤버함수호출과 동일한 방법으로 접근하도록 한다. 그리고 이러한 기능의 구현이 기존의 운영체제 또는 커널의 수정없이 가능하도록 한다. 따라서, 본 발명은 빈번한 병행객체의 멤버함수 호출을 필요로 하는 프로세스 사용자에게 편의를 제공할 수 있다.As described above, the present invention allows a member function of a parallel object to be called in the same manner as a member function call of an existing general object that is not a parallel object. In addition, the member function call of a parallel object existing in another process or a different computer can be accessed in the same way as the member function call of a parallel object existing in the same process or the same computer. It is also possible to implement these functions without modifying the existing operating system or kernel. Accordingly, the present invention can provide convenience to process users who require frequent member function calls of parallel objects.
이상에서 본 발명에 대한 기술사상을 첨부도면과 함께 서술하였지만 이는 본 발명의 바람직한 실시예를 예시적으로 설명한 것이지 본 발명을 한정하는 것은 아니다. 또한, 이 기술분야의 통상의 지식을 가진 자라면 누구나 본 발명의 기술사상의 범주를 이탈하지 않는 범위 내에서 다양한 변형 및 모방이 가능함은 명백한 사실이다.The technical spirit of the present invention has been described above with reference to the accompanying drawings, but this is by way of example only and not intended to limit the present invention. In addition, it is obvious that any person skilled in the art can make various modifications and imitations without departing from the scope of the technical idea of the present invention.
Claims (4)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019990062398A KR20010064248A (en) | 1999-12-27 | 1999-12-27 | Member function call method of active objects in distributed system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1019990062398A KR20010064248A (en) | 1999-12-27 | 1999-12-27 | Member function call method of active objects in distributed system |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20010064248A true KR20010064248A (en) | 2001-07-09 |
Family
ID=19629944
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019990062398A KR20010064248A (en) | 1999-12-27 | 1999-12-27 | Member function call method of active objects in distributed system |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20010064248A (en) |
-
1999
- 1999-12-27 KR KR1019990062398A patent/KR20010064248A/en not_active Application Discontinuation
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5748897A (en) | Apparatus and method for operating an aggregation of server computers using a dual-role proxy server computer | |
US5818448A (en) | Apparatus and method for identifying server computer aggregation topologies | |
US5675796A (en) | Concurrency management component for use by a computer program during the transfer of a message | |
US5396630A (en) | Method and system for object management across process boundries in a data processing system | |
JP3691515B2 (en) | Event distribution apparatus and method in operating system | |
JP3853592B2 (en) | Distributed web application server | |
US5640564A (en) | Method and apparatus for generating and using short operation identifiers in object oriented systems | |
EP0501610B1 (en) | Object oriented distributed computing system | |
AU746391B2 (en) | Method and system for facilitating distributed software development in a distribution unaware manner | |
US7246167B2 (en) | Communication multiplexor using listener process to detect newly active client connections and passes to dispatcher processes for handling the connections | |
US6557046B1 (en) | Method and system for providing an event system infrastructure | |
JP4782771B2 (en) | Interprocess communication in computer equipment. | |
JPH08502841A (en) | Distributed application processing network | |
KR20010041293A (en) | Method and apparatus for remote method invocation | |
JP2008306714A (en) | Communicating method and apparatus in network application, and program for them | |
US7640549B2 (en) | System and method for efficiently exchanging data among processes | |
US6732360B1 (en) | System and method for providing connection between client and heterogeneous database management systems | |
US5592673A (en) | Loosely coupled compound computer system using lock and semaphore mechanism for performing exclusive control of shared resource which is accessed through a distinct bus | |
CN110825536B (en) | Communication method and device between tasks in embedded real-time operating system | |
KR20010064248A (en) | Member function call method of active objects in distributed system | |
KR20010041226A (en) | Downloadable smart proxies for performing processing associated with a remote procedure call in a distributed system | |
US6934953B2 (en) | Deferred procedure call in interface description language | |
CN116684074B (en) | Method and device for driving multi-core scheduling algorithm of hardware password module and electronic equipment | |
CN113821357B (en) | Socket-based cross-process communication method, medium and electronic equipment | |
KR19980086588A (en) | System Resource Reduction Tool Using TCP / IP Socket Application |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WITN | Withdrawal due to no request for examination |