



본 발명은 실시간 시스템에서 소프트웨어 업데이트 방법 및 이를 위한 장치에 관한 것으로, 더욱 상세하게는 실시간 시스템에서 실행중인 소프트웨어를 동적으로 업데이트 하는 방법 및 이를 위한 장치에 관한 것이다.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 the
 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 a
수신부(101)는 업데이트 대상이되는 프로그램으로부터 복수개의 주기적 태스크 및 비주기적 태스크를 수신한다. 마감시간 계산부(102)는 마감시간이 할당되지 않은 비주기적 태스크의 마감시간을 계산한다.  본 발명의 일 실시예에 따르면, 마감시간 계산부(102)는 TBS(Total Bandwidth Server, 이하 'TBS'라 칭하기로 함.)알고리즘을 이용해서 마감시간을 계산하며, TBS알고리즘은 다른 비주기적 태스크 처리 알고리즘에 비해 계산 복잡도가 O(1)로 매우 낮고, 비주기적 태스크들의 응답 시간도 빠르다.The
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.
<수학식 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)는 수신된 복수개의 주기적 태스크 및 마감시간이 할당된 비주기적 태스크를의 마감시간을 고려하여 마감시간이 가장 가까운 태스크에 가장 높은 우선순위를 부여하고, 마감시간까지 남은 시간이 상대적으로 길면 상대적으로 낮은 우선순위를 부여한다.The
오프셋 계산부(104)는 업데이트 전 모드에서 업데이트 후 모드로 모드 변경을 수행하기 위해 오프셋을 계산한다. 여기서, 오프셋은 시간 간격 (Time Interval)으로,업데이트 전 모드에서 업데이트 후 모드로 변경이 일어나는 경우, 업데이트 전 모드에서 보장되었던 태스크들의 스케줄이 업데이트 전 모드에서도 위반됨이 없이 계속 유지하기 위해서 필요하다. 다시 말해, 업데이트 전 모드에서 모든 태스크들이 마감시간을 만족했다면, 업데이트 후 모드에서도 모든 태스크들은 마감시간을 만족해야 하므로, 오프셋 계산부(104)는 오프셋을 계산할 때, 임의의 시간을 할당할 수도 있다.The
제 2스케줄링부(105)는 주기적 태스크와 제 1 스케줄링부(103)에서 스케줄링되어 업데이트된 태스크를 스케줄링 한다. 여기서, 제 2 스케줄링부(105)가 주기적 태스크와 제 1 스케줄링부(103)에서 스케줄링되어 업데이트된 태스크 스케줄링하는 과정은 제 1 스케줄링부(103)의 과정과 동일하므로 자세한 설명은 생략하기로 한다.The
제어부(107)는 마감시간 계산부(102)에의해 계산된 비주기적 태스크의 마감시간이 저장부(108)에 저장되도록 제어하며, 오프셋 계산부(104)에 의해 계산된 업데이트 전 모드에서 업데이트 후 모드로 모드 변경을 위한 오프셋이 저장부(108)에 저장되도록 제어하며, 스케줄링부(105)에의해 스케줄링된 태스크들이 저장부(108)에 저장되도록 제어한다.The
저장부(108)는 도 1에는 도시하지 않았지만 비주기적 태스크의 마감시간을 저장하는 제 1 저장부, 업데이트 전 모드에서 업데이트 후 모드로 모드 변경을 위한 오프셋을 저장하는 제 2 저장부, 스케줄링된 태스크들을 저장하는 제 3 저장부를 포함하여 구성될 수 있다. 저장부(108)는 제어부(107)의 제어에 의해 마감시간 계산부(102)에서 계산된 비주기적 태스크의 마감시간을 제 1 저장부에 저장하고, 오프셋 계산부(104)에서 계산된 업데이트 전 모드에서 업데이트 후 모드로 모드 변경을 수행하기 위한 오프셋을 제 2 저장부에 저장하고, 스케줄링부(105)에서 계산된 스케줄링된 태스크들을 제 3 저장부에 저장한다. 그러면 이하에서는, 도 2를 참조하여 본 발명의 실시예에 따른 실시간 시스템에서 소프트웨어 업데이트 장치의 제 1스케줄링부(103)가 수신된 복수개의 주기적 태스크 및 마감시간이 할당된 비주기적 태스크를 스케줄링하여 업데이트하는 과정을 보다 구체적으로 설명하기로 한다.Although not shown in FIG. 1, the
도 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 the
도 2를 참조하면, 수신부(101)는 업데이트 대상이되는 프로그램으로부터 복수개의 주기적 태스크 및 비주기적 태스크를 수신한다. 마감시간 계산부(102)는 마감시간이 할당되지 않은 비주기적 태스크의 마감시간을 계산한다. 오프셋 계산부(104)는 업데이트 전 모드에서 업데이트 후 모드로 모드 변경을 수행하기 위해 오프셋을 계산한다.Referring to FIG. 2, the receiving
제 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를 할당한다.The
먼저, 제 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, the
그런 다음, 제 1스케줄링부(103)는 업데이트된 태스크와 업데이트되지 않은 태스크를 스케줄링하여 우선순위를 할당하고, 우선순위에 따라 순차적으로 업데이트를 실행한다. 본 발명의 실시예에 따르면, 업데이트된 제 1주기적 태스크(201)는 마감시간이 3이고, 실행시간이 1이고, 업데이트된 제 2주기적 태스크(402)는 마감시간이 4이고 실행시간이 2인 경우, 스케줄링부(105)는 시점 t5에서 업데이트된 제 1주기적 태스크(201)에 마감시간까지의 시간이 3인 업데이트된 제 1주기적 태스크(201)에 가장 높은 우선순위 H를 할당하고, 업데이트된 제 2주기적 태스크(401)에 다음 우선순위 M를 할당한다.Then, the
먼저, 제 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, the
도 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, a
또한, 본 발명의 실시예에 따르면, 웹 서버(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, the
복수의 사용자들(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 the
비디오 스트림을 제공하는 중 동적 업데이트가 요구된 경우, 비디오 스트리밍 서버(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 the
도 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, the
마감시간을 계산한 소프트웨어 업데이트 장치는 수신된 주기적 태스크 중 업데이트 될 인스턴스를 선택하고(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
| Application Number | Priority Date | Filing Date | Title | 
|---|---|---|---|
| KR1020100108247AKR101349603B1 (en) | 2010-11-02 | 2010-11-02 | Method of updating software in real-time system and apparatus for the same | 
| Application Number | Priority Date | Filing Date | Title | 
|---|---|---|---|
| KR1020100108247AKR101349603B1 (en) | 2010-11-02 | 2010-11-02 | Method of updating software in real-time system and apparatus for the same | 
| Publication Number | Publication Date | 
|---|---|
| KR20120047352A KR20120047352A (en) | 2012-05-14 | 
| KR101349603B1true KR101349603B1 (en) | 2014-01-15 | 
| Application Number | Title | Priority Date | Filing Date | 
|---|---|---|---|
| KR1020100108247AExpired - Fee RelatedKR101349603B1 (en) | 2010-11-02 | 2010-11-02 | Method of updating software in real-time system and apparatus for the same | 
| Country | Link | 
|---|---|
| KR (1) | KR101349603B1 (en) | 
| Publication number | Priority date | Publication date | Assignee | Title | 
|---|---|---|---|---|
| KR20200116519A (en)* | 2018-02-12 | 2020-10-12 | 후아웨이 테크놀러지 컴퍼니 리미티드 | Software update management method, server, terminal, device, and storage medium | 
| Publication number | Priority date | Publication date | Assignee | Title | 
|---|---|---|---|---|
| KR101907418B1 (en)* | 2014-07-01 | 2018-10-12 | 한국전자통신연구원 | Dynamic module, Method and apparatus for dynamic upgrade having the same | 
| US10255947B2 (en)* | 2015-08-31 | 2019-04-09 | Netflix, Inc. | Mitigating drift in audiovisual assets | 
| KR102307445B1 (en)* | 2020-01-22 | 2021-09-30 | 단국대학교 산학협력단 | Device and Method for Schedulability Verification of Security Reinforcement Techniques in Real time Devices | 
| Publication number | Priority date | Publication date | Assignee | Title | 
|---|---|---|---|---|
| US20020100035A1 (en) | 2001-01-23 | 2002-07-25 | Kenyon Jeremy A. | Asynchronous software update | 
| JP2006309345A (en) | 2005-04-26 | 2006-11-09 | Toshiba Corp | Parallel type supervisory control system and method for updating firmware of parallel type controller of the same system | 
| KR20070071546A (en)* | 2005-12-30 | 2007-07-04 | 주식회사 팬택 | Parallel download of program files of mobile communication terminal | 
| Publication number | Priority date | Publication date | Assignee | Title | 
|---|---|---|---|---|
| US20020100035A1 (en) | 2001-01-23 | 2002-07-25 | Kenyon Jeremy A. | Asynchronous software update | 
| JP2006309345A (en) | 2005-04-26 | 2006-11-09 | Toshiba Corp | Parallel type supervisory control system and method for updating firmware of parallel type controller of the same system | 
| KR20070071546A (en)* | 2005-12-30 | 2007-07-04 | 주식회사 팬택 | Parallel download of program files of mobile communication terminal | 
| Publication number | Priority date | Publication date | Assignee | Title | 
|---|---|---|---|---|
| KR20200116519A (en)* | 2018-02-12 | 2020-10-12 | 후아웨이 테크놀러지 컴퍼니 리미티드 | Software update management method, server, terminal, device, and storage medium | 
| KR102441236B1 (en)* | 2018-02-12 | 2022-09-06 | 화웨이 클라우드 컴퓨팅 테크놀러지 컴퍼니 리미티드 | Software update management method, server, terminal, device, and storage medium | 
| US11645063B2 (en) | 2018-02-12 | 2023-05-09 | Huawei Cloud Computing Technologies Co., Ltd. | Software upgrade management method, server, terminal, apparatus, and storage medium | 
| US11809855B2 (en) | 2018-02-12 | 2023-11-07 | Huawei Cloud Computing Technologies Co., Ltd. | Software upgrade management method, server, terminal, apparatus, and storage medium | 
| Publication number | Publication date | 
|---|---|
| KR20120047352A (en) | 2012-05-14 | 
| Publication | Publication Date | Title | 
|---|---|---|
| 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 | 
| Date | Code | Title | Description | 
|---|---|---|---|
| A201 | Request for examination | ||
| PA0109 | Patent application | St.27 status event code:A-0-1-A10-A12-nap-PA0109 | |
| PA0201 | Request for examination | St.27 status event code:A-1-2-D10-D11-exm-PA0201 | |
| PG1501 | Laying open of application | St.27 status event code:A-1-1-Q10-Q12-nap-PG1501 | |
| E701 | Decision to grant or registration of patent right | ||
| PE0701 | Decision of registration | St.27 status event code:A-1-2-D10-D22-exm-PE0701 | |
| GRNT | Written decision to grant | ||
| PR0701 | Registration of establishment | St.27 status event code:A-2-4-F10-F11-exm-PR0701 | |
| PR1002 | Payment of registration fee | St.27 status event code:A-2-2-U10-U11-oth-PR1002 Fee payment year number:1 | |
| PG1601 | Publication of registration | St.27 status event code:A-4-4-Q10-Q13-nap-PG1601 | |
| PN2301 | Change 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 | |
| PN2301 | Change of applicant | St.27 status event code:A-5-5-R10-R11-asn-PN2301 | |
| PN2301 | Change of applicant | St.27 status event code:A-5-5-R10-R14-asn-PN2301 | |
| FPAY | Annual fee payment | Payment date:20170403 Year of fee payment:4 | |
| PR1001 | Payment of annual fee | St.27 status event code:A-4-4-U10-U11-oth-PR1001 Fee payment year number:4 | |
| P14-X000 | Amendment of ip right document requested | St.27 status event code:A-5-5-P10-P14-nap-X000 | |
| P16-X000 | Ip right document amended | St.27 status event code:A-5-5-P10-P16-nap-X000 | |
| Q16-X000 | A copy of ip right certificate issued | St.27 status event code:A-4-4-Q10-Q16-nap-X000 | |
| R18-X000 | Changes to party contact information recorded | St.27 status event code:A-5-5-R10-R18-oth-X000 | |
| FPAY | Annual fee payment | Payment date:20180108 Year of fee payment:5 | |
| PR1001 | Payment of annual fee | St.27 status event code:A-4-4-U10-U11-oth-PR1001 Fee payment year number:5 | |
| FPAY | Annual fee payment | Payment date:20190107 Year of fee payment:6 | |
| PR1001 | Payment of annual fee | St.27 status event code:A-4-4-U10-U11-oth-PR1001 Fee payment year number:6 | |
| FPAY | Annual fee payment | Payment date:20200103 Year of fee payment:7 | |
| PR1001 | Payment of annual fee | St.27 status event code:A-4-4-U10-U11-oth-PR1001 Fee payment year number:7 | |
| PR1001 | Payment of annual fee | St.27 status event code:A-4-4-U10-U11-oth-PR1001 Fee payment year number:8 | |
| PR1001 | Payment of annual fee | St.27 status event code:A-4-4-U10-U11-oth-PR1001 Fee payment year number:9 | |
| PC1903 | Unpaid 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 | |
| PC1903 | Unpaid 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 |