KR20000046239A - Realtime multiprocessing system in data processing order according to time limit of processing - Google Patents

Realtime multiprocessing system in data processing order according to time limit of processing Download PDF

Info

Publication number
KR20000046239A
KR20000046239A KR1019980062916A KR19980062916A KR20000046239A KR 20000046239 A KR20000046239 A KR 20000046239A KR 1019980062916 A KR1019980062916 A KR 1019980062916A KR 19980062916 A KR19980062916 A KR 19980062916A KR 20000046239 A KR20000046239 A KR 20000046239A
Authority
KR
South Korea
Prior art keywords
task
processing
tasks
real
data
Prior art date
Application number
KR1019980062916A
Other languages
Korean (ko)
Other versions
KR100321408B1 (en
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 KR1019980062916A priority Critical patent/KR100321408B1/en
Publication of KR20000046239A publication Critical patent/KR20000046239A/en
Application granted granted Critical
Publication of KR100321408B1 publication Critical patent/KR100321408B1/en

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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • 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
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution

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

PURPOSE: A realtime multiprocessing system in data processing order according to the time limit of processing is provided to distribute the process sources more effectively by reflecting the requirement about the time limit of data processing of the real life to the design of task. CONSTITUTION: A realtime multiprocessing system in data processing order according to the time limit of processing consists of three parts. A system core is used in actions between tasks and transmissions of messages by putting GS(Global Sequence) according to the time limit of tasks, generations and terminations of the tasks, the early processing. A task part handles data through executing the task by GS given to each task by the request of the system core. A GS list provides TID(Task ID), the time limit, GS information to the task part.

Description

처리기한에 따른 데이터 처리 순서에 의한 실시간 다중처리 시스템Real-time multiprocessing system based on data processing sequence according to processing time

본 발명은 처리기한에 따른 데이터 처리 순서에 의한 실시간 다중처리 시스템에 관한 것으로, 상세하게는 실시간으로 데이터를 처리해야 하며 하나의 태스크(Task)가 여러 데이터 유형을 처리해야 하는 복합한 다중 처리(Multi-tasking)구조의 시스템에 적용하기 위한 데이터 처리 순서에 의한 실시간 다중처리 시스템에 관한 것이다.The present invention relates to a real-time multi-processing system based on the data processing order according to the processing time, in detail, a complex multi-processing (Multitask) that must process data in real time and one task (Multitask) must process multiple data types The present invention relates to a real-time multiprocessing system based on a data processing sequence to be applied to a system having a tasking structure.

적용될 수 있는 시스템의 예로는 수신된 각종 제어 신호 및 유료 정보 처리 및 여러 부속품들에 대한 제어 신호를 처리해야 하면서도 프로세서의 수는 제한된 이동전화 단말기 등이다.An example of a system that can be applied is a mobile terminal having a limited number of processors while processing various control signals and pay information processing and control signals for various accessories.

도 1 에는 종래의 실시간 다중 처리 시스템의 전형적인 구성도가 도시된다.1 shows a typical schematic diagram of a conventional real-time multiprocessing system.

도시된 바와 같이 종래의 실시간 다중 처리 시스템은 크게 실제 데이터 처리하는 프로그램인 Task들을 관리하고 Task의 시스템 요구에 대응하는 시스템 코어(100)와 실제 데이터를 처리하는 Task부(200)로 구성된다.As shown in the drawing, a conventional real-time multiprocessing system is largely composed of a system core 100 for managing tasks, which are programs for processing actual data, and corresponding to system requirements of the task, and a task unit 200 for processing actual data.

상기 시스템 코어(100)는 실행할 Task를 선택하여 실행시키는 PRS(Process Rescheduling Service)(110)와, 기타 시스템 서비스(120)와, Task에 관한 정보를 보관하고 있는 TCB(Task Control Block) List(130)로 이루어진다.The system core 100 includes a process rescheduling service (PRS) 110 to select and execute a task to be executed, another system service 120, and a task control block (TCB) list 130 which stores information about a task. )

상기 PRS(110)는 실행중인 Task의 TID를 저장하는 ETID(Executing Task ID)(111)와, 우선 순위에 따라 Task 들의 TID와 Status 들을 저장하는 TQ1(1st Priority Task Queue)(112), TQ2(2nd Priority Task Queue )(113), TQ3(3rd Priority Task Queue)(114)로 이루어진다.The PRS 110 stores an ETID (Executing Task ID) 111 for storing a TID of a running task, and a TQ1 (1st Priority Task Queue) 112 for storing TIDs and statuses of tasks according to priorities. 2nd Priority Task Queue) 113, and TQ3 (3rd Priority Task Queue) 114.

상기 Task부(200)는 여러 개의 Task(210)와 각각에 구비되는 MQ(Message Queue)(220)로 이루어진다.The task unit 200 includes a plurality of tasks 210 and MQ (Message Queue) 220 provided in each.

상기 시스템 코어(100)는 실제 데이터 처리하는 프로그램인 Task들을 관리하고 Task의 시스템 요구에 대응한다.The system core 100 manages tasks, which are programs that process data, and corresponds to system requirements of tasks.

상기 PRS(110)는 실행할 Task를 선택하여 실행시키는 서비스(시스템 콜)이다.The PRS 110 is a service (system call) that selects and executes a task to execute.

상기 ETID(111)는 현재 실행중인 Task의 TID를 저장해 두는 기억장소이다. TID는 Task를 구분하기 위한 Task 마다 유일하게 할당되는 수이다.The ETID 111 is a storage location for storing the TID of the currently running task. TID is the only number assigned to each task to identify the task.

상기 TQ1(112)은 Task들 중에서 가장 우선 순위가 높은 Task 들의 TID와 Status 들을 저장해 두는 Queue 형태의 기억장소이다. Status는 해당 Task가 Ready 상태인지 Suspended 상태인지를 나타낸다. Suspended 상태는 해당 Task가 특정 메시지를 대기하고 있는 상태이며, Ready 상태는 어떠한 메시지도 대기하지 않고 있으며 바로 실행될 수 있는 상태이다.The TQ1 112 is a queue type storage location that stores TIDs and statuses of tasks having the highest priority among tasks. Status indicates whether the task is Ready or Suspended. Suspended state is that task is waiting for a specific message. Ready state is not waiting for any message and can be executed immediately.

가장 최근에 실행된 Task의 TID 및 Status가 Queue의 제일 마지막 노드에 저장된다.The TID and Status of the most recently executed task are stored in the last node of the queue.

상기 TQ2(113)는 Task들 중에서 둘째로 우선 순위 높은 Task들의 TID와 Status를 저장해 두는 Queue이다.The TQ2 113 is a queue that stores TIDs and statuses of tasks having the second highest priority among tasks.

상기 TQ3(114)는 세째로 우선 순위의 Queue이며, 이후에도 TQ4, TQ5... 등 여러 Queue를 가질 수 있다.The TQ3 114 is a third priority queue, and may have multiple queues such as TQ4, TQ5 ...

상기 기타 시스템 서비스(120)는 시스템 코어 내에 PRS(110)외에 Task간의 메시지의 전달, 인터럽트의 초기 처리, Task의 생성, 소멸, Task의 우선 순위 변경 등 시스템에 따라 Task를 관리하는데 필요한 여러 가지 서비스가 존재한다.The other system services 120 are various services necessary for managing tasks according to the system, such as transfer of messages between tasks in addition to the PRS 110, initial processing of interrupts, creation and destruction of tasks, and priority change of tasks in the system core. Is present.

상기 TCB List(130)는 Task에 관한 정보를 보관하고 있는 TCB의 목록이다. 모든 Task에 대한 TCB가 저장되어 있다. TCB에는 도 2에 도시된 바와 같이 보통 TID, 프로세서의 레지스터들의 상태 등을 저장하는 영역(PS: Processor Status) 그리고 자신이 원래 속해있는 Queue 번호를 저장하는 Priority 영역 등이 있다.The TCB List 130 is a list of TCBs that hold information about a task. TCBs for all tasks are stored. As shown in FIG. 2, the TCB generally includes a TID, an area for storing the status of registers of a processor, and the like, and a priority area for storing the queue number to which it originally belongs.

상기 Task(210)은 실제 데이터를 처리하는 프로그램 실행 단위이다.The task 210 is a program execution unit that processes actual data.

각 Task(210)마다 하나의 MQ(220)를 갖는데, MQ는 해당 Task에게 들어오는 메시지를 보관하는 Queue이다.Each task 210 has one MQ 220, which is a queue that holds messages coming to the task.

외부환경(300)은 이 시스템에 대하여 인터럽트 또는 데이터를 주고 받는 외부 하드웨어 또는 소프트웨어를 지칭한다. 인터럽트에는 Clock Tick 인터럽트를 포함 외부 입력을 알려주는 인터럽트 등이 있다.The external environment 300 refers to external hardware or software that sends and receives interrupts or data to this system. Interrupts include interrupts that signal external inputs, including Clock Tick interrupts.

상기와 같이 구성되는 종래의 실시간 다중 처리 시스템은 다음과 같이 동작한다.The conventional real time multi-processing system configured as described above operates as follows.

PRS(110)가 기동하게 되면 PRS(110)는 TQ1(112)의 가장 앞에 있는 노드부터 시작하여 Status 가 Ready인 Task를 찾는다. TQ1(112)에 Status가 Ready인 Task가 없으면, TQ2(113)를 찾고, TQ2(113)에도 없으면, 마지막으로 TQ3(114)을 찾는다. TQ3(114)에도 없으면 PRS(110)는 임의 Idle Task, 즉 아무 일도 하지 않는 Task를 기동한다. 결국, TQ1(112)에 속하는 Task이냐, TQ2(113)에 속하는 Task이냐 TQ3(114)에 속하는 Task이냐에 따라 Task의 우선 순위가 결정된다. 기동할 Task는 Task Queue 상의 노드 위치를 변경하는데 TCB의 Priority가 가리키는 Task Queue의 맨 끝으로 이동한다. 그리고 Task Queue간의 이동은 Task가 전혀 실행되지 않고 있는 시간을 점검해 일정 시간동안 처리가 되지 않으면 하위 우선 순위 Queue로부터 높은 우선 순위의 Queue로 이동하도록 해준다. 이것은 수많은 실시간 다중 처리 시스템의 한 예이며, 이 밖에도 Task의 우선 순위를 결정하는 데는 여러 가지 방법이 있다.When the PRS 110 is activated, the PRS 110 searches for a task whose Status is Ready, starting with the node in front of the TQ1 112. If there is no Task having a status of Ready in TQ1 112, TQ2 113 is found. If TQ2 113 is not present, TQ3 114 is found last. If not in the TQ3 114, the PRS 110 starts a random idle task, that is, a task that does nothing. As a result, the priority of the task is determined according to whether the task belongs to the TQ1 112, the task belonging to the TQ2 113, or the task belonging to the TQ3 114. The task to be started is moved to the end of the Task Queue indicated by the TCB Priority, which changes the node position on the Task Queue. Moving between task queues checks the time when no task is running and moves from the lower priority queue to the higher priority queue if it is not processed for a certain period of time. This is an example of a number of real-time multiprocessing systems, and there are many ways to prioritize tasks.

기타 시스템 서비스(120)는 각자 할 일을 처리하고서 일반적으로 PRS(110)를 시작하여 Task의 우선 순위 및 다음에 실행할 Task를 재 선정한다. 실시간 다중 처리 시스템에서는 일반적으로 일정 시간마다 인터럽트가 발생하는 데 이 때에 PRS를 불러줌으로 해서 하나의 Task가 계속 프로세서를 장악하는 경우를 방지한다.The other system service 120 processes the work to be performed, and generally starts the PRS 110 to reselect the priority of the task and the next task to be executed. In a real-time multiprocessing system, interrupts occur at regular intervals, and the PRS is called at this time to prevent a task from taking over the processor continuously.

각 Task(200)들은 서로 메시지를 전달하거나 대기할 때 또 Task를 생성, 소멸하기 위해서 자기가 속한 우선 순위를 변경하기 위해서 시스템 서비스를 호출한다.Each task 200 calls a system service to change its priority in order to create or destroy a task when delivering or waiting for messages.

상술한 바와 같이 종래 기술로도 Task가 스스로 우선 순위 변경하거나 Task의 최종 실행 시각에 대한 정보에 의해 우선 순위가 변경되기도 하는 등 실시간 데이터 처리를 위해 여러 가지 기법이 제안되었다. 그러나, 현실 세계에서 실시간 시스템은 각 데이터에 대한 처리 기한이 결정되어 있는데 반해 이러한 처리 기한이 지켜지도록 자원의 분배를 관리하는 메커니즘은 제공하지 않고 있으며, 각 Task를 적당히 잘 설계하여 데이터의 처리 기한이 지켜지도록 하는 수 밖에 없다. 이를 테면, A라는 데이터는 입력 후 1초 이내 처리해야 하고 B라는 데이터는 입력 후 10초 이내에 처리해야 한다면 종래의 실시간 다중처리 시스템은 B라는 데이터가 입력되고 9.9초만에 A데이터가 입력된다면 A데이터를 처리하는 Task보다 B데이터를 처리하는 Task에 더 높은 우선 순위 부여하도록 Task를 설계하기가 어려운 문제점이 있다.As described above, various techniques have been proposed for real-time data processing, such as priorities of tasks by themselves, or by priorities of tasks. However, in the real world, the real time system has a processing deadline for each data, but does not provide a mechanism to manage the distribution of resources to ensure that these processing deadlines are met. There is no choice but to keep it. For example, if the data of A should be processed within 1 second after input and the data of B should be processed within 10 seconds after input, the conventional real-time multi-processing system is that if the data of B is input and A data is input within 9.9 seconds, A data. There is a problem that it is difficult to design a task to give a higher priority to a task that processes B data than a task that processes a.

본 발명은 상기 문제점을 해결하기 위해 안출된 것으로, 실시간 시스템을 현실 세계의 데이터 처리 기한에 대한 요구를 그대로 Task의 설계에 반영하여 종전 시스템보다 효율적인 프로세서 자원 분배를 가능하게 하는 처리기한에 따른 데이터 처리 순서에 의한 실시간 다중처리 시스템을 제공하는 것을 그 목적으로 한다.The present invention has been made to solve the above problems, the data processing according to the processing period to enable more efficient distribution of processor resources than the previous system by reflecting the real-time system request for the data processing deadline of the real world in the design of the task as it is It is an object of the present invention to provide a real-time multiprocessing system based on a sequence.

상기 목적을 달성하기 위한 본 발명에 의한 처리기한에 따른 데이터 처리 순서에 의한 실시간 다중처리 시스템은 데이터 처리 순서에 의한 실시간 다중처리 시스템에 있어서, Task에 처리기한에 따른 우선 순위(GS: Global Sequence)를 부여하여 Task간의 이행 및 메시지 전달, Task의 생성과 소멸, 인터럽트의 초기 처리를 위한 시스템 코어와, 상기 시스템 코어의 요청에 의해 각 Task에 부여된 GS에 의해 Task를 수행하여 데이터를 처리하는 Task부와, 각 Task의 TID(Task ID), 처리기한, GS정보를 구비하여 상기 Task부에 제공하는 GS List를 포함하여 구성된 것을 특징으로 한다.Real-time multi-processing system according to the data processing order according to the processing time limit according to the present invention for achieving the above object, in the real-time multi-processing system according to the data processing order, priority according to the processing time to the task (GS: Global Sequence) Task to process data by performing task by GS assigned to each task at the request of the system core and system core for transition and message transfer between task, creation and destruction of task, and initial processing of interrupt And a GS List provided to the Task unit by including a TID (Task ID), a processing period, and GS information of each task.

도 1 은 종래의 실시간 다중 처리 시스템의 전형적인 구성도,1 is a typical block diagram of a conventional real-time multi-processing system,

도 2 는 종래의 TCB 및 Task Queue의 구조도,2 is a structural diagram of a conventional TCB and a task queue;

도 3 은 본 발명의 일실시예에 의한 데이터 처리 순서에 의한 실시간 다중처리 시스템의 구성도,3 is a configuration diagram of a real-time multiprocessing system based on a data processing sequence according to an embodiment of the present invention;

도 4 는 본 발명의 TCB 및 Task Queue의 구조도.4 is a structural diagram of a TCB and a task queue of the present invention.

* 도면의 주요 부분에 대한 부호의 설명 *Explanation of symbols on the main parts of the drawings

400 : 시스템 코어 410 : PRS400: system core 410: PRS

411 : ETID 및 ETGS 412 : RTQ411: ETID and ETGS 412: RTQ

413 : STQ 420 : IHS413: STQ 420: IHS

430 : GSS 440 : 기타 시스템 서비스430: GSS 440: Other System Services

450 : TCB List 500 : Task450: TCB List 500: Task

510 : GSM Task 520 : IS Task510: GSM Task 520: IS Task

530 : Idle Task 540 : App Task530: Idle Task 540: App Task

550 : MQ 600 : GS List550: MQ 600: GS List

이하, 첨부한 도면을 참조로 하여 본 발명을 상세히 설명한다.Hereinafter, the present invention will be described in detail with reference to the accompanying drawings.

도 3 에는 본 발명의 일실시예에 의한 데이터 처리 순서에 의한 실시간 다중처리 시스템의 구성도가 도시된다.3 is a block diagram of a real-time multiprocessing system based on a data processing sequence according to an embodiment of the present invention.

도시된 바와 같이 본 발명의 일실시예에 의한 실시간 다중 처리 시스템은 크게 실제 데이터 처리하는 프로그램인 Task들을 관리하고 Task의 시스템 요구에 대응하는 시스템 코어(400)와 실제 데이터를 처리하는 Task(500)와, GS(Global Sequence) List(600)로 구성된다.As shown, the real-time multi-processing system according to an embodiment of the present invention manages tasks that are large programs for processing actual data, and processes a system core 400 corresponding to system requirements of the task and a task 500 for processing actual data. And a GS (Global Sequence) List 600.

상기 시스템 코어(400)는 실행할 Task를 선택하여 실행시키는 PRS(410)와, 외부 환경의 인터럽트를 처리하기 위한 IHS(Interrupt Handing Sevice)(420)와, 특정 Task의 GS값을 바꾸고 재배치하는 GSS(Global Sequence Service)(430)와, 기타 시스템 서비스(440)와, Task에 관한 정보를 보관하고 있는 TCB List(450)로 이루어진다.The system core 400 includes a PRS 410 for selecting and executing a task to be executed, an Interrupt Handing Sevice (IHS) 420 for handling interrupts of an external environment, and a GSS (for changing and rearranging GS values of a specific task). Global Sequence Service (430), other system services (440), and TCB List (450) that stores information about the task.

상기 PRS(410)는 실행중인 Task의 TID 및 GS를 저장하는 ETID/ETGS(Executing Task Global Sequence) (411)와, 여러 Task의 TID와 GS 를 저장하는 RTQ(Ready Task Queue)(412)와, STQ(Suspended Task Queue)(413)로 이루어진다.The PRS 410 includes an ETID / ETG (Executing Task Global Sequence) 411 for storing TIDs and GSs of a running task, an RTQ (Ready Task Queue) 412 for storing TIDs and GSs of various tasks; It is composed of a suspended task queue (STQ) 413.

상기 Task부(500)는 GS를 부여하고 변경하는 GSM Task(Global Sequence Manager Task)(510)와, 지정된 Task로 메시지를 보내는 IS Task(Interrupt Service Task)(520)와, 아무 일도 하지 않는 상태의 Idle Task(530)와, 실제적으로 데이터 처리를 담당하는 App Task(540)와, Task로 전달되었으나 아직 처리되지 않은 메시지를 저장하는 MQ(550)로 이루어진다.The task unit 500 is a GSM Task (Global Sequence Manager Task) (510) to grant and change the GS, the IS Task (Interrupt Service Task) 520 to send a message to the specified Task, and do nothing It consists of an Idle Task 530, an App Task 540 that actually handles data, and an MQ 550 that stores messages that have been delivered to the Task but have not yet been processed.

상기 시스템 코어(400)는 태스크간의 이행 및 메시지 전달, 태스크의 생성과 소멸, 그리고 인터럽트의 초기 처리 등을 해주는 프로그램 또는 서비스 및 이에 필요한 자료구조의 집합체이다.The system core 400 is a collection of programs or services and data structures necessary for performing transitions between tasks and message transmission, creation and destruction of tasks, and initial processing of interrupts.

상기 PRS(410)는 Task 실행 순서를 재배열하여 다음에 처리할 Task를 실행시키는 서비스이다.The PRS 410 is a service that executes a task to be processed next by rearranging a task execution order.

상기 ETID/ETGS(411)는 현재 실행중인 Task의 TID 및 GS 를 저장해 두는 기억장소이다. TID 는 Task를 구분하기 위해 Task마다 유일하게 할당되는 수이다.The ETID / ETGS 411 is a storage location for storing the TID and GS of the currently running task. TID is a unique number assigned to each task to identify the tasks.

상기 RTQ(412)는 여러 Task의 TID와 GS 를 저장해 두는 Queue이다. 이 Queue에는 아무런 메시지도 대기하고 있지 않으며 따라서 당장이라도 실행시킬 수 있는 Task들만 저장되면 그 순서는 GS의 값에 따라 결정된다. GS는 GSM Task에서 각 Task에 대해 부여해 주며, 특정한 GSmin에서 GSmax사이의 값을 갖게 된다. GSwnd는 (GSmax_GSmin)/2의 값이며 GS간의 크기 비교는 │GS_a-GS_b│〈GSwnd일 때는 GS가 작을 때 더 우선 순위 높다고 하고, │GS_a-GS_b│〉GSwnd이면 GS가 클 때 우선 순위가 높다고 한다. RTQ(412)는 GS는 우선 순위가 높은 항목부터 낮은 항목으로 정렬되어 있다. GS는 데이터 처리순서를 암시한다. 특수 목적의 Task인 IS Task(520), GSM Task(510)와 Idle Task(530)는 따로 GS가 부여되어 있지 않고 IS Task(520)가 최우선순위, GSM Task(510)가 다음 우선 순위를 갖고 항상 GS를 가지고 있는 Task보다 우선 순위가 높은 것으로 간주한다. Idle Task(530)는 항상 일반 Task보다 우선 순위가 낮다고 본다.The RTQ 412 is a queue that stores TIDs and GSs of various tasks. There are no messages waiting in this queue, so if only tasks that can be executed immediately are stored, the order is determined by the value of GS. GS is assigned to each task in the GSM task and has a value between a specific GSmin and GSmax. GSwnd is a value of (GSmax_GSmin) / 2, and the size comparison between GS is said to be higher priority when GS is small when │GS_a-GS_b│ <GSwnd. do. In the RTQ 412, GS is sorted from high priority items to low items. GS implies a data processing sequence. Special task Tasks IS Task 520, GSM Task 510 and Idle Task 530 are not given GS separately, IS Task 520 has highest priority and GSM Task 510 has next priority It is always assumed to have a higher priority than a Task that has GS. The Idle Task 530 always sees a lower priority than the General Task.

상기 IHS(420)는 외부 환경으로부터의 인터럽트를 처리해주는 서비스이다.The IHS 420 is a service that handles interrupts from an external environment.

상기 GSS(430)는 GSM Task(510)의 요청을 받아 RTQ(412)내의 특정 Task의 GS값을 바꾸고 이에 따라 RTQ(412)를 재배치하는 서비스이다.The GSS 430 is a service for changing the GS value of a specific task in the RTQ 412 in response to a request from the GSM Task 510 and relocating the RTQ 412 accordingly.

기타 시스템 서비스(440)는 종래 시스템과 마찬가지로 메시지 전달, Task생성 등 여러 시스템 서비스가 있을 수 있다.Other system service 440 may have a number of system services, such as message delivery, task generation, like the conventional system.

상기 TCB List(450)는 모든 Task에 대한 정보를 보관하는 database로 도 4에 도시된 바와 같이 TID 및 프로세서 레지스터 등의 값을 저장하는 영역인 PS등 여러 정보들이 보관되어 있다.The TCB List 450 is a database that stores information about all tasks. As shown in FIG. 4, the TCB List 450 stores various information such as PS, which is an area for storing values such as a TID and a processor register.

상기 Task(500)는 시스템 코어(400)에 의해 관리되는 프로그램 및 자료구조 단위이다.The task 500 is a program and data structure unit managed by the system core 400.

상기 GSM Task(510)는 App Task(540)의 메시지를 받아 해당 App Task(540)의 GS를 부여하고 변경해주는 Task이다.The GSM task 510 is a task that receives the message of the App Task 540 and grants and changes the GS of the App Task 540.

상기 GSM Task(510)가 관리하는 GS List(600)는 GS, 처리기한, TID 정보를 가진 항목들로 구성된 환형 Linked List이다.The GS List 600 managed by the GSM Task 510 is an annular Linked List composed of items having GS, processing time, and TID information.

상기 IS Task(520)는 IHS(420)의 요구에 의해 실행되며 인터럽트 신호에 따라 미리 지정된 Task로 메시지를 보내는 역할을 한다. 가장 우선 순위가 높도록 가상적으로 GS값이 부여된 것으로 간주한다.The IS task 520 is executed at the request of the IHS 420 and sends a message to a predetermined task according to the interrupt signal. It is assumed that the GS value is virtually assigned to have the highest priority.

상기 Idle Task(530)는 아무 일도 하지 않는 Task이며 가장 낮은 우선 순위의 GS값이 부여된 것으로 간주한다.The Idle Task 530 is a task that does nothing and assumes that the GS value of the lowest priority is given.

상기 App Task(540)는 실제로 데이터 처리를 담당하는 Task이다.The App Task 540 is actually a task in charge of data processing.

상기 MQ(550)는 Idle Task(530) 및 IS Task(520)를 제외한 모든 Task가 하나씩 가지고 있으며, 해당 Task로 전달되었으나 아직 처리되지 않은 메시지를 저장해두고 있는 FIFO Queue이다.The MQ 550 has one task except for the Idle Task 530 and the IS Task 520, and is a FIFO queue that stores messages that have been delivered to the Task but have not yet been processed.

상기와 같이 구성된 본 발명의 일실시예에 의한 데이터 처리 순서에 의한 실시간 다중처리 시스템은 다음과 같이 동작한다.The real-time multiprocessing system according to the data processing sequence according to the embodiment of the present invention configured as described above operates as follows.

PRS(410)는 다른 시스템 코어 서비스 또는 Task의 요청에 의해 시작되며 모든 시스템 코어의 서비스들과 마찬가지로 작업이 끝날 때까지 재진입이 되지 않는다. PRS(410)는 시스템 코어 호출 이전의 프로세서의 상태(즉, 모든 레지스터의 값 등)를 ETID가 가리키는 TCB의 PS영역에 기록한다.The PRS 410 is started at the request of another system core service or task and, like the services of all system cores, does not reenter until the end of the task. The PRS 410 records the state of the processor (ie, values of all registers, etc.) before the system core call in the PS area of the TCB indicated by the ETID.

다음에는 RTQ(412)의 가장 앞 노드의 GS와 ETGS의 값을 비교하여 ETGS의 우선순위가 낮다면 ETID 및 ETGS(411)에 저장한다. 그리고, RTQ(412)의 맨 앞 노드는 삭제한다. 만일, 처음 ETGS의 값이 크다면 앞에서 언급한 작업은 행하지 않는다. 다음으로 할 일은 ETID가 지정하는 TCB의 PS영역에 저장된 값을 프로세서 상태로 복원하는 일이다. 이 작업으로 인하여 프로세서는 ETID가 지정하는 Task를 재개할 것이다.Next, GS and ETGS of the foremost node of the RTQ 412 are compared and stored in the ETID and ETGS 411 if the priority of the ETGS is low. Then, the front node of the RTQ 412 is deleted. If the value of the first ETGS is large, the aforementioned operation is not performed. The next task is to restore the values stored in the PS area of the TCB specified by the ETID to the processor state. This action causes the processor to resume the task specified by the ETID.

다른 시스템 서비스 중 메시지의 전달 관련된 시스템 서비스에 의해 RTQ(412)와 STQ(413)의 항목이 서로 바뀔 수 있는데 이 때 Queue에 추가되는 항목은 항상 GS 우선 순위에 의해 정렬될 수 있도록 적합한 위치를 찾아서 삽입되어야 한다.Forwarding of messages among other system services The items of RTQ 412 and STQ 413 can be interchanged by related system services. At this point, the items added to the queue are always found to be sorted by GS priority. It must be inserted.

IHS(420)는 외부로부터의 인터럽트 발생에 의하여 시작된다. IHS(420)는 IS Task(520)의 TCB의 인터럽트 처리 관련 정보를 변경한 후 만약 IS Task(520)가 STQ(413)의 첫째 노드에 있으면 이 노드를 RTQ(412)의 첫째 노드에 옮긴다. IS Task(520)는 우선순위가 가장 높은 것으로 간주하므로 RTQ(412) 또는 STQ(413)의 첫째 항목에 위치한다.IHS 420 is started by the occurrence of an interrupt from the outside. The IHS 420 changes the interrupt handling information of the TCB of the IS Task 520 and moves the node to the first node of the RTQ 412 if the IS Task 520 is in the first node of the STQ 413. Since the IS Task 520 is considered to have the highest priority, it is located in the first item of the RTQ 412 or the STQ 413.

GSS(430)는 GSM Task(510)로부터의 GS 변경 서비스 요청에 의해 시작된다. GSS(430)는 RTQ(412)에서 주어진 TID를 검색하여 해당 노드를 찾으면 GS의 값을 주어진 GS값으로 변경하고서 해당 노드를 RTQ(412)상에서 재배열한다. STQ(413)를 검색할 필요가 없는 이유는 해당 Task가 GSM Task(510)에 GS 부여 요청 메시지를 보내면 GSM Task(510)의 우선 순위가 높음으로 인하여 GSM Task(510)가 모든 작업을 끝내고 대기상태에 들어가기 전까지는 해당 Task는 RTQ(412)에 삽입되어 있을 것이기 때문이다.GSS 430 is initiated by a GS change service request from GSM Task 510. The GSS 430 searches the given TID in the RTQ 412 and finds the corresponding node. The GSS 430 rearranges the node on the RTQ 412 by changing the value of GS to the given GS value. The reason for not having to search for the STQ 413 is that when the task sends a GS grant request message to the GSM Task 510, the GSM Task 510 finishes all tasks and waits because the GSM Task 510 has a high priority. This is because the task will be inserted into the RTQ 412 until the state is entered.

다음으로 GSS는 PRS를 시작한다.The GSS then starts the PRS.

일반적인 Task의 형태가 그렇든 GSM Task(510)도 메시지를 대기하고(메시지가 수신되면)그 메시지를 처리하고 다시 메시지를 대기하는 루프 형태로 구현된다. GSM Task(510)가 대기하는 메시지에는 GS 부여 요청 메시지와 GS 포기 요청 메시지이다. GS 부여 요청 메시지에는 처리기한에 대한 절대시간 정보를 내용으로 담고 있다. GSM Task(510)는 GS 부여 요청 메시지가 수신되면 처리기한 순으로 정렬된 환형 List인 GS List(600)를 검색하면서 주어진 처리기한이 삽입될 위치를 찾는다. 위치를 발견하면, 앞 항목과 뒤 항목의 GS 값을 가지고 새로 부여할 GS값을 계산한다.Regardless of the general task form, the GSM task 510 is also implemented in a loop that waits for a message (when a message is received), processes the message, and waits for the message again. The messages waiting for the GSM task 510 are GS grant request message and GS abandoned request message. The GS grant request message contains the absolute time information of the processing deadline. When the GSM task 510 receives the GS grant request message, the GSM task 510 searches the GS List 600, which is an annular list sorted by the due date, to find a position where the given due date is inserted. When the location is found, the GS value of the previous item and the next item is used to calculate a new GS value.

먼저 앞 항목과 뒤 항목 GS의 값의 차를 계산하는데 그 값(이하 GSdif라 칭함)이 GSwnd보다 크면 GSwnd*2-GSdif를 차로 간주한다(GSdif에 치환). GSdif의 값이 특정한 GSstep의 값보다 더 크면 새로 부여할 GS값은 앞 항목의 GS 값에서 GSstep을 더한 값(혹은 이 값이 GSmax보다 크면 이 값에서 GSwnd*2를 뺀 값)으로 한다. 만약 GSdif의 값이 특정한 GSstep의 값보다 작으면 새로 부여할 GS 값은 앞 항목의 GS 값에서 GSdif/2를 더한 값(혹은 이 값이 GSmax 보다 크면, 이 값에서 GSwnd*2를 뺀 값)으로 한다. 만약 앞 항목이 없으면 (없다는 것은 환형 List상 앞 항목이 있더라도 그 항목의 처리기한이 새로 추가할 주어진 처리기한보다 늦는 경우도 포함한다) 새로 부여할 GS의 값은 뒤 항목의 GS값에서 GSstep값을 더한 값(혹은 이 값이 GSmin 보다 작으면 이 값에서 GSwnd*2를 더한 값)으로 한다. 만약 뒤 항목이 없으면(없다는 것은 환형 List상 뒤 항목이 있더라도 그 항목의 처리기한이 새로 추가할 주어진 처리기한보다 빠른 경우도 포함한다) 새로 부여할 GS의 값은 뒤 항목의 GS 값에서 GSstep 값을 더한 값(혹은 이 값이 GSmax 보다 크면 이 값에서 GSwnd*2를 뺀 값)으로 한다. 만약 앞 항목과 뒤 항목이 모두 없다면 새로 부여할 GS는 GSmin과 GSmax 사이의 임의의 값으로 한다. GSwnd 및 GSwtep의 값은 시스템의 Task의 수 및 데이터 처리 시간의 다양성에 따라 적당하게 설계한다.First, the difference between the value of the preceding item and the next item GS is calculated. If the value (hereinafter referred to as GSdif) is greater than GSwnd, GSwnd * 2-GSdif is regarded as a difference (replacement with GSdif). If the value of GSdif is greater than the value of a specific GSstep, the new GS value is equal to the GS value of the previous item plus GSstep (or, if this value is greater than GSmax, this value minus GSwnd * 2). If the value of GSdif is smaller than the value of a particular GSstep, the new GS value is the GS value of the previous item plus GSdif / 2 (or, if this value is greater than GSmax, this value minus GSwnd * 2). do. If there is no preceding item (none includes the case where the item's deadline is later than the given new deadline, even if there is a preceding item in the annular List), the GS value to be added is the GSstep value from the GS value of the latter item. The sum is obtained (or if GSmin is less than GSmin, GSwnd * 2 is added to this value). If there is no trailing item (there is no trailing item in the annular List, even if the deadline is earlier than the given deadline to add), then the GS value to be assigned is the GSstep value of the trailing GS value. The sum is obtained (or this value is less than GSmax minus GSwnd * 2). If there is no front item and no back item, the newly assigned GS is an arbitrary value between GSmin and GSmax. The values of GSwnd and GSwtep are appropriately designed according to the number of tasks and data processing time of the system.

부여할 GS 값이 정해지면 GSM Task(510)는 GSS 서비스 요청을 하여 RTQ(412)상의 해당 Task의 GS를 변경하게 한 후 새로 부여한 GS와 처리기한, TID 정보를 저장한 항목을 앞에서 찾은 GS List(600)의 삽입위치에 삽입한다. 그리고 GS List의 다른 항목을 검색하면서 TID가 일치하는 항목을 찾아 만약 그런 항목이 있으면 이 항목을 GS List(600)에서 삭제한다.When the GS value to be assigned is determined, the GSM Task 510 makes a GSS service request to change the GS of the corresponding Task on the RTQ 412, and then saves the newly assigned GS, the deadline, and the TID information. Insert it at the insertion position of (600). It searches for other items in the GS List, finds an item with a matching TID, and if there is such an item, deletes it from the GS List (600).

다시 GSM Task(510)는 메시지 대기 상태로부터 반복한다.Again the GSM Task 510 repeats from the message waiting state.

GSM Task(510)가 GS포기 요청 메시지를 수신하였을 때는 GSM Task(510)는 해당 TID를 GS List(600)에서 검색한다.When the GSM Task 510 receives the GS Abandon Request message, the GSM Task 510 retrieves the corresponding TID from the GS List 600.

해당 노드를 찾으면 GS List(600)에서 그 노드를 삭제한 후 GS 값을 부여하지 않은 채로 GS 변경 서비스 요청을 한다. GSS(430)는 이때는 해당 TID를 RTQ(412)에서 찾아서 GS값을 삭제하고 RTQ(412)의 가장 끝에 있는 Idle Task(530)의 바로 앞에 이동시킨 후 메시지 대기로부터 반복한다.When the node is found, the GS list 600 deletes the node and makes a GS change service request without assigning a GS value. In this case, the GSS 430 finds the corresponding TID in the RTQ 412, deletes the GS value, and moves the message immediately before the Idle Task 530 at the end of the RTQ 412.

따라서 GS가 부여되지 않은 Task들은 처리 순서가 가장 늦을 것이다. 여기에서는 언급하고 있지 않지만 시스템 서비스 중 새로운 Task를 생성하고 삭제할 때는 자동으로 GSM Task(510)에 처리기한에 GS 부여 요청 메시지를 보내는 작업을 하도록 한다. 또한 메시지 전달 서비스에서도 메시지의 처리기한에 따라서 메시지 수신측의 GS를 변경할 수도 있다.Therefore, tasks that do not have GS assigned will be in the slowest order of processing. Although not mentioned here, when creating and deleting a new task among the system services, a task of automatically sending a GS grant request message to the GSM task 510 is processed. Also, in the message delivery service, the GS of the message receiver may be changed according to the processing deadline of the message.

IS Task(520)는 대기하고자 하는 메시지를 지정하지 않은 상태에서 메시지 대기 시스템 요청을 한 후 IS Task(520)가 재개되면 처리할 인터럽트의 유형을 확인한 후 처리할 인터럽트 유형에 따라 미리 지정된 Task로 인터럽트가 있음을 알리는 메시지를 작성하여 메시지 전달 서비스 요청을 한다.The IS task 520 makes a message waiting system request without specifying the message to wait, and when the IS task 520 resumes, checks the types of interrupts to be processed and interrupts them with a predetermined task according to the interrupt type to be processed. Write a message to let you know that there is a message delivery service request.

다시 IS Task가 재개되면 IS Task(520)는 처리할 인터럽트가 남아 있는지 확인하여 남아 있다면 인터럽트 유형 확인으로부터 다시 반복하고 남아있지 않다면 메시지 대기 시스템 요청부터 반복한다.When the IS task is resumed, the IS task 520 checks whether there is an interrupt to be processed, and if so, repeats from the interrupt type check, and if not, repeats the message waiting system request.

Idle Task(530)는 프로세서 증지 명령과 다시 프로세서 증지 명령을 반복하는 무한 루프로 구성된다.Idle Task 530 is composed of an endless loop for repeating the processor resume instruction and the processor resume instruction.

Idle Task(530)는 가장 낮은 GS를 가지고 있으므로 다른 모든 테스트가 대기 상태에 있는 경우에만 재개될 것이다.The Idle Task 530 has the lowest GS and will only resume when all other tests are in standby.

App Task(540)는 실제 데이터를 처리하는 Task로서 지금까지 설명한 가변 우선 순위 의한 실시간 다중 처리 시스템의 혜택을 보는 당사자들이다. App Task(540)가 처리해야 할 Data에 따라 우선 순위를 달리하여 처리하기 위해서는 App Task(540)의 각 상대별로 처리하는 데이터 및 그 처리기한에 대한 정보를 가지고서 App Task(540)를 설계하여야 한다.App Task 540 is a task that processes the actual data are the parties that benefit from the real-time multi-processing system with variable priority described so far. In order to process the priority according to the data to be processed by the App Task 540, App Task 540 should be designed with information on the data processed by each opponent of the App Task 540 and the processing time. .

App Task(540)에서 특정 Data 처리에 대한 처리 기한이 요구되면 App Task(540)는 GSM Task(510)를 향하여 GS 부여 요청 메시지를 전달한다. 처리기한은 현재 시간으로부터 해당 데이터의 처리 기간을 더한 최종 처리 완료시간이다. 만약 하나의 태스크가 데이터를 처리하는데 여러 단계를 거쳐야 하고 많은 시간이 걸린다면 각 단계별로 GS 부여 요청을 매번 해주면 실시간 처리의 효율이 더 높아진다.If a task deadline for a specific data processing is required in the App Task 540, the App Task 540 transmits a GS grant request message to the GSM Task 510. The processing period is the final processing completion time plus the processing period of the data from the current time. If a task requires multiple steps to process data and it takes a lot of time, each request for GS grant in each step increases the efficiency of real-time processing.

이 시스템을 응용하여 종전의 우선 순위 Queue에 의한 우선 순위 결정 방식과 융합하면 GS에 국한되지 않는 특수목적의 Task를 여럿 추가하는 것도 가능하다.If this system is applied and merged with the prioritization method by priority queue, it is possible to add several special-purpose tasks not limited to GS.

이러한 시스템은 복잡하면서도 저비용을 추구하는 실시간 시스템이라면 어디나 응용 가능하며 이를테면 이동 전화기, 휴대용 게임기, 가정용 PC등에 모두 적용될 수 있다.Such a system can be applied to any complex and low-cost real-time system, such as a mobile phone, a handheld game console, or a home PC.

이상에서 설명한 본 발명은 전술한 실시예 및 첨부된 도면에 의해 한정된 것이 아니고, 본 발명의 기술적 사상을 벗어나지 않는 범위내에서 여러 가지 치환, 변환 및 변경이 가능한 것이 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 명백할 것이다.The present invention described above is not limited to the above-described embodiments and the accompanying drawings, and various substitutions, conversions, and modifications are possible within the scope without departing from the technical spirit of the present invention. It will be apparent to those who have knowledge.

상술한 바와 같이, 본 발명에 의한 데이터 처리 순서에 의한 실시간 다중처리 시스템을 적용하면 실시간 시스템을 현실 세계의 데이터 처리 기한에 대한 요구를 그대로 Task의 설계에 반영하여 종전 시스템보다 효율적인 프로세서 자원 분배를 가능하게 할 수 있다.As described above, if the real-time multi-processing system according to the data processing sequence according to the present invention is applied, it is possible to distribute the processor resources more efficiently than the conventional system by reflecting the demand for the real-time data processing deadline in the design of the task. It can be done.

Claims (4)

데이터 처리 순서에 의한 실시간 다중처리 시스템에 있어서,In a real-time multiprocessing system based on a data processing sequence, Task에 처리기한에 따른 우선 순위(GS: Global Sequence)를 부여하여 Task간의 이행 및 메시지 전달, Task의 생성과 소멸, 인터럽트의 초기 처리를 위한 시스템 코어와;A system core for assigning a priority (GS: Global Sequence) according to a processing time to a task, for transitioning between tasks, delivering a message, creating and destroying a task, and initial processing of an interrupt; 상기 시스템 코어의 요청에 의해 각 Task에 부여된 GS에 의해 Task를 수행하여 데이터를 처리하는 Task부와;A Task unit for processing data by performing a task by a GS granted to each task by a request of the system core; 각 Task의 TID(Task ID), 처리기한, GS정보를 구비하여 상기 Task부에 제공하는 GS List를 포함하여 구성된 것을 특징으로 하는 처리기한에 따른 데이터 처리 순서에 의한 실시간 다중처리 시스템.Real-time multi-processing system according to the data processing sequence according to the processing period, characterized in that it comprises a TID (Task ID) of each task, the processing period, GS information provided to the Task unit. 제 1 항에 있어서, 상기 시스템 코어는,The method of claim 1, wherein the system core, Task의 TID 및 그 Task에 주어진 GS에 따라 Task의 실행 순서를 재배열하여 다음에 처리할 Task를 실행시키는 PRS와;A PRS for rearranging the execution order of tasks according to the TID of the task and the GS given to the task to execute the next task; 외부환경으로부터의 인터럽트를 처리해주는 IHS와;An IHS for handling interrupts from an external environment; Task의 GS값을 부여하는 GSS를 포함하여 구성된 것을 특징으로 하는 처리기한에 따른 데이터 처리 순서에 의한 실시간 다중처리 시스템.Real-time multi-processing system according to the data processing sequence according to the processing time period characterized in that it comprises a GSS that gives the GS value of the task. 제 2 항에 있어서, 상기 PRS는The method of claim 2, wherein the PRS is 현재 실행중인 Task의 TID 및 GS를 저장하는 ETID/ETGS와;ETID / ETGS for storing the TID and GS of the currently running task; 바로 실행될 수 있는 여러 Task의 TID 와 GS를 저장하는 RTQ와;RTQs that store TIDs and GSs of several tasks that can be executed immediately; 특정 메시지를 대기하고 있는 여러 Task의 TID와 GS를 저장하는 STQ을 포함하여 구성된 것을 특징으로 하는 처리기한에 따른 데이터 처리 순서에 의한 실시간 다중처리 시스템.Real-time multi-processing system based on the data processing sequence according to the processing time period characterized in that it comprises a STQ storing the TID and GS of the various tasks waiting for a specific message. 제 1 항에 있어서, 상기 Task부는,The method of claim 1, wherein the Task unit, 각 Task의 GS를 관리하는 GSM Task와;A GSM task managing the GS of each task; 상기 시스템 코어로부터 인터럽트 신호에 따라 미리 지정된 Task로 메시지를 보내는 IS Task와;An IS task for sending a message to a predetermined task according to an interrupt signal from the system core; 실제로 데이터 처리를 담당하는 App Task와;An App Task that actually handles data; 해당 Task로 전달되었으나 미처리된 메시지를 저장하는 MQ(Manage Queue)를 포함하여 구성된 것을 특징으로 하는 처리기한에 따른 데이터 처리 순서에 의한 실시간 다중처리 시스템.Real-time multi-processing system based on the data processing sequence according to the processing time period, characterized in that it comprises a MQ (Manage Queue) to store the unprocessed message delivered to the task.
KR1019980062916A 1998-12-31 1998-12-31 Real-time processing system based on data processing sequence according to processing time and its processing method KR100321408B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019980062916A KR100321408B1 (en) 1998-12-31 1998-12-31 Real-time processing system based on data processing sequence according to processing time and its processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019980062916A KR100321408B1 (en) 1998-12-31 1998-12-31 Real-time processing system based on data processing sequence according to processing time and its processing method

Publications (2)

Publication Number Publication Date
KR20000046239A true KR20000046239A (en) 2000-07-25
KR100321408B1 KR100321408B1 (en) 2002-06-24

Family

ID=19569531

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019980062916A KR100321408B1 (en) 1998-12-31 1998-12-31 Real-time processing system based on data processing sequence according to processing time and its processing method

Country Status (1)

Country Link
KR (1) KR100321408B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130049110A (en) 2011-11-03 2013-05-13 삼성전자주식회사 Method and apparatus for allocating interrupt

Also Published As

Publication number Publication date
KR100321408B1 (en) 2002-06-24

Similar Documents

Publication Publication Date Title
AU695271B2 (en) A system for managing internal execution threads
US5339415A (en) Dual level scheduling of processes to multiple parallel regions of a multi-threaded program on a tightly coupled multiprocessor computer system
US7721286B2 (en) Preemptive multi-tasking with cooperative groups of tasks
US5944778A (en) Periodic process scheduling method
US7805727B2 (en) Execution control for processor tasks
JP2561801B2 (en) Method and system for managing process scheduling
US20040158831A1 (en) Process scheduling appratus, process scheduling method, program for process scheduling, and storage medium recording a program for process scheduling
US6304891B1 (en) Execution control for processor tasks
CN110795254A (en) Method for processing high-concurrency IO based on PHP
CN107391279B (en) Message queue container creation method and device and message queue container
EP0862113A2 (en) Autonomous agent architecture
US7007004B2 (en) Concurrent operation of a state machine family
JP2904483B2 (en) Scheduling a periodic process
KR20000046239A (en) Realtime multiprocessing system in data processing order according to time limit of processing
EP0544822B1 (en) Dual level scheduling of processes
EP1011045B1 (en) Object-oriented job scheduler
CN112162840A (en) Coroutine processing and managing method based on interrupt reentrant mechanism
CN114035926A (en) Application thread scheduling method and device, storage medium and electronic equipment
Son et al. Deadline allocation in a time-constrained workflow
JP2000502202A (en) Instruction Processor Job Scheduling
US9201688B2 (en) Configuration of asynchronous message processing in dataflow networks
JP2693916B2 (en) Task scheduling method
JP5003673B2 (en) Multiprocessing method and multiprocessor system
JPH09160790A (en) Device and method for task schedule
CN113726871B (en) Scheduling method and system for automatic code release

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: 20080102

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee