Abstract

Mobile devices are becoming pervasive, yet a persistent gap in hardware capabilities still separates them from desktop machines. To bridge this gap, recent research has turned to cloud-assisted execution as a way of leveraging remote resources to enhance application performance. Code-offloading systems automatically partition applications across resource-constrained devices and more powerful remote nodes to improve execution. Existing approaches, however, only focus on compute resources, ignoring memory and network limitations in mobile environments. In doing so, they prevent mobile applications from taking advantage of the larger memory and richer networking capabilities of cloud-based nodes. At the same time, they face the challenge that a large runtime overhead may offset the benefits of offloaded execution and support only applications written in managed programming languages with substantial runtime support. In this thesis, we propose three new static code-offloading approaches that exploit all three remote resources—compute, memory and network: (1) Compute-focused offloading enables applications written in unmanaged programming languages with only rudimentary runtime support to benefit from remote compute resources. Using offline dynamic profiling to analyse runtime behaviour, it derives a partitioning that reduces response times by offloading compute-intensive functionality to the remote node. (2) Memory-focused offloading partitions application state across nodes to alleviate memory constraints and reduce offloading overheads by permanently collocating data and computation. To handle network failures, it uses a snapshotbased fault tolerance mechanism to back up state changes locally and a user-level virtual memory scheme to support execution with large state sizes after failure. (3) Network-focused offloading partitions mobile client applications across mobile devices and nodes at edge locations of a mobile network to minimise network traffic in radio access networks. It (i) discards unused data returned by coarse-grained API calls to Internet backend services and (ii) tunes binary object prefetching strategies to transmit only the objects that are used on the device.

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.