Abstract
DSU(Dynamic Software Update)는 실행 중인 프로세스를 종료하지 않고 새 버전으로 업데이트하는 기술이다. 이 기술을 이용하여 C 응용 프로그램을 업데이트 하는 DSU 시스템들이 소개 되었으며, 각 시스템의 업데이트 방식 및 주요 기능에는 큰 차이가 있다. 본 논문에서는 기존 DSU 시스템의 단점을 해결할 수 있는 새로운 DSU 시스템을 제안한다. 이 시스템은 C 응용 프로그램을 코드, 전역 데이터 및 지역 데이터로 나누어 이들 각 부분의 특성을 고려하여 업데이트 한다. 이 논문에서 제안한 방법은 리눅스 운영체제 상에서 구현 및 시험하였으며 기존 DSU 시스템과 비교하여 다음과 같은 장점을 가진다. 첫째, 구 버전의 코드는 메모리에서 해제되므로 코드 메모리의 낭비가 적다. 둘째, 새 버전에서 수정되지 않은 전역 데이터는 메모리에 새로 할당할 필요가 없으므로 전역 데이터 메모리의 낭비가 적다. 셋째, 업데이트 시 구 버전의 지역 데이터는 스택 재구성 방식을 사용하여 새 버전의 지역 데이터로 복구한다. 본 논문은 새로운 DSU 방식을 제안하였다는 점과 이 방식을 활용하여 완전한 DSU 시스템을 구현하였다는 점에서 의의가 있다. Dynamic Software Update(DSU) is a technique, which updates a new version of the software to a running process without stopping. Many DSU systems that update C application programs are introduced. However, these DSU systems differ in implementation method or in main features. In this paper, we propose a new DSU system that can solve some disadvantages of existing DSU systems. DSU system presented in this paper splits existing program to code, global data and local data and then updates each part of the program considering the characteristics of the respective parts. The proposed system in this paper is implemented and tested on Linux. Also, we compared our DSU system with other DSU systems and we could find some strength of our DSU system. First, the code memory usage of our DSU system can be efficient since our system does not need to maintain code of an old version. Second, the global data memory waste is small because our system does not need to allocate the global data again which is not modified in the new version. Finally, we restore local data of old version in stack area of the new version using stack reconstruction technique. This paper is meaningful since we proposed a new DSU method and we implemented a full DSU system using the method.
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have