进程迁移技术可以将正在运行的进程在一组机器之间自由迁移,是分布式系统中实现动态负载均衡、增强容错、减少通信开销等的关键技术⋯.进程迁移分为静态迁移和动态迁移两种,其中进程动态迁移由于具有用户体验好、效率高、灵活度高等优点而被广泛使用.各种集群、网格以及云计算模型,如MOSIX,Sprite,欧洲数据网格(data grid),微软System Center等,均采用适合自身体系的进程动态迁移算法来提高系统的工作效率和稳定性.现有迁移算法虽各具优点,但也都存在着明显的缺陷.Eager—copy算法【21是最早提出的进程迁移算法,其成功实现了进程的动态迁移,但过长的冻结时间是该算法的致命伤.Zayas提出的收稿日期:2014—11—21基金项目:国家自然科学基金资助项目(61272177);中科院网络化控制系统重点实验室开放课题(WLHKZ2014007).作者简介:单中元(1983一),男,辽宁沈阳人,东北大学博士研究生;乔建忠(1964一),男,辽宁兴城人,东北大学教授,博士生导师;林树宽(1966一),女,吉林长春人,东北大学教授,博士生导师.万方数据 30 东北大学学报(自然科学版) 第37卷Lazy—copy算法。3 o解决了进程冻结时间过长的问题,但后续运行时会发生大量缺页错误,严重影响进程恢复执行后的效率,并且该算法对源节点的依赖度非常高.目前使用最广泛的是预拷贝算法(Pre—copy)以及后拷贝算法(Post—copy)。Pre—copy算法具有较短的冻结时间而且能够保证进程恢复运行后的执行效率,Clark等将其应用于XEN虚拟机迁移H J,陈阳等提出了基于内存混合复制方式的虚拟机实时迁移机制HybMEC(hybrid memory copy),进一步提升了迁移的效率¨J.其缺点是在下达迁移指令后很长时间才能释放源节点计算资源,而且在迁移频繁读写内存的进程时,脏页面多次重复迁移,加重了网络传输的负担,同时还存在收敛性问题,大大延长了迁移总体时间.Post—copy算法具有较短的冻结时间,并且能够在较短的时间内在目标节点上恢复进程执行¨J.但在进程恢复执行时地址空间极度不完整,因此经常发生缺页错误(page faults)而导致进程被挂起,影响了恢复运行后的效率"J.针对现有各迁移算法的不足,本文提出了Pre—record算法.该算法利用源节点对