论文部分内容阅读
随着移动互联网和云计算技术的不断发展和逐渐成熟,越来越多的人把目光投向了手机领域。相对于其他的移动设备而言,手机的通信性和可携带性都更强,可以提供7×24小时的网络接入服务。但是由于硬件方面的限制,手机的存储能力和计算能力都相当有限,远远不及PC。然而云计算却拥有着超强的存储能力和计算能力以及很多的优势,如果能将二者相结合,手机将能提供更好的服务。因此一系列相关的理论和应用也应运而生。本论文根据克隆云思想提出了转移应用程序中部分函数到服务器端执行的策略。手机端和服务器端都有一个转移线程,由它们完成被转移部分在服务器端执行所需的数据的发送和接收工作。在数据的发送和接收过程中,为了保证数据的完整性,本文会对传输的数据进行加密。本文手机端的转移线程通过修改正在执行的应用程序所在线程的线程结构体中的变量实现对线程的挂起,以及对挂起线程的恢复。文中还利用弹栈方法对恢复后线程的执行点进行调整,以便应用程序在进行转移后能正常运行。在应用程序转移中,服务器的设计也相当重要,本论文提供了一种基于共享内存的进程池并发服务器的策略。本文进程间采用的是共享内存的通信方式,这是进程间效率较高的一种通信方式。对于多个转移函数的处理采用了预先创建一定数量的进程池的方法来实现。本文提出了将共享内存与预先创建进程池相结合的方式设计服务器。基于共享内存的进程池并发服务器解决了传统服务器的时延问题,提高了服务器的实时性以及服务器的效率,对于手机性能也有了很大的提高。通过实验表明,应用程序通过转移执行加速比可以达到20倍甚至更高。