首页> 中国专利> 一种普适计算环境虚拟机平台及其创建方法

一种普适计算环境虚拟机平台及其创建方法

摘要

本发明公开了一种普适计算环境虚拟机平台及其创建方法,属于信息技术领域。本方法为:1)用户将虚拟环境创建请求分别发送给虚拟机监控器和SOA;2)虚拟机监控器和SOA分别进行初始化后,在本地虚拟机端创建客户桩;3)虚拟机监控器收到用户的实例创建请求后,创建并初始化虚拟设备结构体,同时向服务提供设备发出设备初始化请求;4)虚拟机监控器根据创建的虚拟设备结构体和服务提供设备初始化结果为该用户创建虚拟机实例。本平台包括资源层、虚拟层、实例层;虚拟层对资源层进行虚拟化,创建虚拟化的设备资源,封装和映射的远端服务资源;实例层,用于在虚拟层上建立并运行多个虚拟机实例。本发明大大提高了资源利用率和管理效率。

著录项

  • 公开/公告号CN102479100A

    专利类型发明专利

  • 公开/公告日2012-05-30

    原文格式PDF

  • 申请/专利权人 中国科学院软件研究所;

    申请/专利号CN201010569900.X

  • 发明设计人 黄东;史兴国;郑敏;冯强;

    申请日2010-11-26

  • 分类号G06F9/455(20060101);G06F9/50(20060101);

  • 代理机构北京君尚知识产权代理事务所(普通合伙);

  • 代理人余长江

  • 地址 100190 北京市海淀区中关村南四街4号

  • 入库时间 2023-12-18 05:25:47

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-11-12

    未缴年费专利权终止 IPC(主分类):G06F9/455 授权公告日:20150826 终止日期:20181126 申请日:20101126

    专利权的终止

  • 2015-08-26

    授权

    授权

  • 2012-07-11

    实质审查的生效 IPC(主分类):G06F9/455 申请日:20101126

    实质审查的生效

  • 2012-05-30

    公开

    公开

说明书

技术领域

本发明属于信息技术领域,具体涉及一种普适计算环境虚拟机平台及其创建方法。

背景技术

普适计算这一新型的计算模式,体现了信息空间与物理空间的融合趋势,反映了人们对信息服务模式的更高需求---希望能随时、随地、自由地享用计算能力和信息服务,使人类生活的物理环境与计算机提供的信息环境之间的关系发生革命性的改变。国内外研究机构早已进行相关研究,但是普适计算仍然面临一些其他问题:

(1)在普适计算环境下,存在着大量的设备资源和服务资源,如何能够有效的管理和使用这些设备资源和服务资源,提高普适计算环境中的资源利用率,共享环境中的设备和服务;

(2)普适计算环境对传统应用的支持,其核心是如何实现应用与环境的独立与去耦合。

(3)如何提供一个改进的普适计算应用框架,降低普适计算应用开发难度。

为了解决上述三个问题,本发明以SOA(Service-Oriented Architecture)为基础,探讨了普适计算环境下的虚拟计算环境,提出了普适计算环境下的虚拟机平台。下面将针对这两方面分别进行国内外的研究现状的分析。

面向服务架构(简称SOA)是以服务为基本元素建立的软件架构,它将资源整合成可操作的、基于标准的服务,使其能被重新组合和应用。这使得在各种各样的系统中构建的服务可以以一种统一和通用的方式进行交互,并能够被发布、发现和调用。通过SOA,系统能够迅速便捷的构建开放的、模块化的、可复用的软件组件。这种模式尤其适合面向广域环境的大规模应用场景,如跨企业的电子商务系统、跨地域的电子政务系统、Internet环境下的协同计算等。本发明以SOA为基础,为普适计算环境中设备资源和服务资源的发布、查找、映射和调用提供支持机制。

目前虚拟化技术研究主要集中在传统虚拟机和多计算系统的虚拟化(包括多核虚拟机和分布式计算资源的虚拟计算环境)两个方面。

Xen源自一个由英国剑桥大学计算机实验室主持的开源虚拟化项目。起初,Xen基于32位x86体系结构设计并开发,目标是支持多个运行Xen操作系统虚拟机的服务器应用。Xen位于操作系统与硬件之间,为其上运行的操作系统内核提供虚拟化的硬件环境。VMware公司由Stanford大学的Mendel Rosenblum教授带领他的学生创建,主要研究在工业领域应用的大型主机级的虚拟化技术,并推出了桌面虚拟化软件Vmware Workstation和面向企业服务器市场的Vmware GSX、Vmware ESX Server。

Xen和VMWare是基于桌面计算或服务器的单机设备的虚拟化,不提供分布式环境的虚拟化支持。

剑桥大学基于Xen的Parallax项目利用虚拟化技术为分布式系统提供存储服务。Parallax可以管理大量虚拟机,通过消除写共享、增加客户端缓存、利用模板映像来构建整个系统。Virtual Workspaces是Globus项目组为了解决部署远程作业运行环境操作复杂,不同网格应用所需的操作系统、中间件、库文件版本和文件系统不同导致的网格资源利用率低,实现网格资源在不同用户间进行安全隔离、并可进行细粒度管理所成立的一个项目。Virtual Workspaces重新定义了网格的作业执行层,不再将作业直接映射到网格物理资源,而是把不同用户需要的作业运行环境封装为独立的、相互隔离的虚拟机,即Virtual Workspaces,实现网格计算环境的部署及以虚拟机为单位对计算资源进行分配和管理。

通常的虚拟计算环境的项目关注点在于作业执行环境的部署和配置,且环境中的设备具有较强的计算能力。而在普适计算环境下,设备体系结构复杂多样,计算能力差异较大,同时普适计算环境更多的关注于资源和服务的共享。

发明内容

在普适计算环境下,设备之间大都是结构互异的嵌入式设备,这些局域分布的异构设备和服务需要有效的统一的管理、共享和操作,为此,本发明的目的在于提出一种普适计算环境虚拟机平台及其创建方法。

本发明以SOA技术为基础,以虚拟机技术为架构,提出一个新的普适计算系统模型:底层使用SOA架构模型,支持网络计算环境中设备资源和服务资源的发布、注册、映射和调用。在资源映射和调用的基础上采用虚拟机模型,实现整个普适计算环境的设备虚拟化和服务抽象化,从应用的角度看到的虚拟机平台不在映射到一个单机上,而是映射到整个普适计算环境。上层应用通过调用虚拟机接口控制虚拟化设备和使用抽象服务,对虚拟设备的操作和抽象服务的请求会通过SOA发送给网络环境中的真实设备和服务,从而实现网络中真实物理设备的操作和服务的请求。

本发明的技术方案为:

一种普适计算环境虚拟机平台创建方法,其步骤为:

1)用户将虚拟环境创建请求分别发送给虚拟机监控器和SOA;

2)虚拟机监控器和SOA分别进行初始化后,SOA根据服务提供设备的初始化信息在本地虚拟机端创建客户桩;

3)用户将实例创建请求发给虚拟机监控器;

4)虚拟机监控器接收到实例创建请求后,根据服务提供设备的初始化信息创建并初始化虚拟设备结构体,同时通过SOA向服务提供设备发出设备初始化请求;

5)SOA将服务提供设备的初始化响应上传到虚拟机监控器;

6)虚拟机监控器根据创建的虚拟设备结构体和服务提供设备初始化结果为该用户创建虚拟机实例。

进一步的,所述SOA初始化方法为:

1)SOA对所有远程的服务提供设备发出服务提供设备初始化请求;

2)服务提供设备接收到SOA发来的初始化请求,执行初始化操作后,对SOA发出服务注册请求;

3)SOA接收到服务提供设备的服务注册请求后,在资源池中注册设备信息或设备服务信息,构建资源池。

进一步的,所述资源池的构建方法为:

1)建立服务资源,设置对外部开放的服务实体及其接口信息;

2)建立设备资源:设置对外部开放的设备资源,所述设备资源包括寄存器资源、存储资源;

3)将所建立的设备资源、服务资源及其接口信息在资源池中进行注册。

进一步的,创建所述客户桩的方法为:SOA向虚拟机监控器发出在虚拟机监控器上创建客户桩的请求,虚拟机监控器接收到SOA上传的创建客户桩请求后,在本地虚拟机端为服务提供设备创建本地代理,即客户桩。

进一步的,虚拟机实例运行结束后,虚拟机监控器删除该虚拟机实例,释放与该虚拟机相应的虚拟设备结构体以及虚拟机实例内存空间。

进一步的,虚拟机实例运行结束后,虚拟机监控器撤销虚拟环境,并释放与所述客户桩相关的数据结构,服务提供设备撤销相关服务数据结构,SOA断开与服务提供设备的连接。

进一步的,虚拟机监控器将同一服务提供设备phd2分别创建并初始化为虚拟机实例VM1的虚拟设备结构体vd2,虚拟机实例VM2的虚拟设备结构体vd2’时,虚拟机监控器控制phd2在VM1与VM2之间的切换方法为:

1)在VM1运行期间,虚拟机监控器控制phd2装载vd2保存的设备相关上下文;

2)当要切换到VM2时,虚拟机监控器将phd2的上下文信息保存至VM1的vd2;

3)虚拟机监控器控制phd2装载VM2保存的vd2’设备上下文信息;

其中,vd2、vd2’分别保存了服务提供设备对外开放的设备状态信息、相关寄存器信息。

一种普适计算环境虚拟机平台,其特征在于包括资源层、虚拟层、实例层;其中,

所述资源层包括本地物理设备资源,远端设备资源、远端服务资源;

所述虚拟层对所述资源层进行虚拟化,创建虚拟化的设备资源,封装和映射的远端服务资源;

所述实例层,用于在所述虚拟层上建立并运行多个虚拟机实例。

进一步的,所述虚拟层包括虚拟机监控器、基本设备驱动、虚拟设备子层、客户桩;其中

所述虚拟机监控器,用于对普适计算环境下的设备资源和服务资源进行管理、共享和分配;

所述基本设备驱动,包含了一些所述资源层中设备资源的驱动,用来对所述虚拟层创建的虚拟化设备资源进行操作;

所述虚拟设备子层,用于对远程设备和本地设备进行虚拟化处理;

所述客户桩,用于提供远程服务的本地接口,提供普适计算环境中服务资源的管理和共享。

进一步的,所述实例层包括应用支撑子层和虚拟机实例子层;其中,所述应用支撑子层包含应用基础支持库、事件通道、管理工具;所述应用基础支持库,用于为应用提供基础的支持库文件;所述事件通道,用于负责虚拟机实例之间、虚拟层与实例层之间的通信以及远端设备物理中断的通知;所述管理工具,用来管理虚拟环境和虚拟机实例。

进一步的,所述虚拟层中,一个资源层的设备资源创建为多个虚拟化的设备资源。

与现有技术相比,本发明的积极效果

本发明通过SOA和虚拟机技术的结合,实现了网络中资源的共享和虚拟化,使所有的资源统一到同一个虚拟计算平台,有效的提高了资源利用率和管理效率。同时应用程序面对的不再是各个分布的设备,而是一个虚拟化的普适计算环境平台,这样使传统应用可以再此平台上兼容,从而得到了一个与传统应用无区别的普适计算应用框架。

附图说明

图1示例了本发明描述的普适计算环境下的虚拟机平台结构;

图2示例了虚拟机平台结构的虚拟机环境初始化步骤;

图3示例了虚拟机平台结构的虚拟机实例创建步骤;

图4示例了虚拟机监控器截获虚拟机实例的操作从而操作真实设备;

图5示例了虚拟机平台结构的虚拟机实例服务请求步骤;

图6示例了同一物理设备在两个虚拟机实例中的虚拟化;

图7示例了虚拟机实例切换时设备寄存器信息的保存;

图8示例了虚拟机实例切换时设备寄存器信息的装载;

图9示例了虚拟机实例通过SOA传送服务请求。

具体实施方式

普适计算环境下的虚拟机设计目标是能够实现本地远程设备资源的虚拟化,本地远程服务资源的映射,提供资源和服务的操作管理,对上提供一个虚拟机平台,该虚拟机平台映射到整个普适计算环境,从而得到一个改进的普适计算应用框架。

图1示例了本发明描述的普适计算环境下的虚拟机平台结构。

如图1所示,该虚拟机平台在层次结构上分为三层,自下而上依次是资源层、虚拟层、实例层。

资源层由分布在网络中的各种资源组成,该层中一个节点为一个单独的物理资源或服务资源。通常普适计算环境中,分布的正是这些设备资源和服务资源,而本发明要做的就是将这些资源聚合和共享,向应用提供一个虚拟化的普适计算环境,从而得到一个新的泛在应用框架。资源层由图1中的本地设备层30、远端设备/服务层60组成。

本地设备层30由本地物理设备31构成,远端设备/服务层由物理设备61、62和服务63及其他设备或服务组成。远端设备/服务层60向上构建成资源池50,资源池50由设备池51和服务池52组成。

虚拟层20对设备资源虚拟化,完成虚拟设备的创建,并提供服务资源的封装和映射。该层中一个节点是一个虚拟设备或服务资源的映射。一个资源层设备节点可以产生多个虚拟层节点,但是一个资源层服务节点仅产生一个虚拟层节点(一对多的产生是本领域的公知技术)。该层实现了普适计算环境中的设备资源的虚拟化和服务资源的映射,提供了普适计算环境中的资源管理和共享机制,通过虚拟化普适计算环境,对上呈现了虚拟的硬件平台。该层又由虚拟机监控器21、基本设备驱动22、虚拟设备子层23、客户桩24四部分组成。

通过虚拟机监控器21,可以对普适计算环境下的设备资源和服务资源进行管理、共享和分配。

基本设备驱动22包含了一些基本设备的驱动,这些基本设备驱动与通常的设备驱动没有什么区别,不同的是此处的设备驱动是用来对虚拟设备的操作,而不是对真实物理设备的操作。

虚拟设备子层23负责硬件设备的虚拟化工作,是对远程设备和本地设备的虚拟化,虚拟化完成之后,如果需要对远程物理设备或本地设备进行操作,可以通过操作虚拟设备实现。

客户桩24是远程服务的本地接口。客户桩通过SOA40向远端设备请求相关资源和服务,是远端服务的本地代理。客户桩可以读取服务请求,并通过通信模块发送给服务器上提供的服务资源,这里的服务器即指提供服务的远程设备。由该子层功能可以看到客户桩对普适计算环境中的服务资源的管理和共享提供了支持。

实例层建立在虚拟层之上,在该层上可以运行多个虚拟机实例,由虚拟机监控器对各个虚拟机实例进行调度和资源的分配。可以看到每一个虚拟机实例都是建立在虚拟化普适计算环境基础上的,这样得到一个与传统应用程序没有区别的普适计算应用框架。该层又由应用支撑子层和虚拟机实例子层两个部分组成。

应用支撑子层包含应用基础支持库13、事件通道14和管理工具15。应用基础支持库13(已知技术)为应用提供一些基础的支持库文件。事件通道14(已知技术)主要负责虚拟机实例之间、虚拟层与实例层之间的通信以及远端设备物理中断的通知。在普适计算下的虚拟机系统中,每一个虚拟机实例都有自己的事件通道。由于环境中物理设备中断的异步性,本系统将普适计算环境中的物理中断用事件通道取代。管理工具15主要用来管理虚拟环境和虚拟机实例,管理工具是虚拟机监控器提供给用户的接口,通过这些接口可以创建虚拟计算环境、创建虚拟机实例、删除虚拟机实例和释放虚拟计算环境。

虚拟机实例子层看到只是一个虚拟的机器11、12,而实际上是经过虚拟化的整个普适计算环境,包括环境中的设备资源和服务资源。这样普适计算应用和单机应用之间就没有什么区别,从而得到了一个新的普适计算应用框架。

下面对普适计算环境虚拟机平台的创建方法进行描述。

普适计算环境下的虚拟机平台的创建分成虚拟环境的创建、虚拟机实例生命周期的生成和虚拟环境的撤销三个阶段。

1、虚拟环境的创建。

每一个虚拟机实例都是建立在普适计算环境虚拟化的基础上,因此在虚拟机实例化之前必须要先创建虚拟环境,虚拟环境的创建如图2所示,用户通过管理工具请求虚拟环境的创建,请求分别发送至虚拟机监控器和SOA。SOA初始化,服务设备初始化(Server),SOA根据Server初始化信息在虚拟机端产生客户桩。这一初始化过程的具体实现步骤如下:

1)用户向虚拟机管理工具发出虚拟环境创建请求;

2)虚拟机管理工具收到用户的虚拟环境创建请求后,指示虚拟机监控器和SOA进行初始化操作;

3)虚拟机监控器接收到初始化请求信息后,进行初始化;

4)SOA接收到初始化请求后,进行初始化操作,在初始化过程中,SOA对所有远程的服务提供设备发出服务提供设备初始化请求;

5)服务提供设备接收到SOA发来的服务提供设备初始化请求后,将执行初始化操作,初始化完后,将对SOA发出服务注册请求;

6)SOA接收到服务提供设备的服务注册请求后,在资源池中注册服务提供设备所提供的所有设备信息或设备服务信息;

7)SOA构建完资源池后,向虚拟机监控器发出在虚拟机监控器上创建客户桩的请求;

8)虚拟机监控器接收到SOA上传的创建客户桩请求后,在本地虚拟机端为服务提供设备创建本地代理,即客户桩,并向虚拟机管理工具发出初始化响应;

9)虚拟机管理工具收到初始化响应后,就将初始化响应反馈给用户。

在这一初始化过程中,步骤6进行的是资源池的初始化,远端的设备或设备服务在SOA中向上构建成资源池,资源池的构建方法,同时也是资源聚合的方法。资源池构建方法分成下面三步:

1)建立服务资源:设置可以对外部开放的服务实体及其接口信息,接口信息是使用该服务时发送的服务参数,服务实体是具体的服务实现。

2)建立设备资源:设置可以对外部开放的设备资源及其相关信息,设备资源包括相关寄存器资源和存储资源。

3)向资源池注册资源信息:用户设置服务资源和设备资源完成后,向资源池注册相关信息,主要是接口信息。

资源池构建完后,资源池就通过SOA向虚拟机监控器发布已注册资源信息。

2、虚拟机实例生命周期的生成

虚拟机实例的生命周期包括虚拟机实例的创建、虚拟机实例的运行、虚拟机实例的删除。

(1)虚拟机实例的创建

虚拟环境创建完成之后就可以进行虚拟机实例的创建,虚拟机实例的创建如图3所示,在实例层用户通过管理工具创建虚拟机实例,虚拟机监控器收到虚拟机实例创建请求,根据设备初始化信息创建并初始化虚拟设备结构体。然后执行基本设备驱动的初始化工作,通过SOA从而对真实设备执行初始化工作。

每一个虚拟机实例的定义如下。

struct instance{

    instance_id id;//虚拟机ID

    instance_context context;//虚拟机上下文

    .......

    shared_info*shared_info;//虚拟机实例间共享的数据区

    uint32 pirq_to_evtchn[PIRQ_SET];//事件通道映射的中断

    uint32 pirq_to_evtchn_mask[PIRQ_SET];//中断掩码

    virtual_dev*dev[MAX_USED_DEV];//该虚拟机实例使用的虚拟设备

    ......

}

下面描述虚拟机实例的创建过程的具体实现步骤:

1)在实例层用户向虚拟机管理工具发出实例创建请求;

2)虚拟机管理工具接收到用户发出的实例创建请求后,将实例创建请求通过事件通道发给虚拟层的虚拟机监控器;

3)虚拟机监控器接收到实例创建请求事件后,根据服务提供设备初始化信息创建并初始化虚拟设备结构体,同时通过SOA向服务提供设备发出设备初始化请求;

4)服务提供设备接收到初始化请求后,就执行初始化操作,初始化完后返回设备初始化响应;

5)SOA接收到设备初始化响应后,将响应上传到虚拟机监控器;

6)虚拟机监控器接收到设备初始化响应后,根据创建的虚拟设备结构体和服务提供设备初始化结果为该用户创建虚拟机实例。

步骤3里的设备初始化是指服务提供设备里面的具体设备的初始化,如把台式机作为服务提供设备,则显示器就是台式机提供的一个具体设备。服务提供设备在虚拟环境创建时进行初始化,而服务提供设备里面的具体设备则在虚拟机实例创建时根据所要创建的虚拟机实例的需要进行初始化。

步骤2、步骤3、步骤5、步骤6中都涉及到虚拟机监控器。在虚拟机实例的生命周期中,虚拟机监控器以一种完全透明的方式,拦截并执行所有虚拟机实例发出的与硬件资源交互的动作和服务资源的请求。图4展示了虚拟机监控器截获虚拟机实例的操作从而操作真实设备。由于虚拟机监控器周期性的在虚拟机实例之间切换控制,而相应的虚拟机实例的设备状态保存在相应的虚拟设备结构体中,这就是一个资源层节点可以产生多个虚拟层节点的原因。虚拟机监控器对于截获到的设备资源的操作,通过对虚拟设备进行相应操作,该操作请求通过SOA发送至真实物理设备,真实物理设备装载相应虚拟设备寄存器值,从而实现真实物理设备的操作。对于截获到的服务请求,同样也通过SOA发送至服务资源,执行相应的服务。

虚拟机监控器是通过虚拟层的基本设备驱动实现对虚拟设备的操作。下面以对一个远端设备串口操作为示例。

virtual_dev*uart_dev=resource_table->uart_dev;//获取虚拟设备结构体

//远端设备串口初始化函数

void virtual_dev_uart_init(virtual dev*uart_dev)

//远端设备串口发送函数

void virtual_dev_uart_putc(virtual_dev*uart_dev,unsigned char c)

//远端设备串口接收函数

unsigned char getc(virtual_dev*uart_dev)

通过这些函数作用于虚拟设备结构体,并通过SOA负责虚拟设备串口相关寄存器与真实设备的串口相关寄存器间的通信,实现远端设备串口的操作,如同使用本地串口。

虚拟设备结构体是远程物理设备或本地设备在虚拟设备子层形成的结构体。虚拟设备子层负责硬件设备的虚拟化工作,是对远程设备和本地设备的虚拟化,虚拟化完成之后,如果需要对远程物理设备或本地设备进行操作,可以通过操作虚拟设备实现。一个远端设备通过SOA向外发布可对外开放的硬件资源部分,随后可在虚拟设备层中产生相应虚拟设备结构体,例如一个远端设备对外开放串口和LCD相关部分,那么它在该层产生的相关虚拟设备结构体如下。

struct virtual_dev{

   .......

   uart_registers_context uart;//串口相关寄存器上下文

   LCD_registers_context lcd;//LCD相关寄存器上下文

   .......

}

虚拟设备子层通过以软件的方式虚拟远端设备硬件,可以通过软件来操作远端设备硬件并可以表示远端设备硬件状态。由该子层的功能可以看到虚拟设备子层对普适计算环境中统一资源管理和资源共享提供了支持。

(2)虚拟机实例的运行。

如图5所示,虚拟机运行过程中虚拟机实例使用设备服务。当上层应用使用一个设备或服务时,并不知道设备和服务的真实位置。实例层通过事件通道发送给虚拟层相应事件,虚拟层会调用虚拟机资源管理和服务接口,从而操作虚拟设备或客户桩。对虚拟设备或客户桩的操作请求发送到SOA,由SOA将请求转发至真实设备或服务到服务提供设备。服务提供设备完成服务执行或设备操作后,返回响应信息,SOA接收到响应信息后,将响应反馈给虚拟机实例。当虚拟机实例切换时,虚拟设备结构体也进行相应切换,由此使真实设备执行状态切换。

(3)虚拟机实例的删除。

虚拟机实例的删除操作是由用户来决定,在实例层用户通过管理工具删除虚拟机实例,虚拟层的虚拟机监控器收到虚拟机实例删除请求,释放相应虚拟设备结构体以及虚拟机实例内存空间,此时虚拟机实例删除完毕。

3、虚拟环境的撤销。

虚拟环境的撤销是用户通过管理工具进行撤销,由虚拟机监控器释放虚拟机中的客户桩等相关数据结构,Server端撤销相关服务数据结构,SOA断开与服务提供设备的连接。

本发明的普适计算环境中的虚拟机平台涉及到远程设备虚拟化、本地设备虚拟化、SOA三个技术点。

(1)远程设备虚拟化

通过对远程设备的虚拟化,在虚拟机中产生相关设备的虚拟结构体,虚拟机通过该虚拟设备实现对实际设备的控制。但是可能存在一个物理设备在两个或两个以上不同的虚拟机实例中产生虚拟设备结构体,如何实现多个虚拟机实例之间互不影响的情况下对虚拟设备的控制冲突是一大技术要点。图6表示了一个远程物理设备在两个不同虚拟机实例中产生虚拟设备结构体。

在VM1和VM2的虚拟设备子层,对真实物理设备phd2的虚拟化设备实例为vd2和vd2’,其中保存了设备的上下文信息,包括设备状态信息、相关寄存器信息等等。对于phd2的控制依照按需原则,只有实际使用到phd2的时候才去实际占用该设备,对phd2的控制在VM1到VM2切换过程如下:

a、在VM1运行期间phd2装载vd2的设备相关上下文;

这里切换的设备上下文信息仅仅是设备对外开放的部分,可以包括设备的硬件控制寄存器信息,对于不对外开放的设备寄存器信息,由设备自己管理控制。例如一个设备对外仅开放串口和LCD功能,它产生的虚拟设备结构体就是下面的部分。

struct virtual_dev{

   .......

   uart_registers_context uart;//串口相关寄存器上下文

   LCD_registers_context lcd;//LCD相关寄存器上下文

   .......

}

b、当要切换到VM2时,将真实设备的上下文信息保存至VM1的vd2;

如图7所示,将设备对外开放功能的寄存器信息通过SOA发送至虚拟机监控器,由虚拟机监控器保存到相应的虚拟机实例所对应的域中,由此实现了设备上下文的保存。

c、phd2装载VM2的vd2’设备上下文信息。

如图8所示,虚拟机监控器将虚拟机实例2对应的虚拟设备上下文通过SOA发送至相应设备,该设备装载设备上下文信息。

当远程物理设备发生中断或异常,会在相应虚拟设备结构体中的相应位置位,代表一个中断或异常的发生,通过事件通道通知虚拟机实例中断或异常的发生,虚拟机实例转到相应的处理函数中。对于虚拟机实例来说,远程设备发生的中断就如同本地设备发生的中断一样来进行处理。

(2)本地设备虚拟化

对于本地设备虚拟化所采用的技术决定于该设备是否共享和它的共享方式。以下是对本地通用设备分类

a.独占设备

某一类设备只为特定虚拟机实例使用或者至少要经过很长时间才从一个虚拟机实例切换到另一个虚拟机实例,例如显示器、键盘、鼠标等。在这种情况下,这些设备不必被虚拟化,虚拟机实例能够直接对这类设备进行操作请求。

b.分区设备

对一些像磁盘的分区设备,很容易将其可用资源在各个虚拟机实例间分区使用,将一个较大容量的磁盘划分为多个较小容量的磁盘,供各个虚拟机实例使用,每个虚拟机实例将这些小的磁盘作为独占设备来使用。

c.共享设备

对于像网卡一类的设备,能够以较细的时间粒度被多个虚拟机实例共享,每个虚拟机实例都有自己的关于设备使用的虚拟状态,例如一个虚拟网络地址。虚拟机监控器负责为每一个虚拟机实例维护这样的状态信息。虚拟机实例对设备的一个请求被虚拟机监控器使用虚拟设备驱动转化为一个对物理设备的请求。对于网卡而言,虚拟机监控器会将来自虚拟机实例的请求装换为使用本身物理网络地址的某个网络端口的请求。同样来自不同端口的请求会被转换为对各个虚拟机实例网络地址的请求。

(3)SOA

适用于普适计算的虚拟机同时还提供网络中的服务映射,虚拟层对网络中的这些服务进行组织和管理,使上层应用能够享受到网络中的各种远程和近程服务。本发明使用了SOA,通过将设备属性及服务映射到其他计算机设备或系统中,解决异构设备的互感知与互操作,从而使得上层应用能够发现远程设备的服务,并可以调用这样的服务。图9所示是VM通过SOA发送服务请求。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号