Abstract
Updating application software is a common occurrence for modern computing systems. Software updates stem from the need to correct coding errors or to enhance the functionality of an application. Updating an application typically requires taking the current application offline and restarting a new application. This method of updating an application is perfectly acceptable for many general purpose-computing environments. However, in real-time environments that require high availability and have stringent timing constraints, taking a process offline for updates may be unacceptable or pose unnecessary risks. Some examples of these environments include telecommunications, air traffic control, railway control and medical patient monitoring. We present a new method to dynamically update a real-time application without having to take it offline. Our new method, which we call dynamic update for real-time systems, can be used to update real-time applications using rate-monotonic scheduling, while preserving the original deadline guarantees.
Similar content being viewed by others
References
Agnew, B., Hofmeister, C., and Purtilo, J. 1994. Planning for change: a reconfiguration language for distributed systems. The 2nd International Workshop on Configurable Distributed Systems, pp. 15-22.
Davis, T. J., Krzeczowski, K. J., and Bergh, C. 1994. The final approach spacing tool. 13th IFAC Symposium on Automatic Control in Aerospace, CA, pp. 70-76.
Egan, A., Kutz, D., Mikulin, D., Melhem, R., and Mossé, D. 1999. Fault-tolerant RT-mach and an application to real-time train control. Software Practice and Experience 29(4): 379-395.
Frieder, O., and Segal, M. 1991. On dynamically updating a program: from concept to prototype. Journal of Systems and Software 14: 111-128.
Ghosh, S., Melhem, R., Mossé, D., and Sarma, J. 1998. Fault-tolerant rate-monotonic scheduling. Journal of Real-Time Systems 15(2): 149-181.
Goyeneche, J.-M., de, Sousa, E. A. F. de. 1999. Loadable kernel modules. IEEE Software 16(1): 65-71.
Hecht, H. 1976. Fault-tolerant software for real-time applications. ACM Computing Surveys 8(4): 391-407.
Hofmeister, C. R. 1994. Dynamic reconfiguration of distributed applications. Ph.D. Thesis, University of Maryland, College Park, MD.
Hofmeister, C.R., and Purtilo, J. 1991. Dynamic reconfiguration of distributed programs. 11th International Conference on Distributed Computing Systems, pp. 560-571.
Hofmeister, C., White, E., and Purtilo, J. 1993. Surgeon: a packager for dynamically reconfigurable distributed applications. Software Engineering Journal 8(2): 95-101.
Kairouz, J., Lam, A., Malowany, A. S., Carnevale, F. A., and Gottesman, R. D. 1994. A vital sign monitoring system for a pediatric intensive care unit. IEEE 17th Symposium on Computer-Based Medical Systems, pp. 217-222.
Kramer, J., and Magee, J. 1985. Dynamic configuration for distributed systems. IEEE Transactions on Software Engineering SE-11(4): 424-436.
Liu, C. L., and Layland, J. 1973. Scheduling algorithm for multiprogramming in a hard real-time environment. Journal of the ACM 20(1): 46-61.
Montgomery, J. 2001. Available at http://www.iit.edu/ ~ montgom/DURTS.
Montgomery, J., Kenevan, J., and Evens, M. 2001. Dynamically updating an application in a multithreaded environment. International Symposium on Information Systems and Engineering, pp. 224-228.
Nakaijima, T., Tokuda, H., and Rao, P. 1990. Real-time mach: toward a predictable real-time system. Proceedings of USENIX Mach Workshop, pp. 73-82.
Nichols, B., Buttlar, D., and Farrell, J. P. 1996. Pthreads Programming. Sebastopol, CA: O'Reilly and Associates.
Purtilo, J. 1985. Polylith: an environment to support management of tool interfaces. ACM SIGPLAN 85 Symposium on Languages Issues in Programming, pp. 12-18.
Purtilo, J. 1994. The polylith software bus. ACM Transaction on Programming Languages and Systems 16(1): 151-174.
Segal, M., and Frieder, O. 1993. On-the-fly program modification: systems for dynamic updating. IEEE Software Journal of Systems and Software 10(2): 53-65.
Seto, D., Krogh, B. H., Sha, L., and Chutinan, A. 1998. Dynamic control system upgrade using the simplex architecture. IEEE Control Systems Magazine 18(4): 72-80.
Ssu, K.-F., and Jiau, H. C. 2000. Online non-stop software update using replicated execution blocks. Proceedings of the 24th Annual International Computer Software and Applications Conference, COMPSAC 2000, pp. 319-324.
Stewart, D. B., Schmitz, D.E., and Khosla, P. K. 1992a. The Chimera II real-time operating system for advanced sensor-based control applications. IEEE Transactions on Systems, Man and Cybernetics 22(6): 1282-1295.
Stewart, D. B., Volpe, R. A., D. E., and Khosla, P. K. 1992b. Integration of real-time software modules for reconfigurable sensor-based control systems. Proceedings of the 1992 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS '92), pp. 325-333.
Vahalia, U. 1996. UNIX Internals: The New Frontiers. Upper Saddle River, NJ: Prentice Hall.
Weinstock, C. B., and Green, M. W. 1978. Reconfiguration strategies for the SIFT fault-tolerant computer. Computer Software and Applications Conference, COMPSAC '78, The IEEE, pp. 645-650.
Author information
Authors and Affiliations
Rights and permissions
About this article
Cite this article
Montgomery, J. A Model for Updating Real-Time Applications. Real-Time Systems 27, 169–189 (2004). https://doi.org/10.1023/B:TIME.0000027932.11280.3c
Issue Date:
DOI: https://doi.org/10.1023/B:TIME.0000027932.11280.3c