KR100411113B1 - Method For Processoring of Multi Thread - Google Patents
Method For Processoring of Multi Thread Download PDFInfo
- Publication number
- KR100411113B1 KR100411113B1 KR10-2001-0053492A KR20010053492A KR100411113B1 KR 100411113 B1 KR100411113 B1 KR 100411113B1 KR 20010053492 A KR20010053492 A KR 20010053492A KR 100411113 B1 KR100411113 B1 KR 100411113B1
- Authority
- KR
- South Korea
- Prior art keywords
- thread
- processing
- routine
- event
- object file
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
Abstract
본 발명은 하나의 인터럽트 신호에 다수개의 서비스 루틴이 배정되어 다중 프로세싱이 수행되도록 하는 멀티 스레드 처리방법에 관한 것이다.The present invention relates to a multi-thread processing method in which a plurality of service routines are assigned to one interrupt signal so that multiple processing is performed.
본 발명은 특정 루틴 처리를 위한 프로세스가 생성되면 해당 프로세스는 초기 수행 스레드를 생성함과 동시 스레드 내에 각 동기화 이벤트 목적 파일을 생성시켜 등록하는 과정과, 이벤트 목적 파일이 포함되는 이벤트 대기용 스레드를 생성한 다음 동기화 이벤트 목적 파일과 이벤트 목적 파일을 인터럽트 연결하는 과정과, 해당 루틴 처리를 위한 스케줄용 스레드를 생성한 다음 하드웨어로부터 임의의 루틴 처리를 위한 인터럽트 신호의 입력을 대기하는 과정과, 인터럽트 신호의 입력이 검출되면 각 이벤트의 해당 목적 파일을 시그널 상태로 천이시켜 스케줄용 스레드의 루틴 처리를 실행시키는 과정 및, 루틴 처리된 스레드는 비 신호의 상태로 동기화 이벤트를 설정하는 과정을 포함하는 것을 특징으로 한다.According to the present invention, when a process for processing a specific routine is generated, the process creates an initial execution thread, creates and registers each synchronization event object file in a concurrent thread, and creates a thread for event waiting including an event object file. Interrupt linking the synchronization event destination file with the event destination file, creating a schedule thread for processing the routine, and then waiting for input of an interrupt signal for processing of any routine from the hardware. Transitioning the corresponding object file of each event to a signal state when the input is detected, executing routine processing of the schedule thread, and setting the synchronization event to a non-signal state of the routine thread; do.
따라서, 다른 프로세스 및 스레드의 루틴 처리에 방해를 주지 않으므로 프로세스를 효율적으로 사용함과 동시에 스레드 개수 만큼의 하드웨어 인터럽트 신호를 모두 생성할 필요가 없는 효율성을 제공한다.Therefore, it does not interfere with the routine processing of other processes and threads, thus providing efficient use of the process and eliminating the need to generate as many hardware interrupt signals as the number of threads.
Description
본 발명은 하나의 인터럽트 신호에 다수개의 서비스 루틴이 배정되어 다중 프로세싱이 수행되도록 하는 멀티 스레드 처리방법에 관한 것이다.The present invention relates to a multi-thread processing method in which a plurality of service routines are assigned to one interrupt signal so that multiple processing is performed.
일반적으로 하나의 하드웨어 시스템내에서는 하나 이상의 프로세스가 생성되며, 또 각 프로세스는 하나 이상의 스레드를 생성 및 실행시켜 처리 대상 작업을 일련의 순차 방법으로써 수행한다.In general, one or more processes are created within a hardware system, and each process creates and executes one or more threads to perform a task to be processed in a series of sequential methods.
이와 같은 종래 시스템의 하드웨어는 인터럽트 신호에 대하여 하나의 서비스 루틴만이 배정되며, 이에 대응하는 하나의 프로세스 및 스레드 생성을 통해 해당하는 작업이 수행되도록 하고 있기 때문에 다수의 서비스 루틴을 수행하여야 하는 경우 여러개의 프로세스를 생성시켜야 하고, 동일 개수의 하드웨어 신호를 필요로 하므로 프로세서를 효율적으로 사용하지 못하는 문제점이 발생되며, 반복적인 인터럽트의 발생으로 인하여 시스템의 효율성이 저하되는 문제점이 있다.In the hardware of the conventional system, only one service routine is assigned to the interrupt signal, and corresponding processes are performed by creating one process and thread corresponding thereto. It is necessary to generate a process, and the same number of hardware signals are required, which causes a problem in that the processor cannot be efficiently used, and the efficiency of the system is degraded due to the occurrence of repetitive interrupts.
본 발명은 상기와 같은 문제점을 해결하기 위하여 발명한 것으로, 그 목적은 프로세서에 하나의 인터럽트 신호가 인가되면 그 신호에 대하여 각 스레드를 동작시키기 위한 해당 스레드와 동기화 목적 파일을 미리 생성 등록시켜 하나의 인터럽트 신호로 다중 프로세싱이 수행되도록 한 것이다.The present invention has been invented to solve the above problems, and its object is to generate and register a synchronization object file and a corresponding thread for operating each thread in advance when one interrupt signal is applied to the processor. The interrupt signal allows multiple processing to be performed.
도 1은 본 발명에 따른 멀티 스레드 처리방법을 보이는 상태 천이도.1 is a state transition diagram showing a multi-thread processing method according to the present invention.
도 2는 본 발명에 따른 멀티 스레드 처리방법의 수행 예를 보이는 흐름도.2 is a flowchart showing an example of performing a multi-thread processing method according to the present invention.
상기와 같은 목적을 실현하기 위한 본 발명은 특정 루틴 처리를 위한 프로세스가 생성되면 해당 프로세스는 초기 수행 스레드를 생성함과 동시 스레드 내에 각 동기화 이벤트 목적 파일을 생성시켜 등록하는 과정과;The present invention for realizing the above object is a process for creating a process for processing a specific routine, the process is to create an initial execution thread and to create and register each synchronization event object file in the same thread;
이벤트 목적 파일이 포함되는 이벤트 대기용 스레드를 생성한 다음 동기화 이벤트 목적 파일과 이벤트 목적 파일을 인터럽트 연결하는 과정과;Generating an event waiting thread including an event object file and then interrupt-connecting the synchronization event object file and the event object file;
해당 루틴 처리를 위한 스케줄용 스레드를 생성한 다음 하드웨어로부터 임의의 루틴 처리를 위한 인터럽트 신호의 입력을 대기하는 과정과;Creating a schedule thread for processing the routine and waiting for input of an interrupt signal for processing of any routine from hardware;
인터럽트 신호의 입력이 검출되면 각 이벤트의 해당 목적 파일을 시그널 상태로 천이시켜 스케줄용 스레드의 루틴 처리를 실행시키는 과정 및;Transitioning a corresponding object file of each event to a signal state when input of an interrupt signal is detected, and executing routine processing of a scheduling thread;
루틴 처리된 스레드는 비 신호의 상태로 동기화 이벤트를 설정하는 과정을 포함하는 것을 특징으로 한다.The routinely processed thread may include setting a synchronization event to a non-signal state.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 일 실시예를 상세하게 설명하면 다음과 같다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.
도 1 및 도 2에서 알 수 있는 바와 같이 본 발명에 따른 멀티 스레드 처리방법은 특정의 루틴을 처리하기 위하여 프로세스가 생성되면(S101) 프로세스는 초기에 수행할 스레드(10)를 생성함과 동시에 스레드(10)내에 해당 이벤트 동기화 목적 파일(11)을 각각 생성하여 등록하고(S102), 해당 각 이벤트 목적 파일(21)이 포함되는 이벤트 대기용 스레드(20)를 생성하여 각 이벤트 목적 파일(21)과 동기화 목적 파일(11)을 인터럽트 연결한다(S103).As can be seen in Figures 1 and 2, in the multi-thread processing method according to the present invention, when a process is created to process a specific routine (S101), the process creates a thread 10 to be performed initially and simultaneously a thread. Generate and register the corresponding event synchronization object file 11 in (10) (S102), and create an event waiting thread 20 that includes the corresponding event object file 21, thereby generating each event object file 21. And interrupt connection 11 to the synchronization object file (S103).
이후, 특정 루틴을 처리하기 위한 스케줄용 스레드(30)를 생성한 다음(S104) 하드웨어(100)로부터의 인터럽트 신호 입력을 대기하며(S105), 하드웨어(100)로부터의 특정 루틴 처리를 요구하는 인터럽트 신호가 스레드(10)에 검출되면 해당 스레드(10)는 인터럽트 신호에 포함되어 있는 다중 프로세싱 요구 신호를 분석한 후 각각의 동기화 목적 파일(11)을 통해 실행조건에 따른 동기화 이벤트를 발생하여 이벤트 대기용 스레드(20)의 각 이벤트 목적 파일(21)에 인터럽트를 걸어준다.Thereafter, a schedule thread 30 for processing a specific routine is generated (S104), and then waits for input of an interrupt signal from the hardware 100 (S105), and an interrupt requesting processing of a specific routine from the hardware 100 is performed. When a signal is detected by the thread 10, the thread 10 analyzes the multi-processing request signal included in the interrupt signal and then generates a synchronization event according to the execution condition through each synchronization object file 11 to wait for an event. The event target file 21 of the thread 20 is interrupted.
이때, 인터럽트를 인가받은 각각의 이벤트 목적 파일(21)은 시그널 상태로 천이하여(S107) 스케줄용 스레드(30)에 동기화 이벤트를 제공하며(S106), 시그널을 인가받은 스케줄용 스레드(30)는 인터럽트 요청된 각각의 해당 루틴을 처리한 후 비 신호(Non-Signal)의 상태로 동기화 이벤트를 설정한다(S108).At this time, each event object file 21 which received the interrupt transitions to a signal state (S107) and provides a synchronization event to the schedule thread 30 (S106), and the schedule thread 30 that receives the signal is After processing the corresponding routine requested for the interrupt, the synchronization event is set to a non-signal state (S108).
상술한 바와 같이 본 발명은 하나의 인터럽트 신호를 통해 다중 프로세싱을 수행할 수 있어 인터럽트 신호를 효율적으로 사용함과 동시에 다른 프로세스 및 스레드의 루틴 처리에 방해를 주지 않으므로 프로세스의 처리 속도를 향상시켜 빠른 응답성을 제공한다.As described above, the present invention can perform multiple processing through one interrupt signal, thereby efficiently using the interrupt signal and not interrupting routine processing of other processes and threads. To provide.
본 발명은 도면에 도시된 일 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 당해 기술 분야에서 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 실시예가 가능하다는 점을 이해할 것이다. 따라서 본 발명의 진정한 보호 범위는 첨부된 특허청구범위에 의해서만 정해져야 할 것이다.Although the present invention has been described with reference to one embodiment shown in the drawings, this is merely exemplary, and it will be understood by those skilled in the art that various modifications and equivalent embodiments are possible. Therefore, the true scope of protection of the present invention should be defined only by the appended claims.
Claims (1)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2001-0053492A KR100411113B1 (en) | 2001-08-31 | 2001-08-31 | Method For Processoring of Multi Thread |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2001-0053492A KR100411113B1 (en) | 2001-08-31 | 2001-08-31 | Method For Processoring of Multi Thread |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20030018891A KR20030018891A (en) | 2003-03-06 |
KR100411113B1 true KR100411113B1 (en) | 2003-12-18 |
Family
ID=27721985
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR10-2001-0053492A KR100411113B1 (en) | 2001-08-31 | 2001-08-31 | Method For Processoring of Multi Thread |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100411113B1 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100763200B1 (en) * | 2006-02-24 | 2007-10-04 | 삼성전자주식회사 | Method and apparatus for interruptible synchronization for thread |
KR100966711B1 (en) * | 2008-07-03 | 2010-06-29 | 강민구 | a bottle cap |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5515538A (en) * | 1992-05-29 | 1996-05-07 | Sun Microsystems, Inc. | Apparatus and method for interrupt handling in a multi-threaded operating system kernel |
JPH1173334A (en) * | 1997-08-29 | 1999-03-16 | Sony Corp | Data processing method, recording medium and data processor |
EP0909094A1 (en) * | 1997-10-07 | 1999-04-14 | CANAL+ Société Anonyme | Multithread data processor |
JPH11282815A (en) * | 1998-03-31 | 1999-10-15 | Nec Corp | Multi-thread computer system and multi-thread execution control method |
US6061710A (en) * | 1997-10-29 | 2000-05-09 | International Business Machines Corporation | Multithreaded processor incorporating a thread latch register for interrupt service new pending threads |
-
2001
- 2001-08-31 KR KR10-2001-0053492A patent/KR100411113B1/en not_active IP Right Cessation
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5515538A (en) * | 1992-05-29 | 1996-05-07 | Sun Microsystems, Inc. | Apparatus and method for interrupt handling in a multi-threaded operating system kernel |
JPH1173334A (en) * | 1997-08-29 | 1999-03-16 | Sony Corp | Data processing method, recording medium and data processor |
EP0909094A1 (en) * | 1997-10-07 | 1999-04-14 | CANAL+ Société Anonyme | Multithread data processor |
US6061710A (en) * | 1997-10-29 | 2000-05-09 | International Business Machines Corporation | Multithreaded processor incorporating a thread latch register for interrupt service new pending threads |
JPH11282815A (en) * | 1998-03-31 | 1999-10-15 | Nec Corp | Multi-thread computer system and multi-thread execution control method |
Also Published As
Publication number | Publication date |
---|---|
KR20030018891A (en) | 2003-03-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7926062B2 (en) | Interrupt and exception handling for multi-streaming digital processors | |
EP1685486B1 (en) | Interrupt handling in an embedded multi-threaded processor to avoid priority inversion and maintain real-time operation | |
WO2009147802A1 (en) | Priority controller and priority control method | |
US7627705B2 (en) | Method and apparatus for handling interrupts in embedded systems | |
US8386684B2 (en) | Data processing system and method of interrupt handling | |
KR100411113B1 (en) | Method For Processoring of Multi Thread | |
US7007004B2 (en) | Concurrent operation of a state machine family | |
CN111158875B (en) | Multi-module-based multi-task processing method, device and system | |
JP2006146758A (en) | Computer system | |
US8095695B2 (en) | Control apparatus for process input-output device | |
US20020116601A1 (en) | Method, a system and a computer program product for manipulating an instruction flow in a pipeline of a processor | |
JP2001337822A (en) | Instruction buffer and buffer queue control | |
US20030023799A1 (en) | Interrupt processing apparatus | |
WO2000070482A1 (en) | Interrupt and exception handling for multi-streaming digital processors | |
WO2019188175A1 (en) | Deadlock avoidance method and deadlock avoidance device | |
CN116645263B (en) | Graphic processing unit | |
US20080288952A1 (en) | Processing apparatus and device control unit | |
KR100229427B1 (en) | Apparatus for generating interrupt signals | |
KR100401613B1 (en) | Method for real-time processing of general purpose operating system | |
JP2006146641A (en) | Multi-thread processor and multi-thread processor interruption method | |
KR101061133B1 (en) | Interrupt handling system | |
JP2000029850A (en) | Task controlling method using inter-processor communication of operating system | |
JPH01177133A (en) | Event information system | |
JPS6214255A (en) | Multi processing system for input output interruption | |
JPH03230245A (en) | Input/output processing system for electronic computer system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20061201 Year of fee payment: 4 |
|
LAPS | Lapse due to unpaid annual fee |