Implement process checkpointing for Android
- 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.
- See http://lwn.net/Articles/412749/ - article about checkpointing feature described by Oren Laadan at the Linux kernel summit
- Zap: Transparent checkpoint and restart research project at Columbia University