论文部分内容阅读
随着计算机硬件性能的日益增强和万维网的迅速发展,计算能力的迁移将会发挥更加重要的作用并最终被广泛采用。利用虚拟技术进行进程迁移一直是计算能力迁移的研究热点,但是,这些技术往往存在以下不足:依赖于特定的操作系统;需要修改内核;迁移的粒度太大。而语言虚拟机可以在编译时期将进程的物理状态转化为逻辑状态,便于控制进程迁移的粒度并实现跨平台迁移,因此,研究基于进程迁移的语言虚拟机具有重要意义。基于进程迁移的语言虚拟机LAOVM实现了应用程序在不同平台上的透明移植性。LAOVM的主要功能模块包括前端汇编器,后端执行器和进程迁移机制。LAOVM通过自定义的虚拟指令集,一方面可以尽量贴近不同体系机构的指令集,提供映射到本地代码的基础;另一方面为前端支持不同程序语言提供了中间表达形式。LAOVM的前端汇编器将虚拟指令汇编成可执行目标代码,进程的物理状态转化为独立于操作系统的逻辑状态,便于实现进程迁移的平台无关性。LAOVM的后端执行器模拟系统调用,为目标代码提供执行环境,通过跟踪调试监控和分析目标代码的执行状况。由于LAOVM中迁移进程的粒度比系统级的迁移粒度小,其进程迁移机制采用stop-and-copy策略,在生成进程检查点之后,可以保存程序执行状态或者迁移到其他主机上,然后在本地或者其他主机上恢复程序执行状态。总之,LAOVM的目标是通过前端编译支持、后端虚拟机支持以及进程迁移策略,实现跨平台的、支持不同程序语言的细粒度进程迁移。基于Windows操作系统和Visual Studio平台,采用C、C++语言实现了LAOVM。系统测试和结果分析表明:LAOVM实现了预定功能;在局域网内进行进程迁移时,即使在内存映像达到百兆的情况下,宕机时间保持在0.5秒左右,对于时间不敏感的程序可以忽略;系统吞吐率只与网络环境有关,而不会随着内存映像的增大而变化。