Procedure-Based On-Line Program Replacement

프로시저 단위의 온라인 프로그램 교체

  • 김영진 (한양대학교 전자전기공학부) ;
  • 김형곤 (삼성전자 반도체총괄 메모리 개발사업부) ;
  • 김화준 (삼성전자 정보가전총괄 Storage 사업부) ;
  • 이인환 (한양대학교 전자전기공학부)
  • Published : 2000.04.15

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 환경에서 사용자 응용 소프트웨어에 적용하여 검증한다. 구체적으로 본 논문은 동작 중인 소프트웨어의 어드레스 영역 중 교체 대상 프로시저에 해당하는 영역을 직접 새 버전으로 바꾸기 위한 절차와 방법을 제시할 뿐 아니라, 교체 대상 프로시저의 크기가 변화하는 경우에 발생하는 새 버전 프로시저를 위한 공간 할당 문제와 새 버전의 프로시저를 구 버전의 프로세스 어드레스 스페이스에서 올바르게 동작하도록 외부 심벌 리퍼런스를 수정하는 문제에 대한 일관적인 해결책을 제시함으로써, 프로시저 단위의 온라인 프로그램 교체를 가능하게 한다. 제안한 방법은 기존의 운영체제에서 제공하는 서비스만을 이용하여 온라인 프로그램 교체를 수행한다. 또한 제안한 방법에서는 프로시저라는 작은 교체단위를 지원하며 프로세스 어드레스 스페이스상의 필요한 부분만을 직접 수정하므로 온라인 교체에 따른 성능저하가 적다.

Keywords

References

  1. M. E. Segal and O. Frieder, 'On-The-Fly Program Modification: Systems for Dynamic Updating,' IEEE Software, Mar. 1993 https://doi.org/10.1109/52.199735
  2. R. S. Fabry, 'How to Design a System in Which Modules Can Be Changed on the Fly,' Proc. 2nd Int'l Conf. Software Eng., 1976
  3. H. Goullon, R. Isle, and K. Lohr, 'Dynamic Restructuring in an Experimental Operating System,' IEEE Trans. Software Eng., Vol. 4, No. 4, July 1978 https://doi.org/10.1109/TSE.1978.231515
  4. B. Liskov, 'Distributed Programming in Argus,' Comm. ACM, Mar. 1988 https://doi.org/10.1145/42392.42399
  5. T. Bloom, 'Dynamic Module Replacement in A Distributed Programing System,' Doctoral Dissertation, MIT Press, Cambridge, Mass. 1983
  6. J. Magee, J. Kramer, and M. Sloman, 'Constructing Distributed Systems in Conic,' IEEE Trans. Software Eng., Vol. 15, No. 6, June 1989 https://doi.org/10.1109/32.24720
  7. J. Kramer and J. Magee, 'Dynamic Configuration for Distributed Systems,' IEEE Trans. Software Eng., Vol. 11, No. 4, Apr. 1985 https://doi.org/10.1109/TSE.1985.232231
  8. O. Frieder and M. E. Segal, 'On Dynamically Updating a Computer Program: from Concept to Prototype,' J. System Software, Vol.14, No.2, Sep. 1991 https://doi.org/10.1016/0164-1212(91)90096-O
  9. D. Gupta and P. Jalote, 'On-Line Software Version Change Using State Transfer Between Processes,' Software Practice and Experience, Vol. 23, No. 9, Sep. 1993 https://doi.org/10.1002/spe.4380230903
  10. W. Richard Stevens, Advanced Programing in the Unix Environment, Addison Wesley, 1992
  11. System Interface Guide, SUN Microsystems, Inc., 1997
  12. Linkers and Libraries Guide, SUN Microsystems, Inc., 1997
  13. M. J. Bach, The Design of the Unix Operating System, Prentice Hall, 1990
  14. UNIX Reference Manual, SUN Microsystems, Inc., 1997
  15. Richard P. Paul Sparc Architecture Assembly Language Programming, &C, Prentice Hall, 1994