We proposed a control method for exchanging parts of an executing program. By applying this exchange method to a shared library that is linked dynamically, the contents of library functions that constitute the program can be changed without stopping processes that are providing services. In other words, maintenance tasks can be dynamically performed without suspending the services that are being provided. However, the program parts that are exchanged according to the proposed exchange method must satisfy strict exchange conditions, making it difficult to create program parts that are to be exchanged. Therefore, in this paper, we describe an exchange method in which the exchange conditions have been relaxed. Also, we point out a problem in which relaxing the exchange conditions causes the exchanging time to be significantly increased when exchanging parts for a program that is mainly a CPU-bound program compared with a program that is mainly an I/O-bound program. Then, to deal with this problem, we propose methods of devising process scheduling mechanisms to shorten the exchanging time. Specifically, we show a mechanism that temporarily suspends exchangeable processes early and a mechanism that preferentially executes unexchangeable processes. In addition, we implement and evaluate both of these mechanisms and show the effectiveness of each mechanism.
ASJC Scopus subject areas
- Theoretical Computer Science
- Information Systems
- Hardware and Architecture
- Computational Theory and Mathematics