WO2011053038A2 - 교착 상태의 방지를 위한 데이터 처리 방법 및 시스템 - Google Patents

교착 상태의 방지를 위한 데이터 처리 방법 및 시스템 Download PDF

Info

Publication number
WO2011053038A2
WO2011053038A2 PCT/KR2010/007517 KR2010007517W WO2011053038A2 WO 2011053038 A2 WO2011053038 A2 WO 2011053038A2 KR 2010007517 W KR2010007517 W KR 2010007517W WO 2011053038 A2 WO2011053038 A2 WO 2011053038A2
Authority
WO
WIPO (PCT)
Prior art keywords
message
actor
read
received
read message
Prior art date
Application number
PCT/KR2010/007517
Other languages
English (en)
French (fr)
Other versions
WO2011053038A3 (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 CN201080049494.2A priority Critical patent/CN102630315B/zh
Priority to US13/505,170 priority patent/US8826301B2/en
Publication of WO2011053038A2 publication Critical patent/WO2011053038A2/ko
Publication of WO2011053038A3 publication Critical patent/WO2011053038A3/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/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/524Deadlock detection or avoidance
    • 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
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • 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

Definitions

  • the present invention relates to a data processing method and system for preventing a deadlock, and more particularly, a data processing method capable of preventing a deadlock by processing a message received in a message response waiting state in an actor system. And to the system.
  • An actor system as a method for concurrent computation in a distributed system or a multithreading system.
  • An actor system is a system that sees an actor as the basic element of parallel computation.
  • An actor can receive and process a message, make calculations and make decisions on its own, create another actor, or send a message to another actor.
  • each actor has its own state, that is, its own performer for processing data and data, for example, a thread, and interacts asynchronously by exchanging messages with other actors.
  • An actor can perform actions such as 1) modify its own state (data), 2) send a message to another actor, 3) create a new actor, or 4) transfer to another host.
  • Synchronization messages can be used in actor systems.
  • a synchronous message is a message that checks the response to a sent message and then performs the next action accordingly.
  • Synchronous message method is widely used in server / client system including distributed system. Direct-call in general application system can be seen as synchronous message method.
  • Allowing these synchronous messages generally without restriction can result in deadlocks, where two actors wait for a long time asking each other for a response to each other's lead messages, preventing them from performing other processing.
  • the occurrence of such a deadlock can cause serious problems such as the entire system freezing.
  • FIG. 1 is a signal flow diagram illustrating a flow of a data processing method through transmission and reception of a synchronization message in an actor system according to the prior art.
  • step S10 the first actor 10 calculates a1, which is an element for data processing, and requests b1, which is another element required for data processing.
  • step S15 the first actor 10 searches for a second actor that is an actor to request b1 and generates a first read message for requesting b1 to the second actor.
  • the first read message generated by the first actor 10 is a synchronization message.
  • the first read message is a message of a method of checking a response to the transmitted message and then performing the following procedure.
  • step S20 the first actor 10 sends a first read message to the second actor 20.
  • step S25 the first actor 10 sets a response wait state corresponding to the transmission of the first read message to the second actor 20. That is, since the first read message is a synchronization message, the first actor 10 may check the response of the second actor 20 to the first read message and then perform the following procedure.
  • the first actor 10 sets the state of the first actor 10 to a response waiting state until the response of the first read message sent to the second actor 20 is received.
  • step S30 the second actor 20 stores the first read message received from the first actor 10 in a message queue.
  • step S35 the second actor 20 transmits a second read message to the first actor 10 to obtain state information of the first actor 10.
  • the second read message is a message not related to the first read message.
  • step S40 the second actor 20 sets a response wait state corresponding to the transmission of the second read message to the first actor 10.
  • the second actor 20 can perform the following procedure only after confirming the response of the first actor 10 to the second read message.
  • the first actor 10 and the second actor 20 are set in a waiting state until receiving a response from each other, so that they cannot process other messages.
  • the first actor 10 may not transmit the response of the second lead message to the second actor 20 and the second actor 20 transmits the response of the first lead message to the first actor 10. You won't be able to.
  • An embodiment of the present invention prevents deadlocks caused by waiting for a long time for a response of a synchronous message by processing a synchronous message even before sending a synchronous message and receiving a synchronous message between actors. I would like to.
  • the actor when an actor exists in the same memory space, the actor reads state information of a target actor in a direct call manner to improve data processing speed and performance.
  • the first aspect of the present invention (a) transmitting a read message for requesting the status information of the target actor required for processing the data, (b) the lead Receiving and processing only a read message that reads the status information of the actor until a response of the message is received; and (c) if the response of the read message is received, processing related data using the status information. It may provide a data processing method for preventing a deadlock comprising a.
  • the read message processed in step (b) is received from a message queue, and the message queue may store an event message or a read message for changing an actor's state.
  • a second aspect of the present invention provides a data processor for processing data using state information of a target actor, a read message generator for generating a read message requesting the state information to the target actor, and the target. It is possible to provide a data processing system for preventing a deadlock including a reception message processing unit which processes only a read message that reads the status information of the actor among the received messages until a response to the read message sent to the actor is received. have.
  • the read message received from another actor can be processed until the read message, which is a sync message, and the response to the read message is processed, so that the read message can be processed.
  • the deadlock can be prevented by dispatching and processing from a message queue or the like without waiting for a read message received while waiting.
  • FIG. 1 is a signal flow diagram illustrating a flow of a data processing method through transmission and reception of a synchronization message in an actor system according to the prior art
  • FIG. 2 is a signal flow diagram illustrating a flow of a data processing method according to an embodiment of the present invention
  • FIG. 3 is a signal flow diagram illustrating a flow of a data processing method according to an embodiment of the present invention.
  • FIG. 4 is a flowchart illustrating a message processing flow of an actor in a data processing method according to an embodiment of the present invention
  • FIG. 5 is a diagram showing the configuration of a data processing system according to an embodiment of the present invention.
  • FIG. 6 is a diagram showing the configuration of an actor in a data processing system according to an embodiment of the present invention.
  • FIGS. 2 and 3 are signal flow diagrams illustrating the flow of a data processing method according to an embodiment of the present invention.
  • step S100 the first actor 100 calculates a1, which is an element for data processing, and requests b1, which is another element required for data processing.
  • b1 is an element that should be received from actors other than the first actor 100 and may include state information of the actor.
  • step S105 the first actor 100 generates a first read message for requesting b1 from the second actor 200.
  • the first read message generated by the first actor 100 is a synchronous message.
  • the first read message is a message in which a response to the transmitted message is checked and the following procedure is performed.
  • Synchronous message method is widely used in server / client system including distributed system, and direct-call in general application system can be seen as synchronous message method.
  • step S110 the first actor 100 transmits a first read message to the second actor 200.
  • the first read message may be transmitted from the first actor 100 to the second actor 200 by the message performer.
  • the message performer obtains the message from the message queue, delivers the message to the appropriate actor, and executes the content of the message.
  • a message performer may be a thread provided by an operating system (OS), and a message performer may exist for each actor.
  • OS operating system
  • Threads may be executed in different central processing unit (CPU) cores in one host and may be distributed to different hosts.
  • CPU central processing unit
  • each actor includes one independent message performer for each actor.
  • step S115 the second actor 200 stores the first read message received from the first actor 100 in a message queue.
  • the message queue is a queue of messages waiting to be performed.
  • the message queue may have a single message queue on one host, and may include a message queue for each actor. In the description of one embodiment according to the present invention, it is assumed that each actor includes a message queue for convenience of understanding.
  • step S120 the second actor 200 transmits a second read message to the first actor 100.
  • step S125 the first actor 100 processes the second read message received from the second actor 200.
  • the first actor 100 is not set to a response wait state even when a read message is transmitted to the second actor 200.
  • the first actor 100 may process the second read message even if the first actor message does not receive a response from the second actor 200.
  • step S130 the first actor 100 transmits a second read message response including the processing result in step S125 to the second actor 200.
  • step S135 the second actor 200 or the third actor 200 transmits a third read message to the first actor 100, and in step S140 the first actor 100
  • the second read message received from the second actor 200 or the third actor 200 is processed, and in step S145, the first actor 100 includes the third read including the processing result in step S140.
  • the read message response is transmitted to the second actor 200 or the third actor 200.
  • the first actor 100 since the first actor 100 does not set the response waiting state even when the first lead message is transmitted to the second actor 200, the first actor 100 processes and responds to the read message received from one or more other actors. You can send
  • step S150 the second actor 200 analyzes the first read message to calculate element b1, which is state information of the second actor 200 requested by the first actor 100.
  • the second actor 200 transmits a response of the first read message to the first actor 100.
  • the response of the first read message transmitted by the second actor 200 includes the state information b1 of the second actor 200 calculated in step S150.
  • step S160 the first actor 100 processes data using element a1 calculated in step S100 and element b1 included in the response of the first read message received from the second actor 200. .
  • FIG. 4 is a flowchart illustrating a message processing flow of an actor in a data processing method according to an embodiment of the present invention.
  • step S200 it is determined that a situation occurs that requires status information of another actor, that is, a target actor. In other words, while performing data processing, it is determined that the status information of another actor is needed for data processing.
  • step S210 it is determined whether the target actor that is the target of the requested state information exists in the same memory space.
  • step S220 when it is determined in step S210 that the target actor does not exist in the same memory space, a read message for reading the status information of the target actor may be generated and processed as a target actor for data processing. Send the created lead message.
  • the messages generated and transmitted by the actor include event messages or event messages.
  • An event message is an asynchronous message in which the state of the receiving actor can be changed
  • a read message is a synchronous message that only reads the state of the receiving actor. Therefore, in order to read the status information of the target actor, a read message is generated and transmitted to the target actor.
  • Transmission of the read message may be performed by the message performer. Threads provided by the operating system (OS) may act as message performers.
  • OS operating system
  • step S230 it is determined whether a response to the read message transmitted in step S220 is received.
  • the read message is a synchronous message that checks the response and then performs the corresponding procedure. Accordingly, by determining whether a response of the transmitted read message is received, it may be determined whether to perform a subsequent procedure according to receiving the response.
  • step S240 when it is determined in step S230 that no response is received, the read message stored in the message queue is dispatched from the message queue.
  • the message queue stores the received message and waits for it to be processed by the actor.
  • the actor may process the received message immediately, but in some situations it may be necessary to wait for the received message to perform other processing.
  • the actor may store the received message in the message queue, wait for the message, and dispatch the message from the message queue when the processing time is available.
  • step S250 the read message dispatched in step S240 is analyzed and processed.
  • the lead message is analyzed and processed according to the analyzed lead message, and the response is transmitted to the corresponding actor.
  • an actor may process a read message received from another actor during a response waiting time until the read message is transmitted and the response is received.
  • the actor's state when sending the lead message and the actor's state when receiving the response are changed. This can be different and can cause problems when processing data in response to the read message sent.
  • the message queue may include an event message which is an asynchronous message as well as a read message which is a synchronous message, but a message that can be processed while waiting for a response of a transmitted read message is a synchronous that does not change the state of an actor It is limited to a read message which is a message.
  • step S260 it is determined whether a response to the read message transmitted in step S220 is received.
  • step S270 when the response of the read message sent in step S220 is received, the data is processed using the state information of the target actor included in the received response.
  • step S280 when it is determined in step S210 that the target actor exists in the same memory space, the state information of the target actor is read through a direct call method.
  • step S290 the relevant data is processed using the state information read in step S280.
  • This method of directly reading the status information of the target actor can improve the data processing speed and improve the performance of the system compared to the method of using the synchronous message that needs to wait for a response after sending the message.
  • FIG. 5 is a diagram illustrating a configuration of a data processing system according to an embodiment of the present invention.
  • each actor 100 and 200 includes a message performer 101 and 201 and a message queue 102 and 202, respectively.
  • the first actor 100 determines that the state information of the second actor 200 is necessary for data processing, the first actor 100 generates a first read message for reading the state information of the second actor 200, The generated first read message is transmitted to the second actor 200.
  • the first actor 100 receives a read message and an event message from the second actor 200 or other actors, and if it cannot process the received message immediately, the first actor 100 sends a message performer 101. Store the received message in the message queue 102 via the.
  • the first actor 100 dispatches the messages stored in the message queue 102 sequentially using the message performer 101 and performs a procedure according to the type and content of the messages.
  • the first actor 100 when dispatching a read message, the first actor 100 generates a response including the state information of the first actor required by the read message, and generates the response as the actor that transmitted the read message. Send a response.
  • the first actor 100 When dispatching the event message, the first actor 100 changes the state of the first actor 100 according to the information included in the event message.
  • the first actor 100 receives the response of the first read message from the second actor 200 to receive the state information of the second actor 200, and performs data processing using the received state information.
  • an actor in the data processing system can process the read message received even when the response of the read message sent to the target actor is not received. Deadlocks that occur can be prevented.
  • FIG. 6 is a diagram illustrating a configuration of an actor of a data processing system according to an exemplary embodiment of the present invention.
  • the actor 100 includes a signal transceiver 110, a data processor 120, a read message generator 130, and a received message processor 140.
  • the signal transmitting and receiving unit 110 transmits a signal such as a message to another actor and receives the signal.
  • the signal transceiver 110 receives a message such as a read message or an event message and transmits a signal including a response of the received read message to the corresponding actor. In addition, the signal transceiver 110 transmits a read message to the target actor and receives a response of the read message.
  • the data processor 120 determines whether the actor exists in the same memory space as the actor 100 when the state information of the target actor is required for data processing. If the actor does not exist in the same memory space, the data processor 120 requests the read message generator 130 to generate a read message to be transmitted to the actor.
  • the data processing unit 120 When the data processing unit 120 receives the transmission status from the lead message generating unit 130 indicating that the lead message has been transmitted to the corresponding actor, the data processing unit 120 processes only the read message and stops processing the event message until a response is received from the corresponding actor. Request to the received message processor 140.
  • the data processor 120 requests the message processor 140 to process only the read message that does not change the state of the actor.
  • the data processor 120 determines that the actor exists in the same memory space as the actor 100, the data processor 120 reads the state information of the actor in a direct call manner.
  • the data processor 120 receives a response of the transmitted read message from the actor, and performs data processing using the state information included in the received response.
  • the read message generator 130 generates a read message to be transmitted in response to a request of the data processor 120.
  • the lead message generator 130 transmits a lead message generated using the information of the actor to receive the lead message included in the request of the data processor 120 through the signal transceiver 110, and transmits the transmission status to the data processor. Notify at 120.
  • the received message processor 140 processes a message by dispatching a message stored in the message queue 102.
  • the reception message processing unit 140 stops processing the event message and dispatches only the read message to process it.
  • reception message processing unit 140 processes the message only to the read message until the actor 100 receives the response of the read message sent to the target actor.
  • the reception message processor 140 may process the received read message even before receiving a response of the read message sent to the target actor, thereby preventing the message queue from waiting excessively.
  • the above-described embodiment of the present invention can be applied not only to an environment distributed to a plurality of hosts, but also to one host, especially one or more CPU cores in one host, so-called multi-core environment.
  • the present invention can be applied to the situation where the actors exist on the same host as well as the situation where each actor exists on a separate host.
  • One embodiment of the present invention can also be implemented in the form of a recording medium containing instructions executable by a computer, such as a program module executed by the computer.
  • Computer readable media can be any available media that can be accessed by a computer and includes both volatile and nonvolatile media, removable and non-removable media.
  • Computer readable media may include both computer storage media and communication media.
  • Computer storage media includes both volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data.
  • Communication media typically includes computer readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave, or other transmission mechanism, and includes any information delivery media.
  • each component described as a single type may be implemented in a distributed manner, and similarly, components described as distributed may be implemented in a combined form.

Landscapes

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

Abstract

교착 상태를 방지하기 위한 데이터 처리 방법 및 시스템이 제공되며, 보다 상세하게는, 액터(actor) 시스템에서 메시지 응답 대기 상태에서 수신한 메시지를 처리하여 교착 상태를 방지할 수 있는 데이터 처리 방법 및 시스템이 제공될 수 있다. 교착 상태의 방지를 위한 데이터 처리 방법은 (a) 데이터의 처리에 필요한 대상 액터의 상태 정보를 요청하는 리드(read) 메시지를 전송하는 단계, (b) 상기 리드 메시지의 응답을 수신할 때까지, 액터의 상태 정보를 판독하는 리드 메시지만을 수신하여 처리하는 단계 및 (c) 상기 리드 메시지의 응답을 수신한 경우, 상기 상태 정보를 이용하여 관련 데이터를 처리하는 단계를 포함할 수 있다.

Description

교착 상태의 방지를 위한 데이터 처리 방법 및 시스템
본 발명은 교착 상태를 방지하기 위한 데이터 처리 방법 및 시스템에 관한 것으로서, 보다 상세하게는, 액터(actor) 시스템에서 메시지 응답 대기 상태에서 수신한 메시지를 처리하여 교착 상태를 방지할 수 있는 데이터 처리 방법 및 시스템에 관한 것이다.
최근 멀티코어 CPU 기술이 발전함에 따라, 하나의 칩에 여러 개의 CPU 코어를 탑재한 프로세서의 사용이 증대되고 있다. 여러 개의 CPU 상에서 처리되는 데이터의 일관성을 유지하기 위한 기법으로 오퍼레이팅 시스템(OS, operating system) 레벨에서 멀티스레딩(multithreading)과 록(Lock) 등을 이용한 임계구역 보호 기능 등을 제공하고 있으나, 이 방법만으로는 대규모 시스템을 개발 유지 보수하는데 많은 어려움과 비용이 발생한다.
이밖에 분산 시스템에서 병행 수행을 위해 객체 간에 상호 작용을 메시지만으로 하는 방법이 있으나 이러한 방법은 메시지를 전달하는 부담(overhead)으로 인하여 성능이 저하되며, 전송한 메시지에 대한 응답을 기다리는 동안 교착 상태(deadlock)가 발생할 수 있다.
종래의 기술에서 분산 시스템 또는 멀티스레딩(multithreading) 시스템에서 병행 계산(Concurrent Computation)을 위한 방법으로 액터(actor) 시스템이 있다. 액터 시스템은 액터(actor)를 병행 계산의 기본 요소로 보는 시스템이다.
액터(actor)는 메시지를 수신하여 처리하고, 스스로 계산을 하고 결정을 내리며, 다른 액터를 만들거나 다른 액터로 메시지를 전송할 수 있다.
액터 시스템에서 각 액터는 액터의 상태, 즉 데이터와 데이터를 처리하기 위한 자체의 수행자, 예를 들어 스레드(thread)를 가지고 있으며 다른 액터와 메시지를 비동기적으로 교환하여 상호작용한다.
액터는 수신된 메시지에 대해 1) 자기 자신의 상태(데이터)를 수정, 2) 다른 액터로 메시지 전송, 3) 새로운 액터의 생성 또는 4) 다른 호스트로의 이전 등과 같은 작업을 수행할 수 있다.
액터 시스템에서 동기 메시지가 사용될 수 있다. 동기 메시지란 송신한 메시지에 대한 회답을 확인하고 난 다음에 그에 따르는 다음 작업을 수행하는 방식의 메시지이다.
동기 메시지 방식은 분산 시스템을 비롯하여 서버/클라이언트 시스템에서 널리 사용되는 방식이며, 일반 응용시스템에서의 직접 수행(direct-call)은 모두가 동기 메시지 방식으로 볼 수 있다.
이러한 동기 메시지를 제약 없이 일반적으로 허용하게 되면, 두 개의 액터가 서로의 리드 메시지에 대한 응답을 서로에게 요청하면서 장시간 대기하게 되면서, 다른 처리를 수행하지 못하게 되는 교착 상태(deadlock)가 발생할 수 있으며, 이러한 교착 상태의 발생으로 인하여 전체 시스템이 멈추는 등의 심각한 문제가 발생할 수 있다.
도 1은 종래 기술에 따른 액터(actor) 시스템에서 동기 메시지의 송수신을 통한 데이터 처리 방법의 흐름을 도시한 신호 흐름도이다.
단계(S10)에서, 제 1 액터(10)는 데이터 처리를 위한 요소인 a1을 산출하고, 데이터 처리를 위해 필요한 또 다른 요소인 b1을 요청한다. 단계(S15)에서, 제 1 액터(10)는 b1을 요청할 액터인 제 2 액터를 검색하고, 제 2 액터로 b1을 요청하기 위한 제 1 리드(read) 메시지를 생성한다. 제 1 액터(10)가 생성하는 제 1 리드(read) 메시지는 동기 메시지로서, 송신한 메시지에 대한 응답을 확인한 후 그에 따르는 다음 절차를 수행하는 방식의 메시지이다.
단계(S20)에서, 제 1 액터(10)는 제 1 리드 메시지를 제 2 액터(20)로 전송한다.
단계(S25)에서, 제 1 액터(10)는 제 1 리드 메시지의 제 2 액터(20)로의 전송에 대응하는 응답 대기 상태를 설정한다. 즉, 제 1 리드 메시지는 동기 메시지이므로, 제 1 액터(10)는 제 1 리드 메시지에 대한 제 2 액터(20)의 응답을 확인하고 그 후 다음 절차를 수행할 수 있다.
따라서, 제 1 액터(10)는 제 2 액터(20)로 전송한 제 1 리드 메시지의 응답을 수신하기 전까지 제 1 액터(10)의 상태를 응답 대기 상태로 설정한다.
단계(S30)에서, 제 2 액터(20)는 제 1 액터(10)로부터 수신한 제 1 리드 메시지를 메시지 큐(queue)에 저장한다.
단계(S35)에서, 제 2 액터(20)는 제 1 액터(10)의 상태 정보를 획득하기 위하여 제 1 액터(10)로 제 2 리드(read) 메시지를 전송한다. 여기서 제 2 리드(read) 메시지는 제 1 리드 메시지와 관련성이 없는 메시지이다.
단계(S40)에서, 제 2 액터(20)는 제 2 리드 메시지의 제 1 액터(10)로의 전송에 대응하는 응답 대기 상태를 설정한다. 제 2 액터(20)는 제 2 리드 메시지에 대한 제 1 액터(10)의 응답을 확인하고서야 비로소 다음 절차를 수행할 수 있다.
따라서, 제 1 액터(10) 및 제 2 액터(20)는 서로의 응답을 수신할 때까지 대기 상태로 설정되어 다른 메시지를 처리하지 못하게 된다.
이로 인해, 제 1 액터(10)는 제 2 리드 메시지의 응답을 제 2 액터(20)로 전송하지 못하게 되고 제 2 액터(20)는 제 1 리드 메시지의 응답을 제 1 액터(10)로 전송하지 못하게 된다.
결국 제 1 액터(10) 및 제 2 액터(20)는 무한 대기 상태가 되므로 제 1 액터(10)와 제 2 액터(20) 사이에 교착 상태가 발생하게 된다.
이처럼 전술한 바와 같이 종래의 기술에 따른 액터 시스템에서 동기 메시지인 리드 메시지의 전송에 따르는 응답 대기 상태로 인하여 교착 상태가 발생하는 문제점을 가지고 있다.
본 발명의 일 실시예는 액터 사이에 동기 메시지를 주고 받는 경우에도 동기 메시지를 전송하고 응답을 수신하기 이전이라도 일정한 메시지를 처리함으로써 동기 메시지의 응답을 장시간 대기하여 발생하는 교착 상태(deadlock)를 방지하고자 한다.
또한, 본 발명의 일 실시예는 액터가 동일한 메모리 공간에 존재하는 경우에는 액터가 대상 액터의 상태 정보를 직접 수행(direct call) 방식으로 판독함으로써 데이터 처리 속도 및 성능을 향상시키고자 한다.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본 발명의 제 1 측면은 (a) 데이터의 처리에 필요한 대상 액터의 상태 정보를 요청하는 리드(read) 메시지를 전송하는 단계, (b) 상기 리드 메시지의 응답을 수신할 때까지, 액터의 상태 정보를 판독하는 리드 메시지만을 수신하여 처리하는 단계 및 (c) 상기 리드 메시지의 응답을 수신한 경우, 상기 상태 정보를 이용하여 관련 데이터를 처리하는 단계를 포함하는 교착 상태의 방지를 위한 데이터 처리 방법을 제공할 수 있다.
본 발명의 제 1 측면에서, (d) 상태 정보가 필요한 대상 액터가 동일한 메모리 공간에 존재하는지 여부를 판단하는 단계, (f) 상기 대상 액터가 동일한 메모리 공간에 존재하는 경우, 상기 대상 액터로부터 상기 상태 정보를 직접 판독하는 단계 및 (e) 상기 직접 판독한 상태 정보를 이용하여 관련 데이터를 처리하는 단계를 더 포함할 수 있다.
또한, 본 발명의 제 1 측면에서, 상기 (b) 단계에서 처리하는 리드 메시지는 메시지 큐(queue)로부터 수신되고, 상기 메시지 큐는 액터의 상태를 변경시키는 이벤트 메시지 또는 리드 메시지를 저장할 수 있다.
본 발명의 제 2 측면은 대상 액터의 상태 정보를 이용하여 데이터를 처리하는 데이터 처리부, 상기 상태 정보를 상기 대상 액터로 요청하는 리드(read) 메시지를 생성하는 리드(read) 메시지 생성부 및 상기 대상 액터로 전송된 상기 리드 메시지에 대한 응답이 수신될 때까지 수신한 메시지 중에서 액터의 상태 정보를 판독하는 리드 메시지만을 처리하는 수신 메시지 처리부를 포함하는 교착 상태의 방지를 위한 데이터 처리 시스템을 제공할 수 있다.
전술한 본 발명의 과제 해결 수단에 의하면, 동기 메시지인 리드(read) 메시지를 전송하고 이에 대한 응답을 수신하기 이전까지 다른 액터로부터 수신한 리드(read) 메시지를 처리할 수 있으므로, 리드 메시지의 응답을 대기하는 동안에도 수신한 리드 메시지를 대기시키지 않고 메시지 큐(queue) 등으로부터 디스패치(dispatch)하고 처리하여 교착 상태(deadlock)를 방지할 수 있다.
또한, 전술한 본 발명의 과제 해결 수단에 의하면, 상태 정보의 대상이 되는 액터가 동일한 메모리 공간에 있는지를 확인하고, 그러한 경우 메시지를 이용하여 상태 정보를 획득하는 방식이 아니라, 직접 대상 액터의 상태 정보를 획득하는 직접 수행(direct call) 방식을 이용하여 대상 액터의 상태 정보를 획득하여 데이터 처리 속도 및 성능을 향상시킬 수 있다.
도 1은 종래 기술에 따른 액터(actor) 시스템에서 동기 메시지의 송수신을 통한 데이터 처리 방법의 흐름을 도시한 신호 흐름도,
도 2는 본 발명의 일 실시예에 따른 데이터 처리 방법의 흐름을 도시한 신호 흐름도,
도 3은 본 발명의 일 실시예에 따른 데이터 처리 방법의 흐름을 도시한 신호 흐름도,
도 4는 본 발명의 일 실시예에 따른 데이터 처리 방법에서 액터(actor)의 메시지 처리 흐름을 도시한 순서도,
도 5는 본 발명의 일 실시예에 따른 데이터 처리 시스템의 구성을 도시한 도면,
도 6은 본 발명의 일 실시예에 따른 데이터 처리 시스템의 액터(actor)의 구성을 도시한 도면.
아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
도 2 및 도 3은 본 발명의 일 실시예에 따른 데이터 처리 방법의 흐름을 도시한 신호 흐름도이다.
단계(S100)에서, 제 1 액터(100)는 데이터 처리를 위한 요소인 a1을 산출하고, 데이터 처리를 위해 필요한 또 다른 요소인 b1을 요청한다. 여기서 b1은 제 1 액터(100) 이외의 액터로부터 수신해야 하는 요소이며, 액터의 상태 정보를 포함할 수 있다.
단계(S105)에서, 제 1 액터(100)는 제 2 액터(200)에게 b1을 요청하기 위한 제 1 리드 메시지를 생성한다. 제 1 액터(100)가 생성하는 제 1 리드(read) 메시지는 동기(synchronous) 메시지로서, 송신한 메시지에 대한 응답을 확인한 후 그에 따르는 다음 절차를 수행하는 방식의 메시지이다.
동기 메시지 방식은 분산 시스템을 비롯하여 서버/클라이언트 시스템에서 널리 사용하는 방식이며, 일반 응용 시스템에서의 직접 수행(direct-call)은 동기 메시지 방식으로 볼 수 있다.
단계(S110)에서, 제 1 액터(100)는 제 1 리드(read) 메시지를 제 2 액터(200)로 전송한다. 제 1 리드 메시지는 메시지 수행자에 의해 제 1 액터(100)로부터 제 2 액터(200)로 전송될 수 있다.
메시지 수행자는 메시지를 메시지 큐로부터 획득하여 해당 액터(actor)로 메시지를 전달하고, 메시지의 내용을 실행한다. 일반적으로 메시지 수행자는 오퍼레이팅 시스템(OS, operating system)이 제공하는 스레드(thread)가 될 수 있으며, 메시지 수행자는 각각의 액터마다 존재할 수 있다.
스레드(thread)는 하나의 호스트 내에서 서로 다른 중앙 처리 장치(CPU, central processing unit) 코어(core)에서 수행될 수 있으며, 서로 다른 호스트에 분산될 수도 있다. 본 발명에 따른 일 실시예의 설명에서는 이해의 편의를 위하여 각각의 액터마다 하나의 독립적인 메시지 수행자를 포함하는 것으로 가정한다.
단계(S115)에서, 제 2 액터(200)는 제 1 액터(100)로부터 수신한 제 1 리드(read) 메시지를 메시지 큐(queue)에 저장한다.
메시지 큐는 수행을 대기하는 메시지의 큐(queue)이며, 메시지 큐는 하나의 호스트에 단일한 메시지 큐가 존재할 수 있으며, 각각의 액터마다 메시지 큐를 포함할 수 있다. 본 발명에 따른 일 실시예의 설명에서는 이해의 편의를 위하여 각각의 액터마다 메시지 큐를 포함하는 것으로 가정한다.
단계(S120)에서, 제 2 액터(200)는 제 1 액터(100)로 제 2 리드(read) 메시지를 전송한다.
단계(S125)에서, 제 1 액터(100)는 제 2 액터(200)로부터 수신한 제 2 리드(read) 메시지를 처리한다. 본 발명의 일 실시예에서 제 1 액터(100)는 종래 기술과 달리 제 2 액터(200)로 리드(read) 메시지를 전송하여도 응답 대기 상태로 설정되지 않는다.
따라서, 제 1 액터(100)는 제 1 리드 메시지의 응답을 제 2 액터(200)로부터 수신하지 않더라도 제 2 리드(read) 메시지를 처리할 수 있다.
단계(S130)에서, 제 1 액터(100)는 단계(S125)에서의 처리 결과를 포함하는 제 2 리드 메시지 응답을 제 2 액터(200)로 전송한다.
단계(S135)에서, 제 2 액터(200) 또는 제 3 액터(200)는 제 1 액터(100)로 제 3 리드(read) 메시지를 전송하고, 단계(S140)에서 제 1 액터(100)는 제 2 액터(200) 또는 제 3 액터(200)로부터 수신한 제 2 리드 메시지를 처리하며, 단계(S145)에서 제 1 액터(100)는 단계(S140)에서의 처리 결과를 포함하는 제 3 리드(read) 메시지 응답을 제 2 액터(200) 또는 제 3 액터(200)로 전송한다.
이처럼 본 발명의 일 실시예에서 제 1 액터(100)는 제 1 리드 메시지를 제 2 액터(200)로 전송하여도 응답 대기 상태로 설정되지 않으므로 하나 이상의 다른 액터로부터 수신한 리드 메시지를 처리하고 응답을 보낼 수 있다.
단계(S150)에서, 제 2 액터(200)는 제 1 리드 메시지를 분석하여 제 1 액터(100)에서 요청한 제 2 액터(200)의 상태 정보인 요소 b1을 산출한다.
단계(S155)에서, 제 2 액터(200)는 제 1 리드 메시지의 응답을 제 1 액터(100)로 전송한다. 제 2 액터(200)에 의해 전송되는 제 1 리드 메시지의 응답은 단계(S150)에서 산출한 제 2 액터(200)의 상태 정보 b1을 포함한다.
단계(S160)에서, 제 1 액터(100)는 단계(S100)에서 산출한 요소 a1 및 제 2 액터(200)로부터 수신한 제 1 리드 메시지의 응답에 포함된 요소 b1을 이용하여 데이터를 처리한다.
도 4는 본 발명의 일 실시예에 따른 데이터 처리 방법에서 액터(actor)의 메시지 처리 흐름을 도시한 순서도이다.
단계(S200)에서, 다른 액터, 즉 대상 액터의 상태 정보를 요구하는 상황이 발생하였음을 파악한다. 즉, 데이터 처리를 수행하는 과정에서 데이터 처리를 위해서 다른 액터의 상태 정보가 필요로 하게 되었음을 파악한다.
*단계(S210)에서, 요구되는 상태 정보의 대상이 되는 대상 액터가 동일한 메모리 공간(memory space)에 존재하는지 여부를 판단한다.
단계(S220)에서는, 단계(S210)에서 대상 액터가 동일한 메모리 공간에 존재하지 않는다고 판단되는 경우, 데이터 처리를 위하여 대상 액터의 상태 정보를 판독할 수 있는 리드(read) 메시지를 생성하고 대상 액터로 생성한 리드 메시지를 전송한다.
액터에 의해 생성되고 송수신되는 메시지는 이벤트 메시지 또는 이벤트 메시지를 포함한다. 이벤트(event) 메시지는 수신하는 액터의 상태가 변경될 수 있는 비동기(asynchronous) 메시지이고, 리드(read) 메시지는 수신하는 액터의 상태를 판독하기만 하는 동기(synchronous) 메시지이다. 따라서 대상 액터의 상태 정보를 판독하기 위하여 리드(read) 메시지를 생성하고 대상 액터로 전송한다.
리드 메시지의 전송은 메시지 수행자에 의해 수행될 수 있다. 오퍼레이팅 시스템(OS, operating system)에 의해 제공되는 스레드(thread)가 메시지 수행자의 역할을 수행할 수 있다.
단계(S230)에서는, 단계(S220)에서 전송한 리드(read) 메시지에 대한 응답을 수신하였는지 여부를 판단한다. 리드 메시지는 응답을 확인한 후 그에 따르는 절차를 수행하는 동기 방식의 메시지이다. 따라서, 전송한 리드 메시지의 응답을 수신하였는지 여부를 판단하여, 응답 수신에 따르는 이후 절차를 수행할 것인지 여부를 판단할 수 있다.
단계(S240)에서는, 단계(S230)에서 응답을 수신하지 않은 것으로 판단되는 경우, 메시지 큐에 저장된 리드 메시지를 메시지 큐로부터 디스패치(dispatch)한다.
메시지 큐(queue)는 액터에 의해 수신된 메시지가 바로 처리될 수 없는 경우, 수신한 메시지를 저장하고 액터에 의해 처리될 때까지 대기시킨다. 액터는 수신한 메시지를 바로 처리할 수도 있으나, 상황에 따라 다른 처리를 수행하기 위해 수신한 메시지를 대기시켜야 하는 경우도 있다.
이러한 경우 액터는 수신한 메시지를 메시지 큐에 저장하여 메시지를 대기시킨 후, 처리 가능한 시점이 되면 메시지를 메시지 큐로부터 디스패치하여 처리할 수 있다.
단계(S250)에서는, 단계(S240)에서 디스패치한 리드(read) 메시지를 분석하고 처리한다. 즉, 리드 메시지를 분석하고 분석한 리드 메시지에 따른 처리를 수행하여 해당 액터로 응답을 전송한다.
이처럼 종래 기술과 달리 본 발명에 따른 일 실시예에서 액터(actor)는 리드 메시지를 전송하고 응답을 수신하기까지의 응답 대기 시간 동안 다른 액터로부터 수신한 리드 메시지를 처리할 수 있다.
이러한 경우, 전송한 리드 메시지의 응답에 따라 데이터 처리를 수행하기 이전에 다른 메시지를 처리하여 액터의 상태가 변경되면, 리드 메시지를 전송할 때의 액터의 상태와 응답을 수신할 때의 액터의 상태가 상이할 수 있으므로 전송한 리드 메시지의 응답에 따라 데이터를 처리할 때 문제가 발생할 수 있다.
따라서, 전술한 바와 같이, 메시지 큐에는 동기 메시지인 리드 메시지뿐만 아니라 비동기 메시지인 이벤트 메시지도 포함될 수 있으나, 전송한 리드 메시지의 응답을 기다리는 동안 처리될 수 있는 메시지는 액터의 상태를 변경하지 않는 동기 메시지인 리드 메시지에 한정된다.
단계(S260)에서는, 단계(S220)에서 전송한 리드(read) 메시지에 대한 응답을 수신하였는지 여부를 판단한다.
단계(S270)에서는, 단계(S220)에서 전송한 리드 메시지의 응답을 수신한 경우, 수신한 응답에 포함된 대상 액터의 상태 정보를 이용하여 데이터를 처리한다.
단계(S280)에서는, 단계(S210)에서 대상 액터가 동일한 메모리 공간에 존재한다고 판단되는 경우, 대상 액터의 상태 정보를 직접 수행(direct call) 방식을 통해 판독한다.
단계(S290)에서, 단계(S280)에서 판독한 상태 정보를 이용하여 관련 데이터를 처리한다. 이처럼 대상 액터의 상태 정보를 직접 수행 방식을 통해 판독하는 방식은 메시지 전송 후 응답을 기다려야 하는 동기 메시지를 이용하는 방식에 비하여 데이터 처리 속도를 향상시키고 시스템의 성능을 개선시킬 수 있다.
도 5는 본 발명의 일 실시예에 따른 데이터 처리 시스템의 구성을 도시한 도면이다.
전술한 바와 같이, 본 발명의 일 실시예에서 각각의 액터(100 및 200)는 메시지 수행자(101 및 201) 및 메시지 큐(102 및 202)를 각각 포함한다.
제 1 액터(100)는 데이터 처리를 위하여 제 2 액터(200)의 상태 정보가 필요하다고 판단되면, 제 2 액터(200)의 상태 정보를 판독하기 위한 제 1 리드(read) 메시지를 생성하고, 생성한 제 1 리드(read) 메시지를 제 2 액터(200)로 전송한다.
제 1 액터(100)는 제 2 액터(200) 또는 그외의 다른 액터로부터 리드(read) 메시지 및 이벤트(event) 메시지를 수신하고, 수신한 메시지를 바로 처리할 수 없는 경우 메시지 수행자(101)를 통해 메시지 큐(102)에 수신한 메시지를 저장한다.
제 1 액터(100)는 메시지 큐(102)에 저장한 메시지를 메시지 수행자(101)를 이용하여 순차적으로 디스패치(dispatch)하고, 메시지의 종류 및 내용에 따른 절차를 수행한다.
예를 들어, 리드(read) 메시지를 디스패치한 경우, 제 1 액터(100)는 리드 메시지에 의해 요구되는 제 1 액터의 상태 정보를 포함하는 응답을 생성하고, 리드 메시지를 전송한 액터로 생성한 응답을 전송한다. 이벤트 메시지를 디스패치한 경우, 제 1 액터(100)는 이벤트 메시지에 포함된 정보에 따라 제 1 액터(100)의 상태를 변경한다.
제 1 액터(100)는 제 2 액터(200)로부터 제 1 리드 메시지의 응답을 수신하여 제 2 액터(200)의 상태 정보를 수신하고, 수신한 상태 정보를 이용하여 데이터 처리를 수행한다.
이처럼 본 발명의 일 실시예에 따른 데이터 처리 시스템에서의 액터(actor)는 대상 액터로 전송한 리드 메시지의 응답이 미수신된 경우라도, 수신한 리드 메시지를 처리할 수 있으므로, 리드 메시지 처리가 지연되어 발생하는 교착 상태(deadlock)를 방지할 수 있다.
도 6은 본 발명의 일 실시예에 따른 데이터 처리 시스템의 액터(actor)의 구성을 도시한 도면이다.
본 발명의 일 실시예에 따른 액터(actor)(100)는 신호 송수신부(110), 데이터 처리부(120), 리드 메시지 생성부(130) 및 수신 메시지 처리부(140)를 포함한다.
신호 송수신부(110)는 다른 액터(actor)로 메시지 등의 신호를 전송하고, 신호를 수신한다.
즉, 신호 송수신부(110)는 리드(read) 메시지 또는 이벤트(event) 메시지 등의 메시지를 수신하고, 수신한 리드 메시지의 응답을 포함하는 신호를 해당 액터로 전송한다. 또한, 신호 송수신부(110)는 대상 액터로 리드 메시지를 전송하고, 리드 메시지의 응답을 수신한다.
데이터 처리부(120)는 데이터 처리에 있어서 대상 액터의 상태 정보가 필요한 경우, 해당 액터가 액터(100)와 동일한 메모리 공간에 존재하는지 여부를 판단한다. 해당 액터가 동일한 메모리 공간에 존재하지 않는 경우, 데이터 처리부(120)는 해당 액터로 전송할 리드 메시지의 생성을 리드 메시지 생성부(130)로 요청한다.
데이터 처리부(120)는 리드 메시지가 해당 액터로 전송되었다는 전송 상황을 리드 메시지 생성부(130)로부터 수신하면, 해당 액터로부터 응답을 수신할 때까지 리드 메시지만을 처리하고 이벤트 메시지의 처리를 중단할 것을 수신 메시지 처리부(140)에 요청한다.
전술한 바와 같이, 전송한 리드 메시지의 응답을 수신하여 그에 따른 데이터 처리를 수행하기 전에 다른 메시지를 처리하여 액터의 상태를 변경하면, 전송한 리드 메시지의 응답에 따른 데이터 처리에 있어서 문제가 발생할 수 있다. 따라서, 데이터 처리부(120)는 액터의 상태를 변경하지 않는 리드 메시지만을 처리하도록 메시지 처리부(140)에 요청한다.
데이터 처리부(120)는 해당 액터가 액터(100)와 동일한 메모리 공간에 존재한다고 판단하는 경우, 데이터 처리부(120)는 해당 액터의 상태 정보의 판독을 직접 수행(direct call) 방식으로 수행한다.
데이터 처리부(120)는 전송한 리드 메시지의 응답을 해당 액터로부터 수신하고, 수신한 응답에 포함된 상태 정보를 이용하여 데이터 처리를 수행한다.
리드(read) 메시지 생성부(130)는 데이터 처리부(120)의 요청에 응답하여 전송할 리드 메시지를 생성한다. 리드 메시지 생성부(130)는 데이터 처리부(120)의 요청에 포함된 리드 메시지를 수신할 액터의 정보를 이용하여 생성한 리드 메시지를 신호 송수신부(110)를 통해 전송하고, 전송 상황을 데이터 처리부(120)로 통보한다.
수신 메시지 처리부(140)는 메시지 큐(queue)(102)에 저장된 메시지를 디스패치(dispatch)하여 메시지를 처리한다. 수신 메시지 처리부(140)는 데이터 처리부(120)의 요청이 있는 경우, 이벤트 메시지의 처리를 중단하고 리드 메시지만을 디스패치하여 처리한다.
즉, 수신 메시지 처리부(140)는 액터(100)가 대상 액터로 전송한 리드 메시지의 응답을 수신할 때까지 리드 메시지에 한정하여 메시지를 처리한다.
이처럼 수신 메시지 처리부(140)는 대상 액터로 전송한 리드 메시지의 응답을 수신하기 전이라도 수신한 리드 메시지를 처리하여 메시지 큐(102)에 메시지가 과도하게 대기하게 되는 상황을 방지할 수 있다.
상술한 본 발명의 일 실시예는 복수의 호스트(host)로 분산된 환경에서 적용될 수 있을 뿐만 아니라 하나의 호스트, 특히 하나의 호스트 내의 하나 이상의 CPU 코어, 이른바 멀티 코어 환경에서도 적용될 수 있다.
즉, 액터가 각각 별개의 호스트에 존재하는 상황에서뿐만 아니라 동일한 호스트에 존재하는 상황에서도 본 발명이 적용될 수 있다.
본 발명의 일 실시예는 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다.
또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 모두 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다. 통신 매체는 전형적으로 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈, 또는 반송파와 같은 변조된 데이터 신호의 기타 데이터, 또는 기타 전송 메커니즘을 포함하며, 임의의 정보 전달 매체를 포함한다.
본 발명의 방법 및 시스템은 특정 실시예와 관련하여 설명되었지만, 그것들의 구성 요소 또는 동작의 일부 또는 전부는 범용 하드웨어 아키텍쳐를 갖는 컴퓨터 시스템을 사용하여 구현될 수 있다.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.

Claims (11)

  1. 교착 상태의 방지를 위한 데이터 처리 방법에 있어서,
    (a) 데이터의 처리에 필요한 대상 액터의 상태 정보를 요청하는 리드(read) 메시지를 전송하는 단계,
    (b) 상기 리드 메시지의 응답을 수신할 때까지, 액터의 상태 정보를 판독하는 리드 메시지만을 수신하여 처리하는 단계 및
    (c) 상기 리드 메시지의 응답을 수신한 경우, 상기 상태 정보를 이용하여 관련 데이터를 처리하는 단계
    를 포함하는 데이터 처리 방법.
  2. 제 1 항에 있어서,
    (d) 상태 정보가 필요한 대상 액터가 동일한 메모리 공간에 존재하는지 여부를 판단하는 단계,
    (e) 상기 대상 액터가 동일한 메모리 공간에 존재하는 경우, 상기 대상 액터로부터 상기 상태 정보를 직접 판독하는 단계 및
    (f) 상기 직접 판독한 상태 정보를 이용하여 관련 데이터를 처리하는 단계
    를 더 포함하는 데이터 처리 방법.
  3. 제 1 항에 있어서,
    상기 (b) 단계에서 처리하는 리드 메시지는 메시지 큐(queue)로부터 수신되고,
    상기 메시지 큐는 액터의 상태를 변경시키는 이벤트 메시지 또는 리드 메시지를 저장하는 것인 데이터 처리 방법.
  4. 제 1 항에 있어서,
    상기 (b) 단계에서 처리하는 리드 메시지는 액터로부터 직접 수신되는 것인 데이터 처리 방법.
  5. 제 1 항에 있어서,
    리드 메시지의 전송 및 수신은 오퍼레이팅 시스템(OS, operating system)의 스레드(thread)를 통해 수행되는 것인 데이터 처리 방법.
  6. 제 1 항에 있어서,
    상기 대상 액터는 별도의 호스트(host)에 존재하는 것인 데이터 처리 방법.
  7. 제 1 항에 있어서,
    상기 대상 액터는 동일한 호스트(host)에 존재하는 것인 데이터 처리 방법.
  8. 교착 상태의 방지를 위한 데이터 처리 시스템에 있어서,
    대상 액터의 상태 정보를 이용하여 데이터를 처리하는 데이터 처리부,
    상기 상태 정보를 상기 대상 액터로 요청하는 리드(read) 메시지를 생성하는 리드 메시지 생성부 및
    상기 대상 액터로 전송된 상기 리드 메시지에 대한 응답이 수신될 때까지 수신한 메시지 중에서 액터의 상태 정보를 판독하는 리드 메시지만을 처리하는 수신 메시지 처리부
    를 포함하는 데이터 처리 시스템.
  9. 제 8 항에 있어서,
    상기 데이터 처리부는 동일한 메모리 공간에 존재하는 대상 액터의 상태 정보를 직접 수행(direct call) 방식으로 판독하여 데이터를 처리하는 것인 데이터 처리 시스템.
  10. 제 8 항에 있어서,
    상기 수신 메시지 처리부가 수신하는 리드 메시지는 액터로부터 직접 수신되는 것인 데이터 처리 시스템.
  11. 제 8 항에 있어서,
    상기 수신 메시지 처리부가 수신하는 리드 메시지는 액터의 상태를 변경시키는 이벤트(event) 메시지 또는 리드(read) 메시지를 저장하는 메시지 큐(queue)로부터 수신되는 것인 데이터 처리 시스템.
PCT/KR2010/007517 2009-10-30 2010-10-29 교착 상태의 방지를 위한 데이터 처리 방법 및 시스템 WO2011053038A2 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201080049494.2A CN102630315B (zh) 2009-10-30 2010-10-29 用于防止死锁状态的数据处理方法及系统
US13/505,170 US8826301B2 (en) 2009-10-30 2010-10-29 Method and system for processing data for preventing deadlock

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2009-0104500 2009-10-30
KR1020090104500A KR101080845B1 (ko) 2009-10-30 2009-10-30 교착 상태의 방지를 위한 데이터 처리 방법 및 시스템

Publications (2)

Publication Number Publication Date
WO2011053038A2 true WO2011053038A2 (ko) 2011-05-05
WO2011053038A3 WO2011053038A3 (ko) 2011-11-03

Family

ID=43922863

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2010/007517 WO2011053038A2 (ko) 2009-10-30 2010-10-29 교착 상태의 방지를 위한 데이터 처리 방법 및 시스템

Country Status (4)

Country Link
US (1) US8826301B2 (ko)
KR (1) KR101080845B1 (ko)
CN (1) CN102630315B (ko)
WO (1) WO2011053038A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021000656A1 (zh) * 2019-07-04 2021-01-07 中兴通讯股份有限公司 死锁检测控制方法、装置、通信设备及计算机存储介质

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101191727B1 (ko) 2011-02-28 2012-11-21 (주)지노게임즈 멀티 버추얼 머신을 이용한 멀티 쓰레드 처리시스템 및 그 방법
CN103399818B (zh) * 2013-08-13 2016-05-18 中国科学技术大学苏州研究院 操作系统中的死锁检测方法
RU2718215C2 (ru) 2018-09-14 2020-03-31 Общество С Ограниченной Ответственностью "Яндекс" Система обработки данных и способ обнаружения затора в системе обработки данных
RU2714219C1 (ru) 2018-09-14 2020-02-13 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для планирования передачи операций ввода/вывода
RU2731321C2 (ru) 2018-09-14 2020-09-01 Общество С Ограниченной Ответственностью "Яндекс" Способ определения потенциальной неисправности запоминающего устройства
RU2714602C1 (ru) 2018-10-09 2020-02-18 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для обработки данных
RU2721235C2 (ru) 2018-10-09 2020-05-18 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для маршрутизации и выполнения транзакций
RU2711348C1 (ru) 2018-10-15 2020-01-16 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для обработки запросов в распределенной базе данных
RU2714373C1 (ru) 2018-12-13 2020-02-14 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для планирования выполнения операций ввода/вывода
RU2749649C2 (ru) 2018-12-21 2021-06-16 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для планирования обработки операций ввода/вывода
RU2720951C1 (ru) 2018-12-29 2020-05-15 Общество С Ограниченной Ответственностью "Яндекс" Способ и распределенная компьютерная система для обработки данных
RU2746042C1 (ru) 2019-02-06 2021-04-06 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для передачи сообщения
KR102289140B1 (ko) * 2019-12-03 2021-08-13 현대오트론 주식회사 전자 장치에서 소프트웨어를 실행하는 방법 및 그 전자 장치

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11224204A (ja) * 1998-02-06 1999-08-17 Nec Corp 排他制御装置及びその方法
US20020174218A1 (en) * 2001-05-18 2002-11-21 Dick Kevin Stewart System, method and computer program product for analyzing data from network-based structured message stream
WO2008038195A2 (en) * 2006-09-25 2008-04-03 Koninklijke Philips Electronics N.V. Robust critical section design in multithreaded applications
JP2008146674A (ja) * 2008-02-04 2008-06-26 Toshiba Corp 自動分散処理システム

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR0146551B1 (ko) * 1995-08-21 1998-09-15 양승택 임계영역을 지원하는 래치 관리방법
US5828881A (en) * 1995-11-09 1998-10-27 Chromatic Research, Inc. System and method for stack-based processing of multiple real-time audio tasks
JP4197571B2 (ja) * 2000-03-28 2008-12-17 株式会社東芝 自動分散処理システムおよび記録媒体
US6772153B1 (en) * 2000-08-11 2004-08-03 International Business Machines Corporation Method and apparatus to provide concurrency control over objects without atomic operations on non-shared objects
US7673304B2 (en) * 2003-02-18 2010-03-02 Microsoft Corporation Multithreaded kernel for graphics processing unit
US7290086B2 (en) * 2003-05-28 2007-10-30 International Business Machines Corporation Method, apparatus and program storage device for providing asynchronous status messaging in a data storage system
US7644197B1 (en) * 2003-10-15 2010-01-05 Sun Microsystems, Inc. Queue management by multiple processors
US7315912B2 (en) * 2004-04-01 2008-01-01 Nvidia Corporation Deadlock avoidance in a bus fabric
US7975272B2 (en) * 2006-12-30 2011-07-05 Intel Corporation Thread queuing method and apparatus
US8869169B2 (en) * 2007-04-30 2014-10-21 Accenture Global Services Limited Alternately processing messages
US8161460B2 (en) * 2007-05-30 2012-04-17 Sap Ag System and method of automatic interoperability checking for BPEL

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11224204A (ja) * 1998-02-06 1999-08-17 Nec Corp 排他制御装置及びその方法
US20020174218A1 (en) * 2001-05-18 2002-11-21 Dick Kevin Stewart System, method and computer program product for analyzing data from network-based structured message stream
WO2008038195A2 (en) * 2006-09-25 2008-04-03 Koninklijke Philips Electronics N.V. Robust critical section design in multithreaded applications
JP2008146674A (ja) * 2008-02-04 2008-06-26 Toshiba Corp 自動分散処理システム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021000656A1 (zh) * 2019-07-04 2021-01-07 中兴通讯股份有限公司 死锁检测控制方法、装置、通信设备及计算机存储介质

Also Published As

Publication number Publication date
KR20110047753A (ko) 2011-05-09
WO2011053038A3 (ko) 2011-11-03
US20120216215A1 (en) 2012-08-23
KR101080845B1 (ko) 2011-11-07
CN102630315B (zh) 2015-06-24
CN102630315A (zh) 2012-08-08
US8826301B2 (en) 2014-09-02

Similar Documents

Publication Publication Date Title
WO2011053038A2 (ko) 교착 상태의 방지를 위한 데이터 처리 방법 및 시스템
US7984450B2 (en) Dispatching packets on a global combining network of a parallel computer
US7948999B2 (en) Signaling completion of a message transfer from an origin compute node to a target compute node
US20100023631A1 (en) Processing Data Access Requests Among A Plurality Of Compute Nodes
KR101951072B1 (ko) 코어 간 통신 장치 및 방법
US7797292B2 (en) Apparatus, system, and method for an alternate lock facility connection path
US8325633B2 (en) Remote direct memory access
US7797445B2 (en) Dynamic network link selection for transmitting a message between compute nodes of a parallel computer
JP3807250B2 (ja) クラスタシステム、コンピュータ及びプログラム
WO2014025145A1 (en) Method and apparatus for processing message between processors
US20070242611A1 (en) Computer Hardware Fault Diagnosis
US20080288691A1 (en) Method and apparatus of lock transactions processing in single or multi-core processor
WO2016064158A1 (ko) 재구성 가능 프로세서 및 그 동작 방법
US20080301327A1 (en) Direct Memory Access Transfer Completion Notification
US6175931B1 (en) Global hard error distribution using the SCI interconnect
WO2015023144A1 (ko) 메모리 공유 환경에서 데이터 무결성 감시 장치 및 방법
US7889657B2 (en) Signaling completion of a message transfer from an origin compute node to a target compute node
WO2012015273A2 (en) Direct memory access device for multi-core system and operating method of the same
US7006442B1 (en) Communication control system and control method thereof
KR20050080704A (ko) 프로세서간 데이터 전송 장치 및 방법
WO2022114272A1 (ko) 적응형 트랜잭션 처리 방법 및 이를 위한 장치
US9015717B2 (en) Method for processing tasks in parallel and selecting a network for communication
KR100978083B1 (ko) 공유 메모리형 멀티 프로세서에 있어서의 절차 호출 방법 및 절차 호출 프로그램을 기록한 컴퓨터로 판독 가능한 기록 매체
WO2018080192A1 (en) Electronic device and data transfer method thereof
WO2017030337A1 (ko) 사물 인터넷에서의 연관된 트랜잭션 처리 방법, 이를 위한 사물 인터넷 통신 노드, 및 이들을 이용한 사물 인터넷 망

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 201080049494.2

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 10827122

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 13505170

Country of ref document: US

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 06/08/2012)

122 Ep: pct application non-entry in european phase

Ref document number: 10827122

Country of ref document: EP

Kind code of ref document: A2