Implement process checkpointing for Android

Jump to: navigation, search
Implement process checkpointing for Android
Tim Bird


Process checkpointing allows a system to take a snapshot of a running process (similar to a coredump). This snapshot can then be restarted later, or on a different machine. To achieve this, file descriptors, process IDs and other OS-provided or managed resources (such as IPC connections) need to be virtualized.

It might be useful to checkpoint and restart various parts of an Android system. While Dalvik-based applications have "re-startability" built into their application lifecycle, other native applications (such as Zygote or the service manager) do not.

Providing process checkpointing for these native processes would provide for the possibility to recover from faults by restoring the processes from their snapshot images and resuming from the checkpoint. This could improve the fault tolerance of Android-based systems.

Also, it would be worth investigating whether this technology could be used to reduce the startup time for certain time-consuming native components of Android, to improve overall bootup time.

Related work

Also see the home page of one of the leaders behind this work: - University home page for Oren Laadan



Contractor Candidates