Most of the current embedded systems work in unsecure and fault-prone environments. Such systems usually harvest their required energy from the environment with many sources of unpredictability. On the other hand, more than often, these systems have timing constraints that should be satisfied in spite of the existing problems and limitations mentioned above. In this paper, we propose two checkpoint placement algorithms to manage the harvesting energy through dynamic voltage scaling (DVS) while satisfying the system timing constraints. An offline algorithm is proposed that unformly distributes the checkpoints according to the predicted harvesting energy from the environment. An online algorithm is also proposed which takes the harvesting energy variability into account and dynamically adjusts the checkpoint placement as well as the processor voltage and speed. Therefore, the latter algorithm non-uniformly distributes the checkpoints. The obtained reward by these algorithms have been compared in different energy and workload scenarios through simulation. According to the comparisons, different situation that each of these algorithms may be preferrable are specified.
Keywords-Energy managemen; Checkpointing; Real-time embedded systems; Dynamic voltage scaling (DVS); Fault Recovery
I. IntroductionAlmost all the emerging real-time systems share a vision of small, inexpensive and battery-operated networked processing devices. Therefore, besides their timing constraints, these systems usually have serious energy limitations. For example, the limited life time of a device battery is an energy constraint. Recently, in order to increase the battery life-time of such devices, energy harvesting techniques are used. Such techniques can help to relax the energy constraints dictated by the initial limitations of the battery capacity. However, since the harvesting energy by such methods does not follow a deterministic behavior, the predictability of the real-time services provided by such systems is extremely affected. On the other hand, since many embedded real-time systems work in harsh and failure prone environments, they suffer from possible security attacks (e.g., Denial of Service attack) and other kinds of damages (e.g., noises in the environments). Such problems can have negative effect on the real-time service availability by causing the service deadline to be missed. In order to avoid such inconveniences and due to the fact that total reexecution of the affected services is not applicable in many real-time services with relatively short deadlines, we can use