linux中基于agent的进程迁移

linux中基于agent的进程迁移

ID:34510500

大小:144.27 KB

页数:4页

时间:2019-03-07

linux中基于agent的进程迁移_第1页
linux中基于agent的进程迁移_第2页
linux中基于agent的进程迁移_第3页
linux中基于agent的进程迁移_第4页
资源描述:

《linux中基于agent的进程迁移》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第25卷增刊河北理工学院学报Vol25Supplement2003年8月JournalofHebeiInstituteofTechnologyAug.2003文章编号:10072829(2003)s0005404Linux中基于Agent的进程迁移赵福来,高敏捷,娄国焕(河北理工学院自动化系,河北唐山063009)关键词:Linux;Agent;进程迁移;软件代理摘要:探讨在Linux操作系统中基于代理的进程迁移方法,包括代理的组织、代理的通讯方式、迁移进程信息的获取及进程迁移后未完成报文和打开文件的处理等。中图分类号:TP316文献标识码:A0引言进程

2、迁移是分布式操作系统中的一项十分重要的技术,也是许多分布式系统共同追求的设计目标。进程迁移能动态地改变系统的负载分布,合理有效地利用资源,提高系统性能。随着机群系统这一新的研究方向的不断发展和成熟,迫切需要应用进程迁移技术来协助实现其高效的网络计算功能。因此,在机群系统中实现进程迁移成为进程迁移研究的新热点。由于许多机群系统选用的Linux操作系统是一个单机操作系统,不具备分布处理能力,在Linux中实现进程迁移对于分布式计算有很重要的现实意义。Agent是一个智能化的软件实体,具有独立性、自主性、交互性和分布性等特点。鉴于进程迁移的复杂性,应用Agent技术在Linux中

3、实现进程迁移,是一种有效的途径。本文探讨在Linux系统中用Agent进行进程迁移的方法。1进程迁移的过程将一个正在运行的进程从系统的一台机器转移到另一台机器继续执行,需要从操作系统的内核中分离出该进程的各种数据发送到另一台机器中,然后根据这些信息创建一个新进程,并营造一个与原来进程运行环境相似的新环境。在Linux中迁移进程的过程如下:1迁移准备:即中止被迁移进程运行和收集数据。2迁移进程:从源节点到目的节点转移进程的内存映像和其它状态信息;3恢复运行:在目标机上恢复进程并使之从断点处重新运行。4善后处理:主要是对未完成报文的处理。发广播消息通知新进程标识。收

4、稿日期:20030623作者简介:赵福来(1947-),男,河北昌黎人,河北理工学院自动化系副教授,大学。增刊赵福来,等:Linux中基于Agent的进程迁移552代理的组织为在Linux中实现进程迁移,需要在每个节点机上建立一个代理(Agent),负责进程迁移的代理的组织如下:2.1协商模块按照进程迁移的目标(负载平衡、有效资源访问等)进行进程迁移时,需根据目标结点的资源承受(内存、设备等)能力,由迁移结点和被迁移结点的Agent协商决定是否进行迁移。2.2状态收集模块具体过程是首先根据进程内部标识pid到内核找到该进程的task控制结构,将其

5、置成迁移态,并从运行队列链表中暂时删去,以防止系统再次调度运行。然后取出进程虚拟内存地址控制结构链表的内容,进入内核取出迁移进程控制结构task的内容和迁移进程核心栈的内容和虚拟地址链表中每一个虚拟地址以及它所对应的进程代码段或数据段或堆栈段物理页的内容。最后将task控制结构的状态置成运行态,将其插入原队列,回到处理程序后撤消进程号为Pid的被迁移进程,并释放该进程占用的全部资源。2.3进程传送模块传送和接收进程信息。2.4进程恢复模块恢复进程并运行。在目标节点机上创建一个进程,并将该进程的pid号返回该源节点的调用代理。根据接收的迁移进程控制结构task的内容,将其

6、置成迁移态,从运行队列链表中删去,并做一些相应的工作;将接收传来的迁移进程控制结构task的内容,进入内核对其进行适当的处理后恢复到新进程的task结构中;将接收来的迁移进程核心栈的内容,进入内核对其进行适当的处理后拷贝到进程的核心栈中;分别将接收来的虚拟地址链表中每页的虚拟地址以及它所对应的进程代码段或数据段或堆栈段一个物理页的内容,进入内核找到子进程的对应物理页,将传过来的一页内容拷贝到子进程的物理页中;最后将task结构的状态置成运行态,并插入运行队列链表中,当系统又调度到该进程时,就可从迁移前的原断点继续往下执行。3一些关键技术3.1迁移进程数据提取问题在Lin

7、ux操作系统中,要迁移一个正在执行的用户进程,从中提取迁移进程的数据,在用户层是没有办法做到的,必须进入核心态完成该项工作。因此,需要在Linux内核增加取进程数据和恢复进程数据功能。为了使增加的功能也能常驻内存,就要将这部分代码拼接到操作系统内核中,需重新编译连接内核源程序生成一个新的操作系统内核。将新内核拷贝到相应的目录,重新启动机器让增加的代码随着操作系统的重新调入也常驻内存。在Linux操作系统中,由用户态程序进入操作系统内核只能通过系统调用。Linux的内核由几十个C语言(或汇编语言)程序文件组成,这些文

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。