Availability is a key issue for a wide array of software systems and its importance in the era of cloud computing only continues to grow.For such systems every software update or system fault means decrease in availability or loss of the system’s state and both may involve heavy cost. In order to solve these problems, the system needs to either be able to quickly recover and retrieve its previous state or have the possiblity of applying the needed changes at runtime, without the need to shut the system down. This paper proposes an experimental Versatile Code Generator tool, originally intended for simulating software, prototyping and programmable computer games,as a possible solution to aboveproblems.The tool is capable of creating Cprograms subject to runtime code modification. The main focus of this paper are performance tests, researching overhead generated by the tool. To this end, static (i.e. original) and dynamic (i.e. created by the tool) applications were compared in a number of performance factors (including compilation and execution time, memory usage, source and executable code size).Different cases, including various functions number and size, various number and types of function arguments, have been considered.
Software systems steadily tend to be bigger and more complex, making it more difficult to change them, especially during runtime. Several types of runtime software adaptation approaches were proposed to increase the adaptation capability of applications and turn them into an evolution software. Many of these approaches (using software architectural models for example) are implemented during the design phase of software development life cycle, making them ineffective or difficult to use in case of already existing applications. Moreover, the overhead caused by the use of these approaches has not been determined in many cases. In this paper author presents the taxonomy of high- and low-level approaches to runtime software adaptation and then introduces a lightweight prototype programming tool used to add runtime code modification capability (via function hotswapping) to existing applications written in C++ and run under Linux. The tool also enables to replace a defective function by its older or corrected version at runtime. Several tests were prepared to compare traditional C++ applications with the same applications developed with the aforementioned programming tool. Applications were compared in terms of execution time, size of executable code and memory usage. Different size and number of functions have been considered. The paper also researches the constant overhead caused by the programming tool regardless of the target application. The paper ends with the summary of presented approaches and their characteristics, including effects on the targeted systems, capabilities, ease of use, level of abstraction etc.
JavaScript jest wyłączony w Twojej przeglądarce internetowej. Włącz go, a następnie odśwież stronę, aby móc w pełni z niej korzystać.