KR101235414B1 - Method for managing threads in data broadcasting receiver - Google Patents

Method for managing threads in data broadcasting receiver Download PDF

Info

Publication number
KR101235414B1
KR101235414B1 KR1020060078363A KR20060078363A KR101235414B1 KR 101235414 B1 KR101235414 B1 KR 101235414B1 KR 1020060078363 A KR1020060078363 A KR 1020060078363A KR 20060078363 A KR20060078363 A KR 20060078363A KR 101235414 B1 KR101235414 B1 KR 101235414B1
Authority
KR
South Korea
Prior art keywords
thread
middleware
data broadcasting
operating system
task
Prior art date
Application number
KR1020060078363A
Other languages
Korean (ko)
Other versions
KR20080016344A (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 KR1020060078363A priority Critical patent/KR101235414B1/en
Publication of KR20080016344A publication Critical patent/KR20080016344A/en
Application granted granted Critical
Publication of KR101235414B1 publication Critical patent/KR101235414B1/en

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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/3009Thread control instructions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware

Abstract

본 발명은 데이터 방송 수신기에서 응용 프로그램이 실행되며 요청하는 작업을 효율적으로 수행할 수 있는 스레드 관리 방법에 관한 것이다.The present invention relates to a thread management method that can execute an application program in a data broadcast receiver and efficiently perform a request.

본 발명에 따르면, 임베디드 시스템을 가지는 데이터 방송 수신기에서 운영체제부가 시스템 스레드 풀을 가지어 데이터 방송용 미들웨어부의 미들웨어 스레드 풀과 함께 이중 스레드 풀 구조로 응용 프로그램으로부터 요청된 작업에 대한 스레드의 실행을 관리할 수 있도록 한다. 이에 따라, 데이터 방송 수신기에서 시스템 스레드를 실행할 시에 기 생성된 시스템 스레드가 재사용되도록 함으로써 시스템 스레드를 생성하며 발생될 수 있는 오버헤드를 줄여준다.According to the present invention, in the data broadcasting receiver having an embedded system, the operating system may have a system thread pool and manage execution of a thread for a job requested from an application program in a dual thread pool structure together with a middleware thread pool of a middleware unit for a data broadcasting. Make sure Accordingly, when the system thread is executed in the data broadcast receiver, the generated system thread is reused, thereby reducing the overhead that may be generated while generating the system thread.

데이터 방송, 미들웨어부, 스레드, 관리, 스레드 풀 Data Broadcasting, Middleware Division, Threads, Management, Thread Pools

Description

데이터 방송 수신기에서 스레드 관리 방법{Method for managing threads in data broadcasting receiver}Method for managing threads in data broadcasting receiver

도 1은 본 발명이 적용되는 데이터 방송 수신기 미들웨어 구조의 개략도,1 is a schematic diagram of a data broadcast receiver middleware structure to which the present invention is applied;

도 2는 일반적인 스레드 풀을 이용하여 데이터 방송 수신기에서 스레드가 실행되는 형태를 도시한 도면,2 is a diagram illustrating a thread executing in a data broadcast receiver using a general thread pool;

도 3은 본 발명에 따라 스레드가 실행되는 형태를 도시한 도면,3 is a diagram illustrating a form in which a thread is executed according to the present invention;

도 4는 본 발명에 따른 스레드 관리 방법을 도시한 흐름도이다. 4 is a flowchart illustrating a thread management method according to the present invention.

* 도면의 주요부분에 대한 부호의 설명 DESCRIPTION OF THE REFERENCE NUMERALS

102,204 : 운영체제부 104,202 : 자바 가상 머신102,204: operating system unit 104,202: Java virtual machine

106,200 : 데이터 방송용 미들웨어부106,200: middleware unit for data broadcasting

본 발명은 데이터 방송 수신기에서 응용 프로그램이 실행되며 요청하는 작업을 효율적으로 수행할 수 있는 스레드 관리 방법에 관한 것이다.The present invention relates to a thread management method that can execute an application program in a data broadcast receiver and efficiently perform a request.

일반적으로 사용자가 응용 프로그램을 구동시키고 요청한 작업에 대해서 응답의 지연현상이나 미진한 작업 처리속도를 나타낼 경우 사용자는 해당 작업 수행 에 대한 만족스럽지 못함을 느끼게 된다. 따라서 사용자가 요청한 작업을 신속히 처리하는 것은 사용자의 만족도를 높이기 위해서 매우 중요하다.In general, when a user runs an application program and shows a delay in response or incomplete task processing speed for a requested task, the user may not be satisfied with the execution of the task. Therefore, promptly processing the work requested by the user is very important to increase the user's satisfaction.

그러므로 응용 프로그램 실행 장치는 구동되는 응용 프로그램으로부터 수신되는 다양한 작업 요청에 대하여 최상의 실행효율과 응답 시간을 제공하기 위해 리소스(Resource)의 사용을 제한하는 것이 일반적으로 필요하다.Therefore, it is generally necessary for the application execution device to limit the use of resources in order to provide the best execution efficiency and response time for various work requests received from a running application program.

주요 리소스들 중 하나는 스레드(Thread)이다. 스레드를 제한 없이 생성하고 사용하고 파괴하는 것은 당업계에 알려진 여러 가지 이유로 응답 시간과 실행효율 모두에 악영향을 끼칠 수 있다. One of the main resources is a thread. Unlimited creation, use, and destruction of threads can adversely affect both response time and execution efficiency for various reasons known in the art.

예를 들어 너무 많은 스레드가 생성된다면 스레드를 관리하는 시스템 오버 헤드(Overhead)가 감당할 수 없을 만큼 크고, 시스템 상태와 이러한 스레드에 대한 다른 정보를 저장하는데 너무 많은 메모리가 필요할 수 있다. For example, if too many threads are created, the system overhead of managing threads may be too large to handle, and too much memory may be needed to store system state and other information about these threads.

그리고, 공유하고 있는 리소스를 차지하기 위하여 경쟁하는 것은 이용 가능한 스레드의 수를 제한하는 주요 이유가 된다. 왜냐하면, 제한된 리소스를 위하여 많은 수의 스레드가 큐(Queue)에 대기하는 것은 일반적으로 리소스에 대한 스레싱(Thrashing)을 초래하기 때문이다.And competing to occupy shared resources is a major reason to limit the number of threads available. This is because waiting for a limited number of threads in a queue for a limited resource generally results in thrashing of the resource.

그러나 반대로 너무 적은 수의 스레드가 이용 가능하다면 요청된 작업에 스레드를 할당하기까지 오랜 시간 동안 기다려야 할 수 있으므로, 작업 요청에 대한 응답 시간을 증가시킨다.On the contrary, if too few threads are available, you may have to wait a long time to allocate a thread to the requested task, increasing the response time for the task request.

데이터 방송 수신기는 임베디드 시스템 위에서 여러 데이터 방송용 응용 프로그램을 구동하고 관리해 주는 기능을 한다. 또한 여러 응용 프로그램의 작업 요 청을 동시에 처리해야되기 때문에 일반적으로 스레드를 이용하여 응용 프로그램의 요청을 처리한다. 임베디드 시스템은 동작상의 빠른 응답 속도와 최상의 처리량을 위해서 무엇보다 시스템 자원을 효율적으로 관리하는 것이 관건이다.The data broadcast receiver functions to run and manage various data broadcasting applications on an embedded system. In addition, since the work requests of several applications must be processed at the same time, the request of the application is generally handled by using a thread. Embedded systems require, among other things, managing system resources efficiently for the fastest response times and highest throughput.

그러므로 본 발명의 목적은 데이터 방송 수신기에서 효율적으로 스레드를 관리하는 스레드 관리 방법을 제공하는데 있다. It is therefore an object of the present invention to provide a thread management method for efficiently managing threads in a data broadcast receiver.

상기와 같은 목적을 달성하기 위해서, 본 발명에 따른 데이터 방송 수신기에서 스레드 관리 방법은 데이터 방송 수신기에서 운영체제부가 시스템 스레드 풀(Pool)을 생성하는 단계; 상기 데이터 방송 수신기에서 실행 중인 응용 프로그램이 입력된 작업 요청에 따라 자바 가상 머신으로 상기 작업 수행을 위한 스레드를 요청할 시에, 자바 가상 머신이 새로운 자바 스레드를 생성하여 실행시키고, 상기 운영체제부로 시스템 스레드를 요청하는 단계; 및 상기 요청에 따라, 상기 운영체제부가 상기 생성한 시스템 스레드 풀에 존재하는 시스템 스레드를 상기 작업 수행을 위해 실행시키는 단계;를 포함하여 이루어진다.In order to achieve the above object, the thread management method in the data broadcast receiver according to the present invention comprises the steps of generating a system thread pool (pool) by the operating system in the data broadcast receiver; When the application program running in the data broadcasting receiver requests a thread for performing the task to the Java virtual machine according to the input task request, the Java virtual machine creates and executes a new Java thread and sends a system thread to the operating system. Requesting; And according to the request, executing the system thread existing in the system thread pool generated by the operating system to perform the task.

그리고, 상기 데이터 방송 수신기에서 실행 중인 응용 프로그램이 입력된 작업 요청에 따라 데이터 방송용 미들웨어부로 상기 작업 수행을 위한 스레드를 요청할 시, 상기 데이터 방송용 미들웨어부가 기 생성해 놓은 미들웨어 스레드 풀에 존재하는 미들웨어 스레드를 상기 작업 수행을 위해 실행시키는 단계; 상기 자바 가상 머신이 상기 실행된 미들웨어 스레드와 연결된 자바 스레드를 실행시키고, 상기 운영체제부로 시스템 스레드를 요청하는 단계; 및 상기 요청에 따라, 상기 운영체제부가 상기 생성한 시스템 스레드 풀에서 상기 실행된 자바 스레드와 연결된 시스템 스레드를 실행시키는 단계;를 더 포함하여 이루어진다.When the application program running in the data broadcasting receiver requests a thread for performing the task to the data broadcasting middleware unit according to an input task request, the middleware thread existing in the middleware thread pool previously created by the data broadcasting middleware unit is created. Executing to perform the task; Executing, by the Java virtual machine, a Java thread connected to the executed middleware thread and requesting a system thread from the operating system; And according to the request, executing the system thread connected to the executed Java thread in the system thread pool generated by the operating system.

이하에서는 첨부된 도면들을 참조하여 본 발명을 보다 상세히 설명한다. 다만, 본 발명을 설명함에 있어, 관련된 공지 기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그에 대한 상세한 설명은 생략한다. Hereinafter, with reference to the accompanying drawings will be described the present invention in more detail. However, in describing the present invention, when it is determined that a detailed description of a related known function or configuration may unnecessarily obscure the subject matter of the present invention, a detailed description thereof will be omitted.

도 1은 본 발명이 적용되는 데이터 방송 수신기 미들웨어 구조의 개략도이다. 1 is a schematic diagram of a data broadcast receiver middleware structure to which the present invention is applied.

도면에 도시된 바와 같이, 운영체제부(Operating System)(102)는 하드웨어 상(on top of hardware)(100)에서 동작하고, 자바 가상 머신(Java Virtual Machine)(104)은 운영체제부(102) 상에서 동작한다. 그리고 데이터 방송용 미들웨어부(Middleware Component)(106)는 자바 가상 머신(104) 상에서 동작하며 자바로 구현된 응용 프로그램(Application, 'API')(108)이 요청하는 데이터 방송과 관련된 작업 수행 및 리소스의 효율적인 관리를 담당하는 역할을 수행한다. As shown in the figure, the operating system 102 operates on top of hardware 100, and the Java Virtual Machine 104 runs on the operating system 102. It works. The middleware component 106 for data broadcasting operates on the Java virtual machine 104 and performs tasks and resources related to data broadcasting requested by an application program (API) 108 implemented in Java. It is in charge of efficient management.

운영체제부(102)와 자바 가상 머신(104)은 데이터 방송용 미들웨어부(106)를 통해 응용 프로그램(108)들이 요청한 작업이 수행되도록 그 작업에 대한 스레드를 생성하고 스레드 실행을 관리하는 기능을 수행한다.The operating system unit 102 and the Java virtual machine 104 perform a function of creating a thread for the task and managing thread execution for the task requested by the application programs 108 through the data broadcasting middleware unit 106. .

운영체제부(102)는 시스템 스레드를 관리하며 자바 가상 머신(104)으로부터 입력되는 시스템 스레드 요청에 따라 시스템 스레드를 생성하고 실행시킨다. 그리고 자바 가상 머신(104)은 응용 프로그램(108)들이 요청된 작업을 수행하기 위해 쓰레드를 요청할 시, 해당 작업 수행을 위한 자바 스레드를 생성하고 실행시킨다. The operating system unit 102 manages system threads and creates and executes system threads according to system thread requests input from the Java virtual machine 104. When the application program 108 requests a thread to perform a requested task, the Java virtual machine 104 creates and executes a Java thread for performing the task.

자바 가상 머신(104)상에서 실행되는 자바 스레드와 운영체제부(102)상에서 실행되는 시스템 스레드는 서로 연결되어 상기 응용 프로그램(108)이 요청한 작업 수행에 사용된다. The Java thread running on the Java virtual machine 104 and the system thread running on the operating system unit 102 are connected to each other and used to perform a task requested by the application 108.

도 2는 일반적인 스레드 풀(Pool)을 이용하여 데이터 방송 수신기에서 스레드가 실행되는 형태를 도시한 도면이다. FIG. 2 is a diagram illustrating a thread executing in a data broadcasting receiver using a general thread pool.

도 1을 통해 언급한 바와 같이 자바 가상 머신(202)은 응용 프로그램의 스레드 요청에 따라 작업 수행에 필요한 자바 스레드를 생성하여 실행시킨다. 그리고 자바 가상 머신(202)이 운영체제부(204)로 시스템 스레드를 요청하면, 운영체제부(204)는 자바 가상 머신(202)의 시스템 스레드 요청에 따라 시스템 스레드를 생성하고 그 시스템 스레드를 실행시켜 응용 프로그램에서 요청한 작업을 처리할 수 있도록 한다.As mentioned through FIG. 1, the Java virtual machine 202 generates and executes a Java thread necessary to perform a task according to a thread request of an application. When the Java virtual machine 202 requests a system thread to the operating system unit 204, the operating system unit 204 generates a system thread according to the system thread request of the Java virtual machine 202, and executes the system thread to apply the system thread. Allows the program to handle the work requested.

하지만, 이와 같이 응용 프로그램에서 작업 요청이 있을 때마다 스레드를 생성하는 것은, 특히 임베디드 시스템에서 전반적인 시스템 성능을 저하시키는 요인으로 작용하게 된다. However, creating a thread every time a work request is made in an application program is a factor that degrades overall system performance, especially in an embedded system.

이에 따라, 도 2에 도시된 바와 같이 미들웨어 차원에서 스레들 풀을 적용하여 데이터 방송 수신기가 응용 프로그램의 작업 요청에 대한 스레드 관리를 수행하 도록 이루어지고 있다. Accordingly, as shown in FIG. 2, the data broadcast receiver is configured to perform thread management for a work request of an application program by applying a thread pool to a middleware level.

여기서, 스레드 풀(Thread Pool)이란 생성되었지만 아직 파괴되지 않은 스레드의 집합을 의미하며, 일반적으로 스레드 풀을 위하여 생성될 스레드의 수는 초기에 지정된다. Here, a thread pool refers to a set of threads that are created but not yet destroyed. In general, the number of threads to be created for the thread pool is initially designated.

따라서 미들웨어 차원에서의 스레드 풀을 적용하면 이미 스레드를 생성하여 응용 프로그램으로부터 작업 요청이 있을 시에 기 생성해 놓은 스레드를 해당 작업의 수행을 위해 실행시킴으로써 새로운 스레드를 생성해야 하는 오버헤드(Overhead)를 줄여주는 장점이 있다.Therefore, applying a thread pool at the middleware level, the overhead of having to create a new thread by creating a thread and executing a previously created thread to perform the operation when an application request is made from the application is executed. There is an advantage to reduce.

도 2를 통해 스레드가 실행되는 형태를 좀 더 살펴보면, 데이터 방송 수신기의 데이터 방송용 미들웨어부(200)가 미들웨어 스레드 풀을 가진다. 그리고 응용 프로그램이 실행되며 요청받은 작업에 따라 해당 작업의 수행을 위한 스레드를 데이터 방송용 미들웨어부(200)로 요청한 경우, 데이터 방송용 미들웨어부(200)는 미들웨어 스레드 풀에 기 생성된 미들웨어 스레드를 해당 작업 수행에 할당하며 실행시킨다. Referring to the form in which the thread is executed through FIG. 2, the data broadcasting middleware unit 200 of the data broadcasting receiver has a middleware thread pool. When the application is executed and requests a thread for performing the task according to the requested task to the data broadcasting middleware unit 200, the data broadcasting middleware unit 200 uses the middleware thread previously created in the middleware thread pool. Assign to a run and run.

그러면 자바 가상 머신(202)은 데이터 방송용 미들웨어부(200)상에서 실행되는 미들웨어 스레드와 연결된 자바 스레드를 실행시키고, 운영체제부(204)로 시스템 스레드를 요청한다. Then, the Java virtual machine 202 executes a Java thread connected to the middleware thread executed on the data broadcasting middleware unit 200, and requests a system thread to the operating system unit 204.

운영체제부(204)는 자바 가상 머신(202)상에서 실행되는 자바 스레드와 연결된 시스템 스레드를 실행시키며 응용 프로그램에 요청된 작업이 수행될 수 있도록 한다. The operating system unit 204 executes a system thread connected to a Java thread executed on the Java virtual machine 202 and enables the operation requested by the application program to be performed.

그러나, 미들웨어 차원에서 스레드 풀을 이용하여 스레드를 관리하는 방식은 도 2에 도시된 바와 같이 응용 프로그램이 자바 가상 머신(202)으로 바로 스레드를 요청하는 경우를 고려하였을 경우, 미들웨어 스레드 풀을 사용하지 않기 때문에 운영체제부(204)가 상기 생성된 자바 스레드에 대한 시스템 스레드를 생성해야 하는 오버헤드를 피할 수 없게 된다. However, the method of managing threads by using a thread pool in the middleware level, considering the case where the application requests a thread directly to the Java virtual machine 202, as shown in Figure 2, do not use the middleware thread pool The operating system 204 cannot avoid the overhead of creating a system thread for the generated Java thread.

여기서, 응용 프로그램이 데이터 방송용 미들웨어부(200)가 아닌 자바 가상 머신(202)으로 바로 스레드를 요청하는 경우는 응용 프로그램이 데이터 방송 이외의 기타 작업들을 수행하여야 하는 경우이다. In this case, when the application program requests a thread directly to the Java virtual machine 202 instead of the data broadcasting middleware unit 200, the application program needs to perform other operations other than data broadcasting.

이에 따라, 본 발명은 데이터 방송 수신기에서 데이터 방송용 미들웨어부(200)와 운영체제부(204)가 각각 미들웨어 스레드 풀과 시스템 스레드 풀을 가지어 이중 스레드 풀 구조로 응용 프로그램으로부터 입력되는 작업 요청에 대한 스레드가 실행되도록 스레드를 관리하는 것을 특징으로 한다. Accordingly, in the present invention, the data broadcast middleware unit 200 and the operating system unit 204 each have a middleware thread pool and a system thread pool in a data broadcast receiver, and thus a thread for a work request input from an application program in a double thread pool structure. It is characterized by managing the thread to be executed.

도 3은 본 발명에 따라 스레드가 실행되는 형태를 도시한 도면이다. 도 3에 도시된 바와 같이 본 발명에 따른 데이터 방송 수신기에서 데이터 방송용 미들웨어부(200)는 미들웨어 스레드 풀을, 운영체제부(204)는 시스템 스레드 풀을 가지고 있다.3 is a diagram illustrating a form in which a thread is executed according to the present invention. As shown in FIG. 3, in the data broadcasting receiver according to the present invention, the data broadcasting middleware unit 200 has a middleware thread pool, and the operating system unit 204 has a system thread pool.

데이터 방송용 미들웨어부(200)는 응용 프로그램으로부터 스레드 요청을 입력받을 시에 미들웨어 스레드 풀에 기 생성된 미들웨어 스레드를 해당 작업 수행에 할당하며 실행시킨다. When receiving the thread request from the application program, the data broadcasting middleware unit 200 allocates and executes the middleware thread previously created in the middleware thread pool to perform a corresponding task.

자바 가상 머신(202)은 데이터 방송용 미들웨어부(200)상에서 실행되는 미들 웨어 스레드와 연결된 자바 스레드를 실행시키고, 운영체제부(204)로 시스템 스레드를 요청한다. 또한 자바 가상 머신(202)은 응용 프로그램으로부터 직접 스레드를 요청받을 시에 그 요청에 따라 자바 스레드를 생성하여 실행시키고 운영체제부(204)로 시스템 스레드를 요청한다.The Java virtual machine 202 executes a Java thread connected to the middleware thread executed on the data broadcasting middleware unit 200, and requests a system thread to the operating system unit 204. When the Java virtual machine 202 receives a thread request directly from an application, the Java virtual machine 202 generates and executes a Java thread according to the request and requests a system thread to the operating system unit 204.

운영체제부(204)는 시스템 스레드 풀에 기 생성해 놓은 시스템 스레드 중에서 자바 가상 머신(202)에서 실행된 자바 스레드와 연결된 시스템 스레드가 존재하는 경우에 해당 시스템 스레드를 실행시키고, 그렇지 않은 경우에는 시스템 스레드 풀에 사용되지 않은 시스템 스레드를 할당하며 실행시킨다.The operating system unit 204 executes the system thread when there is a system thread connected to the Java thread executed in the Java virtual machine 202 among the system threads previously created in the system thread pool. Allocate unused system threads in the pool and run them.

이에 따라, 응용 프로그램으로부터 자바 가상 머신(202)으로 직접 스레드를 요청할 경우일 지라도 운영체제부(204)가 자바 가상 머신(202)에서 생성된 자바 스레드에 대한 시스템 스레드를 생성해야 하는 오버헤드가 발생되지 않도록 해준다. Accordingly, even when the thread is directly requested from the application to the Java virtual machine 202, the overhead that the operating system unit 204 has to create a system thread for the Java thread created in the Java virtual machine 202 is not generated. Do not let it.

도 4는 본 발명에 따른 스레드 관리 방법을 도시한 흐름도이다. 4 is a flowchart illustrating a thread management method according to the present invention.

본 발명에 따르면 데이터 방송 수신기의 데이터 방송용 미들웨어부(200)가 미들웨어 스레드 풀을 생성하고 운영체제부(204)가 시스템 스레드 풀을 생성해 놓는다.According to the present invention, the data broadcasting middleware unit 200 of the data broadcasting receiver generates a middleware thread pool, and the operating system unit 204 generates a system thread pool.

그리고 응용 프로그램이 실행되면서(S400) 작업 요청이 있는 경우(S402) 그 요청된 작업이 데이터 방송용 미들웨어부(200)에서 처리하는 데이터 방송과 관련된 작업이라면 데이터 방송용 미들웨어부(200)로 해당 작업 수행을 위한 스레드를 요청한다(S404). When the application is executed (S400) and there is a task request (S402), if the requested task is a task related to data broadcasting processed by the data broadcasting middleware unit 200, the corresponding task is performed by the data broadcasting middleware unit 200. Request a thread for (S404).

이에 따라, 데이터 방송용 미들웨어부(200)가 상기 생성한 미들웨어 스레드 풀에 존재하는 미들웨어 스레드를 상기 작업 수행을 위해 할당하고 실행시킨다(S406). 자바 가상 머신(202)은 상기 실행된 미들웨어 스레드와 연결된 자바 스레드를 실행시키며(S408), 운영체제부(204)로 시스템 스레드를 요청한다(S410). Accordingly, the data broadcasting middleware unit 200 allocates and executes a middleware thread existing in the generated middleware thread pool to perform the task (S406). The Java virtual machine 202 executes a Java thread connected to the executed middleware thread (S408), and requests a system thread to the operating system unit 204 (S410).

운영체제부(204)는 자바 가상 머신(202)의 시스템 스레드 요청에 따라 상기 생성한 시스템 스레드 풀에서 상기 실행된 자바 스레드와 연결된 시스템 스레드를 실행시키어 응용 프로그램에 요청된 작업이 수행될 수 있도록 해 준다(S412,S414). The operating system unit 204 executes a system thread connected to the executed Java thread in the generated system thread pool according to a system thread request of the Java virtual machine 202 so that an operation requested by an application program can be performed. (S412, S414).

운영체제부(204)에서 실행된 시스템 스레드를 이용하여 상기 응용 프로그램에 요청된 작업이 완료되는 경우, 데이터 방송용 미들웨어부(200)와 자바 가상 머신(202)은 상기 실행시킨 미들웨어 스레드 및 자바 스레드의 실행을 각각 종료시키며, 운영체제부(204) 또한 상기 실행시킨 시스템 스레드의 실행을 종료시킨다(S416,S418). When the operation requested to the application program is completed by using the system thread executed in the operating system unit 204, the data broadcasting middleware unit 200 and the Java virtual machine 202 executes the executed middleware thread and the Java thread. Respectively terminate, and the operating system unit 204 also terminates execution of the executed system thread (S416, S418).

응용 프로그램은 데이터 방송용 미들웨어부(200)에서 처리하는 데이터 방송과 관련된 작업이 아닌 그 이외의 작업에 대한 요청이 있는 경우 자바 가상 머신(202)으로 상기 요청된 작업 수행을 위한 스레드를 요청한다. 자바 가상 머신(202)은 응용 프로그램의 스레드 요청에 따라 상기 작업의 수행을 위한 새로운 자바 스레드를 생성하여 실행시키며(S404,S420), 운영체제부(204)로 시스템 스레드를 요청한다(S422). The application program requests a thread for performing the requested task to the Java virtual machine 202 when there is a request for a task other than a task related to data broadcasting processed by the data broadcasting middleware unit 200. The Java virtual machine 202 generates and executes a new Java thread for performing the operation according to a thread request of an application program (S404 and S420), and requests a system thread to the operating system unit 204 (S422).

운영체제부(204)는 자바 가상 머신(202)의 시스템 스레드 요청에 따라 상기 생성한 시스템 스레드 풀에 존재하는 시스템 스레드를 할당하며 실행시키어 응용 프로그램에 요청된 작업이 수행되도록 해 준다(S424,S426). The operating system unit 204 allocates and executes a system thread existing in the generated system thread pool according to a system thread request of the Java virtual machine 202 so that the requested operation can be performed to the application program (S424, S426). .

운영체제부(204)에서 실행된 시스템 스레드를 이용하여 상기 응용 프로그램에 요청된 작업이 완료되는 경우, 자바 가상 머신(202)이 상기 작업 수행을 위해 생성한 새로운 자바 스레드를 제거하고 운영체제부(200)는 상기 실행시킨 시스템 스레드의 실행을 종료시킨다(S428,S430). When the task requested to the application is completed by using the system thread executed in the operating system unit 204, the Java virtual machine 202 removes a new Java thread generated to perform the task and the operating system unit 200. Terminates execution of the executed system thread (S428, S430).

응용 프로그램이 종료되기 전까지 상기와 같이 요청되는 작업에 대해서 스레드 실행을 관리한다(S432). Until the application is terminated, thread execution is managed for the requested operation as described above (S432).

이상에서 대표적인 실시예를 통하여 본 발명에 대하여 상세하게 설명하였으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 상술한 실시예에 대하여 본 발명의 범주에서 벗어나지 않는 한도 내에서 다양한 변형이 가능함을 이해할 것이다. 그러므로 본 발명의 권리범위는 설명된 실시예에 국한되어 정해져서는 안 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다. While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is clearly understood that the same is by way of illustration and example only and is not to be construed as limiting the scope of the present invention. I will understand. Therefore, the scope of the present invention should not be limited to the described embodiments, but should be defined by the claims below and equivalents thereof.

본 발명에 따르면, 임베디드 시스템을 가지는 데이터 방송 수신기에서 운영체제부가 시스템 스레드 풀을 가지어 데이터 방송용 미들웨어부의 미들웨어 스레드 풀과 함께 이중 스레드 풀 구조로 응용 프로그램으로부터 요청된 작업에 대한 스레드의 실행을 관리할 수 있도록 한다.According to the present invention, in the data broadcasting receiver having an embedded system, the operating system may have a system thread pool and manage execution of a thread for a job requested from an application program in a dual thread pool structure together with a middleware thread pool of a middleware unit for a data broadcasting. Make sure

이에 따라, 데이터 방송 수신기에서 시스템 스레드를 실행할 시에 기 생성된 시스템 스레드가 재사용되도록 함으로써 시스템 스레드를 생성하며 발생될 수 있는 오버헤드를 줄여주고 전체적인 시스템 성능을 향상시킬 수 있다. Accordingly, when the system thread is executed in the data broadcast receiver, the generated system thread is reused, thereby reducing the overhead that may occur when generating the system thread and improving overall system performance.

Claims (2)

데이터 방송 수신기에서 운영체제부가 시스템 스레드 풀(Pool)을 생성하는 단계; Generating, by an operating system, a system thread pool at a data broadcast receiver; 상기 데이터 방송 수신기에서 실행 중인 응용 프로그램이 입력된 작업 요청에 따라 자바 가상 머신으로 상기 작업 수행을 위한 스레드를 요청할 시에, 자바 가상 머신이 새로운 자바 스레드를 생성하여 실행시키고, 상기 운영체제부로 시스템 스레드를 요청하는 단계; 및 When the application program running in the data broadcasting receiver requests a thread for performing the task to the Java virtual machine according to the input task request, the Java virtual machine creates and executes a new Java thread and sends a system thread to the operating system. Requesting; And 상기 요청에 따라, 상기 운영체제부가 상기 생성한 시스템 스레드 풀에 존재하는 시스템 스레드를 상기 작업 수행을 위해 실행시키는 단계;를 포함하여 이루어지는 데이터 방송 수신기에서 스레드 관리 방법.And executing, by the operating system unit, a system thread existing in the generated system thread pool to perform the task according to the request. 제1 항에 있어서,The method according to claim 1, 상기 데이터 방송 수신기에서 실행 중인 응용 프로그램이 입력된 작업 요청에 따라 데이터 방송용 미들웨어부로 상기 작업 수행을 위한 스레드를 요청할 시,When the application program running in the data broadcasting receiver requests a thread for performing the work to the data broadcasting middleware unit according to the input work request, 상기 데이터 방송용 미들웨어부가 기 생성해 놓은 미들웨어 스레드 풀에 존재하는 미들웨어 스레드를 상기 작업 수행을 위해 실행시키는 단계;Executing a middleware thread existing in a middleware thread pool previously created by the data broadcasting middleware unit to perform the task; 상기 자바 가상 머신이 상기 실행된 미들웨어 스레드와 연결된 자바 스레드를 실행시키고, 상기 운영체제부로 시스템 스레드를 요청하는 단계; 및Executing, by the Java virtual machine, a Java thread connected to the executed middleware thread and requesting a system thread from the operating system; And 상기 요청에 따라, 상기 운영체제부가 상기 생성한 시스템 스레드 풀에서 상 기 실행된 자바 스레드와 연결된 시스템 스레드를 실행시키는 단계;를 더 포함하여 이루어지는 데이터 방송 수신기에서 스레드 관리 방법.And executing, by the operating system, a system thread connected to the executed Java thread in the system thread pool generated by the operating system.
KR1020060078363A 2006-08-18 2006-08-18 Method for managing threads in data broadcasting receiver KR101235414B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020060078363A KR101235414B1 (en) 2006-08-18 2006-08-18 Method for managing threads in data broadcasting receiver

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060078363A KR101235414B1 (en) 2006-08-18 2006-08-18 Method for managing threads in data broadcasting receiver

Publications (2)

Publication Number Publication Date
KR20080016344A KR20080016344A (en) 2008-02-21
KR101235414B1 true KR101235414B1 (en) 2013-02-20

Family

ID=39384488

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060078363A KR101235414B1 (en) 2006-08-18 2006-08-18 Method for managing threads in data broadcasting receiver

Country Status (1)

Country Link
KR (1) KR101235414B1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020097383A (en) * 2001-06-20 2002-12-31 한국전자통신연구원 system for maintaining object consistency and for implementating distributed shared memory in Java and its method
KR20030056656A (en) * 2001-12-28 2003-07-04 한국전자통신연구원 Apparatus for synchronizing threads in java virtual machine and method therefor
KR20040050605A (en) * 2002-12-10 2004-06-16 한국전자통신연구원 An Apparatus and a Method for Processing Distributed Object Using Priority Inheritance Technique
KR20050074766A (en) * 2004-01-14 2005-07-19 삼성전자주식회사 System for improving transaction rate of java program and method thereof

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020097383A (en) * 2001-06-20 2002-12-31 한국전자통신연구원 system for maintaining object consistency and for implementating distributed shared memory in Java and its method
KR20030056656A (en) * 2001-12-28 2003-07-04 한국전자통신연구원 Apparatus for synchronizing threads in java virtual machine and method therefor
KR20040050605A (en) * 2002-12-10 2004-06-16 한국전자통신연구원 An Apparatus and a Method for Processing Distributed Object Using Priority Inheritance Technique
KR20050074766A (en) * 2004-01-14 2005-07-19 삼성전자주식회사 System for improving transaction rate of java program and method thereof

Also Published As

Publication number Publication date
KR20080016344A (en) 2008-02-21

Similar Documents

Publication Publication Date Title
US10754702B2 (en) Technique for reconfiguring a virtual machine
US8881149B2 (en) Control of java resource runtime usage
US20070204268A1 (en) Methods and systems for scheduling processes in a multi-core processor environment
KR101781063B1 (en) Two-level resource management method and appratus for dynamic resource management
US9063783B2 (en) Coordinating parallel execution of processes using agents
JP5546529B2 (en) Sharing processor execution resources in standby state
WO2012066640A1 (en) Computer system, migration method, and management server
JP2010500667A (en) System and method for providing hardware virtualization in a virtual machine environment
US9092272B2 (en) Preparing parallel tasks to use a synchronization register
US20090019439A1 (en) Thread pool management apparatus and method
KR20150121600A (en) Apparatus for scheduling task based on hardware and method thereof
KR101091325B1 (en) Middleware for controling steel process and method for providing service in the middleware
KR20090108868A (en) Virtual machine management system and method for managing processor resources thereof
US8352702B2 (en) Data processing system memory allocation
US20120096462A1 (en) Dynamic virtualization technique for multicore processor system
KR101585160B1 (en) Distributed Computing System providing stand-alone environment and controll method therefor
KR101392584B1 (en) Apparatus for dynamic data processing using resource monitoring and method thereof
US8977752B2 (en) Event-based dynamic resource provisioning
JP4862056B2 (en) Virtual machine management mechanism and CPU time allocation control method in virtual machine system
JP2001306341A (en) Computer system and computer readable recording medium
KR101235414B1 (en) Method for managing threads in data broadcasting receiver
CN108287762B (en) Distributed computing interactive mode use resource optimization method and computer equipment
Chen et al. Speculative slot reservation: Enforcing service isolation for dependent data-parallel computations
Oh et al. HybridHadoop: CPU-GPU hybrid scheduling in hadoop
KR20120017295A (en) Work processing unit having a function of work scheduling, control unit for scheduling activation and work scheduling method over the symetric multi-processing environment

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

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170113

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20180112

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20190114

Year of fee payment: 7