Static and dynamic compiler support for intermittently powered computer systems - Inria - Institut national de recherche en sciences et technologies du numérique Access content directly
Theses Year : 2021

Static and dynamic compiler support for intermittently powered computer systems

Support des compilateurs statiques et dynamiques pour les systèmes informatiques alimentés par intermittence


With the advent of Internet of things (IoT), there is a need to provide energy for a massive number of smart tiny devices without using large, heavy, and high maintenance batteries. One promising way is to harvest energy from the environment and store it into an energy buffer such as a capacitor. In this way, programs are being executed as long as there is available energy in the capacitor, and crash when it exhausts. Recently, different software and hardware based checkpointing strategies have been proposed to make forward progress toward execution for energy harvesting IoT devices. This thesis introduces two different software solutions based on static and dynamic compilation. The proposed static compiler inserts checkpoints based on statically-computed worst-case energy consumption of code sections. Moreover, it applies classical compiler optimizations in order to decrease the required number of checkpoints at runtime. The proposed dynamic compilation technique delays checkpoint placement and specialization to the runtime and takes decisions based on the past power failures and execution paths taken before each power failure. Both proposed solutions guarantee making forward progress as well as keeping the memory consistent. Furthermore, they aim to increase portability by not using any hardware feature of the IoT device. In addition, they are transparent to the programmer.
Récemment, différentes stratégies de checkpointing basées sur le logiciel et le matériel ont été proposées pour avancer vers l'exécution pour les dispositifs IoT de récolte d'énergie. Cette thèse présente deux solutions logicielles différentes basées sur la compilation statique et dynamique. Le compilateur statique proposé insère des points de contrôle basés sur la pire consommation d'énergie des sections de code calculée de manière statique. En outre, il applique les optimisations classiques du compilateur afin de réduire le nombre de points de contrôle requis à l'exécution. La technique de compilation dynamique proposée reporte le placement et la spécialisation des points de contrôle au moment de l'exécution et prend des décisions en fonction des pannes de courant passées et des chemins d'exécution empruntés avant chaque panne de courant. Les deux solutions proposées garantissent une progression vers l'avant ainsi que le maintien de la cohérence de la mémoire. En outre, elles visent à accroître la portabilité en n'utilisant aucune caractéristique matérielle des systèmes IoT. En outre, elles sont transparentes pour le programmeur.
Fichier principal
Vignette du fichier
YARAHMADI_Bahram.pdf (1.75 Mo) Télécharger le fichier
Origin : Version validated by the jury (STAR)

Dates and versions

tel-03280004 , version 1 (08-09-2021)
tel-03280004 , version 2 (05-10-2021)


  • HAL Id : tel-03280004 , version 2


Bahram Yarahmadi. Static and dynamic compiler support for intermittently powered computer systems. Programming Languages [cs.PL]. Université Rennes 1, 2021. English. ⟨NNT : 2021REN1S026⟩. ⟨tel-03280004v2⟩
170 View
240 Download


Gmail Facebook X LinkedIn More