线程迁移构架下的分布式Java虚拟机探索

时间:2022-03-29 02:47:25

线程迁移构架下的分布式Java虚拟机探索

【摘要】当前,分布式Java虚拟机在技术领域中变得日益重要,其具有跨平台的实现功能,因此,对线程迁移构架下的分布式Java虚拟机进行分析研究,使人们对分布式虚拟机技术有一定的了解。

【关键词】分布式Java虚拟机线程迁移跨平台

分布式系统是一种有多台计算机节点组成,由多台计算机相互配合来实现的计算机互联网通信,而分布式线程迁移架构是分布式Java虚拟机构建的重要内容,其中,常见的架构模式有C/S模式、统一寻址、P2P系统和三层架构等模式。本文则对分布式Java虚拟机线程迁移的实现

一、线程迁移构架下的分布式Java虚拟机系统结构分析

本文主要对分布式Java虚拟机系统(JVM)实现线程迁移进行分析,其是基于分布式Java虚拟机系统(DJVM)来实现的,其具有通用性的功能,分布式Java虚拟机系统(JVM)的实现方案(JESSICA2)的结构如图1所示。

图1 分布式Java虚拟机系统的JESSICA2结构图

分析JESSICA2的结构,其主要以群集系统环境下java程序运行的起、始节点为主节点,而其余的节点则称为工作节点。从图中可以看出,对于分布式系统各节点中的加载监视器,其是一个独立运行的线程,加载监视器的主要作用是对分布式系统进行加载,并激活java线程迁移,对于全局对象空间层,简称GOS,其主要是基于java内存模块来实现分布式java线程共享对象的存取,分析分布式java虚拟机系统(DJVM)的实现,其全局对象空间层(GOS)主要通过数据存取、同步操作等两种方式为分布式java线程提供一个SSI视图,对于分布式java线程的数据存取操作,其可以实现数据影藏定位的功能,主要对java语言中的数组元素和存取数据静态类等进行操作,而分布式java线程同步操作可以在透明环境下执行java同步线程。

二、Java线程迁移的实现

针对线程迁移架构下的分布式Java虚拟机(JVM)的实现,其中,JVM栈是Java线程迁移设置的关键环节,线程迁移机制主要包括获取和恢复一个java线程的JVM栈的两个操作,通过在远程节点上利用扩展的JVM线程系统来进行java线程栈的重建,并将获取的线程栈内容在目标JVM上进行恢复,从而实现不同类别JVM线程迁移的识别。对于栈迁移点、寄存器内容的获取,在JIT编译器模式下,应注重线程迁移点在不同虚拟地址空间的设置,在JIT编译器下创建运行的本地代码,并注重迁移点位置的滑动,当完成迁移点的设置后,需要对已分配的寄存器的内容进行操作,但是,由JIT编译器创建的本地代码在执行过程中容易被加载到特殊的寄存器中,因此,为了实现分布式java虚拟机的线程迁移,应注重线程模块的相关工作。

对于单点Java虚拟机的线程模块。其主要工作是进行线程的创建和迁移工作,即通过Thread.startO方法来创建新的线程(Thread描述结构),并连接到系统中的Threads表,当线程完成后,则需要调用Thread.mnO方法来执行。Java主要是利用线程迁移的原理来实现多个worker节点分布式任务的分发,在java程序执行过程中,master节点将会向worker节点发送命令参数,这时master节点的主线程ID将会被记录在Threads列表中。当worker节点收到请求后,worker节点将对java线程中的主类字节序列进行分析和初始化。当线程迁移模块的相关工作完成后,创建的线程描述数据结构Thread将被加入到worker节点的threads链表中,Thread结构主要包括uint32_t thread-id(全程唯一线程Id)、pthread t tid(Pthread库tid,保证在进程内唯一)、ThreadStack stack(保存执线程执行的调用栈)、Thread *nex(threads 链表中的下一个 Thread 结构)等字段。Thread结构设置完成后,则需要进行线程的调用main()方法,这样java程序的第一个主线程创建完毕,并执行java程序。Java线程设置完后,若需要创建新的线程,只需要调用Thread类的start()方法就可以实现一个worker节点新线程的创建,worker节点收到请求后,Java程序中Thread结构将为worker节点分配一个新的ThreadId,并根据Thread对象的引用在分布式java堆中获取类,并调用执行,从而实现java线程的迁移。

结束语:

分析线程迁移架构下的分布式java虚拟机实现,充分了解java线程的创建和迁移的过程,从而对java线程迁移的实现有一定的了解。

参考文献:

[1]张洪杰. 一种Java卡虚拟机IP核设计研究[D].湖南大学,2010.

[2]周充. 基于线程迁移的分布式Java虚拟机的研究与实现[D].浙江大学,2013.

[3]申思. 多机环境下进程迁移技术的实现与应用[D].云南大学,2011.

上一篇:多样评改模式下大学英语写作教学实践研究 下一篇:漫谈数据库构架下的电子病历应用