Nowadays, people carry mobile devices such as smartphones and tablets everywhere, and they interact with the devices repeatedly and briefly throughout the day. This unique usage pattern has motivated modern mobile systems to maintain a number of apps in memory and to automatically terminate these apps later. This approach improves user experience by accelerating the response of devices.
However, the distinctive app life cycle makes traditional page-level memory optimization schemes operate improperly in mobile devices, thereby increasing overheads and reducing their benefits. In addition, there are new optimization opportunities enabled by considering the apps in mobile devices.
This dissertation focuses on the memory management in mobile devices and discusses three memory management schemes optimized by considering the apps. First, SmartLMK optimizes the victim app selection for the process-level memory reclamation to improve overall user experience. Second, Application-aware Swapping attempts to properly harness the swapping in mobile devices by considering apps so that the page-level approach can complement the process-level memory reclamation. Lastly, Region-based Memory Allocator prevents physical memory fragmentation by localizing page allocation for apps, thereby improving I/O buffer management for hardware accelerators in mobile devices.
The proposed schemes are implemented on Android-based mobile devices, and evaluated using benchmarks with realistic usage workloads. Evaluation results confirm that the proposed schemes improve the efficiency of the memory management, thereby enhancing the user experience, system performance, and energy efficiency.