Movatterモバイル変換


[0]ホーム

URL:


KR101349603B1 - Method of updating software in real-time system and apparatus for the same - Google Patents

Method of updating software in real-time system and apparatus for the same
Download PDF

Info

Publication number
KR101349603B1
KR101349603B1KR1020100108247AKR20100108247AKR101349603B1KR 101349603 B1KR101349603 B1KR 101349603B1KR 1020100108247 AKR1020100108247 AKR 1020100108247AKR 20100108247 AKR20100108247 AKR 20100108247AKR 101349603 B1KR101349603 B1KR 101349603B1
Authority
KR
South Korea
Prior art keywords
task
deadline
periodic
update
time
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Fee Related
Application number
KR1020100108247A
Other languages
Korean (ko)
Other versions
KR20120047352A (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 한국전자통신연구원filedCritical한국전자통신연구원
Priority to KR1020100108247ApriorityCriticalpatent/KR101349603B1/en
Publication of KR20120047352ApublicationCriticalpatent/KR20120047352A/en
Application grantedgrantedCritical
Publication of KR101349603B1publicationCriticalpatent/KR101349603B1/en
Expired - Fee Relatedlegal-statusCriticalCurrent
Anticipated expirationlegal-statusCritical

Links

Images

Landscapes

Abstract

Translated fromKorean

실시간 시스템에서 실행중인 소프트웨어를 동적으로 업데이트 하는 방법 및 이를 위한 장치가 개시된다. 실시간 시스템에서 소프트웨어 업데이트 장치는 수신된 복수개의 주기적 태스크 및 비주기적 태스크 중 비주기적 태스크의 마감시간을 계산하고, 계산된 마감시간을 비주기적 태스크에 할당하는 마감시간 계산부, 주기적 태스크 및 마간시간이 할당된 비주기적 태스크를 스케줄링하여 업데이트를 수행하는 제 1 스케줄링부, 업데이트 전 모드와 업데이트 후 모드사이의 오프셋을 계산하는 오프셋 계산부 및 스케줄링된 주기적 태스크 및 상기 업데이트된 태스크를 스케줄링하고, 상기 계산된 오프셋에 기초하여 태스크를 출력하는 제 2 스케줄링부를 포함하여 구성할 수 있다. 따라서, 실시간 응용 프로그램의 오류 수정이나 기능 수정을 위해실시간 시스템을 정지할 필요가 없으므로, 지속적인 실시간 서비스 제공이 가능하여 사용자들의 만족도 향상과 기업의 경제적 손실 방지를 기대할 수 있다.A method and apparatus for dynamically updating software running in a real-time system are disclosed. In the real-time system, the software update device calculates a deadline of the non-periodic task among the plurality of received periodic and non-periodic tasks, and has a deadline calculator, periodic task and dead time for allocating the calculated deadline to the non-periodic task. A first scheduling unit which performs an update by scheduling an assigned aperiodic task, an offset calculator which calculates an offset between a pre-update mode and a post-update mode, and schedules a scheduled periodic task and the updated task, and calculates the calculated It may be configured to include a second scheduling unit for outputting a task based on the offset. Therefore, it is not necessary to stop the real-time system for error correction or function correction of the real-time application, and thus it is possible to provide a continuous real-time service, thereby improving the user satisfaction and preventing the economic loss of the enterprise.

Figure R1020100108247
Figure R1020100108247

Description

Translated fromKorean
실시간 시스템에서 소프트웨어 업데이트 방법 및 이를 위한 장치{METHOD OF UPDATING SOFTWARE IN REAL-TIME SYSTEM AND APPARATUS FOR THE SAME}Software update method in real-time system and a device therefor {METHOD OF UPDATING SOFTWARE IN REAL-TIME SYSTEM AND APPARATUS FOR THE SAME}

본 발명은 실시간 시스템에서 소프트웨어 업데이트 방법 및 이를 위한 장치에 관한 것으로, 더욱 상세하게는 실시간 시스템에서 실행중인 소프트웨어를 동적으로 업데이트 하는 방법 및 이를 위한 장치에 관한 것이다.The present invention relates to a method for updating software in a real time system and an apparatus therefor, and more particularly, to a method and apparatus for dynamically updating software running in a real time system.

"본 발명은 지식경제부 및 한국산업기술평가관리원의 IT원천기술개발사업의 일환으로 수행한 연구로부터 도출된 것이다 [과제고유번호: 10035708, 과제명: 고신뢰 자율제어 SW를 위한 CPS(Cyber Physical Systems) 핵심기술 개발].""The present invention is derived from a study conducted as part of the IT source technology development project of the Ministry of Knowledge Economy and Korea Institute of Industrial Technology Evaluation and Management. [Task No .: 10035708, Title: CPS (Cyber Physical Systems) for High Reliability Automated Control SW] Core technology development]. "

일반적으로 컴퓨터 시스템에서 소프트웨어 제공자에 의해 업데이트가 자주 발생하는 소프트웨어인 경우에는 시스템에 주기적으로 업데이트를 수행해야 한다. 여기에서, 소프트웨어 업데이트란 시스템의 기존 프로그램에 새로운 기능을 추가, 기존 기능의 변경, 기존 기능의 삭제 등을 함으로써 프로그램을 업데이트하는 것을 의미한다.In general, in the case of software that is frequently updated by a software provider in a computer system, the system should be periodically updated. Here, software update means updating a program by adding a new function to an existing program of the system, changing an existing function, deleting an existing function, and the like.

통상적인 소프트웨어 업데이트 과정은 프로그램을 정지하는 단계, 프로그램을 수정하는 단계 및 프로그램을 재시작하는 단계를 포함한다. 먼저, 소프트웨어 업데이트 시스템은 프로그램을 정지하는 단계에서 업데이트 대상이 되는 프로그램을 정지시키고, 이에 따라 사용자는 업데이트 대상이 되는 프로그램을 사용하지 못한다. 소프트웨어 업데이트 시스템은 프로그램을 수정하는 단계에서 업데이트 대상이 되는 기존 프로그램을 업데이트 한다.A typical software update process includes stopping a program, modifying the program, and restarting the program. First, the software update system stops the program to be updated at the step of stopping the program, so that the user cannot use the program to be updated. The software update system updates existing programs to be updated at the step of modifying the program.

하지만, 소프트웨어 업데이트 시스템이 실시간 또는 지속적으로 사용자에게 서비스를 제공해야 하는 실시간 시스템에서 프로그램을 업데이트 하기 위해서 프로그램을 정지하는 경우에는 막대한 손실이 발생될 수 있으며, 사용자에게 불편을 제공할 수도 있다. 예를 들어, 소프트웨어 업데이트 시스템이 24시간 동안 지속적으로 사용자에게 서비스를 제공하는 메일 서버, FTP 서버, 웹 서버 등의 프로그램을 업데이트 할 경우, 소프트웨어 업데이트 시스템이 업데이트 대상이 되는 프로그램을 정지한 후 프로그램을 업데이트 및 재시작하는 동안 사용자는 메일 서버, FTP 서버, 웹 서버 등을 이용하지 못하게 되어 서버를 운영하는 회사들은 경제적으로 손실을 볼 수 있다.However, if the software update system stops a program to update a program in a real-time system that must provide a service to a user in real time or continuously, a huge loss may occur and may cause inconvenience to a user. For example, if the software update system updates a program such as a mail server, FTP server, or web server that continuously provides services to users for 24 hours, the software update system stops the program to be updated and then restarts the program. During the update and restart, users will not be able to access the mail server, FTP server, web server, etc., so the companies running the server can lose money economically.

또 다른 예를 들면, 소프트웨어 업데이트 시스템이 최종 결과를 얻기 위해 많은 기간 동안 프로그램을 지속적으로 실행시켜야 하는 계산 집중적인 병렬 응용 프로그램(Computationally Intensive Parallel Applications)을 업데이트 할 경우, 계산 집중적인 병렬 응용프로그램의 실행을 위해 사용된 고전력 및 컴퓨터 자원을 정지하고, 업데이트가 완료된 후 전력 및 자원을 재할당해야 하므로 자원의 낭비가 발생될 수 있다.In another example, if the software update system updates Computationally Intensive Parallel Applications, which must run the program continuously for many periods of time to get the final result, the execution of computationally intensive parallel applications. Resources can be wasted because the high-power and computer resources used for this purpose must be stopped and reallocated power and resources after the update is completed.

상기와 같은 문제점을 해결하기 위한 본 발명의 제 1목적은, 실시간 시스템에서의 소프트웨어 업데이트 장치를 제공하는데 있다.The first object of the present invention for solving the above problems is to provide a software update apparatus in a real-time system.

상기와 같은 문제점을 해결하기 위한 본 발명의 제 2 목적은, 실시간 시스템에서의 소프트웨어 업데이트 방법을 제공하는데 있다.A second object of the present invention for solving the above problems is to provide a software update method in a real-time system.

상기한 본 발명의 제 1 목적을 달성하기 위한 실시간 시스템에서 소프트웨어 업데이트 장치는, 수신된 복수개의 주기적 태스크 및 비주기적 태스크 중 상기 비주기적 태스크의 마감시간을 계산하고, 상기 계산된 마감시간을 비주기적 태스크에 할당하는 마감시간 계산부, 상기 주기적 태스크 및 마감시간이 할당된 비주기적 태스크를 스케줄링하여 업데이트를 수행하는 제 1 스케줄링부, 업데이트 전 모드에서 업데이트 후 모드로의 모드 변경을 위한 시간 간격을 계산하는 오프셋 계산부 및 상기 스케줄링된 주기적 태스크 및 상기 업데이트된 태스크를 스케줄링하고, 상기 계산된 오프셋에 기초하여 태스크를 출력하는 제 2 스케줄링부를 포함하여 구성될 수 있다.In the real-time system for achieving the first object of the present invention, the software update device, and calculates the dead time of the aperiodic task among the plurality of received periodic and aperiodic tasks, and aperiodic the calculated dead time A deadline calculation unit for allocating a task, a first scheduling unit for performing the update by scheduling the periodic task and the non-periodic task to which the deadline is assigned, and calculating a time interval for a mode change from a pre-update mode to a post-update mode And an offset calculator configured to schedule the scheduled periodic task and the updated task, and output a task based on the calculated offset.

본 발명의 제 2 목적을 달성하기 위한 실시간 시스템에서 소프트웨어 업데이트 방법은, 업데이트 대상이 되는 프로그램으로부터 복수개의 주기적 태스크 및 비주기적 태스크를 수신하는 단계, 상기 수신된 비주기적 태스크의 마감시간을 계산하고, 상기 계산된 마감시간을 비주기적 태스크에 할당하는 단계, 상기 주기적 태스크 및 마감시간이 할당된 비주기적 태스크를 스케줄링하여 업데이트를 수행하는 단계, 업데이트 전 모드에서 업데이트 후 모드로의 모드 변경을 위한 시간 간격을 계산하는 단계 및 상기 스케줄링된 주기적 태스크 및 상기 업데이트된 태스크를 스케줄링하고, 상기 계산된 오프셋에 기초하여 태스크를 출력하는 단계를 포함하여 구성될 수 있다.Software update method in a real-time system for achieving the second object of the present invention, receiving a plurality of periodic tasks and aperiodic task from the program to be updated, calculating the dead time of the received aperiodic task, Allocating the calculated deadline to an aperiodic task, performing an update by scheduling the periodic task and an aperiodic task to which the deadline is assigned, and a time interval for changing a mode from a pre-update mode to a post-update mode And calculating the scheduled periodic task and the updated task, and outputting a task based on the calculated offset.

상기와 같은 본 발명에 따른 실시간 시스템에서 실행중인 소프트웨어를 동적으로 업데이트 하는 방법 및 이를 위한 장치를 이용할 경우에는 실시간 응용 프로그램의 오류 수정이나 기능 수정을 위해 실시간 시스템을 정지할 필요가 없으므로, 지속적인 실시간 서비스 제공이 가능하여 사용자들의 만족도 향상과 기업의 경제적 손실 방지를 기대할 수 있다.When using the method and the device for dynamically updating the software running in the real-time system according to the present invention as described above, there is no need to stop the real-time system for error correction or function correction of the real-time application, continuous real-time service As it can be provided, it can be expected to improve users' satisfaction and prevent the company's economic loss.

도 1은 본 발명의 실시예에 따른 실시간 시스템에서 소프트웨어 업데이트 장치의 내부 구조를 개략적으로 도시한 블록도이다.
도 2는 본 발명의 실시예에 따른 실시간 시스템에서 소프트웨어 업데이트 장치의 제 1스케줄링부(103)가 수신된 복수개의 주기적 태스크 및 마감시간이 할당된 비주기적 태스크를 스케줄링하는 과정을 도시한 시퀀스 차트이다.
도 3은 본 발명의 실시예에 따른 실시간 시스템에서 소프트웨어 업데이트 장치가 인터넷 기반 실시간 비디오 스트리밍 시스템에 적용된 경우의 예시도이다.
도 4는 본 발명의 실시예에 따른 실시간 시스템에서 소프트웨어 업데이트 방법을 설명하기 위한 흐름도이다.
1 is a block diagram schematically illustrating an internal structure of a software update apparatus in a real-time system according to an embodiment of the present invention.
FIG. 2 is a sequence chart illustrating a process of scheduling a plurality of periodic tasks received and aperiodic tasks assigned with a deadline by thefirst scheduling unit 103 of the software update apparatus in a real-time system according to an exemplary embodiment of the present invention. .
3 is an exemplary diagram of a case where a software update device is applied to an internet-based real-time video streaming system in a real-time system according to an embodiment of the present invention.
4 is a flowchart illustrating a software update method in a real-time system according to an embodiment of the present invention.

본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.While the invention is susceptible to various modifications and alternative forms, specific embodiments thereof are shown by way of example in the drawings and will herein be described in detail. It should be understood, however, that the invention is not intended to be limited to the particular embodiments, but includes all modifications, equivalents, and alternatives falling within the spirit and scope of the invention. Like reference numerals are used for like elements in describing each drawing.

제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.The terms first, second, A, B, etc. may be used to describe various elements, but the elements should not be limited by the terms. The terms are used only for the purpose of distinguishing one component from another. For example, without departing from the scope of the present invention, the first component may be referred to as a second component, and similarly, the second component may also be referred to as a first component. And / or < / RTI > includes any combination of a plurality of related listed items or any of a plurality of related listed items.

어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.When a component is referred to as being "connected" or "connected" to another component, it may be directly connected to or connected to that other component, but it may be understood that other components may be present in between. Should be. On the other hand, when an element is referred to as being "directly connected" or "directly connected" to another element, it should be understood that there are no other elements in between.

본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used in this application is used only to describe a specific embodiment and is not intended to limit the invention. Singular expressions include plural expressions unless the context clearly indicates otherwise. In this application, the terms "comprise" or "have" are intended to indicate that there is a feature, number, step, operation, component, part, or combination thereof described in the specification, and one or more other features. It is to be understood that the present invention does not exclude the possibility of the presence or the addition of numbers, steps, operations, components, components, or a combination thereof.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. Terms such as those defined in commonly used dictionaries are to be interpreted as having a meaning consistent with the contextual meaning of the related art and are to be interpreted as either ideal or overly formal in the sense of the present application Do not.

이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.Hereinafter, preferred embodiments according to the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 실시예에 따른 실시간 시스템에서 소프트웨어 업데이트 장치의 내부 구조를 개략적으로 도시한 블록도이다.1 is a block diagram schematically illustrating an internal structure of a software update apparatus in a real-time system according to an embodiment of the present invention.

즉, 도 1은 강성 실시간 시스템의 내부 구조를 도시한 경우이다.1 illustrates the internal structure of the rigid real-time system.

강성실시간 시스템(hard real-time system)은 제어 시스템과 피제어 시스템으로 구성되며, 제어 시스템은 환경에 대한 주기적인 점검과 감지된 정보를 주기적 또는 비주지적으로 피제어 시스템을 제어한다. 제어 시스템은 여러 작업에 대한 평균응답시간을 최소화하고 각 태스크가 마감시간전에 종료하기 위해서 피제어 시스템을 제어한다. 제어 시스템이 피제어 시스템을 주기적 또는 비주기적으로 제어함에 따라 실시간 시스템에는 주기적 태스크 및 비주기적 태스크가 존재한다.The hard real-time system is composed of a control system and a controlled system. The control system periodically checks the environment and controls the controlled system periodically or unintentionally with detected information. The control system controls the controlled system to minimize the average response time for multiple tasks and to ensure that each task finishes before the deadline. As the control system periodically or aperiodically controls the controlled system, there are periodic tasks and aperiodic tasks in the real-time system.

여기서, 주기적 태스크는 일정한 시간 간격을 가지고 태스크 실행이 일어나는 태스크로서 마감시간 이전에 종료되어야만 하는 태스크이고, 비주기적 태스크는 일정하지 않은 시간 간격을 가지고 태스크 실행이 일어나는 태스크로서 마감시간을 가지고 있지 않다. 또한, 마감시간은 태스크들이 처리되기 위해 발생하는 시작시간부터 완료시간까지를 의미한다.Here, the periodic task is a task in which task execution occurs at regular time intervals and must be terminated before the deadline time, and the non-periodic task has a dead time as task in which task execution occurs at irregular time intervals. In addition, the deadline refers to the start time to completion time that occurs for the task to be processed.

도 1을 참조하면, 소프트웨어 업데이트 장치는 수신부(101), 마감시간 계산부(102), 제 1스케줄링부(103), 오프셋 계산부(104), 제 2스케줄링부(105), 제어부(107), 저장부(108) 및 출력부(109)를 포함하여 구성될 수 있다.Referring to FIG. 1, the software update apparatus includes areceiver 101, adeadline calculator 102, afirst scheduler 103, anoffset calculator 104, asecond scheduler 105, and acontroller 107. It may be configured to include astorage unit 108 and anoutput unit 109.

수신부(101)는 업데이트 대상이되는 프로그램으로부터 복수개의 주기적 태스크 및 비주기적 태스크를 수신한다. 마감시간 계산부(102)는 마감시간이 할당되지 않은 비주기적 태스크의 마감시간을 계산한다. 본 발명의 일 실시예에 따르면, 마감시간 계산부(102)는 TBS(Total Bandwidth Server, 이하 'TBS'라 칭하기로 함.)알고리즘을 이용해서 마감시간을 계산하며, TBS알고리즘은 다른 비주기적 태스크 처리 알고리즘에 비해 계산 복잡도가 O(1)로 매우 낮고, 비주기적 태스크들의 응답 시간도 빠르다.Thereceiver 101 receives a plurality of periodic tasks and aperiodic tasks from a program to be updated. Thedeadline calculator 102 calculates a deadline of an aperiodic task for which no deadline is assigned. According to one embodiment of the invention, thedeadline calculation unit 102 calculates the deadline using a TBS (Total Bandwidth Server, hereinafter referred to as 'TBS') algorithm, the TBS algorithm is another aperiodic task Compared to the processing algorithm, the computational complexity is very low as O (1), and the response time of aperiodic tasks is also fast.

TBS는 EDF(earlist deadline first, 이하 'EDF'라 칭하기로 함.)에 의해 스케줄링되는 동적 실시간 시스템에서, 주기적 태스크들의 스케줄을 유지하면서 비주기적 태스크의 반응 시간을 향상시키기 위해 마감시간을 할당하는 알고리즘이다. 시간 t=rk에 도착한 k번째 비주기적 태스크의 마감시간은 하기 <수학식 1>에 의해 결정된다.TBS is a dynamic real-time system that is scheduled by EDF (earlist deadline first), an algorithm that allocates deadlines to improve the response time of aperiodic tasks while maintaining the schedule of periodic tasks. to be. The deadline of the kth aperiodic task arriving at time t = rk is determined by Equation 1 below.

Figure 112010071514328-pat00001
Figure 112010071514328-pat00001

<수학식 1>을 참조하면, Ck 는 k번째 비주기적 태스크의 실행 시간을 나타내고, Us 는 서버활용지수, 즉 대역폭의 활용 지수를 나타내고, d0 는 0이고 비주기적 태스크의 마감 시간이 정해지면, 해당 비주기적 태스크는 다른 주기적 태스크들과 함께 시스템의 대기 행렬 (Ready Queue)에 삽입된다.Referring to Equation 1, Ck represents the execution time of the kth aperiodic task, Us represents the server utilization index, that is, the utilization index of the bandwidth, d0 is 0 and the deadline of the aperiodic task is Once determined, the aperiodic task is inserted into the system's Ready Queue along with other periodic tasks.

제 1스케줄링부(103)는 복수개의 주기적 태스크 및 마감시간이 할당된 복수개의 비주기적 태스크를 수신하고, 수신된 복수개의 주기적 태스크 및 마감시간이 할당된 비주기적 태스크를 스케줄링 한다. 본 발명의 실시예에 따르면, 제 1스케줄링부(103)는 선행 관계가 없는 상호 독립적인 태스크들을 선점형 스케줄링 알고리즘, 즉 어떤 프로세스가 CPU를 사용하고 있을 때, 그 프로세스보다 높은 우선순위를 갖는 프로세스에서 CPU의 사용권을 넘겨주도록 스케줄링하는 알고리즘으로 수신된 복수개의 주기적 태스크 및 마감시간이 할당된 비주기적 태스크를 스케줄링할 경우, 마감시간이 가장 빠른 태스크를 가장 먼저 실행하도록 스케줄링하는 동적 우선 순위 방식인 EDF 알고리즘에 의해 스케줄링 될 수 있다. 즉, 제 1스케줄링부(103)는 수신된 복수개의 주기적 태스크 및 마감시간이 할당된 비주기적 태스크를의 마감시간을 고려하여 마감시간이 가장 가까운 태스크에 가장 높은 우선순위를 부여하고, 마감시간까지 남은 시간이 상대적으로 길면 상대적으로 낮은 우선순위를 부여한다.Thefirst scheduling unit 103 receives a plurality of periodic tasks and a plurality of aperiodic tasks assigned with deadlines, and schedules the received plurality of periodic tasks and aperiodic tasks assigned with deadlines. According to an embodiment of the present invention, thefirst scheduling unit 103 is a preemptive scheduling algorithm that is independent of mutually independent tasks, that is, a process having a higher priority than that process when a process is using a CPU. EDF is a dynamic priority scheme that schedules the tasks with the shortest deadline to be executed first when scheduling a plurality of periodic tasks and non-periodic tasks assigned with a deadline as an algorithm that schedules the transfer of the CPU's usage rights. Can be scheduled by an algorithm. That is, thefirst scheduling unit 103 gives the highest priority to the task having the closest dead time in consideration of the dead time of the plurality of received periodic tasks and the non-periodic task to which the dead time is allocated, and until the dead time. If the remaining time is relatively long, it is given a relatively low priority.

오프셋 계산부(104)는 업데이트 전 모드에서 업데이트 후 모드로 모드 변경을 수행하기 위해 오프셋을 계산한다. 여기서, 오프셋은 시간 간격 (Time Interval)으로,업데이트 전 모드에서 업데이트 후 모드로 변경이 일어나는 경우, 업데이트 전 모드에서 보장되었던 태스크들의 스케줄이 업데이트 전 모드에서도 위반됨이 없이 계속 유지하기 위해서 필요하다. 다시 말해, 업데이트 전 모드에서 모든 태스크들이 마감시간을 만족했다면, 업데이트 후 모드에서도 모든 태스크들은 마감시간을 만족해야 하므로, 오프셋 계산부(104)는 오프셋을 계산할 때, 임의의 시간을 할당할 수도 있다.Theoffset calculator 104 calculates the offset to perform the mode change from the pre-update mode to the post-update mode. Where the offset is the time interval, When a change occurs from the pre-update mode to the post-update mode, the schedules of the tasks that were guaranteed in the pre-update mode are necessary to maintain the same without prejudice even in the pre-update mode. In other words, if all tasks meet the deadline in the pre-update mode, all tasks must meet the deadline in the post-update mode, and thus, the offsetcalculator 104 may allocate an arbitrary time when calculating the offset. .

제 2스케줄링부(105)는 주기적 태스크와 제 1 스케줄링부(103)에서 스케줄링되어 업데이트된 태스크를 스케줄링 한다. 여기서, 제 2 스케줄링부(105)가 주기적 태스크와 제 1 스케줄링부(103)에서 스케줄링되어 업데이트된 태스크 스케줄링하는 과정은 제 1 스케줄링부(103)의 과정과 동일하므로 자세한 설명은 생략하기로 한다.Thesecond scheduling unit 105 schedules the periodic task and the updated and scheduled task in thefirst scheduling unit 103. Here, the process of scheduling the updated task scheduled by thesecond scheduling unit 105 and thefirst scheduling unit 103 is the same as the process of thefirst scheduling unit 103, and thus a detailed description thereof will be omitted.

제어부(107)는 마감시간 계산부(102)에의해 계산된 비주기적 태스크의 마감시간이 저장부(108)에 저장되도록 제어하며, 오프셋 계산부(104)에 의해 계산된 업데이트 전 모드에서 업데이트 후 모드로 모드 변경을 위한 오프셋이 저장부(108)에 저장되도록 제어하며, 스케줄링부(105)에의해 스케줄링된 태스크들이 저장부(108)에 저장되도록 제어한다.Thecontroller 107 controls the deadline of the aperiodic task calculated by thedeadline calculator 102 to be stored in thestorage 108 and after the update in the pre-update mode calculated by the offsetcalculator 104. An offset for changing the mode to the mode is controlled to be stored in thestorage unit 108, and the tasks scheduled by thescheduling unit 105 are controlled to be stored in thestorage unit 108.

저장부(108)는 도 1에는 도시하지 않았지만 비주기적 태스크의 마감시간을 저장하는 제 1 저장부, 업데이트 전 모드에서 업데이트 후 모드로 모드 변경을 위한 오프셋을 저장하는 제 2 저장부, 스케줄링된 태스크들을 저장하는 제 3 저장부를 포함하여 구성될 수 있다. 저장부(108)는 제어부(107)의 제어에 의해 마감시간 계산부(102)에서 계산된 비주기적 태스크의 마감시간을 제 1 저장부에 저장하고, 오프셋 계산부(104)에서 계산된 업데이트 전 모드에서 업데이트 후 모드로 모드 변경을 수행하기 위한 오프셋을 제 2 저장부에 저장하고, 스케줄링부(105)에서 계산된 스케줄링된 태스크들을 제 3 저장부에 저장한다. 그러면 이하에서는, 도 2를 참조하여 본 발명의 실시예에 따른 실시간 시스템에서 소프트웨어 업데이트 장치의 제 1스케줄링부(103)가 수신된 복수개의 주기적 태스크 및 마감시간이 할당된 비주기적 태스크를 스케줄링하여 업데이트하는 과정을 보다 구체적으로 설명하기로 한다.Although not shown in FIG. 1, thestorage unit 108 may include a first storage unit for storing a deadline of an aperiodic task, a second storage unit for storing an offset for changing a mode from a pre-update mode to a post-update mode, and a scheduled task. It may be configured to include a third storage unit for storing the. Thestorage unit 108 stores the deadline time of the aperiodic task calculated by thedeadline calculator 102 under the control of thecontroller 107 in the first storage unit, and before the update calculated by the offsetcalculator 104. An offset for performing a mode change from the mode to the mode after the update is stored in the second storage unit, and the scheduled tasks calculated by thescheduling unit 105 are stored in the third storage unit. Next, referring to FIG. 2, thefirst scheduling unit 103 of the software update apparatus schedules and updates a plurality of received periodic tasks and non-periodic tasks assigned to a deadline in the real-time system according to an embodiment of the present invention. The process of doing this will be described in more detail.

도 2는 본 발명의 실시예에 따른 실시간 시스템에서 소프트웨어 업데이트 장치의 제 1스케줄링부(103)가 수신된 복수개의 주기적 태스크 및 마감시간이 할당된 비주기적 태스크를 스케줄링하는 과정을 도시한 시퀀스 차트이다.FIG. 2 is a sequence chart illustrating a process of scheduling a plurality of periodic tasks received and aperiodic tasks assigned with a deadline by thefirst scheduling unit 103 of the software update apparatus in a real-time system according to an exemplary embodiment of the present invention. .

도 2를 참조하면, 수신부(101)는 업데이트 대상이되는 프로그램으로부터 복수개의 주기적 태스크 및 비주기적 태스크를 수신한다. 마감시간 계산부(102)는 마감시간이 할당되지 않은 비주기적 태스크의 마감시간을 계산한다. 오프셋 계산부(104)는 업데이트 전 모드에서 업데이트 후 모드로 모드 변경을 수행하기 위해 오프셋을 계산한다.Referring to FIG. 2, the receivingunit 101 receives a plurality of periodic tasks and aperiodic tasks from a program to be updated. Thedeadline calculator 102 calculates a deadline of an aperiodic task for which no deadline is assigned. The offsetcalculator 104 calculates the offset to perform the mode change from the pre-update mode to the post-update mode.

제 1스케줄링부(103)는 제1주기적 태스크(201), 제 2 주기적 태스크(202) 및 마감시간이 할당된 비주기적 태스크(203)를 수신하여 우선순위를 할당하고, 우선순위에 따라 순차적으로 업데이트를 실행한다. 본 발명의 실시예에 따르면, 제 1주기적 태스크(201)는 마감시간이 3이고, 실행시간이 1이고, 제 2주기적 태스크(202)는 마감시간이 4이고 실행시간이 2이고, 마감시간 계산부(102)에 의해서 마감시간이 할당된 비주기적 태스크의 마감시간이 5이고 실행시간이 2일 경우, 스케줄링부(105)는 가장 작은 마감시간을 가진 태스크에 가장 높은 우선 순위를 할당한다. 보다 구체적으로, 스케줄링부(105)는 시점 t0에서 마감시간까지의 시간이 3인 제 1주기적 태스크(201)에 가장 높은 우선순위 H를 할당하고, 마감시간까지의 시간이 4인 주기적 태스크(402)에 중간 우선순위 M을 할당하고, 마감시간까지의 시간이 5인 마감시간이 할당된 비주기적 태스크(203)에 가장 낮은 우선순위 L를 할당한다.Thefirst scheduling unit 103 receives the first periodic task 201, the second periodic task 202, and the aperiodic task 203 to which the deadline is assigned, assigns priorities, and sequentially assigns the priorities. Run the update. According to an embodiment of the present invention, the first periodic task 201 has a deadline of 3, an execution time of 1, and the second periodic task 202 has a deadline of 4 and an execution time of 2, and calculates a deadline. When the deadline of the non-periodic task assigned the deadline by theunit 102 is 5 and the execution time is 2, thescheduling unit 105 assigns the highest priority to the task having the smallest deadline. More specifically, thescheduling unit 105 allocates the highest priority H to the first periodic task 201 having the time from the time t0 to the deadline 3, and the periodic task 402 having the time until the deadline 4. ) Assigns the middle priority M, and the lowest priority L to the non-periodic task 203 that is assigned a deadline with a time to deadline of five.

먼저, 제 1스케줄링부(103)는 시점 t0에서 가장 높은 우선순위 H가 할당된 제 1 주기적 태스크(201)의 업데이트를 실행한다. 제 1 주기적 태스크(201)의 실행시간은 1이기 때문에, 제 1 주기적 태스크(201)의 업데이트는 시점 t1에서 종료된다. 제 1스케줄링부(103)는 시점 t1에서 다음 우선순위를 가진 제 2 주기적 태스크(202)의 업데이트를 실행한다. 제 2 주기적 태스크(202)의 실행시간은 2이기 때문에, 제 2 주기적 태스크(202)의 업데이트는 시점 t3에서 종료된다. 제 1스케줄링부(103)는 시점 t3에서 다음 우선순위를 가지는 마감시간이 할당된 비주기적 태스크(203)의 업데이트를 실행한다. 마감시간이 할당된 비주기적 태스크(203)의 실행시간은 2이기 때문에, 마감시간이 할당된 비주기적 태스크(203)의 업데이트는 시점t5에서 종료된다.First, thefirst scheduling unit 103 executes an update of the first periodic task 201 to which the highest priority H is assigned at the time t0. Since the execution time of the first periodic task 201 is 1, the update of the first periodic task 201 ends at time t1. Thefirst scheduling unit 103 executes the update of the second periodic task 202 having the next priority at the time point t1. Since the execution time of the second periodic task 202 is two, the update of the second periodic task 202 ends at time t3. Thefirst scheduling unit 103 executes an update of the aperiodic task 203 to which the deadline having the next priority is assigned at the time point t3. Since the execution time of the aperiodic task 203 to which the deadline is assigned is two, the update of the aperiodic task 203 to which the deadline is assigned is terminated at time t5.

그런 다음, 제 1스케줄링부(103)는 업데이트된 태스크와 업데이트되지 않은 태스크를 스케줄링하여 우선순위를 할당하고, 우선순위에 따라 순차적으로 업데이트를 실행한다. 본 발명의 실시예에 따르면, 업데이트된 제 1주기적 태스크(201)는 마감시간이 3이고, 실행시간이 1이고, 업데이트된 제 2주기적 태스크(402)는 마감시간이 4이고 실행시간이 2인 경우, 스케줄링부(105)는 시점 t5에서 업데이트된 제 1주기적 태스크(201)에 마감시간까지의 시간이 3인 업데이트된 제 1주기적 태스크(201)에 가장 높은 우선순위 H를 할당하고, 업데이트된 제 2주기적 태스크(401)에 다음 우선순위 M를 할당한다.Then, thefirst scheduling unit 103 schedules the updated task and the non-updated task, assigns priorities, and sequentially executes the updates according to the priorities. According to an embodiment of the present invention, the updated first periodic task 201 has a deadline of 3, an execution time of 1, and the updated second periodic task 402 has a deadline of 4 and an execution time of 2 In this case, thescheduling unit 105 allocates the highest priority H to the updated first periodic task 201 having the time until the deadline 3 in the updated first periodic task 201 at time t5, The next priority M is assigned to the second periodic task 401.

먼저, 제 1스케줄링부(103)는 시점 t5에서 가장 높은 우선순위 H가 할당된 업데이트된 제 1 주기적 태스크(201)의 업데이트를 실행한다. 업데이트된 제 1 주기적 태스크(201)의 실행시간이 1이기 때문에, 업데이트된 제 1 주기적 태스크(201)의 업데이트는 시점 t6에서 종료된다. 제 1스케줄링부(103)는 시점 t6에서 다음 우선순위를 가지는 업데이트된 제 2주기적 태스크(402)의 업데이트를 실행한다. 업데이트된 제 2주기적 태스크(402)의 실행시간은 2이기 때문에, 업데이트된 제 2주기적 태스크(402)의 업데이트는 시점t8에서 종료된다. 이와 같은 과정을 통해서 제 1스케줄링부(103)는 실행중인 태스크의 업데이트를 수행할 수 있다. 그러면 이하에서는 도3을 참조하여 본 발명의 실시예에 따른 실시간 시스템에서 소프트웨어 업데이트 장치가 인터넷 기반 실시간 비디오 스트리밍 시스템에 적용된 예를 보다 구체적으로 설명하기로 한다.First, thefirst scheduling unit 103 performs an update of the updated first periodic task 201 to which the highest priority H is assigned at time t5. Since the execution time of the updated first periodic task 201 is 1, the update of the updated first periodic task 201 ends at time t6. Thefirst scheduling unit 103 executes the update of the updated second periodic task 402 having the next priority at time t6. Since the execution time of the updated second periodic task 402 is two, the update of the updated second periodic task 402 ends at time t8. Through this process, thefirst scheduling unit 103 may update the running task. Next, an example in which the software update apparatus is applied to the internet-based real-time video streaming system in the real-time system according to an embodiment of the present invention will be described in more detail with reference to FIG. 3.

도 3은 본 발명의 실시예에 따른 실시간 시스템에서 소프트웨어 업데이트 장치가 인터넷 기반 실시간 비디오 스트리밍 시스템에 적용된 경우의 예시도이다.3 is an exemplary diagram of a case where a software update device is applied to an internet-based real-time video streaming system in a real-time system according to an embodiment of the present invention.

도 3을 참조하면, 인터넷 기반 실시간 비디오 스트리밍 시스템은 복수의 사용자들(301_1, 301_2, ..., 301_N), 통신망(302), 웹 서버(303) 및 복수의 비디오 스트리밍 서버(304_1, 304_2, ..., 304_N)를 포함하여 구성될 수 있다. 본 발명의 실시예에 따르면, 복수의 사용자들(301_1, 301_2, ..., 301_N)과 웹 서버(303)는 통신망(302)를 통해서 유선 또는 무선으로 연결될 수 있으며, 통신망은 유선과 무선으로 펌웨어 파일을 송수신할 수 있는 모든 통신망을 지칭하는 것으로, 와이브로(Wibro), 공중 전화망, 이동 통신망, 예를 들어 코드 분할 다중 접속(CDMA: Code Division Multiple Access, 이하, ‘CDMA'라 칭하기로 함.), 직교 주파수 분할(OFDM: Orthogonal Frequency Division Multiplexing)을 포함하며, 이에 한정되는 것은 아니다.Referring to FIG. 3, the Internet-based real-time video streaming system includes a plurality of users 301_1, 301_2,..., 301_N, acommunication network 302, aweb server 303, and a plurality of video streaming servers 304_1, 304_2, ..., 304_N). According to an embodiment of the present invention, the plurality of users 301_1, 301_2,..., 301_N and theweb server 303 may be connected by wire or wirelessly through thecommunication network 302, and the communication network may be wired or wirelessly. Refers to all communication networks capable of transmitting and receiving firmware files, such as Wibro, public telephone networks, mobile communication networks, for example, Code Division Multiple Access (CDMA). ), Orthogonal frequency division multiplexing (OFDM), but is not limited thereto.

또한, 본 발명의 실시예에 따르면, 웹 서버(303)와 비디오 스트리밍 서버(304_1, 304_2, ..., 304_N)는 통신망(미도시)를 통해서 유선 또는 무선으로 연결될 수 있으며, 통신망은 유선망, 예를 들어 브로드밴드 IP망일 수 있으며, 복수의 사용자들(301_1, 301_2, ..., 301_N)과 웹 서버를 연결하는 통신망(302)와 같은 종류일 수도 있고, 비디오 스트리밍 서버(304_1, 304_2, ..., 304_N)는 본 발명의 실시예에 따른 실시간 시스템에서 소프트웨어 업데이트 장치가 적용되었다.Further, according to an embodiment of the present invention, theweb server 303 and the video streaming server 304_1, 304_2, ..., 304_N may be connected by wire or wirelessly through a communication network (not shown), and the communication network may be a wired network, For example, it may be a broadband IP network, a type such as acommunication network 302 connecting a plurality of users 301_1, 301_2, ..., 301_N and a web server, and a video streaming server 304_1, 304_2,. ..., 304_N) has been applied to the software update apparatus in a real-time system according to an embodiment of the present invention.

복수의 사용자들(301_1, 301_2, ..., 301_N)은 주문형 비디오(Video On Demand)서비스를 이용하기 위해 통신망(302)를 통해 웹 서버(303)에 접속하고, 웹 서버(303)로부터 제공되는 비디오 스트림을 수신한다. 웹 서버(303)는 비디오 스트리밍 서버(304_1, 304_2, ..., 304_N)로부터 제공되는 비디오 스트림을 수신하여 복수의 사용자들(301_1, 301_2, ..., 301_N)에게 제공한다. 비디오 스트리밍 서버(304_1, 304_2, ..., 304_N)가 웹 서버(303)로 비디오 스트림을 제공하는 중 동적 업데이트가 요구될 수 있다.The plurality of users 301_1, 301_2,..., 301_N connect to theweb server 303 through thecommunication network 302 and use it from theweb server 303 to use a video on demand service. Receive a video stream. Theweb server 303 receives the video streams provided from the video streaming servers 304_1, 304_2,..., 304_N and provides them to the plurality of users 301_1, 301_2,..., 301_N. Dynamic updating may be required while the video streaming servers 304_1, 304_2,..., 304_N provide the video stream to theweb server 303.

비디오 스트림을 제공하는 중 동적 업데이트가 요구된 경우, 비디오 스트리밍 서버(304_1, 304_2, ..., 304_N)는 업데이트 대상이되는 프로그램으로부터 복수개의 주기적 태스크 및 비주기적 태스크를 수신하고, 마감시간이 할당되지 않은 비주기적 태스크의 마감시간을 계산한 후, 수신된 복수개의 주기적 태스크 및 마감시간이 할당된 비주기적 태스크를 스케줄링한다. 본 발명의 실시예에 따르면, 수신된 복수개의 주기적 태스크 및 마감시간이 할당된 비주기적 태스크를의 마감시간을 고려하여 마감시간이 가장 가까운 태스크에 가장 높은우선순위를 부여하고, 마감시간까지 남은 시간이 상대적으로 길면 상대적으로 낮은 우선순위를 부여하여 스케줄링하여 순차적으로 업데이트를 수행한다.If a dynamic update is required while providing the video stream, the video streaming server 304_1, 304_2, ..., 304_N receives a plurality of periodic tasks and aperiodic tasks from the program to be updated, and a deadline is assigned. After calculating the deadlines of the non-periodic tasks that are not, the received plurality of periodic tasks and the non-periodic tasks to which the deadlines are assigned are scheduled. According to an embodiment of the present invention, the highest priority is given to the task having the closest deadline in consideration of the deadline of the received plurality of periodic tasks and the non-periodic task to which the deadline is assigned, and the remaining time until the deadline. If it is relatively long, it is scheduled by giving a relatively low priority to update sequentially.

비디오 스트리밍 서버(304_1, 304_2, ..., 304_N)는 업데이트를 실행한 후에 업데이트 전 모드에서 업데이트 후 모드로의 변경이 일어나는 경우, 업데이트 전 모드에서 보장되었던 태스크들의 스케줄이 업데이트 전 모드에서도 위반됨이 없이 계속 유지하기 위해서 오프셋을 계산한다. 그런 다음, 비디오 스트리밍 서버(304_1, 304_2, ..., 304_N)는 주기적 태스크와 업데이트된 태스크를 스케줄링하여 웹 서버(303)로 제공한다. 그러면 이하에서는 도4를 참조하여 본 발명의 실시예에 따른 실시간 시스템에서 소프트웨어 업데이트 방법을 보다 구체적으로 설명하기로 한다.If the video streaming server 304_1, 304_2, ..., 304_N performs an update and then changes from the pre-update mode to the post-update mode, the scheduled tasks in the pre-update mode are violated even in the pre-update mode. To keep it without this, we compute the offset. Then, the video streaming server 304_1, 304_2,..., 304_N schedules the periodic task and the updated task to provide it to theweb server 303. Next, a software update method in a real-time system according to an embodiment of the present invention will be described in more detail with reference to FIG. 4.

도 4는 본 발명의 실시예에 따른 실시간 시스템에서 소프트웨어 업데이트 방법을 설명하기 위한 흐름도이다.4 is a flowchart illustrating a software update method in a real-time system according to an embodiment of the present invention.

도 4를 참조하면, 소프트웨어 업데이트 장치는 업데이트 대상이되는 프로그램으로부터 복수개의 주기적 태스크 및 비주기적 태스크를 수신한다(S401). 여기서, 주기적 태스크는 일정한 시간 간격을 가지고 태스크 실행이 일어나는 태스크로서 마감시간 이전에 종료되어야만 하는 태스크이고, 비주기적 태스크는 일정하지 않은 시간 간격을 가지고 태스크 실행이 일어나는 태스크로서 마감시간을 가지고 있지 않다. 또한, 마감시간은 태스크들이 처리되기 위해 발생하는 시작시간부터 완료시간까지를 의미한다.Referring to FIG. 4, the software update apparatus receives a plurality of periodic tasks and aperiodic tasks from a program to be updated (S401). Here, the periodic task is a task in which task execution occurs at regular time intervals and must be terminated before the deadline time, and the non-periodic task has a dead time as task in which task execution occurs at irregular time intervals. In addition, the deadline refers to the start time to completion time that occurs for the task to be processed.

주기적 태스크 및 비주기적 태스크를 수신한 소프트웨어 업데이트 장치는 마감시간이 할당되지 않은 비주기적 태스크의 마감시간을 계산한다(S402). 본 발명의 일 실시예에 따르면, 마감시간 계산부(102)는 TBS(Total Bandwidth Server)알고리즘을 이용해서 마감시간을 계산하며, TBS알고리즘은 다른 비주기적 태스크 처리 알고리즘에 비해 계산 복잡도가 O(1)로 매우 낮고, 비주기적 태스크들의 응답 시간도 빠르다.After receiving the periodic task and the non-periodic task, the software update apparatus calculates the dead time of the non-periodic task to which the deadline is not assigned (S402). According to one embodiment of the invention, thedeadline calculation unit 102 calculates the deadline using a total bandwidth server (TBS) algorithm, the TBS algorithm has a computational complexity of O (1) compared to other aperiodic task processing algorithm Very low, and the response time of aperiodic tasks is fast.

마감시간을 계산한 소프트웨어 업데이트 장치는 수신된 주기적 태스크 중 업데이트 될 인스턴스를 선택하고(S403), 현재 업데이트를 위하여 스케줄링된 태스크와 선택된 태스크를 스케줄링한다(S404). 본 발명의 실시예에 따르면, 소프트웨어 업데이트 장치는 EDF 알고리즘을 이용해서 현재 스케줄링된 태스크와 선택된 태스크의 마감시간을 비교하여 가장 작은 마감시간을 가진 태스크에 가장 높은 우선순위를 할당하고, 우선순위에 따라 업데이트를 실행한다.After calculating the deadline, the software update apparatus selects an instance to be updated among the received periodic tasks (S403), and schedules the scheduled task and the selected task for the current update (S404). According to an embodiment of the present invention, the software update apparatus compares the deadlines of the currently scheduled task and the selected task by using the EDF algorithm, and assigns the highest priority to the task having the smallest deadline, according to the priority. Run the update.

본 발명의 실시예에 따르면, 제 1 주기적 태스크의 마감시간이 3이고, 제 2 주기적 태스크의 마감시간이 4이고, 제 3 주기적 태스크의 마감시간이 1인 경우, 소프트웨어 업데이트 장치는 마감시간까지의 시간이 1인 제 3 주기적 태스크에 가장 높은 우선순위 H를 할당하고, 마감시간까지의 시간이 3인 제 1 주기적 태스크에 중간 우선순위 M을 할당하고, 마감시간까지의 시간이 4인 제 2 주기적 태스크에 가장 낮은 우선순위 L를 할당하고, 우선순위에 따라 업데이트를 실행한다.According to an exemplary embodiment of the present invention, when the deadline of the first periodic task is 3, the deadline of the second periodic task is 4, and the deadline of the third periodic task is 1, the software update device is configured to the deadline. Allocates the highest priority H to a third periodic task with a time of 1, assigns an intermediate priority M to the first periodic task with a time of 3, and a second periodic with a time to 4 Assign the lowest priority L to the task, and execute the update according to the priority.

업데이트 전 모드에서 업데이트 후 모드로 모드 변경을 수행하기 위해 오프셋을 계산한다(S405). 소프트웨어 업데이트 장치는 EDF 알고리즘을 통해 업데이트된 태스크와 나머지 태스크에 대한 스케줄링을 수행하여 업데이트를 한다(S406).The offset is calculated to perform the mode change from the pre-update mode to the post-update mode (S405). The software update apparatus updates by performing scheduling for the updated task and the remaining tasks through the EDF algorithm (S406).

상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.It will be apparent to those skilled in the art that various modifications and variations can be made in the present invention without departing from the spirit or scope of the present invention as defined by the following claims It can be understood that

101: 수신부102: 마감시간 계산부
103: 제 1 스케줄링부104: 오프셋 계산부
105: 제 2 스케줄링부107: 제어부
108: 저장부109: 출력부
101: receiver 102: deadline calculation unit
103: first scheduling unit 104: offset calculator
105: second scheduling unit 107: control unit
108: storage unit 109: output unit

Claims (10)

Translated fromKorean
실시간 시스템에 대한 소프트웨어 업데이트 장치에 있어서,
수신된 복수개의 주기적 태스크 및 비주기적 태스크 중 상기 비주기적 태스크의 마감시간을 계산하고, 상기 계산된 마감시간을 비주기적 태스크에 할당하는 마감시간 계산부;
상기 주기적 태스크 및 마간시간이 할당된 비주기적 태스크를 스케줄링하여 업데이트를 수행하는 제 1 스케줄링부;
업데이트 전 모드에서 업데이트 후 모드로의 모드 변경을 위한 시간 간격을 계산하는 오프셋 계산부; 및
상기 스케줄링된 주기적 태스크 및 상기 업데이트된 태스크를 스케줄링하고, 상기 계산된 오프셋에 기초하여 태스크를 출력하는 제 2 스케줄링부를 포함하는 소프트웨어 업데이트 장치.
In the software update device for a real-time system,
A dead time calculator configured to calculate a dead time of the aperiodic task among a plurality of received periodic tasks and aperiodic tasks, and assign the calculated dead time to the aperiodic task;
A first scheduling unit configured to perform an update by scheduling the aperiodic task to which the periodic task and the dead time are allocated;
An offset calculator configured to calculate a time interval for changing the mode from the pre-update mode to the post-update mode; And
And a second scheduling unit configured to schedule the scheduled periodic task and the updated task and output a task based on the calculated offset.
제 1 항에 있어서,
상기 계산된 마감시간, 오프셋, 및 스케줄링된 태스크를 저장하는 저장부를 더 포함하는 것을 특징으로 하는 소프트웨어 업데이트 장치.
The method of claim 1,
And a storage unit for storing the calculated deadline, offset, and scheduled task.
제 1 항에 있어서,
상기 계산된 마감시간, 오프셋, 및 스케줄링된 태스크가 저장부에 저장되도록 제어하는 제어부를 더 포함하는 것을 특징으로 하는 소프트웨어 업데이트 장치.
The method of claim 1,
And a control unit for controlling the calculated deadline, offset, and scheduled task to be stored in a storage unit.
제 1 항에 있어서, 상기 제 1 스케줄링부는,
마감시간이 짧은 태스크를 먼저 처리하고, 마감시간이 긴 태스크는 상기 마감시간이 짧은 태스크를 처리한 후에 처리하여 복수개의 태스크들의 스케줄링을 수행하는 것을 특징으로 하는 소프트웨어 업데이트 장치.
The method of claim 1, wherein the first scheduling unit,
And processing a task having a short deadline first, and processing a task having a short deadline after processing the task having a short deadline to perform scheduling of a plurality of tasks.
제 1 항에 있어서, 상기 소프트웨어 업데이트 장치는,
비디오 스트리임 시스템에 적용되는 것을 특징으로 하는 소프트웨어 업데이트 장치.
The method of claim 1, wherein the software update device,
Software update apparatus, characterized in that applied to the video stream system.
실시간 시스템에 대한 소프트웨어 업데이트 방법에 있어서,
업데이트 대상이되는 프로그램으로부터 복수개의 주기적 태스크 및 비주기적 태스크를 수신하는 단계;
상기 수신된 비주기적 태스크의 마감시간을 계산하고, 상기 계산된 마감시간을 비주기적 태스크에 할당하는 단계;
상기 주기적 태스크 및 마간시간이 할당된 비주기적 태스크를 스케줄링하여 업데이트를 수행하는 단계;
업데이트 전 모드에서 업데이트 후 모드로의 모드 변경을 위한 시간 간격을 계산하는 단계; 및
상기 스케줄링된 주기적 태스크 및 상기 업데이트된 태스크를 스케줄링하고, 상기 계산된 오프셋에 기초하여 태스크를 출력하는 단계를 포함하는 소프트웨어 업데이트 방법.
In the software update method for a real-time system,
Receiving a plurality of periodic tasks and aperiodic tasks from a program to be updated;
Calculating a deadline of the received aperiodic task and assigning the calculated deadline to the aperiodic task;
Scheduling the periodic task and the non-periodic task to which the dead time is assigned to perform an update;
Calculating a time interval for mode change from the pre-update mode to the post-update mode; And
Scheduling the scheduled periodic task and the updated task and outputting a task based on the calculated offset.
제 6 항에 있어서,
상기 계산된 마감시간, 오프셋, 및 스케줄링된 태스크를 저장하는 단계를 더 포함하는 것을 특징으로 하는 소프트웨어 업데이트 방법.
The method according to claim 6,
Storing the calculated deadline, offset, and scheduled task.
제 6 항에 있어서,
상기 계산된 마감시간, 오프셋, 및 스케줄링된 태스크가 저장부에 저장되도록 제어하는 단계를 더 포함하는 것을 특징으로 하는 소프트웨어 업데이트 방법.
The method according to claim 6,
And controlling the calculated deadline, offset, and scheduled task to be stored in a storage.
제 6 항에 있어서, 스케줄링하여 업데이트를 수행하는 단계는,
마감시간이 짧은 태스크를 먼저 처리하고, 마감시간이 긴 태스크는 상기 마감시간이 짧은 태스크를 처리한 후에 처리하여 복수개의 태스크들의 스케줄링을 수행하는 것을 특징으로 하는 소프트웨어 업데이트 방법.
The method of claim 6, wherein the scheduling to perform the update,
And processing a short deadline task first and processing a long deadline task after processing the short deadline task to perform scheduling of a plurality of tasks.
제 6 항에 있어서, 상기 소프트웨어 업데이트 방법은,
비디오 스트리임 시스템에 적용되는 것을 특징으로 하는 소프트웨어 업데이트 방법.

The method of claim 6, wherein the software update method,
Software update method, characterized in that applied to the video stream system.

KR1020100108247A2010-11-022010-11-02Method of updating software in real-time system and apparatus for the sameExpired - Fee RelatedKR101349603B1 (en)

Priority Applications (1)

Application NumberPriority DateFiling DateTitle
KR1020100108247AKR101349603B1 (en)2010-11-022010-11-02Method of updating software in real-time system and apparatus for the same

Applications Claiming Priority (1)

Application NumberPriority DateFiling DateTitle
KR1020100108247AKR101349603B1 (en)2010-11-022010-11-02Method of updating software in real-time system and apparatus for the same

Publications (2)

Publication NumberPublication Date
KR20120047352A KR20120047352A (en)2012-05-14
KR101349603B1true KR101349603B1 (en)2014-01-15

Family

ID=46266097

Family Applications (1)

Application NumberTitlePriority DateFiling Date
KR1020100108247AExpired - Fee RelatedKR101349603B1 (en)2010-11-022010-11-02Method of updating software in real-time system and apparatus for the same

Country Status (1)

CountryLink
KR (1)KR101349603B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
KR20200116519A (en)*2018-02-122020-10-12후아웨이 테크놀러지 컴퍼니 리미티드 Software update management method, server, terminal, device, and storage medium

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
KR101907418B1 (en)*2014-07-012018-10-12한국전자통신연구원Dynamic module, Method and apparatus for dynamic upgrade having the same
US10255947B2 (en)*2015-08-312019-04-09Netflix, Inc.Mitigating drift in audiovisual assets
KR102307445B1 (en)*2020-01-222021-09-30단국대학교 산학협력단Device and Method for Schedulability Verification of Security Reinforcement Techniques in Real time Devices

Citations (3)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US20020100035A1 (en)2001-01-232002-07-25Kenyon Jeremy A.Asynchronous software update
JP2006309345A (en)2005-04-262006-11-09Toshiba Corp Parallel type supervisory control system and method for updating firmware of parallel type controller of the same system
KR20070071546A (en)*2005-12-302007-07-04주식회사 팬택 Parallel download of program files of mobile communication terminal

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
US20020100035A1 (en)2001-01-232002-07-25Kenyon Jeremy A.Asynchronous software update
JP2006309345A (en)2005-04-262006-11-09Toshiba Corp Parallel type supervisory control system and method for updating firmware of parallel type controller of the same system
KR20070071546A (en)*2005-12-302007-07-04주식회사 팬택 Parallel download of program files of mobile communication terminal

Cited By (4)

* Cited by examiner, † Cited by third party
Publication numberPriority datePublication dateAssigneeTitle
KR20200116519A (en)*2018-02-122020-10-12후아웨이 테크놀러지 컴퍼니 리미티드 Software update management method, server, terminal, device, and storage medium
KR102441236B1 (en)*2018-02-122022-09-06화웨이 클라우드 컴퓨팅 테크놀러지 컴퍼니 리미티드 Software update management method, server, terminal, device, and storage medium
US11645063B2 (en)2018-02-122023-05-09Huawei Cloud Computing Technologies Co., Ltd.Software upgrade management method, server, terminal, apparatus, and storage medium
US11809855B2 (en)2018-02-122023-11-07Huawei Cloud Computing Technologies Co., Ltd.Software upgrade management method, server, terminal, apparatus, and storage medium

Also Published As

Publication numberPublication date
KR20120047352A (en)2012-05-14

Similar Documents

PublicationPublication DateTitle
US9916183B2 (en)Scheduling mapreduce jobs in a cluster of dynamically available servers
Jung et al.Synchronous parallel processing of big-data analytics services to optimize performance in federated clouds
Hieu et al.Virtual machine consolidation with multiple usage prediction for energy-efficient cloud data centers
CN113448743B (en)Method, electronic device and computer program product for task processing
Ghazalie et al.Aperiodic servers in a deadline scheduling environment
Tan et al.Coupling task progress for mapreduce resource-aware scheduling
US8843929B1 (en)Scheduling in computer clusters
CN106775977B (en)Task scheduling method, device and system
US20110173038A1 (en)Constraint-conscious optimal scheduling for cloud infrastructures
CN110209484B (en) Trusted cloud task scheduling system and method based on multi-cloud and security mapping
US20080066070A1 (en)Method and system for the dynamic scheduling of jobs in a computing system
US20140053153A1 (en)Apparatus, system, method and computer-readable medium for scheduling
CN111404992A (en)Tenant-controlled cloud updates
Casini et al.Semi-partitioned scheduling of dynamic real-time workload: A practical approach based on analysis-driven load balancing
US20180101404A1 (en)Resource and latency estimation-based scheduling
KR101349603B1 (en)Method of updating software in real-time system and apparatus for the same
CN111026519A (en)Distributed task priority scheduling method and system and storage medium
KR20140117905A (en)Virtual machine allcoation of cloud service for fuzzy logic driven virtual machine resource evaluation apparatus and method
Boloor et al.Dynamic request allocation and scheduling for context aware applications subject to a percentile response time SLA in a distributed cloud
Kovalchuk et al.Deadline-driven resource management within urgent computing cyberinfrastructure
CN113535346B (en)Method, device, equipment and computer storage medium for adjusting thread number
US10503548B2 (en)Resource and latency estimation-based scheduling in a distributed computing environment
Sundar et al.Communication augmented latest possible scheduling for cloud computing with delay constraint and task dependency
US9055086B2 (en)System and method for managing data transfer from a data center including bandwidth limits and a flex parameter indicating bandwidth variation between data transfer periods
US8140552B2 (en)Method and apparatus for optimizing lead time for service provisioning

Legal Events

DateCodeTitleDescription
A201Request for examination
PA0109Patent application

St.27 status event code:A-0-1-A10-A12-nap-PA0109

PA0201Request for examination

St.27 status event code:A-1-2-D10-D11-exm-PA0201

PG1501Laying open of application

St.27 status event code:A-1-1-Q10-Q12-nap-PG1501

E701Decision to grant or registration of patent right
PE0701Decision of registration

St.27 status event code:A-1-2-D10-D22-exm-PE0701

GRNTWritten decision to grant
PR0701Registration of establishment

St.27 status event code:A-2-4-F10-F11-exm-PR0701

PR1002Payment of registration fee

St.27 status event code:A-2-2-U10-U11-oth-PR1002

Fee payment year number:1

PG1601Publication of registration

St.27 status event code:A-4-4-Q10-Q13-nap-PG1601

PN2301Change of applicant

St.27 status event code:A-5-5-R10-R13-asn-PN2301

St.27 status event code:A-5-5-R10-R11-asn-PN2301

PN2301Change of applicant

St.27 status event code:A-5-5-R10-R11-asn-PN2301

PN2301Change of applicant

St.27 status event code:A-5-5-R10-R14-asn-PN2301

FPAYAnnual fee payment

Payment date:20170403

Year of fee payment:4

PR1001Payment of annual fee

St.27 status event code:A-4-4-U10-U11-oth-PR1001

Fee payment year number:4

P14-X000Amendment of ip right document requested

St.27 status event code:A-5-5-P10-P14-nap-X000

P16-X000Ip right document amended

St.27 status event code:A-5-5-P10-P16-nap-X000

Q16-X000A copy of ip right certificate issued

St.27 status event code:A-4-4-Q10-Q16-nap-X000

R18-X000Changes to party contact information recorded

St.27 status event code:A-5-5-R10-R18-oth-X000

FPAYAnnual fee payment

Payment date:20180108

Year of fee payment:5

PR1001Payment of annual fee

St.27 status event code:A-4-4-U10-U11-oth-PR1001

Fee payment year number:5

FPAYAnnual fee payment

Payment date:20190107

Year of fee payment:6

PR1001Payment of annual fee

St.27 status event code:A-4-4-U10-U11-oth-PR1001

Fee payment year number:6

FPAYAnnual fee payment

Payment date:20200103

Year of fee payment:7

PR1001Payment of annual fee

St.27 status event code:A-4-4-U10-U11-oth-PR1001

Fee payment year number:7

PR1001Payment of annual fee

St.27 status event code:A-4-4-U10-U11-oth-PR1001

Fee payment year number:8

PR1001Payment of annual fee

St.27 status event code:A-4-4-U10-U11-oth-PR1001

Fee payment year number:9

PC1903Unpaid annual fee

St.27 status event code:A-4-4-U10-U13-oth-PC1903

Not in force date:20230104

Payment event data comment text:Termination Category : DEFAULT_OF_REGISTRATION_FEE

PC1903Unpaid annual fee

St.27 status event code:N-4-6-H10-H13-oth-PC1903

Ip right cessation event data comment text:Termination Category : DEFAULT_OF_REGISTRATION_FEE

Not in force date:20230104


[8]ページ先頭

©2009-2025 Movatter.jp