Abstract
This paper presents a method for procedure-based on-line program replacement for user applications and illustrates the method in the SUN Solaris environment. In addition to developing procedures for directly changing the address space of a running process, the paper provides solutions on how to allocate space for the new version procedure and how to make the new version procedure work correctly in the old version process address space, when the size of new version procedure is different from that of old version, and thus facilitates procedure-based on-line software replacement. The method performs on-line program replacement using services provided by existing operating systems. Also, the method supports a small, procedure-based replacement and directly modifies necessary parts of a process address space, which results in small performance loss.
본 논문은 프로시저 단위의 온라인 프로그램 교체를 수행하기 위한 일련의 방법들을 제안하고, 제안한 방법을 SUN Solaris 2.6 환경에서 사용자 응용 소프트웨어에 적용하여 검증한다. 구체적으로 본 논문은 동작 중인 소프트웨어의 어드레스 영역 중 교체 대상 프로시저에 해당하는 영역을 직접 새 버전으로 바꾸기 위한 절차와 방법을 제시할 뿐 아니라, 교체 대상 프로시저의 크기가 변화하는 경우에 발생하는 새 버전 프로시저를 위한 공간 할당 문제와 새 버전의 프로시저를 구 버전의 프로세스 어드레스 스페이스에서 올바르게 동작하도록 외부 심벌 리퍼런스를 수정하는 문제에 대한 일관적인 해결책을 제시함으로써, 프로시저 단위의 온라인 프로그램 교체를 가능하게 한다. 제안한 방법은 기존의 운영체제에서 제공하는 서비스만을 이용하여 온라인 프로그램 교체를 수행한다. 또한 제안한 방법에서는 프로시저라는 작은 교체단위를 지원하며 프로세스 어드레스 스페이스상의 필요한 부분만을 직접 수정하므로 온라인 교체에 따른 성능저하가 적다.