论文部分内容阅读
为了满足人们生活中的各种需求,丰富复杂的应用程序相继被软件工程师开发出来。由于用户的大部分任务是复杂繁重的,而移动设备的计算能力和资源通常是有限的,这就使得用户对任务的实时高效的要求很难得到满足。目前,移动云计算技术是解决这类问题的主流方法。然而,并不是应用程序的所有子任务都适合卸载到云服务器上。同时,将子任务从移动端上传到云端,或从云端下载到移动端,移动设备都需要消耗相应的能量和时延。为使移动设备的能耗尽可能少和满足用户对任务的实时性要求,这就需要我们设计一种任务卸载和调度相结合的方法。关于移动云计算中任务的协同调度与卸载的问题,即移动云计算中的每一次任务卸载过程都需要调用任务调度的过程,不是单纯的任务卸载问题。对于此类问题,在当前学术界的研究中主要使用IBM的CPLEX优化器来进行解决,但是这种方法需要耗费很大的内存和计算资源,而且程序的运行时间很长,不适合应用在实际问题中。同时,由于IBM的CPLEX优化器解决的移动云计算中协同任务卸载和调度的问题并没有考虑到任务的异构性,而实际问题中任务通常是异构的,因此CPLEX优化器并不适合应用在实际问题中。关于移动云计算中协同任务的调度与卸载的问题,在现有的研究基础上,本文给出了一个更加适合实际物理问题的数学模型。该数学模型与目前这类问题的模型不太相同,主要是考虑到了应用程序中子任务的异构性。针对该模型,本文提出了一种启发式算法,来解决移动云计算中任务的协同卸载与调度的问题。该启发式算主要由任务卸载的过程和任务调度的过程组成。其中,启发式算法在每一次任务卸载的过程中都需要调用任务调度的过程,以便用来判断这次任务卸载的过程是否可行的。任务卸载过程采用了贪心的策略,目的是确保每次卸载一个子任务的时候,移动设备所需要的能耗减少量比上一次都尽可能大。任务调度过程利用了任务的优先权来进行实时调度,目的是确保应用程序的完成时间不超过它的截止时间。通过实验证明,本文提出的启发式算法能在较短的时间内得出问题的近似最优解。在模拟实验中,我们将启发式算法与现有的传统方法进行了对比。本文还提出了一种适合本研究的模拟退火算法,该算法对启发式算法的解进行了优化。经过实验观察及对比,我们发现模拟退火算法的解与启发式算法的解是十分接近的,进一步说明了我们的启发式算法是高效、可行的。