CN104461862B - 数据处理系统以及线程崩溃后的资源恢复方法和装置 - Google Patents
数据处理系统以及线程崩溃后的资源恢复方法和装置 Download PDFInfo
- Publication number
- CN104461862B CN104461862B CN201410572514.4A CN201410572514A CN104461862B CN 104461862 B CN104461862 B CN 104461862B CN 201410572514 A CN201410572514 A CN 201410572514A CN 104461862 B CN104461862 B CN 104461862B
- Authority
- CN
- China
- Prior art keywords
- thread
- resource
- collapse
- metadata
- record
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种数据处理系统以及线程崩溃后的资源恢复方法和装置。其中线程崩溃后的资源恢复方法包括:遍历资源信息记录表中每条记录,其中资源信息记录表中的一条记录保存有一项资源的资源元数据以及使用该项资源的线程的线程信息;根据遍历结果确定出已崩溃线程所使用资源的资源元数据;将已崩溃线程所使用资源的资源元数据插入资源分配队列,以重新分配给线程,使用该方案,可确定出崩溃进程所使用资源的资源信息,并将已崩溃线程所使用资源的资源元数据插入资源分配队列,以重新分配给重新启动的线程,而不会对系统中的其它线程造成大量的开销,可以很快地重启崩溃线程及对应的资源,减小了系统宕机的风险,提高了运行可靠性。
Description
技术领域
本发明涉及数据处理领域,特别涉及一种数据处理系统以及线程崩溃后的资源恢复方法和装置。
背景技术
线程,是程序执行流的最小单元。一个标准的线程由线程标识(线程ID),当前指令指针寄存器集合和堆栈组成。线程自己不拥有系统资源,只拥有一点在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。线程是程序中一个单一的顺序控制流程。在单个程序中同时运行多个线程完成不同的工作,称为多线程。
数据处理系统,包括计算机和数据路由/转发设备,通常基于共享资源并发运行多个线程。每个线程包括一个独立的执行过程,例如一个独立的并发运行的任务,该任务可以利用一个或多个共享资源,资源包括任何可以实现功能的硬件/软件资源,或者可以被动让线程利用而实现功能的资源。例如,在一个计算机系统中,资源可以是一块内存或者内存中存储的某个对象;在一个数据路由系统中,资源可以是数据包。
多个线程共享资源的系统中,其中一个线程的突然崩溃可能会导致该线程拥有或者管理的资源处于未定义的状态,进而导致内存泄露或者系统重启状况。从系统用户的视角,大型系统的重启会增加系统宕机的时间。随着线程数目的增多,问题会变得越来越麻烦。
此外,在现有的数据处理系统中使用多核架构,为了充分利用多核CPU的特性,会使得多线程运行成为必要,同样,这也会增加由于线程崩溃导致的宕机风险。CPU内核越多的大型平台,线程越多,线程崩溃带来的问题也更糟糕。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的数据处理系统以及线程崩溃后的资源恢复方法和装置。
本发明一个目的是要提供一种线程崩溃后快速恢复系统共享资源的方法。
本发明的进一个目的是要防止出现多线程运行带来的宕机风险。
根据本发明的一个方面,提供了一种线程崩溃后的资源恢复方法,该线程崩溃后的资源恢复方法包括:遍历资源信息记录表中每条记录,其中资源信息记录表中的一条记录保存有一项资源的资源元数据以及使用该项资源的线程的线程信息;根据遍历结果确定出已崩溃线程所使用资源的资源元数据;将已崩溃线程所使用资源的资源元数据插入资源分配队列,以重新分配给线程。
可选地,线程信息包括:线程标识和生成该条记录时的线程崩溃计数;根据遍历结果确定出已崩溃线程所使用资源的资源元数据的步骤包括:获取全局线程崩溃计数器的数值,全局线程崩溃计数器配置为记录所有线程的崩溃总数;比较全局线程崩溃计数器的数值与生成该条记录时的线程崩溃计数;在全局线程崩溃计数器的数值大于生成该条记录时的线程崩溃计数的情况下,判断该条记录对应的线程是否崩溃;若是,提取该条记录中的资源元数据。
可选地,判断该条记录对应的线程是否崩溃的步骤包括:获取该条记录的线程标识;在线程崩溃表中查询该条记录的线程标识对应的线程崩溃状态,以确定该条记录对应的线程是否崩溃,其中线程崩溃表中存储有每个线程的线程标识和线程崩溃状态。
可选地,在将已崩溃线程所使用资源的资源元数据插入资源分配队列之后的步骤还包括:扫描是否存在已崩溃线程之外的线程崩溃;若是,重新遍历资源信息记录表中每条记录;若否,判断资源信息记录表是否遍历完成,并在遍历完成后,将线程崩溃表中的所有线程崩溃状态复位为未崩溃状态,其中资源信息记录表以一个多维数组的形式存储于内存中,多维数组中包括代表线程标识的维度、代表资源元数据的维度、代表线程崩溃计数的维度。
可选地,在遍历资源信息记录表中每条记录的步骤之前还包括:循环监控运行中的线程;在运行中的线程中的任一个出现崩溃后,对全局线程崩溃计数器进行累加,并确定出现崩溃的线程的线程标识;将出现崩溃的线程的线程标识在线程崩溃表中对应的线程崩溃状态标示为已经崩溃;重启出现崩溃的线程。
可选地,循环监控运行中的线程的步骤之前还包括:对资源信息记录表、全局线程崩溃计数器、以及线程崩溃表进行初始化;接收线程的资源请求;提取发出资源请求的线程的线程信息,以及所请求资源的资源元数据;将所请求资源的资源元数据存储于资源分配队列中,以按照资源分配队列检索资源元数据并将对应的资源分配给线程;从全局线程崩溃计数器中获取当前线程崩溃计数;将资源请求的线程的线程信息、所请求资源的资源元数据、当前线程崩溃计数匹配保存为信息记录表中的一条记录。
根据本发明的另一个方面,提供了一种线程崩溃后的资源恢复装置,该线程崩溃后的资源恢复装置包括:资源信息遍历模块,配置为遍历资源信息记录表中每条记录,其中资源信息记录表中的一条记录保存有一项资源的资源元数据、使用该项资源的线程的线程信息;元数据提取模块,配置为根据遍历结果确定出已崩溃线程所使用资源的资源元数据;队列处理模块,配置为将已崩溃线程所使用资源的资源元数据插入资源分配队列,以重新分配给线程。
可选地,线程信息包括:线程标识和生成该条记录时的线程崩溃计数;元数据提取模块包括:计数获取子模块,配置为获取全局线程崩溃计数器的数值,全局线程崩溃计数器配置为记录所有线程的崩溃总数;比较子模块,配置为比较全局线程崩溃计数器的数值与生成该条记录时的线程崩溃计数;判断子模块,配置为在全局线程崩溃计数器的数值大于生成该条记录时的线程崩溃计数的情况下,获取该条记录的线程标识,在线程崩溃表中查询该条记录的线程标识对应的线程崩溃状态,以确定该条记录对应的线程是否崩溃,其中线程崩溃表中存储有每个线程的线程标识和线程崩溃状态;数据提取子模块,配置为在判断子模块的判断结果为是时,提取该条记录中的资源元数据。
可选地,上述资源恢复装置还包括线程判断模块和线程监控模块,其中线程判断模块,配置为扫描是否存在已崩溃线程之外的线程崩溃;资源信息遍历模块,还配置为在线程判断子模块的判断结果为是时,重新遍历资源信息记录表中每条记录,并在线程判断子模块的判断结果为否时,判断资源信息记录表是否遍历完成,确定遍历完成后,将线程崩溃表中的所有线程崩溃状态复位为未崩溃状态;线程监控模块,配置为:循环监控运行中的线程;在运行中的线程中的任一个出现崩溃后,对全局线程崩溃计数器进行累加,并确定出现崩溃的线程的线程标识;将出现崩溃的线程的线程标识在线程崩溃表中对应的线程崩溃状态标示为已经崩溃;重启出现崩溃的线程。
可选地,上述资源恢复装置还包括:初始化模块和资源分配模块,其中初始化模块配置为:对资源信息记录表、全局线程崩溃计数器、以及线程崩溃表进行初始化,资源分配模块配置为:接收线程的资源请求;提取发出资源请求的线程的线程信息,以及所请求资源的资源元数据;将所请求资源的资源元数据存储于资源分配队列中,以按照资源分配队列检索资源元数据并将对应的资源分配给线程;从全局线程崩溃计数器中获取当前线程崩溃计数;将资源请求的线程的线程信息、所请求资源的资源元数据、当前线程崩溃计数匹配保存为信息记录表中的一条记录。
根据本发明另一个方面,还提供了一种数据处理系统,并发运行有多个线程,该数据处理系统包括:处理器,配置为执行以上介绍的任一种线程崩溃后的资源恢复方法;内存,配置为保存资源信息记录表、线程崩溃表、资源分配队列、以及全局线程崩溃计数器。
可选地,处理器还配置为:处理从网络中获取的数据单元,并将数据单元的头部信息存储到内存的资源信息记录表中。
本发明的线程崩溃后的资源恢复方法和装置可以在线程崩溃后,遍历资源信息记录表中每条记录,确定出崩溃进程所使用资源的资源信息,并将已崩溃线程所使用资源的资源元数据插入资源分配队列,以重新分配给重新启动的线程,从而恢复所有的资源,而不会对系统中的其他线程造成大量的开销,可以很快地重启崩溃线程及对应的资源,减小了系统宕机的风险,提高了运行可靠性。
进一步地,本发明的数据处理系统,利用以上线程崩溃后的资源恢复方法,可对其运行多个线程进行监控和崩溃快速处理,资源开销小,并且不影响正常线程的执行。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1是根据本发明一个实施例的线程崩溃后的资源恢复装置的应用环境示意图;
图2是根据本发明一个实施例的线程崩溃后的资源恢复装置的硬件实现架构的示意图;
图3是根据本发明一个实施例的线程崩溃后的资源恢复装置的结构示意图;
图4是根据本发明一个实施例的线程崩溃后的资源恢复装置中数据应用的示意图;
图5是根据本发明一个实施例的线程崩溃后的资源恢复方法中资源信息记录表的示意图;
图6是根据本发明一个实施例的线程崩溃后的资源恢复方法中线程崩溃表的示意图;
图7是根据本发明一个实施例的线程崩溃后的资源恢复方法中资源分配队列的示意图;
图8是根据本发明一个实施例的线程崩溃后的资源恢复方法的示意图;
图9是根据本发明一个实施例的线程崩溃后的资源恢复方法中生成资源信息记录表的流程图;
图10是根据本发明一个实施例的线程崩溃后的资源恢复方法中线程崩溃重启的流程图;
图11是根据本发明一个实施例的线程崩溃后的资源恢复方法中进行资源分配的流程图;
图12是根据本发明一个实施例的线程崩溃后的资源恢复方法中一种可选流程图;以及
图13是根据本发明一个实施例的数据处理系统应用于网络设备的示意图。
具体实施方式
以下将结合附图及实施例来详细说明本发明的实施方式,借此对本发明如何应用技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。需要说明的是,只要不构成冲突,本发明中的各个实施例以及各实施例中的各个特征可以相互结合,所形成的技术方案均在本发明的保护范围之内。
另外,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本发明一个实施例的线程崩溃后的资源恢复装置100的应用环境示意图,在该应用环境中,多个不同的线程访问共享资源池中的资源,示例环境包括一个本实施例提供的线程崩溃后的资源恢复装置100、共享资源和多个线程(用线程1到线程N标识)。
本实施例提供的线程崩溃后的资源恢复装置100配置为实现恢复线程崩溃后续共享资源的功能。当线程完全停止执行它预期的操作或者功能,并且停止响应或者不以预期的方式在示例环境中进行互动,即确定线程崩溃。线程1至线程N中每个线程包括正在执行任务的程序,与共享资源进行交互。
共享资源可以包括多种资源,用资源1至资源N标识,这些资源可以是任何硬件或者软件资源,它们可以执行功能或者可以被用于线程中实现功能。在某些可选实施例中,从资源1至资源N的每个资源可以包括一块内存或者内存中存储的一个对象或者内存中存储的数据(例如:元数据包头和内存中存储的包有效载荷等)。
图2是根据本发明一个实施例的线程崩溃后的资源恢复装置100的硬件实现架构的示意图,如图2所示,本实施例提供的线程崩溃后的资源恢复装置100的应用环境可以在配备处理器207的计算设备中实现,例如,一个台式机或笔记本电脑或服务器,其中处理器207负责处理数据。资源恢复装置100包括总线208,处理器207,主存203,只读存储器204和存储设备205,输入设备201,输出设备202和通讯接口206,总线208负责提供这些组件之间的数据传送途径。
处理器207包括微处理器(交互或者执行指令的处理逻辑)或者并行处理器;主存203包括随机访问内存(ram)或者其它的动态存储设备(可以存储处理器执行的信息或者指令);只读存储器204包括只读存储器设备或者另外的静态存储设备(存储处理器用到的静态信息和指令),存储设备205包括磁或光记录介质以及相应的驱动器;输入设备201包括键盘,鼠标,光笔语音识别或者生物识别设备等。输出设备203包括显示器,打印机等,通讯接口包括任何类似收发器的设备,使得系统可以和其它的设备或者系统进行交互。
资源恢复装置100能够执行一定的操作或进程,作为对处理器207执行主存中的软件指令的响应;一个可读的计算机介质被定义为物理或者逻辑内存设备。一个逻辑内存设备包括一个单独的物理内存设备空间或者跨越多个设备的内存空间。软件指令可以从存储设备205,或者通过通讯接口206读入主存203,主存203中的软件指令可被处理器207调用以执行特定的功能,或者,可以用硬件连线电路来代替或者结合软件指令以实现本实施例原理一致的过程。
图3是根据本发明一个实施例的线程崩溃后的资源恢复装置100的结构示意图,该线程崩溃后的资源恢复装置100一般性地可以包括:资源信息遍历模块110、元数据提取模块120、队列处理模块130、线程判断模块140、线程监控模块150、初始化模块160、资源分配模块170。以上模块可以根据本实施例的线程崩溃后的资源恢复装置100的功能和配置灵活进行配置,在一些可选实施例中,可以不同时配置以上所有模块。另外,以上元数据提取模块120还可以包括:计数获取子模块121、比较子模块122、判断子模块123、数据提取子模块124。
资源信息遍历模块110配置为遍历资源信息记录表中每条记录,其中资源信息记录表中的一条记录保存有一项资源的资源元数据、使用该项资源的线程的线程信息。元数据提取模块120配置为根据遍历结果确定出已崩溃线程所使用资源的资源元数据;队列处理模块130配置为将已崩溃线程所使用资源的资源元数据插入资源分配队列,以重新分配给线程。
本实施例的线程崩溃后的资源恢复装置100在线程崩溃后,遍历资源信息记录表中每条记录,确定出崩溃进程所使用资源的资源信息,并将已崩溃线程所使用资源的资源元数据插入资源分配队列,以重新分配给重新启动的线程,从而快速恢复了所有资源,而不会对系统中的其他线程造成大量的开销,可以很快地重启崩溃线程并分配对应的资源,减小了系统宕机的风险,提高了多线程并行的数据处理系统的运行可靠性。
资源信息记录表中记录的线程信息包括:线程标识和生成该条记录时的线程崩溃计数。元数据提取模块120的一种可选结构为:计数获取子模块121配置为获取全局线程崩溃计数器的数值,该全局线程崩溃计数器配置为记录所有线程的崩溃总数;比较子模块122配置为比较全局线程崩溃计数器的数值与生成该条记录时的线程崩溃计数;判断子模块123配置为在全局线程崩溃计数器的数值大于生成该条记录时的线程崩溃计数的情况下,获取该条记录的线程标识,在线程崩溃表中查询该条记录的线程标识对应的线程崩溃状态,以确定该条记录对应的线程是否崩溃,其中线程崩溃表中存储有每个线程的线程标识和线程崩溃状态;数据提取子模块124配置为在判断子模块123的判断结果为是时,提取该条记录中的资源元数据。
本实施例的资源恢复装置100可以利用线程监控模块150来确定线程是否崩溃,一种可选的方式为线程监控模块150配置为:循环监控运行中的线程;在运行中的线程中的任一个出现崩溃后,对全局线程崩溃计数器进行累加,并确定出现崩溃的线程的线程标识;将出现崩溃的线程的线程标识在线程崩溃表中对应的线程崩溃状态标示为已经崩溃;重启出现崩溃的线程。
在资源信息遍历模块110进行遍历资源信息记录表的过程中,线程判断模块140还可以扫描是否存在已崩溃线程之外的线程崩溃,资源信息遍历模块110在线程判断子模块140的判断结果为是时,重新遍历资源信息记录表中每条记录,并在线程判断子模块140的判断结果为否时,判断资源信息记录表是否遍历完成,确定遍历完成后,将线程崩溃表中的所有线程崩溃状态复位为未崩溃状态。
另外,初始化模块160在本实施例的资源恢复装置100启动后首先可以对资源信息记录表、全局线程崩溃计数器、以及线程崩溃表进行初始化,以便执行后续的流程。
完成初始化后,资源分配模块170可以执行以下步骤:接收线程的资源请求;提取发出资源请求的线程的线程信息,以及所请求资源的资源元数据;将所请求资源的资源元数据存储于资源分配队列中,以按照资源分配队列检索资源元数据并将对应的资源分配给线程;从全局线程崩溃计数器中获取当前线程崩溃计数;将资源请求的线程的线程信息、所请求资源的资源元数据、当前线程崩溃计数匹配保存为信息记录表中的一条记录。资源分配模块170随后可以按照资源分配队列进行资源分配,在本实施例的资源恢复装置100中的队列处理模块130将已崩溃线程所使用资源的资源元数据插入资源分配队列后,资源分配模块170可以将其重新分配给重启后的线程。
图4是根据本发明一个实施例的线程崩溃后的资源恢复装置100中数据应用的示意图,线程崩溃后的资源恢复装置100与共享资源、资源信息记录表(可以为资源元数据数组形式)、全局线程崩溃计数器、线程崩溃表、资源分配队列分别建立数据连接。其中,资源信息记录表、全局线程崩溃计数器、线程崩溃表和资源分配队列可以存储在内存203中。
在出现线程崩溃时,线程崩溃后的资源恢复装置100可以与全局线程崩溃计数器、线程崩溃表和资源分配队列相结合,一起恢复共享资源。
资源信息记录表存储一组元数据,资源元数据可存储在数组中,或者通过资源恢复管理单元从数组中检索得到。其中以数组元素存储的元数据与共享资源中的单个资源相关联。元数据(Meta Data)是指在数据有关数据源定义,目标定义,转换规则等相关的关键数据。元数据是一种二进制信息,用以对存储在公共语言运行库可移植可执行文件或存储在内存中的程序进行描述。当执行代码时,运行库将元数据加载到内存中,并引用它来发现有关代码的类、成员、继承等信息。
元数据以非特定语言的方式描述在代码中定义的每一类型和成员。元数据存储以下信息:程序集的说明;标识(名称、版本、区域性、公钥);导出的类型;该程序集所依赖的其他程序集;运行所需的安全权限;类型的说明;名称、可见性、基类和实现的接口;成员(方法、字段、属性、事件、嵌套的类型);属性;修饰类型和成员的其他说明性元素。
资源元数据存储某个特定资源的元数据,例如,如果这个资源包括数据包,则元数据包括包头元数据信息。线程标识域字段识别当前已分配相应资源元数据相关联的资源线程。
资源信息记录表可以用一个多维数组的形式存储于内存中,多维数组中包括代表线程标识的维度、代表资源元数据的维度、代表线程崩溃计数的维度。图5是根据本发明一个实施例的线程崩溃后的资源恢复方法中资源信息记录表的示意图,资源元数据存储某个特定资源的元数据,例如,如果这个资源包括数据包,则元数据可能包括包头元数据信息。线程标识域字段识别当前已分配相应资源元数据相关联的资源线程。线程崩溃计数器域存储资源的元数据加入资源信息记录表时全局线程崩溃计数器的取值,线程崩溃计数器域存储资源的元数据加入元数据数组时全局线程崩溃计数器的取值。在图5中资源_1对应于资源元数据_1,其被线程ID_1使用,资源_1的元数据1的资源元数据_1加入资源信息记录表时,全局线程崩溃计数器记录全部线程的崩溃次数。
全局线程崩溃计数器维持计数器取值。存储在全局线程崩溃计数器中的计数器维持线程1至线程N崩溃的次数累计之和。
线程崩溃表存储与每个线程相关的线程标示符线程ID,同时还有线程崩溃标示符,它指示是否相应的线程处于崩溃状态,线程崩溃表维持一个记录表,它记录线程1至线程N中哪些线程处于崩溃状态。图6是根据本发明一个实施例的线程崩溃后的资源恢复方法中线程崩溃表的示意图,如图6所示,线程崩溃表包括多个入口,每个入口包括一个线程标示符域,线程标示符域唯一标示线程1至线程N。线程崩溃指示符域指示线程标示符域中的线程是否已经崩溃。线程崩溃指示符可以采用指针的形式,例如线程崩溃指针可以包括两种状态:未崩溃(否)和已崩溃(是),可以将指针值1对应表示为线程崩溃,将指针值0对应标识为线程正常运行。
资源分配队列暂时存储与资源相关的元数据,随后该资源可能会被某个线程请求,或者某个正处于崩溃状态的线程正在使用该资源。在资源恢复过程中,如果某个资源预先要分配给某个线程,则资源恢复管理单元从队列中检索资源的元数据。图7是根据本发明一个实施例的线程崩溃后的资源恢复方法中资源分配队列的示意图,资源分配队列存储多个资源元数据子项目(资源元数据子项目1至资源元数据子项目N),这些资源元数据从本实施例的资源恢复装置100获得。存储在资源分配队列中的资源元数据与线程标识域关联,该域指示线程集合中的某个线程可能请求资源的使用信息,不同资源具有各自的资源元数据。资源元数据存储在资源分配队列中,直到各自资源分配给线程标示符标示的线程(或者预先分配资源以防线程崩溃)。
本发明实施例还提供了一种线程崩溃后的资源恢复方法,该线程崩溃后的资源恢复方法可以由以上实施例中介绍的线程崩溃后的资源恢复装置100执行,以在线程崩溃后快速恢复系统共享资源。图8是根据本发明一个实施例的线程崩溃后的资源恢复方法的示意图,该线程崩溃后的资源恢复方法一般性地可以包括以下步骤:
步骤S802,遍历资源信息记录表中每条记录;
步骤S804,根据遍历结果确定出已崩溃线程所使用资源的资源元数据;
步骤S806,将已崩溃线程所使用资源的资源元数据插入资源分配队列,以重新分配给线程。
资源信息记录表中的一条记录保存有一项资源的资源元数据以及使用该项资源的线程的线程信息;利用资源信息记录表可以快速搜索到线程与其所使用资源的对应关系。
资源信息记录表中记录的线程信息包括:线程标识和生成该条记录时的线程崩溃计数。从而步骤S802的一种可选流程为:获取全局线程崩溃计数器的数值,全局线程崩溃计数器配置为记录所有线程的崩溃总数;比较全局线程崩溃计数器的数值与生成该条记录时的线程崩溃计数;在全局线程崩溃计数器的数值大于生成该条记录时的线程崩溃计数的情况下,判断该条记录对应的线程是否崩溃;若是,提取该条记录中的资源元数据。
判断资源信息记录表某条记录对应的线程是否崩溃的具体步骤可以包括:获取该条记录的线程标识;在线程崩溃表中查询该条记录的线程标识对应的线程崩溃状态,以确定该条记录对应的线程是否崩溃,其中线程崩溃表中存储有每个线程的线程标识和线程崩溃状态。
在遍历资源信息记录表的过程中,每扫描结束一条记录后,本实施例的线程崩溃后的资源恢复方法还需要扫描是否存在已崩溃线程之外的线程崩溃;若是,重新遍历资源信息记录表中每条记录;若否,判断资源信息记录表是否遍历完成,并在遍历完成后,将线程崩溃表中的所有线程崩溃状态复位为未崩溃状态。
为了及时确定线程的运行状态,在步骤S802之前,还需要循环监控运行中的线程;在运行中的线程中的任一个出现崩溃后,对全局线程崩溃计数器进行累加,并确定崩溃线程的线程标识;将出现崩溃的线程的线程标识在线程崩溃表中对应的线程崩溃状态标示为已经崩溃;重启出现崩溃的线程。从而及时更新全局线程崩溃计数器和线程崩溃表的状态。
在执行本实施例的线程崩溃后的资源恢复方法的系统启动后,需要首先对资源信息记录表、全局线程崩溃计数器、以及线程崩溃表进行初始化;然后接收线程的资源请求;提取发出资源请求的线程的线程信息,以及所请求资源的资源元数据;将所请求资源的资源元数据存储于资源分配队列中,以按照资源分配队列检索资源元数据并将对应的资源分配给线程;从全局线程崩溃计数器中获取当前线程崩溃计数;将资源请求的线程的线程信息、所请求资源的资源元数据、当前线程崩溃计数匹配保存为信息记录表中的一条记录。完成本实施例的线程崩溃后的资源恢复方法的准备流程。
图9是根据本发明一个实施例的线程崩溃后的资源恢复方法中生成资源信息记录表的流程图,该生成资源信息记录表的流程包括:
步骤S902,按照预设的顺序循环每个资源;
步骤S904,接收资源数据,包括接收资源元数据,当给定的资源被标示为线程请求使用时,接收资源的元数据。
步骤S904,将接收的资源元数据存储在资源信息记录表中。此时需要从全局崩溃计数器中获取数值,以作为判断线程崩溃时间的依据。
存储的元数据与资源信息记录表中的资源元数据的特定资源相关联。例如,如果给定的资源是数据包,资源恢复装置在数组中的资源元数据中存储包的头部元数据。
对于共享资源中的每个资源,均可以有选择性的循环执行。
图10是根据本发明一个实施例的线程崩溃后的资源恢复方法中线程崩溃重启的流程图,该线程重启流程包括:
步骤S1002,初始化全局线程崩溃计数器,例如设置全局线程崩溃计数器至1,在系统初始化或者重启时,全局线程崩溃计数器被初始化为1,随后,每当资源恢复单元检测到线程崩溃时,其计数器取值加1。
步骤S1004,判断是否有线程崩溃,可以通过监控线程队列以判断是否有线程崩溃,如果当前线程没有崩溃,则循环监控下一线程;
步骤S1006,如果当前线程崩溃,全局线程崩溃计数器的取值加1;
步骤S1008,识别崩溃线程的线程ID;
步骤S1010,设置线程崩溃表中对应于崩溃线程的线程崩溃指针,该步骤的一种具体执行方式为根据该线程ID找到崩溃线程在线程崩溃表中入口,入口对应的线程ID字段与崩溃的线程ID是对应的,设置入口对应的线程崩溃指针标识崩溃状态为是,以标识线程已经崩溃;
步骤S1012,重启崩溃的线程,在线程重启过程,已崩溃的线程进行资源的重分配,分配的方法即执行本实施例的线程崩溃后的资源恢复方法。
以上线程崩溃的监控过程,可以按照预设的顺序有选择性地对线程进行循环。
图11是根据本发明一个实施例的线程崩溃后的资源恢复方法中进行资源分配的流程图,该资源分配的流程包括:
步骤S1102,接收线程的资源请求,线程1至线程N中的任意一个线程请求对应的资源,该资源的元数据存储在资源信息记录表中;
步骤S1104,按照资源请求将资源元数据存储于资源分配队列中,一种可选方式为从资源信息记录表中检索被请求资源的元数据并将检索到的元数据和请求线程的线程ID一并存储在队列中;
步骤S1106,从资源分配队列中检索资源元数据以分配资源给线程,此时,可以从资源分配队列中检索元数据及线程ID,该队列可使用各种预先设定的机制,例如采用基于先来先服务机制,以及优先级机制等;
步骤S1108,获得全局线程崩溃计数器的当前值;
步骤S1110,将获得的全局线程崩溃计数器的取值和请求的资源元数据相关联,存储于资源信息记录表中;
步骤S1112,关联线程的线程ID和分配的资源。
在以上流程中,可以将线程的线程ID存储在资源信息记录表的线程ID域中,同时将资源的元数据存储在资源信息记录表的元数据域中,并且以上资源分配流程可以对线程队列中的任意资源请求重复执行。
图12是根据本发明一个实施例的线程崩溃后的资源恢复方法中一种可选流程图,该流程可由以上实施例中的资源恢复装置所执行。该资源恢复方法包括以下步骤:
步骤S1202,监控线程的运行状态,确定是否存在线程崩溃,监控的方式可以采用循环监控线程1至线程N是否响应正常以确认是否有线程崩溃,如果没有线程崩溃,则循环监控下一线程;
步骤S1204,如果有线程崩溃,则遍历资源信息记录表中的资源元数据以获得资源元数据的下一条目,在示例性过程中遍历数据数组第一次执行时,资源元数据的下一条目即是数据数组的第一个资源元数据条目,可顺序一步一步的方式遍历资源信息记录表,使得遍历资源信息记录表中的每个资源元数据能够被分析以确定是否有相应的资源需要恢复;
步骤S1206,获取全局线程崩溃计数器的当前值;
步骤S1208,对比全局线程崩溃计数器的取值与资源信息记录表中的线程崩溃计数器的数值,确定该线程崩溃的时间早于遍历该线程的时间,以保证不是在遍历线程后出现的线程崩溃;
步骤S1210,判断全局线程崩溃计数器的值是否大于资源存储的线程崩溃计数器取值,如果全局线程崩溃计数器的取值小于等于该资源的线程崩溃计数器的取值,则示例性进程返回资源信息记录表中的下一个资源元数据;
步骤S1212,如果全局线程崩溃计数器的取值大于资源的线程崩溃计数器,获取该崩溃线程的线程ID;
步骤S1214,获取该线程ID对应的崩溃指针,该崩溃指针记录于线程崩溃表中,因此可根据线程ID在线程崩溃表中查找出对应的线程崩溃指针;
步骤S1216,根据崩溃指针确定该线程是否已经崩溃,例如获取的线程崩溃表中的崩溃指针值设置为1指示线程崩溃,以及或者崩溃指针值设置为0指示线程并不处于‘崩溃’状态。如果线程崩溃表不指示线程已经崩溃,则示例性过程返回遍历资源信息记录表中的下一个资源元数据;
步骤S1218,如果线程崩溃表显示线程已经崩溃,则资源的资源元数据会插入到资源分配队列,从分配队列中取得资源元数据和线程ID,可以给线程ID对应的线程重新分配资源。从队列中取得资源元数据可以基于各种不同的机制,例如,基于先来先服务机制,或者基于分配给每个线程或者每个资源的优先权优先机制等。或者,在线程崩溃之后,我们不是重新给该线程分配资源,而是释放该资源,将资源返回至可用的资源池以备将来使用;
步骤S1220,判断是否有当前遍历的线程之外的线程崩溃;
步骤S1222,如果有其他的线程崩溃了,则重新遍历数据数组中的资源元数据;
步骤S1224,判断资源信息记录表遍历是否完成,从而可以一步一步遍历的方式遍历资源信息记录表(从资源元数据数组的第一个条目开始,这样资源信息记录表中的每个资源元数据可以得到成功分析以确定相应的资源需要恢复),如果数据数组中的资源元数据没有遍历完全,则会重复这一过程遍历下一个资源元数据;
步骤S1226,如果资源信息记录表中的所有资源元数据已经遍历完全,则所有的线程崩溃表被清空。
最后返回循环进行其他线程崩溃检测。
在清除所有的线程崩溃表之前,通过访问资源信息记录表以遍历所有的资源元数据。资源可能同时修复或重启,并且几乎同时伴随着崩溃线程重新分配。因此,以上流程的资源元数据的遍历可以作为后台进程执行。
本实施例还提供了一种数据处理系统,并发运行有多个线程,该数据处理系统包括:处理器,配置为执行以上实施例中介绍的任一种线程崩溃后的资源恢复方法;内存,配置为保存资源信息记录表、线程崩溃表、资源分配队列、以及全局线程崩溃计数器。其中处理器还配置为:处理从网络中获取的数据单元,并将数据单元的头部信息存储到内存的资源信息记录表中。
图13是根据本发明一个实施例的数据处理系统应用于网络设备的示意图,该应用环境中,网络设备中作为转发包或者其它数据单元的路由器实现。路由器从物理链路中接收一个或者多个数据流包,处理数据流决定目的地址信息,并根据目的端地址信息在一条或者多条链路上传输数据流。
网络设备包括一个路由引擎和多个包转发引擎,用包转发引擎1至N标示,这些包转发引擎通过交换矩阵互联。交换矩阵包括一个或者多个交换平面以加速两个或者多个包转发引擎之间的通信,每个交换平面包括横杆元件的三级交换。
路由引擎包括处理逻辑,用于执行高级别的管理功能。例如,路由引擎和其它与网络设备相连的网络和系统进行通讯,以交换网络拓扑信息。路由引擎基于网络拓扑信息创建路由表,基于路由表创建转发表。包转发引擎使用转发表执行路由查找。路由引擎同时也对网络设备执行其它统一的控制和监控功能。
每个包转发引擎可以连接到路由引擎和交换矩阵,交换矩阵(switch fabric)可以为背板式交换机上的硬件结构,用于在各个线路板卡之面实现高速的点到点连接。交换矩阵提供了能在插槽之间的各个点到点连接上同时转发数据包的机制。包转发引擎在连接至网络的物理链路层接收数据,例如在广域网中,局域网或者无线网中。每个物理链路层可以是任何传输介质的一种,如光纤或者以太网。物理链路层的数据可以走多种协议,如同步光网络标准,异步传输模式的技术或以太网协议格式化。
在图13中所示的示例实施方案中,传入的数据包可以被存储在内存中作为“共享资源”,例如当包到达图中所示的网络设备时,如果给定的资源是数据包,资源恢复装置可以获得包的头部元数据,该数据包可以被路由引擎或包转发引擎所执行的多个线程访问,以上多个线程通过执行以上实施例中介绍的资源恢复方法,在出现线程崩溃后,及时对传输的数据包的资源进行恢复,避免了丢包等故障的出现。
使用本实施例的以上线程崩溃后的资源恢复方法,在线程崩溃后,遍历资源信息记录表中每条记录,确定出崩溃进程所使用资源的资源信息,并将已崩溃线程所使用资源的资源元数据插入资源分配队列,以重新分配给重新启动的线程,从而恢复所有的资源,而不会对系统中的其它线程造成大量的开销,可以很快地重启崩溃线程及对应的资源,减小了系统宕机的风险,提高了运行可靠性。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
至此,本领域技术人员应认识到,虽然本文已详尽示出和描述了本发明的多个示例性实施例,但是,在不脱离本发明精神和范围的情况下,仍可根据本发明公开的内容直接确定或推导出符合本发明原理的许多其他变型或修改。因此,本发明的范围应被理解和认定为覆盖了所有这些其他变型或修改。
Claims (10)
1.一种线程崩溃后的资源恢复方法,其特征在于包括:
遍历资源信息记录表中每条记录,其中所述资源信息记录表中的一条记录保存有一项资源的资源元数据以及使用该项资源的线程的线程信息,所述线程信息包括:线程标识和生成该条记录时的线程崩溃计数;
根据所述遍历结果确定出已崩溃线程所使用资源的资源元数据,该步骤包括:获取全局线程崩溃计数器的数值,所述全局线程崩溃计数器配置为记录所有线程的崩溃总数;比较所述全局线程崩溃计数器的数值与所述生成该条记录时的线程崩溃计数;在所述全局线程崩溃计数器的数值大于所述生成该条记录时的线程崩溃计数的情况下,判断该条记录对应的线程是否崩溃;若是,提取该条记录中的资源元数据;
将所述已崩溃线程所使用资源的资源元数据插入资源分配队列,以重新分配给线程。
2.根据权利要求1所述的方法,其特征在于,判断该条记录对应的线程是否崩溃的步骤包括:
获取该条记录的线程标识;
在线程崩溃表中查询该条记录的线程标识对应的线程崩溃状态,以确定所述该条记录对应的线程是否崩溃,其中所述线程崩溃表中存储有每个线程的线程标识和线程崩溃状态。
3.根据权利要求2所述的方法,其特征在于,在将所述已崩溃线程所使用资源的资源元数据插入资源分配队列之后的步骤还包括:
扫描是否存在所述已崩溃线程之外的线程崩溃;
若是,重新遍历所述资源信息记录表中每条记录;
若否,判断所述资源信息记录表是否遍历完成,并在遍历完成后,将所述线程崩溃表中的所有线程崩溃状态复位为未崩溃状态,其中所述资源信息记录表以一个多维数组的形式存储于内存中,所述多维数组中包括代表线程标识的维度、代表资源元数据的维度、代表线程崩溃计数的维度。
4.根据权利要求2所述的方法,其特征在于,在遍历资源信息记录表中每条记录的步骤之前还包括:
循环监控运行中的线程;
在所述运行中的线程中的任一个出现崩溃后,对所述全局线程崩溃计数器进行累加,并确定出现崩溃的线程的线程标识;
将所述出现崩溃的线程的线程标识在所述线程崩溃表中对应的线程崩溃状态标示为已经崩溃;
重启所述出现崩溃的线程。
5.根据权利要求4所述的方法,其特征在于,循环监控运行中的线程的步骤之前还包括:
对所述资源信息记录表、所述全局线程崩溃计数器、以及所述线程崩溃表进行初始化;
接收线程的资源请求;
提取发出所述资源请求的线程的线程信息,以及所请求资源的资源元数据;
将所述所请求资源的资源元数据存储于所述资源分配队列中,以按照所述资源分配队列检索资源元数据并将对应的资源分配给线程;
从所述全局线程崩溃计数器中获取当前线程崩溃计数;
将所述资源请求的线程的线程信息、所述所请求资源的资源元数据、当前线程崩溃计数匹配保存为所述信息记录表中的一条记录。
6.一种线程崩溃后的资源恢复装置,其特征在于包括:
资源信息遍历模块,配置为遍历资源信息记录表中每条记录,其中所述资源信息记录表中的一条记录保存有一项资源的资源元数据、使用该项资源的线程的线程信息,所述线程信息包括:线程标识和生成该条记录时的线程崩溃计数;
元数据提取模块,配置为根据所述遍历结果确定出已崩溃线程所使用资源的资源元数据,所述元数据提取模块包括:计数获取子模块,配置为获取全局线程崩溃计数器的数值,所述全局线程崩溃计数器配置为记录所有线程的崩溃总数;比较子模块,配置为比较所述全局线程崩溃计数器的数值与所述生成该条记录时的线程崩溃计数;判断子模块,配置为在所述全局线程崩溃计数器的数值大于所述生成该条记录时的线程崩溃计数的情况下,获取该条记录的线程标识,在线程崩溃表中查询该条记录的线程标识对应的线程崩溃状态,以确定所述该条记录对应的线程是否崩溃,其中所述线程崩溃表中存储有每个线程的线程标识和线程崩溃状态;数据提取子模块,配置为在判断子模块的判断结果为是时,提取该条记录中的资源元数据;
队列处理模块,配置为将所述已崩溃线程所使用资源的资源元数据插入资源分配队列,以重新分配给线程。
7.根据权利要求6所述的装置,其特征在于,还包括线程判断模块和线程监控模块,其中
所述线程判断模块,配置为扫描是否存在所述已崩溃线程之外的线程崩溃;
所述资源信息遍历模块,还配置为在所述线程判断子模块的判断结果为是时,重新遍历所述资源信息记录表中每条记录,并在所述线程判断子模块的判断结果为否时,判断所述资源信息记录表是否遍历完成,确定遍历完成后,将所述线程崩溃表中的所有线程崩溃状态复位为未崩溃状态;
所述线程监控模块,配置为:
循环监控运行中的线程;在所述运行中的线程中的任一个出现崩溃后,对所述全局线程崩溃计数器进行累加,并确定出现崩溃的线程的线程标识;
将所述出现崩溃的线程的线程标识在所述线程崩溃表中对应的线程崩溃状态标示为已经崩溃;
重启所述出现崩溃的线程。
8.根据权利要求7所述的装置,其特征在于还包括:初始化模块和资源分配模块,其中
所述初始化模块配置为:对所述资源信息记录表、所述全局线程崩溃计数器、以及所述线程崩溃表进行初始化,
所述资源分配模块配置为:
接收线程的资源请求;
提取发出所述资源请求的线程的线程信息,以及所请求资源的资源元数据;
将所述所请求资源的资源元数据存储于所述资源分配队列中,以按照所述资源分配队列检索资源元数据并将对应的资源分配给线程;
从所述全局线程崩溃计数器中获取当前线程崩溃计数;
将所述资源请求的线程的线程信息、所述所请求资源的资源元数据、当前线程崩溃计数匹配保存为所述信息记录表中的一条记录。
9.一种数据处理系统,并发运行有多个线程,其特征在于包括:
处理器,配置为执行权利要求1至5中任一项所述的线程崩溃后的资源恢复方法;
内存,配置为保存资源信息记录表、线程崩溃表、资源分配队列、以及全局线程崩溃计数器。
10.根据权利要求9所述的数据处理系统,其特征在于所述处理器还配置为:
处理从网络中获取的数据单元,并将所述数据单元的头部信息存储到所述内存的所述资源信息记录表中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410572514.4A CN104461862B (zh) | 2014-10-23 | 2014-10-23 | 数据处理系统以及线程崩溃后的资源恢复方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410572514.4A CN104461862B (zh) | 2014-10-23 | 2014-10-23 | 数据处理系统以及线程崩溃后的资源恢复方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104461862A CN104461862A (zh) | 2015-03-25 |
CN104461862B true CN104461862B (zh) | 2017-07-21 |
Family
ID=52907951
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410572514.4A Active CN104461862B (zh) | 2014-10-23 | 2014-10-23 | 数据处理系统以及线程崩溃后的资源恢复方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104461862B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105404555A (zh) * | 2015-12-29 | 2016-03-16 | 重庆安碧捷科技股份有限公司 | 医疗多线程共享资源分配处理方法及系统 |
CN106959895B (zh) * | 2016-01-12 | 2021-01-01 | 创新先进技术有限公司 | 快速释放线程的资源调度方法和系统 |
CN106407016B (zh) * | 2016-10-19 | 2021-06-25 | 腾讯科技(深圳)有限公司 | 一种多线程争抢资源的模拟方法及装置 |
CN107665113B (zh) * | 2017-09-07 | 2020-12-04 | 广东博立科技有限公司 | 防程序因指针跑飞而令程序系统崩溃的软件方法 |
CN109788373B (zh) * | 2019-03-29 | 2020-07-14 | 烽火通信科技股份有限公司 | 一种无损调整otn保护业务的方法及系统 |
US11934378B2 (en) * | 2021-03-11 | 2024-03-19 | International Business Machines Corporation | Recording changes to records whilst preserving record immutability |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6317816B1 (en) * | 1999-01-29 | 2001-11-13 | International Business Machines Corporation | Multiprocessor scaleable system and method for allocating memory from a heap |
US6505275B1 (en) * | 2000-07-24 | 2003-01-07 | Sun Microsystems, Inc. | Method for scalable memory efficient thread-local object allocation |
CN1987792A (zh) * | 2006-12-20 | 2007-06-27 | 金魁 | 高级多线程管理的应用系统 |
CN102375758A (zh) * | 2010-08-20 | 2012-03-14 | 联芯科技有限公司 | 移动通信设备浏览器防假死方法和装置 |
CN102436404A (zh) * | 2011-08-24 | 2012-05-02 | 苏州阔地网络科技有限公司 | 一种进程守护方法 |
CN103632331A (zh) * | 2013-11-26 | 2014-03-12 | 福建四创软件有限公司 | 一种可配置插件式的数据服务方法 |
-
2014
- 2014-10-23 CN CN201410572514.4A patent/CN104461862B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6317816B1 (en) * | 1999-01-29 | 2001-11-13 | International Business Machines Corporation | Multiprocessor scaleable system and method for allocating memory from a heap |
US6505275B1 (en) * | 2000-07-24 | 2003-01-07 | Sun Microsystems, Inc. | Method for scalable memory efficient thread-local object allocation |
CN1987792A (zh) * | 2006-12-20 | 2007-06-27 | 金魁 | 高级多线程管理的应用系统 |
CN102375758A (zh) * | 2010-08-20 | 2012-03-14 | 联芯科技有限公司 | 移动通信设备浏览器防假死方法和装置 |
CN102436404A (zh) * | 2011-08-24 | 2012-05-02 | 苏州阔地网络科技有限公司 | 一种进程守护方法 |
CN103632331A (zh) * | 2013-11-26 | 2014-03-12 | 福建四创软件有限公司 | 一种可配置插件式的数据服务方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104461862A (zh) | 2015-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104461862B (zh) | 数据处理系统以及线程崩溃后的资源恢复方法和装置 | |
EP3685294B1 (en) | Cryptlet binding key graph | |
CN104428752B (zh) | 将虚拟机流卸载至物理队列 | |
CN101667144B (zh) | 一种基于共享内存的虚拟机通信方法 | |
CN108282527B (zh) | 生成服务实例的分布式系统和方法 | |
CN104618693B (zh) | 一种基于云计算的监控视频在线处理任务管理方法及系统 | |
CN1770110B (zh) | 对I/O完成进行无锁InfiniBand轮询的方法和系统 | |
CN108595157A (zh) | 区块链数据的处理方法、装置、设备和存储介质 | |
CN104346135B (zh) | 数据流并行处理的方法、设备及系统 | |
CN108874506A (zh) | 虚拟机直通设备的热迁移方法和装置 | |
US20070143315A1 (en) | Inter-partition communication in a virtualization environment | |
CN105979007A (zh) | 加速资源处理方法、装置及网络功能虚拟化系统 | |
CN106874320A (zh) | 分布式流式数据处理的方法和装置 | |
CN109542980A (zh) | 一种区块链的数据处理方法、装置、设备及介质 | |
US20090150556A1 (en) | Memory to storage communication for hybrid systems | |
US20170264565A1 (en) | Hierarchical resource tree allocation | |
CN107277086A (zh) | 业务处理系统、业务处理方法以及业务更新方法 | |
CN107250984A (zh) | 用于利用工作窃取支持进行有效同步屏障的技术 | |
CN105094981B (zh) | 一种数据处理的方法及装置 | |
CN107133243A (zh) | 一种数据处理方法和服务器 | |
CN113239098B (zh) | 一种数据管理方法、计算机及可读存储介质 | |
CN106462599A (zh) | 缓存存储器与工作进程的关联 | |
CN109976907A (zh) | 任务分配方法和系统、电子设备、计算机可读介质 | |
CN107124473A (zh) | 云平台的构建方法及云平台 | |
CN101617297A (zh) | 多处理器存储区域网络中的虚拟化支持 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |