本文描述了多任务虚拟机的堆组织。堆组织可以包括用于并发执行多个任务的执行引擎和与该执行引擎相耦合的多个堆。在一些实施例中,所述多个堆可以包括系统堆和与该系统堆相分离的任务堆。系统堆可以存储可由所述多个任务访问的系统数据。任务堆可以存储仅可由所述多个任务中的一个任务访问的任务数据。
【技术实现步骤摘要】
【国外来华专利技术】多任务虚拟机的堆组织
技术介绍
堆组织(heap organization)是可以用于为由多任务虚拟机并发执行的 多个任务存储数据的存储区。所述数据可以包括用于所有任务的程序对象 和元数据。常规上,有两类堆组织,即共享堆和分离堆。对于共享堆类型,多任 务虚拟机可以使用单个堆来存储可由所有任务访问的数据。对于分离堆类 型,多任务虚拟机可以使用逻辑上分离的多个堆。可以分配每个分离堆来 存储仅可由单个任务访问的数据。附图说明在附图中,通过示例而非限制来说明本文阐述的专利技术。为了使说明简 洁清楚,附图中所示的元件并不一定是按照比例绘制的。例如,为了清楚, 某些元件的尺寸相对于其它元件的尺寸可能会被放大。此外,在认为适当 的情况下,在多张附图中重复使用了附图标记,以表示对应或类似的元件。图1示出了包括多任务虚拟机的计算平台的实施例;图2示出了多任务虚拟机的实施例;图3示出了图2的多任务虚拟机中的堆组织的实施例;图4示出了将任务堆添加到图3的堆组织中的方法的实施例;图5示出了从图3的堆组织回收任务堆的方法的实施例;图6示出了图2的多任务虚拟机中的堆组织的另一个实施例;以及图7示出了图2的多任务虚拟机中的堆组织的又一个实施例。具体实施例方式下面的说明描述了用于多任务虚拟机的堆组织的技术。在以下说明中, 为了提供对本专利技术的更透彻的理解,阐述了许多具体细节,诸如逻辑实现、 伪代码、指定操作数的方法、资源分区/共享/复制实现、系统组件的类型和相互关系、以及逻辑分区/集成选择。但不使用这些具体细节也可以实践 本专利技术。在其它实例中,没有详细示出控制结构、门级电路和完整的软件 指令序列,以免对本专利技术造成模糊。本领域技术人员借助于该说明书就可 以实现适合的功能,而无需不当的实验。说明书中提到的"一个实施例"、"实施例"和"示例性实施例"等表 示所述的实施例可以包括特定的特征、结构或特点,但并不是每个实施例 都必须要包括所述特定的特征、结构或特点。此外,这种短语并不一定指 代同一实施例。而且,当结合某一实施例描述该特定的特征、结构或特点 时,结合其它实施例(不管是否明确说明)来实现这样的特征、结构或特 点也被认为是在本领域技术人员的知识范围内。可以以硬件、固件、软件或它们的任意组合来实现本专利技术的实施例。 还可以将本专利技术的实施例实现为存储在机器可读介质上的指令,所述指令 可由一个或多个处理器读取和执行。机器可读介质可以包括以机器(例如, 计算装置)可读的形式存储或传输信息的任何机制。例如,机器可读介质 可以包括只读存储器(ROM);随机存取存储器(RAM);磁盘存储媒体; 光存储媒体;闪存装置;和电、光、声或其它形式的传播信号(例如载波、 红外信号、数字信号等)等。图1示出了包括多任务虚拟机的计算平台10的实施例。计算平台10 的示例可以包括个人计算机、工作站、服务器计算机、个人数字助理(PDA)、 移动电话、以及游戏机。计算平台IO可以包括一个或多个处理器101、存储器102、芯片组103、 1/0装置104、固件105和可能的其它组件。 一个或多个处理器101可以经 由诸如处理器总线之类的一条或多条总线可通信地耦合到各个组件(例如 芯片组103)。可以将处理器101实现为在适当的架构(例如包括,由位于 加州Santa Clara的英特尔公司出品的英特尔^至强TM、英特尔 奔腾TM、 英特尔^安腾w架构)下的具有一个或多个可以执行代码的处理核心的集 成电路(IC)。存储器102可以存储多个软件应用1021、多任务虚拟机1022和操作 系统1023的形式的指令和数据。存储器102的示例可以包括以下半导体装 置之一或其任意组合例如,同步动态随机存取存储器(SDRAM)装置、RAMBUS动态随机存取存储器(RDRAM)装置、双倍数据速率(DDR) 存储器装置、静态随机存取存储器(SRAM)、以及闪存装置。可以从诸如I/O装置106之类的任何适当装置输入多个软件应用1021。 在其它实施例中,还可以通过计算平台IO中的其它组件来生成软件应用。 软件应用1021的示例可以包括JAVA应用(例如JAVA.class文件)、.NET 应用(例如.NET代码)、或可能的其它编程语言形式的应用。多任务虚拟机1022可以运行在操作系统1023之上,以并发执行多个 软件应用1021。每个软件应用1021可以包括一个或多个任务,每个任务 可以代表单个软件应用1021的一个实例化。在JAVA虚拟机中,如果两个 "任务"共享相同的类路径(即,类文件的相同有序表),则这两个"任务" 可以属于一个应用。多任务虚拟机1022的示例可以包括由位于加州Santa Clara的Sun微 系统公司出品的多任务JAVA虚拟机、以及由位于华盛顿州Redmond的 Microsoff公司出品的多任务.NET虚拟机。操作系统1023可以包括但不限 于不同版本的Linux 、 Microsoft Windows 、和诸如¥乂\¥0&5@之类的实 时操作系统等。在一个实施例中,芯片组103可以提供在一个或多个处理器101、存 储器102、和诸如1/0装置104和固件105之类的其它组件之间的一条或 多条通信路径。芯片组103可以包括存储器控制中心1031、输入/输出控 制中心1032和固件中心1033。在一个实施例中,存储器控制中心1031可以提供到处理器总线(其可 与处理器101连接)和到适当装置(诸如存储器102)的通信链路。存储 器控制中心102可以耦合到I/O控制中心1032,以提供到计算平台的I/O 装置104的接口。 1/0装置104的示例可以包括键盘、鼠标、网络接口、 存储装置、照相机、蓝牙装置和天线。在一个实施例中,存储器控制中心1031可以经由输入/输出控制中心 1032可通信地耦合到固件中心1033。固件中心1033可以耦合到固件105, 所述固件可以存储BIOS例程和/或EFI例程,所述BIOS例程在系统启动 期间被计算平台执行,以初始化处理器101、芯片组103、以及该计算平台 的其它组件,所述EFI例程使固件105与计算机平台的操作系统通过接口进行连接并提供用于引导该操作系统的标准环境。其它的实施例可以实现用于计算平台10的结构的其它技术。例如,多任务虚拟机1022可以在虚拟机的一个实例化中执行一个软件应用1021。 换句话说,多任务虚拟机1022可以在虚拟机的一个实例化中并发地执行属 于一个应用的多个任务,并且所述多个任务是该应用的各个实例化。图2示出了图1的多任务虚拟机1022的实施例。根据该实施例,多任 务虚拟机1022可以包括加载器201、执行引擎202、堆组织203、堆管理 器204和可能的其它组件。加载器201可以加载来自各种资源的文件(包括类、接口、本地方法)。 例如,加载器201可以加载来自多任务虚拟机厂商、程序员和任何第三方 的多个软件应用1021、库、运行时环境变量、以及可能的其它文件。库可 以包括向用户程序提供基本功能的各种函数和例程,例如自举(bootstrap) 类库和非自举类库。运行时环境变量可以包括用于帮助多任务虚拟机寻找应用资源的配置。加载器的示例可以包括类加载器、本地方法接口、和可 能的其它加载模块。执行本文档来自技高网...
【技术保护点】
一种多任务虚拟机,包括: 执行引擎,用于并发执行多个任务; 多个堆,其耦合到所述执行引擎,其中,所述多个堆包括: 系统堆,用于存储可由所述多个任务访问的系统数据;以及 任务堆,其被分配给所述多个任务中的一个任务,以存 储仅可由所分配的任务访问的任务数据。
【技术特征摘要】
【国外来华专利技术】
【专利技术属性】
技术研发人员:B陈,G吴,J彭,P郭,X周,Z英,
申请(专利权)人:英特尔公司,
类型:发明
国别省市:US[美国]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。