CN110162385A - 可动态刷新内存对象的处理框架 - Google Patents
可动态刷新内存对象的处理框架 Download PDFInfo
- Publication number
- CN110162385A CN110162385A CN201810151263.0A CN201810151263A CN110162385A CN 110162385 A CN110162385 A CN 110162385A CN 201810151263 A CN201810151263 A CN 201810151263A CN 110162385 A CN110162385 A CN 110162385A
- Authority
- CN
- China
- Prior art keywords
- memory object
- memory
- refreshing
- refresh
- refreshable
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
- G06F9/467—Transactional memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Dram (AREA)
Abstract
本文公开的一种可动态刷新内存对象的处理框架的相关技术,通过这种框架对各个业务逻辑针对内存对象的刷新行为进行统一协调管理,从而避免无序的内存对象的刷新所带来的冲突。
Description
背景技术
运行于系统中的各个业务逻辑,经常存在使用最近的数据和/或配置参数和/或脚本或程序集的应用场景,这些数据或者脚本或程序集以动态运行对象的形式存在于内存中,在下文中称之为内存对象。这些内存对象中封装的数据或者脚本或程序集经常需要刷新。由于系统中运行的业务逻辑非常多,对内存对象的调用以及刷新也会非常多,如何协调好各个业务逻辑之间的冲突以及如何有效地调度系统资源是一个待解决的难题。
发明内容
提供本发明实施例内容是为了以精简的形式介绍将在以下详细描述中进一步描述的一些概念。本发明内容并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。
本发明实施例提出了一种可动态刷新内存对象的处理框架的相关技术,通过这种框架对各个业务逻辑针对内存对象的刷新行为进行统一协调管理,从而解决以下一方面或者多方面的问题:
避免各个业务逻辑无序地对内存对象的刷新所带来的冲突;
解决刷新任务本身对系统资源占用的不可控;
避免刷新任务占用业务逻辑的执行时间,刷新任务过多地占用业务逻辑的执行时间。会导致内存对象的刷新对内对象的使用造成影响,严重地会导致内存对象的使用阻塞。
上述说明仅是本公开技术方案的概述,为了能够更清楚了解本公开的技术手段,而可依照说明书的内容予以实施,并且为了让本公开的上述和其它目的、特征和优点能够更明显易懂,以下特举本公开的具体实施方式。
附图说明
图1为本发明实施例的内存对象处理装置的应用示例之一的框图;
图2为本发明实施例的内存对象处理装置的应用示例之二的框图;
图3为本发明实施例的内存对象刷新处理过程之一的示意框图;
图4为本发明实施例的内存对象刷新处理过程之二的示意框图;
图5为本发明实施例的内存对象处理装置之一的结构示意框图;
图6为本发明实施例的内存对象处理装置之二的结构示意框图;
图7为本发明实施例的内存对象处理装置之三的结构示意框图;
图8为本发明实施例的内存对象处理装置之四的结构示意框图;
图9为本发明实施例的内存对象处理方法的流程之一的示意图;
图10为本发明实施例的内存对象处理方法的流程之二的示意图;
图11为本发明实施例的电子设备的框图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本文中,术语“技术”可以指代例如(一个或多个)系统、(一个或多个)方法、计算机可读指令、(一个或多个)模块、算法、硬件逻辑(例如,现场可编程门阵列(FPGA))、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)和/或上述上下文以及在本文档通篇中所允许的(一项或多项)其它技术。
在各个业务逻辑的运行过程中,经常存在使用最近的数据或者一些脚本或程序集的应用场景,这些数据或者脚本或程序集以动态运行对象的形式存在于内存中,在本文中称作内存对象。该内存对象根据数据定义或者脚本或程序集而产生的对象,是运行在内存中的对象。该内存对象可以是基于脚本或程序集的对象或者是封装了某种数据结构的对象。
对于业务逻辑来说,内存对象具有如下两方面作用:
其一:业务逻辑调用内存对象以获取数据或者通过数据来完成运算,业务逻辑调用内存对象的过程,就是获取存储于内存中的数据的过程。在这种情况下,相当于数据被封装在了内存对象中。针对这种情况,内存对象的刷新处理实际上是从远程的内容源来获取最新的数据并更新到内存中,以供业务逻辑进行调取。
其二:业务逻辑调用内存对象以实现某一功能。在这种情况下,业务逻辑调用内存对象的目的就是为了使用内存对象去执行某一处理过程。针对这种情况,内存对象的刷新处理实际上是从远程的内容源获取新的脚本或程序集,这里所说的脚本或程序集是指可以通过编译和/或初始化的过程能够成为内存中的可执行体的内容,例如,脚本一般是完整的程序代码,程序集为例如动态链接库(dll)或者包含dll和数据的程序模块等。在获取到脚本或程序集后,经过编译和/或初始化后,加载到内存中,形成新的内存对象。
当然,在实际应用中,也会存在上述两种情况的混合。
下面再介绍一下业务逻辑对内存对象的使用及刷新的主要处理过程:
1、业务逻辑初次使用内容的过程:
在业务逻辑刚刚被部署或者业务逻辑运行的初期,内存对象可能并未建立。在这种情况下,业务逻辑为了实现某一个功能可能要从内容源获取相应的内容。内容源可以存放于本地的硬盘中,也可以是远程的服务器或者数据库等,另外,单一内存对象对应的内容源也可以是分散存储的。内容源中的内容可以是数据也可以是脚本或程序集,也可以是包含数据和/或脚本或程序集的包等。其中,存储于内容源中的数据可以是一张动态更新的数据表,也可以是用户配置文件等,脚本或程序集可以是未经过编译和/或初始化的脚本文件、动态链接库文件等,这些脚本或程序集可能会被不断得更新,例如,这些脚本或程序集可以是针对黑客攻击的进行防御的程序脚本,由于黑客的攻击所使用的IP地址会经常变换或者攻击方式也会经常变换,为了灵活地实现某些动态的防御功能,使用可以临时调用的程序脚本来会比较好,在这种情况下,内容源中的脚本的一些内容会经常性地进行更新,例如攻击使用的IP地址、攻击方式等相关的参数或者防御逻辑,这些更新内容需要定期刷新到内存对象中,以供业务逻辑进行调用。
业务逻辑在最初从内容源获取到内容后,需要将获取到的内容进行加工处理,例如,如果获取的内容数据,需要加工成符合指定数据结构的数据,并在内存中生成封装该数据的内存对象,以供业务逻辑进行调用,如果是脚本,则需要对脚本进行编译,并在内存中生成用于实现脚本功能的内存对象。
2、内存对象的刷新过程
在经过业务逻辑初次从内容源获取内容后,便在内存中建立了内存对象。此后,需要定期触发内存对象的刷新处理,例如按照预定的时间间隔,根据内容源的地址信息(或者调用用于从内容源获取内容的方法),来获取最新的内容,然后加工成符合内存对象要求的数据或者对脚本或程序集进行编译和/或初始化,并替换当前的内存对象中对应的内容。
3、业务逻辑再次读取数据的过程
当业务逻辑需要再次使用内容源中的内容时,就可以调用内存对象,从而获取所需要的数据或者执行相应的功能。由于内存对象是不断地进行刷新,原则上,其封装的数据或者运行的脚本或程序集应当是内容源中最新的内容。
基于上述的内存对象的使用模式,在现有技术中,各个业务逻辑都可以直接对内存对象进行管理,业务逻辑会根据自身需要对内存对象进行刷新,以获取内容源中的最新内容。在这样的机制下,内存对象的刷新是完全被动的。对内存对象的刷新操作都会占用一定的CPU资源和/或I/O资源(例如刷新过程需要从硬盘或者网络服务器等内容源中读取内容并进行加工),当多个业务逻辑的刷新并行执行时,必然会造成CPU和/或I/O的负担过重,影响系统或者其他业务逻辑的正常运行,尤其是多个业务逻辑并发性地对内存对象进行刷新时,会对系统的运行造成严重影响。此外,对内存对象进行刷新,也会占用业务逻辑的执行时间,如果出现内存对象的刷新出现错误或者延迟等情形,业务逻辑也会被挂起或者造成延迟。
另一方面,现有的内存对象的刷新模式下,在进行内存对象的刷新过程中,是直接对内存对象引用页面以及内存对象的程序代码进行替换性的写操作,该内存对象引用页面中包含有对内存对象的引用关系,通过该引用关系,能够找到内存对象并进行调用。在这种机制下,在进行内存对象的刷新过程中,业务逻辑是无法对内存对象进行调用的,如果刷新处理出现错误或者延迟,会直接导致业务逻辑的正常运行出现错误或者被挂起。
针对上述情况,本发明实施例提出了一种可动态刷新内存对象的处理框架,在该框架中,设计了内存对象处理装置,通过该装置对各个业务逻辑针对内存对象的刷新行为进行统一协调管理,从而避免无序的内存对象的刷新所带来的对资源占用的冲突,解决了刷新任务本身对系统资源占用的不可控问题。进一步地,也避免刷新任务占用业务逻辑的执行时间而带来的诸多问题。此外,通过本发明实施例的处理框架,能够将多种被刷新对象类型进行统一管理,从而使得被刷新对象的刷新行为更加有序,能够节省系统资源。
具体应用示例
下面将介绍本发明实施例的内存对象处理装置以及方法的具体实现方式。
如图1所示,其为本发明实施例的内存对象处理装置的应用示例之一的框图100。
该的内存对象处理装置101可以设置在计算机设备102中,该计算机设备具有内存103以及硬盘104,该硬盘104可以是例如固态硬盘(SSD,Solid State Drive)、机械式硬盘或者固态硬盘和机械式硬盘的混合体。该计算机设备102可以是笔记本电脑、台式计算机、平板电脑、笔记本平板二合一电脑等计算机设备。计算机设备102也可以是设置于局域网或者互联网中的服务器,该服务器可以通过一个或多个计算机系统中实现(分布式服务器),也可以实现为基于云的服务器,该服务器可以通过互联网与用户终端连接,为用户提供服务。计算机设备102还可以实现为小型便携式(或移动)电子装置,例如,蜂窝电话、智能手机、个人数据助理(PDA)、个人媒体播放器装置、无线网络观看装置、个人头戴装置、专用装置或包括以上功能中的任何一个的混合装置。
在该计算机设备102上,安装操作系统,在该操作系统中运行有多个业务逻辑105,这些业务逻辑通过本发明实施例的内存对象处理装置101对内存对象106进行调用,确切的说,业务逻辑105是通过内存对象处理装置101获取内存对象106的引用关系,然后根据该引用关系对内存对象进行调用。内存对象106的引用关系记录在内存对象引用页面111中。并且各个内存对象106的刷新操作,也是通过内存对象处理装置101来统一调配执行,而不是由业务逻辑105来直接控制。业务逻辑105会将内存对象106的刷新行为描述提供给内存对象处理装置101,之后,由内存对象处理装置101来管理各个内存对象106的刷新处理。
在框图100所示的应用场景中,内存对象106对应的内容源存储于硬盘104中,在需要对内存对象进行刷新时,内存对象处理装置101将会访问硬盘104,从内容源107获取更新内容。
在另外一种应用场景下,如图2所示,其为本发明实施例的内存对象处理装置的应用示例之二的框图200。与图1不同之处在于,内容源107设置于网络中的服务器201中,在需要对内存对象106进行刷新时,计算机设备102中的内存对象处理装置101,通过互联网202从服务器201中的内容源107中获取所需的内容。
上述的内存对象处理装置101包括:可刷新内存对象容器108、刷新协调调度器109以及刷新行为模块110。下面将分别介绍一下这几个模块的具体功能。
可刷新内存对象容器
可刷新内存对象容器108,用于响应于刷新协调调度器109的指令,调用刷新行为模块110生成新的内存对象,并更新内存对象引用页面。此外,可刷新内存对象容器108还可以用于响应于业务逻辑105的内存对象106的引用关系的获取请求,向业务逻辑105提供内存对象的引用关系。业务逻辑105获取到引用关系后,就可以对内存对象106的调用处理,具体为通过对内存对象106进行调用,获取存储于内存103中的数据和/或通过数据来完成运算和/或执行内存对象106对应的功能,这里所说的内存对象106所对应的功能是指脚本或程序集所实现的功能。
在本发明实施例中,业务逻辑105需要通过内存对象处理装置101的可刷新内存对象容器108才能获取到内存对象106的引用关系从而才能够对内存对象106进行调用,可刷新内存对象容器108会向业务逻辑105提供相应的调用接口,可刷新内存对象容器108的内部处理过程对于业务逻辑105来说是不可见。可刷新内存对象容器108在接收到业务逻辑105的内存对象的引用关系的获取请求后,会访问内存103中的内存对象引用页面111,获取内存对象的引用关系,进而返回该业务逻辑105。
刷新行为模块
刷新行为模块110,用于记录各个业务逻辑106提供的刷新行为描述,并响应于可刷新内存对象容器108的调用,根据刷新行为描述,生成新的内存对象。
上述的刷新任务实际上是由刷新行为模块110和可刷新内存对象容器108共同完成的。
在本发明实施例中,对于内存对象的刷新需要重新生成新的内存对象,并且在重新生成的过程中,可以不影响对业务逻辑对内存对象的调用。具体地,如图3和图4所示,其中,图3为本发明实施例的内存对象刷新处理过程之一的示意框图300,图4为本发明实施例的内存对象刷新处理过程之二的示意框图400。上述的刷新任务包括如下处理:
1)根据获取到的刷新内容,创建新的内存对象306。在创建新的内存对象306的过程中,当前的内存对象305仍然在运行中,当前的内存对象305可以接受业务逻辑105的调用。创建新的内存对象306的工作是由刷新行为模块110来完成的。
2)创建当前的内存对象引用页面301的镜像内存页面302,在当前的内存对象引用页面301中包含对当前的内存对象305的引用关系(例如记载在图中的当前内存对象引用关系字典303中),在镜像内存页面302中,将当前的内存对象305的引用关系更新为对新的内存对象306的引用关系(例如记载在图中的新内存对象引用关系字典304中)。需要说明的是,这里虽然名称为镜像内存页面,但是实际上是在当前的内存对象引用页面301的基础上更新了部分或者全部条目而生成的,称之为镜像内存页面主要是为了区别于当前的内存对象引用页面。在进行内存对象的刷新过程中,可以每次刷新一个内存对象,也可以进行批量的内存对象刷新,这样可以集中来更新内存对象引用页面中的内存对象的引用关系。
内存对象引用页面中记录有对内存对象的引用关系,这种引用关系可以以字典的形式存在,每个内存对象的引用关系会记录为字典中的一个条目,在需要调用该内存对象时,系统可以通过内存对象引用页面中的条目找到内存中的内存对象,并执行调用处理。图3和图4中所示的情形采用了字典的形式,在当前内存页面中存储有当前内存对象引用关系字典303,在镜像内存页面中存储有新内存对象引用关系字典304。
3)在新的内存对象306和镜像内存页面302创建完成后,将当前的内存对象引用页面301切换为镜像内存页面302,在执行完内存页面切换的处理后,可以释放掉当前的内存对象引用页面301以及当前的内存对象305,之后,可刷新内存对象容器108就从新的镜像内存页面302获取内存对象的引用关系并提供给业务逻辑105。
通过上述的内存页面切换机制,确保了在进行内存对象的刷新时,内存对象的功能仍然能够被业务逻辑所使用,避免了内存对象刷新与内存对象的调用之间的冲突,尤其是当出现刷新错误或者刷新处理延迟的情况下,不会导致业务逻辑被挂起。
刷新行为模块110所执行生成新的内存对象的处理是基于业务逻辑提供的刷新行为描述来执行的。刷新行为描述可以包括如下多个项目的一个或多个:
1)从内容源107获取内容的方法:由于各个业务逻辑105的内容源107都是根据自身的需要而灵活部署的,内容源107中内容的存储方式以及存储格式也可能会由于业务逻辑105的不同而不同。在本发明实施例中,业务逻辑105在向内存对象处理装置101注册内存对象106的刷新任务时,可以提供一个从内容源107获取内容的方法(或者是调用接口),刷新行为模块110可以直接调用该方法来获得内容源107中的内容。当然,作为一种可选择的方式,业务逻辑105也可以只提供内容源107的地址信息等,由刷新行为模块110去获取。
2)对来自内容源107的内容进行处理的方法:具体可以包括数据进行加工的方法和/或对脚本或程序集进行编译和/或初始化的方法。如前面所介绍的,从内容源107获取的内容,一般需要进行加工处理,形成满足业务逻辑需求的形态。如果获取的内容是数据,可能需要加工成符合指定数据结构的数据,针对不同数据资源、数据类型会有不同的加工逻辑,加工后的数据封装在内存对象中,以供业务逻辑进行调用。如果是脚本,则需要对脚本进行编译,并在内存中生成用于实现脚本功能的内存对象。由于各个业务逻辑对内容进行加工处理的需求有所不同,其加工的处理逻辑可能会不同。各个业务逻辑可以在刷新行为描述中提供可以供刷新行为模块110调用的方法,从而直接将获取到的内容加工成符合业务逻辑需求的形态。当然,作为可选择的方式,也可以将内容加工的处理逻辑嵌入到刷新行为模块110中,由刷新行为模块110执行内容加工处理。
3)刷新时间间隔:可以是固定间隔或者动态间隔。在实际应用中,可以在有关刷新时间的接口中定义根据当前更新的执行时刻计算下一次更新的时刻的方法,这样可以灵活的实现固定时间间隔,周期性固定时间点(例如每天8点和10点执行刷新),甚至动态时间策略。动态的刷新时间间隔一般用于优化刷新计划以节省资源。4)刷新超时策略:包括刷新执行的时间阈值,当发生刷新超时情况下的处理方式,是继续等待一定时间,还是在下个刷新周期再次进行刷新,或者放弃刷新等。刷新超时策略能够节省刷新处理所使用的系统资源并且防止由于刷新任务的错误或者延迟带来的系统或者业务逻辑的挂起。
以上的刷新行为描述,在业务逻辑向内存对象处理装置注册刷新任务时,就会提供给内存对象处理装置,从而使得内存对象处理装置能够全面接管业务逻辑的刷新任务。
刷新协调调度器
刷新协调调度器109,用于记录内存对象106的刷新任务,并根据预设的内存对象刷新调度策略,对内存对象106的刷新任务进行调度,向可刷新内存对象容器108发送执行内存对象106的刷新任务的指令。
具体地,内存对象刷新调度策略主要根据CPU使用率、I/O资源的占用率以及业务逻辑运行的时间特征这些因素中的一个或多个来设定,刷新协调调度器109基于这些因素来协调各个内存对象的刷新任务。其中,业务逻辑运行的时间特征具体是指各个业务逻辑对于内存对象的调用行为以及业务逻辑希望的内存对象的刷新行为的时间特征,比如,业务逻辑对于内存对象的调用频度、集中调用的时间段、每次调用执行处理的时间等,业务逻辑期望的内存对象的刷新间隔、刷新时间等。刷新协调调度器109会根据这些特征并结合所在计算机设备的CPU和I/O资源的使用情况,进行综合调度,避免出现资源的被内存对象刷新的过度占用,也避免出现多个内存对象的刷新任务的高并发,避免占用过多的业务逻辑所需的计算资源。
调度策略的核心目标是,通过控制刷新任务的并发度和等待时间,来首要的保证业务逻辑所需的计算资源充足,在这个前提下,尽量早的执行刷新任务。
以上介绍了本发明实施例的内存对象处理装置的基本框架,其中,如图5所示,其为本发明实施例的内存对象处理装置之一的结构示意框图500。在实际应用中,可刷新内存对象容器108和刷新行为模块110可以为多个,并且可以成对出现。每对可刷新内存对象容器108和刷新行为模块110可以与一个业务逻辑105对应,也可以将刷新行为描述相同或者相近的业务逻辑集中在一对可刷新内存对象容器108和刷新行为模块110中。这些可刷新内存对象容器由刷新协调调度器109来进行统一调度,刷新行为模块110再进一步接受可刷新内存对象容器108的调用来进行处理。此外,可刷新内存对象容器108和刷新行为模块110可以都由刷新协调调度器109来进行调度,即刷新协调调度器109指示刷新行为模块110以及指示可刷新内存对象容器108来更新内存对象引用页面。
通过以上基本的架构,对各个业务逻辑对于内存对象的刷新任务进行统一管理,避免刷新任务出现高并发的情形,避免系统CPU和I/O的负担过重,而影响系统或者其他业务逻辑的正常运行。可刷新内存对象容器是面向业务逻辑的模块,业务逻辑通过可刷新内存对象容器来间接地对内存对象进行调用(获取了内存对象的引用关系后再进行调用),而不是直接进行调用,从而也避免了业务逻辑访问内存对象造成的冲突或者错误。刷新行为模块是根据业务逻辑提供的刷新行为描述而生成,从而能够满足各个业务逻辑对内存对象刷新的不同需求。通过这种机制,刷新任务并没有占用业务逻辑的执行时间,从而避免了内存对象的刷新对内对象的使用所造成影响。
下面再介绍一下以上各个模块的具体结构,如图6所示,其为本发明实施例的内存对象处理装置之二的结构示意框图600。图中示出了可刷新内存对象容器108和刷新行为模块110的内部结构。
可刷新内存对象容器的内部结构
可刷新内存对象容器108包括内存对象获取接口601和内存对象刷新接口602以及可刷新内存对象容器处理模块603。
内存对象获取接口602用于接收来自业务逻辑105的内存对象的引用关系的获取请求,并触发可刷新内存对象容器处理模块603访问内存对象引用关系页面111,获取内存对象106的引用关系,然后内存对象获取接口602再将内存对象106的引用关系提供给业务逻辑105。内存对象获取接口602是对业务逻辑105开放的接口,来自业务逻辑105的全部内存对象的引用关系的获取请求都通过这个内存对象获取接口602来传递给可刷新内存对象容器处理模块603,而可刷新内存对象容器处理模块603后台的处理对于业务逻辑105是不可见的。
内存对象刷新接口602接收来自刷新协调调度器109的执行内存对象的刷新任务的指令,并触发可刷新内存对象容器处理模块603,调用刷新行为模块110生成新的内存对象,并触发可刷新内存对象容器处理模块603,更新内存对象引用页面111。内存对象刷新接口602属于内存对象处理装置的内部调用接口,对于业务逻辑105而言是不可见的。
可刷新内存对象容器处理模块603主要执行两部分功能,访问内存对象引用关系页面111,获取内存对象106的引用关系,以及调用刷新行为模块110生成新的内存对象。
刷新行为模块的内部结构
刷新行为模块110包括刷新行为调用接口604和刷新行为处理模块605。
刷新行为调用接口604用于接收来自可刷新内存对象容器108的调用请求(具体可以是来自可刷新内存对象容器处理模块603的调用请求),触发刷新行为处理模块605,根据刷新行为描述,生成新的内存对象。
刷新行为模块110用于根据刷新行为描述,生成新的内存对象。具体地,在刷新行为模块110中保存有业务逻辑提供的刷新行为描述,执行内存对象的刷新任务时,可以调用刷新行为描述中记录的从内容源107获取内容的方法,从内容源107获取相关内容,并加工成符合业务逻辑要求的内容形式,然后访问内存103,生成新的内存对象。
如图7所示,其为本发明实施例的内存对象处理装置之三的结构示意框图700。图7所示的结构中,刷新协调调度器109包括刷新任务注册接口703和刷新协调处理模块704,刷新协调处理模块704中存储有内存对象刷新调度策略705和刷新任务列表706。
刷新任务注册接口703用于接收刷新任务的第一注册请求,并将刷新任务记录在刷新任务列表中。第一注册请求可以是来自业务逻辑105的,即该刷新任务注册接口703可以面向业务逻辑105开放。向刷新协调调度器109注册的刷新任务都会记录在刷新任务列表706中。
刷新协调处理模块704,用于根据内存对象刷新调度策略705对刷新任务列表706中的刷新任务进行调度,向可刷新内存对象容器108发送执行内存对象的刷新任务的指令。
作为另外一种可实施的结构,如图8所示,其为本发明实施例的内存对象处理装置之四的结构示意框图800。该内存对象处理装置还可以包括:容器管理模块801。
与图7中的结构不同之处在于,容器管理模块801用来管理各个业务逻辑105的刷新任务的注册,以及创建可刷新内存对象容器108以及刷新行为模块110。在图8中,刷新协调调度器109的刷新任务注册接口703可以不再对业务逻辑105可见,而是只接收容器管理模块801的注册刷新任务的请求。
具体地,容器管理模块801,用于接收来自业务逻辑105的注册刷新任务的第二注册请求,创建可刷新内存对象容器108和/或根据第二注册请求中包含与刷新任务相关的刷新行为描述,创建刷新行为模块110。
如图8中所示,通过容器管理模块801将多个可刷新内存对象容器108和刷新行为模块110进行了集中管理,相当于构建了一个容器工厂802。
需要说明的是,在上述的各个附图中,箭头的方向仅仅是为了形象的示出在某些场景下的访问关系、指示关系或者调用关系,而并非对模块之间的所有交互关系进行限定,本领域技术人员应当理解,模块之间的通信或者调用而产生的通信关系,一般均为双向的。
以上介绍了本发明实施例的内存对象处理装置的详细技术内容,下面将进一步介绍一下基于上述内存对象处理装置的内存处理方法的具体技术内容。
如图9所示,其为本发明实施例的内存对象处理方法的流程之一的示意图900。该方法包括:
S901:刷新协调调度器根据预设的内存对象刷新调度策略,对记录的内存对象的刷新任务进行调度,向可刷新内存对象容器发送执行内存对象的刷新任务的指令。其中,根据预设的内存对象刷新调度策略,对内存对象的刷新任务进行调度可以包括:根据CPU使用率和/或I/O资源的占用率和/或业务逻辑运行的时间特征,协调各个内存对象的刷新任务。
S902:可刷新内存对象容器响应于刷新协调调度器的指令,生成新的内存对象,并更新内存对象引用页面。
S903:刷新行为模块响应于可刷新内存对象容器的调用,根据刷新行为描述,生成新的内存对象。其中,刷新行为描述的具体内容以及如何根据刷新行为描述执行内存对象的刷新任务的技术细节,在本文的前面已经进行了详细描述,在此不再赘述。
其中,如图10所示,其为本发明实施例的内存对象处理方法的流程之二的示意图1000。执行内存对象的刷新任务可以包括:
S1001:根据获取到的刷新内容,创建新的内存对象。该步骤可以由上述的刷新行为模块110来执行。
S1002:创建当前的内存对象引用页面的镜像内存页面,在当前的内存对象引用页面中包含对当前的内存对象的引用关系,在镜像内存页面中,将当前的内存对象的引用关系更新为对新的内存对象的引用关系。该步骤可以由上述的可刷新内存对象容器108执行。其中,步骤S1002和步骤S1001可以并行执行或者以任意的先后顺序执行。
S1003:在新的内存对象和镜像内存页面创建完成后,将当前的内存对象引用页面切换为镜像内存页面。该步骤可以由上述的可刷新内存对象容器108执行。在执行完内存页面切换的处理后,可以释放掉当前的内存对象引用页面以及当前的内存对象。关于执行内存对象的刷新任务具体技术细节在本文的前面已经进行了详细描述,在此不再赘述。
此外,上述方法还可以包括:可刷新内存对象容器108响应于来自业务逻辑的内存对象的引用关系的获取请求,向所述业务逻辑提供内存对象的引用关系。其中,上述的对于更新内存对象引用页面的处理主要涉及上述的步骤1002和1003,在内存对象引用页面完成更新前,针对来自业务逻辑105的内存对象的引用关系的获取请求,可刷新内存对象容器108从上述当前的内存对象引用页面获取内存对象的引用关系并提供给业务逻辑105。在内存对象引用页面更新完成后,针对后续的来自业务逻辑105的内存对象的引用关系的获取请求,可刷新内存对象容器108就会从更新后的内存对象引用页面获取内存对象的引用关系并提供给业务逻辑105。业务逻辑105获得了内存对象的引用关系后,就可以对内存对象进行调用。
从上面的处理可以看出,在本发明实施例中,对内存对象的刷新处理不影响业务逻辑对内存对象的调用。
此外,关于本发明实施例的内存对象处理方法一些技术细节以及相应的技术效果,前面针对内存对象处理装置中也进行了说明,其同样适用于内存对象处理方法的实施例中,在此不再赘述。
具体实现示例
在一些例子中,上述图1至图10涉及的一个或多个模块或者一个或多个步骤或者一个或多个处理过程,可以通过软件程序、硬件电路,也可以通过软件程序和硬件电路相结合的方式来实现。例如,上述各个组件或者模块以及一个或多个步骤都可在芯片上系统(SoC)中实现。SoC可包括:集成电路芯片,该集成电路芯片包括以下一个或多个:处理单元(如中央处理单元(CPU)、微控制器、微处理单元、数字信号处理单元(DSP)等)、存储器、一个或多个通信接口、和/或用于执行其功能的进一步的电路和可任选的嵌入的固件。
如图11所示,其为发明实施例的电子设备1100的结构框图。电子设备1100包括:存储器1101和处理器1102。
存储器1101,用于存储程序。除上述程序之外,存储器1101还可被配置为存储其它各种数据以支持在电子设备1100上的操作。这些数据的示例包括用于在电子设备1100上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。
存储器1101可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
存储器1101耦合至处理器1102并且包含存储于其上的指令,所说的指令在由处理器1102执行时使电子设备执行动作,作为一种电子设备的实施例,该动作可以包括控制上述的可刷新内存对象容器、刷新协调调度器以及刷新行为模块执行以下处理:
刷新协调调度器根据预设的内存对象刷新调度策略,对记录的内存对象的刷新任务进行调度,向可刷新内存对象容器发送执行内存对象的刷新任务的指令;
可刷新内存对象容器响应于刷新协调调度器的指令,调用所述刷新行为模块生成新的内存对象,并更新内存对象引用页面;刷新行为模块响应于可刷新内存对象容器的调用,根据刷新行为描述,生成新的内存对象。
进一步地,还包括如下处理:可刷新内存对象容器响应于来自业务逻辑的内存对象的引用关系的获取请求,向业务逻辑提供内存对象的引用关系。
其中,更新内存对象引用页面包括:
创建当前的内存对象引用页面的镜像内存页面,在内存对象引用页面中包含对当前的内存对象的引用关系,在镜像内存页面中,将当前的内存对象的引用关系更新为新的内存对象的引用关系;
所述当前的内存对象引用页面切换为所述镜像内存页面。
其中,根据预设的内存对象刷新调度策略,对内存对象的刷新任务进行调度包括:
根据CPU使用率和/或I/O资源的占用率和/或业务逻辑运行的时间特征,协调各个内存对象的刷新任务。
对于上述的处理操作,在前面方法和装置的实施例中已经进行了详细说明,对于上述的处理操作的详细内容同样也适用于电子设备1100中,即可以将前面实施例中提到的具体处理操作,以程序的方式写入在存储器1101,并通过处理器1102来进行执行。
进一步,如图11所示,电子设备1100还可以包括:通信组件1103、电源组件1104、音频组件1105、显示器1106、芯片组1107等其它组件。图11中仅示意性给出部分组件,并不意味着电子设备1100只包括图11所示组件。
通信组件1103被配置为便于电子设备1100和其他设备之间有线或无线方式的通信。电子设备可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件1103经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,通信组件1103还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
电源组件1104,为电子设备的各种组件提供电力。电源组件1104可以包括电源管理系统,一个或多个电源,及其他与为电子设备生成、管理和分配电力相关联的组件。
音频组件1105被配置为输出和/或输入音频信号。例如,音频组件1105包括一个麦克风(MIC),当电子设备处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器1101或经由通信组件1103发送。在一些实施例中,音频组件1105还包括一个扬声器,用于输出音频信号。
显示器1106包括屏幕,其屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与触摸或滑动操作相关的持续时间和压力。
上述的存储器1101、处理器1102、通信组件1103、电源组件1104、音频组件1105以及显示器1106可以与芯片组1107连接。芯片组1107可以提供处理器1102与电子设备1100中的其余组件之间的接口。此外,芯片组1107还可以提供电子设备1100中的各个组件对存储器1101的访问接口以及各个组件间相互访问的通讯接口。
示例条款
A:一种装置,包括:可刷新内存对象容器、刷新协调调度器以及刷新行为模块,其中,
所述可刷新内存对象容器,用于响应于所述刷新协调调度器的指令,调用刷新行为模块生成新的内存对象,并更新内存对象引用页面;
所述刷新行为模块,用于记录各个业务逻辑提供的刷新行为描述,并响应于所述可刷新内存对象容器的调用,根据所述刷新行为描述,生成新的内存对象;
所述刷新协调调度器,用于记录内存对象的刷新任务,并根据预设的内存对象刷新调度策略,对内存对象的刷新任务进行调度,向所述可刷新内存对象容器发送执行内存对象的刷新任务的指令。
B、根据段落A所述的装置,其中,所述可刷新内存对象容器还用于响应于来自业务逻辑的内存对象的引用关系的获取请求,向所述业务逻辑提供内存对象的引用关系。
C、根据段落A所述的装置,其中,
所述更新内存对象引用页面包括:
创建当前的内存对象引用页面的镜像内存页面,在所述内存对象引用页面中包含对当前的内存对象的引用关系,在所述镜像内存页面中,将当前的内存对象的引用关系更新为新的内存对象的引用关系;
所述当前的内存对象引用页面切换为所述镜像内存页面。
D、根据段落A所述的装置,其中,所述刷新行为描述包括从内容源获取内容的方法,
所述根据所述刷新行为描述,生成新的内存对象包括:
调用所述从内容源获取内容的方法,获取更新后的内容,并根据该内容生成新的内存对象。
E、根据段落A所述的装置,其中,所述刷新行为描述包括对来自内容源的数据进行加工的方法和/或对脚本或程序集进行编译的方法,
所述根据刷新行为描述,生成新的内存对象,包括:
调用对所述数据进行加工的方法,将所述数据加工成指定数据结构的数据并封装在所述内存对象中,和/或,调用对脚本或程序集进行编译的方法,对所述脚本或程序集进行编译生成新的内存对象。
F、根据段落A所述的装置,其中,根据预设的内存对象刷新调度策略,对内存对象的刷新任务进行调度包括:
根据CPU使用率和/或I/O资源的占用率和/或业务逻辑运行的时间特征,协调各个内存对象的刷新任务。
G、根据段落B所述的装置,其中,所述可刷新内存对象容器包括内存对象获取接口和内存对象刷新接口以及可刷新内存对象容器处理模块,
所述内存对象获取接口接收来自业务逻辑的内存对象的引用关系的获取请求,并触发所述可刷新内存对象容器处理模块访问内存对象引用关系页面,获取内存对象的引用关系,然后所述内存对象获取接口再将所述内存对象的引用关系提供给所述业务逻辑,
所述内存对象刷新接口接收来自刷新协调调度器的执行内存对象的刷新任务的指令,并触发所述可刷新内存对象容器处理模块,调用刷新行为模块生成新的内存对象,并触发所述可刷新内存对象容器处理模块,更新内存对象引用页面。
H、根据段落A所述的装置,其中,所述刷新行为模块包括刷新行为调用接口和刷新行为处理模块,
所述刷新行为调用接口接收来自可刷新内存对象容器的调用请求,触发所述刷新行为处理模块,根据刷新行为描述,生成新的内存对象。
I、根据段落A所述的装置,其中,所述刷新协调调度器包括刷新任务注册接口和刷新协调处理模块,所述刷新协调处理模块中存储有内存对象刷新调度策略和刷新任务列表,
所述刷新任务注册接口接收刷新任务的第一注册请求,并将刷新任务记录在所述刷新任务列表中,
所述刷新协调处理模块根据所述内存对象刷新调度策略对刷新任务列表中的刷新任务进行调度,向可刷新内存对象容器发送执行内存对象的刷新任务的指令。
J、根据段落A所述的装置,其中,所述可刷新内存对象容器和所述刷新行为模块为多个,所述装置还包括:
容器管理模块,用于接收来自业务逻辑的注册刷新任务的第二注册请求,创建所述可刷新内存对象容器和/或根据所述第二注册请求中包含所述与所述刷新任务相关的刷新行为描述,创建所述刷新行为模块。
K、根据段落J所述的装置,其中,所述容器管理模块还用于向所述刷新协调调度器注册所述刷新任务。
L、一种方法,所述方法基于段落A至K任一所述的装置来执行,该方法包括:
刷新协调调度器根据预设的内存对象刷新调度策略,对记录的内存对象的刷新任务进行调度,向可刷新内存对象容器发送执行内存对象的刷新任务的指令;
可刷新内存对象容器响应于所述刷新协调调度器的指令,调用刷新行为模块生成新的内存对象,并更新内存对象引用页面;
所述刷新行为模块响应于所述可刷新内存对象容器的调用,根据刷新行为描述,生成新的内存对象。
M、根据段落L所述的方法,其中,还包括:所述可刷新内存对象容器响应于来自业务逻辑的内存对象的引用关系的获取请求,向所述业务逻辑提供内存对象的引用关系
N、根据段落L所述的方法,其中,所述更新内存对象引用页面包括:
创建当前的内存对象引用页面的镜像内存页面,在所述内存对象引用页面中包含对当前的内存对象的引用关系,在所述镜像内存页面中,将当前的内存对象的引用关系更新为新的内存对象的引用关系;
所述当前的内存对象引用页面切换为所述镜像内存页面。
O、根据段落L所述的方法,其中,
所述刷新行为描述包括从内容源获取内容的方法,
所述根据所述刷新行为描述,生成新的内存对象包括:
调用所述从内容源获取内容的方法,获取更新后的内容,并根据该内容生成新的内存对象。
P、根据段落L所述的方法,其中,所述刷新行为描述包括对来自内容源的数据进行加工的方法和/或对脚本或程序集进行编译的方法,
所述根据刷新行为描述,生成新的内存对象,包括:
调用对所述数据进行加工的方法,将所述数据加工成指定数据结构的数据并封装在所述内存对象中,和/或,调用对脚本或程序集进行编译的方法,对所述脚本或程序集进行编译生成新的内存对象。
Q、根据段落L所述的方法,其中,根据预设的内存对象刷新调度策略,对内存对象的刷新任务进行调度包括:
根据CPU使用率和/或I/O资源的占用率和/或业务逻辑运行的时间特征,协调各个内存对象的刷新任务。
R、一种电子设备,包括:
处理单元;以及
存储器,耦合至所述处理单元并且包含存储于其上的指令,所述指令在由所述处理单元执行时使所述设备执行动作,所述动作包括:控制可刷新内存对象容器、刷新协调调度器以及刷新行为模块执行以下处理:
所述刷新协调调度器根据预设的内存对象刷新调度策略,对记录的内存对象的刷新任务进行调度,向所述可刷新内存对象容器发送执行内存对象的刷新任务的指令;
所述可刷新内存对象容器响应于所述刷新协调调度器的指令,调用所述刷新行为模块生成新的内存对象,并更新内存对象引用页面;;
所述刷新行为模块响应于所述可刷新内存对象容器的调用,根据刷新行为描述,生成新的内存对象。
S、根据段落R所述的电子设备,其中,还包括:所述可刷新内存对象容器响应于来自业务逻辑的内存对象的引用关系的获取请求,向所述业务逻辑提供内存对象的引用关系。
T、根据段落R所述的电子设备,其中,所述更新内存对象引用页面包括:
创建当前的内存对象引用页面的镜像内存页面,在所述内存对象引用页面中包含对当前的内存对象的引用关系,在所述镜像内存页面中,将当前的内存对象的引用关系更新为新的内存对象的引用关系;
所述当前的内存对象引用页面切换为所述镜像内存页面。
U、根据段落R所述的电子设备,其中,根据预设的内存对象刷新调度策略,对内存对象的刷新任务进行调度包括:
根据CPU使用率和/或I/O资源的占用率和/或业务逻辑运行的时间特征,协调各个内存对象的刷新任务。
结语
系统的多个方面的硬件与软件实现之间区别不大;使用硬件还是软件通常(但并不总是,因为在某些背景下,硬件与软件之间的选择可以变得显著)是表示成本与效率权衡的设计选择。存在可以实现在此描述的处理和/或系统和/或其它技术(例如,硬件、软件,以及/或固件)的各种承载工具,并且优选承载工具将随着部署该处理和/或系统和/或其它技术的背景而改变。例如,如果实现方确定速度和准确度最重要,则该实现方可以选择主要硬件和/或固件承载工具;如果灵活性最重要,则该实现方可以选择主要软件实现;或者,此外又另选地,该实现方可以选择硬件、软件,以及/或固件的一些组合。
前述详细描述已经经由使用框图、流程图,以及/或示例阐述了该装置和/或处理的各种实施方式。至于这种框图、流程图,以及/或示例包含一个或更多个功能和/或操作,本领域技术人员应当明白,这种框图、流程图,或示例内的每一个功能和/或操作可以单独地和/或共同地,通过宽范围的硬件、软件、固件,或者实际上其任何组合来实现。在一个实施方式中,在此描述的主旨的几个部分可以经由专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP),或其它集成格式来实现。然而,本领域技术人员应当认识到,在此公开的实施方式的一些方面整个地或者部分地可以等同地在集成电路中实现,实现为运行在一个或更多个计算机上的一个或更多个计算机程序(例如,实现为运行在一个或更多个计算机系统上的一个或更多个程序),实现为运行在一个或更多个处理器上的一个或更多个程序(例如,实现为运行在一个或更多个微处理器上的一个或更多个程序),实现为固件,或者实际上实现为其任何组合,并且根据本公开,设计电路和/或编写用于软件和/或固件的代码完全处于本领域技术人员的技术内。另外,本领域技术人员应当清楚的是,在此描述的主题的机制能够按多种形式作为程序产品分配,并且在此描述的主题的例示性实施方式适用,而与被用于实际执行该分配的特定类型的信号承载介质无关。信号承载介质的示例包括但不限于,以下:可记录型介质,如软盘、硬盘驱动器(HDD)、质密盘(CD)、数字通用盘(DVD)、数字磁带、计算机存储器等;和传输型介质,如数字和/或模拟通信媒介(例如,光纤线缆、波导管、有线通信链路、无线通信链路等)。
本领域技术人员应当认识到,按在此阐述的方式来描述装置和/或处理,并且此后,使用工程实践将这样描述的装置和/或处理集成到数据处理系统中是本领域内常见的。即,在此描述的装置和/或处理的至少一部分可以经由合理量的实验而集成到数据处理系统中。本领域技术人员应当认识到的是,通常的数据处理系统通常包括以下中的一个或更多个:系统单元外壳、视频显示装置、诸如易失性和非易失性存储器的存储器、诸如微处理器和数字信号处理器的处理器、诸如操作系统、驱动器、图形用户接口,以及应用程序的计算实体、诸如触摸板或触摸屏的一个或更多个交互式装置,以及/或包括反馈回路和控制电动机的控制系统(例如,用于感测位置和/或速度的反馈;用于移动和/或调节组件和/或数量的控制马达)。通常的数据处理系统可以利用任何合适商业可获组件来实现,如通常在数据计算/通信和/或网络通信/计算系统中找到的那些。
在此描述的主题有时例示了包含在不同的其它组件内或与其相连接的不同组件。要明白的是,这样描绘的架构仅仅是示例性的,并且实际上,可以实现获得相同功能的许多其它架构。在概念意义上,用于获得相同功能的组件的任何排布结构都有效地“关联”,以使获得希望功能。因此,在此为获得特定功能而组合的任两个组件都可以被看作彼此“相关联”,以使获得希望功能,而与架构或中间组件无关。同样地,这样关联的任两个组件还可以被视作彼此“可操作地连接”,或“可操作地耦接”,以获得希望功能,并且能够这样关联的任两个组件也可以被视作可彼此“操作地耦接”,以获得希望功能。可操作地耦接的具体示例包括但不限于,物理上可配合和/或物理上交互的组件和/或可无线地交互和/或无线地交互的组件和/或逻辑上交互和/或逻辑上可交互组件。
针对在此实质上使用的任何复数和/或单数术语,本领域技术人员可以针对背景和/或应用在适当时候从复数翻译成单数和/或从单数翻译成复数。为清楚起见,各种单数/多数置换在此可以确切地阐述。
本领域技术人员应当明白,一般来说,在此使用的,而且尤其是在所附权利要求书中(例如,所附权利要求书的主体)使用的术语通常旨在作为“开放式”措辞(例如,措辞“包括(including)”应当解释为“包括但不限于”,措辞“具有(having)”应当解释为“至少具有”,措辞“包括(include)”应当解释为“包括但不限于”等)。本领域技术人员还应当明白,如果想要特定数量的介绍权利要求列举,则这种意图将明确地在该权利要求中陈述,并且在没有这些列举的情况下,不存在这种意图。例如,为帮助理解,下面所附权利要求书可以包含使用介绍性短语“至少一个”和“一个或更多个”来介绍权利要求列举。然而,使用这种短语不应被认作,暗示由不定冠词“一(a)”或“一(an)”介绍的权利要求列举将包含这种介绍权利要求列举的任何特定权利要求限制于仅包含一个这种列举的发明,即使同一权利要求包括介绍性短语“一个或更多个”或“至少一个”以及诸如“一(a)”或“一(an)”的不定冠词(例如,“一(a)”或“一(an)”通常应当被解释成意指“至少一个”或“一个或更多个”);其对于使用为介绍权利要求列举而使用的定冠词来说同样保持为真。另外,即使明确地陈述特定数量的介绍权利要求列举,本领域技术人员也应当认识到,这种列举通常应当被解释成,至少意指所陈述数量(例如,“两个列举”的仅有的列举在没有其它修饰语的情况下通常意指至少两个列举,或者两个或更多个列举)。而且,在使用类似于“A、B,以及C等中的至少一个”的惯例的那些实例中,一般来说,这种句法结构希望本领域技术人员在意义上应当理解这种惯例(例如,“具有A、B,以及C中的至少一个的系统”应当包括但不限于具有单独A、单独B、单独C、A和B一起、A和C一起、B和C一起,以及/或A、B以及C一起等的系统)。在使用类似于“A、B,或C等中的至少一个”的惯例的那些实例中,一般来说,这种句法结构希望本领域技术人员在意义上应当理解这种惯例(例如,“具有A、B,或C中的至少一个的系统”应当包括但不限于具有单独A、单独B、单独C、A和B一起、A和C一起、B和C一起,以及/或A、B以及C一起等的系统)。本领域技术人员还应当明白的是,实际上,呈现两个或更多个另选术语的任何转折词和/短语(无论处于描述、权利要求书中,还是在附图中)应当被理解成,设想包括这些术语、这些术语中的任一个,或者两个术语的可能性。例如,短语“A或B”应当被理解成,包括“A”或“B”或“A和B”的可能性。
本说明书中针对“实现方式”、“一个实现方式”、“一些实现方式”,或“其它实现方式”的引用可以意指,结合一个或更多个实现方式描述的特定特征、结构,或特性可以被包括在至少一些实现方式中,但不必被包括在所有实现方式中。前述描述中不同出现的“实现方式”、“一个实现方式”,或“一些实现方式”不必全部针对同一实现方式而引用。
虽然利用不同方法和系统描述和示出了特定示例性技术,但本领域技术人员应当明白,在不脱离要求保护的主题的情况下,可以进行各种其它修改,并且可以代替等同物。另外,在不脱离在此描述的中心概念的情况下,可以进行许多修改以使适应针对要求保护的主题的教导的特定情况。因此,要求保护的主题不限于所公开的特定示例,而是这种要求保护的主题还可以包括落入所附权利要求书及其等同物的范围内的所有实现。
尽管已经用结构特征和/或方法动作专用的语言描述了本主题,但要理解,所附权利要求书中定义的主题不必限于所描述的具体特征或动作。而是,这些具体特征和动作是作为实现该权利要求的解说性形式而公开的。
除非另外具体声明,否则在上下文中可以理解并一般地使用条件语言(诸如“能”、“能够”、“可能”或“可以”)表示特定示例包括而其他示例不包括特定特征、元素和/或步骤。因此,这样的条件语言一般并非旨在暗示对于一个或多个示例以任何方式要求特征、元素和/或步骤,或者一个或多个示例必然包括用于决定的逻辑、具有或不具有用户输入或提示、在任何特定实施例中是否要包括或要执行这些特征、元素和/或步骤。
除非另外具体声明,应理解联合语言(诸如短语“X、Y或Z中至少一个”)表示项、词语等可以是X、Y或Z中的任一者、或其组合。
本文所述和/或附图中描述的流程图中任何例行描述、元素或框应理解成潜在地表示包括用于实现该例程中具体逻辑功能或元素的一个或多个可执行指令的代码的模块、片段或部分。替换示例被包括在本文描述的示例的范围内,其中各元素或功能可被删除,或与所示出或讨论的顺序不一致地执行,包括基本上同步地执行或按相反顺序执行,这取决于所涉及的功能,如本领域技术人也将理解的。
应当强调,可对上述示例作出许多变型和修改,其中的元素如同其他可接受的示例那样应被理解。所有这样的修改和变型在此旨在包括在本公开的范围内并且由以下权利要求书保护。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (21)
1.一种装置,包括:可刷新内存对象容器、刷新协调调度器以及刷新行为模块,其中,
所述可刷新内存对象容器,用于响应于所述刷新协调调度器的指令,调用刷新行为模块生成新的内存对象,并更新内存对象引用页面;
所述刷新行为模块,用于记录各个业务逻辑提供的刷新行为描述,并响应于所述可刷新内存对象容器的调用,根据所述刷新行为描述,生成新的内存对象;
所述刷新协调调度器,用于记录内存对象的刷新任务,并根据预设的内存对象刷新调度策略,对内存对象的刷新任务进行调度,向所述可刷新内存对象容器发送执行内存对象的刷新任务的指令。
2.根据权利要求1所述的装置,其中,所述可刷新内存对象容器还用于响应于来自业务逻辑的内存对象的引用关系的获取请求,向所述业务逻辑提供内存对象的引用关系。
3.根据权利要求1所述的装置,其中,所述更新内存对象引用页面包括:
创建当前的内存对象引用页面的镜像内存页面,在所述内存对象引用页面中包含对当前的内存对象的引用关系,在所述镜像内存页面中,将当前的内存对象的引用关系更新为新的内存对象的引用关系;
所述当前的内存对象引用页面切换为所述镜像内存页面。
4.根据权利要求1所述的装置,其中,所述刷新行为描述包括从内容源获取内容的方法,
所述根据所述刷新行为描述,生成新的内存对象包括:
调用所述从内容源获取内容的方法,获取更新后的内容,并根据该内容生成新的内存对象。
5.根据权利要求1所述的装置,其中,所述刷新行为描述包括对来自内容源的数据进行加工的方法和/或对脚本或程序集脚本或程序集进行编译的方法,
所述根据刷新行为描述,生成新的内存对象包括:
调用对所述数据进行加工的方法,将所述数据加工成指定数据结构的数据并封装在所述内存对象中,和/或,调用对脚本或程序集脚本或程序集进行编译的方法,对所述脚本或程序集进行编译生成新的内存对象。
6.根据权利要求1所述的装置,其中,根据预设的内存对象刷新调度策略,对内存对象的刷新任务进行调度包括:
根据CPU使用率和/或I/O资源的占用率和/或业务逻辑运行的时间特征,协调各个内存对象的刷新任务。
7.根据权利要求2所述的装置,其中,所述可刷新内存对象容器包括内存对象获取接口和内存对象刷新接口以及可刷新内存对象容器处理模块,
所述内存对象获取接口接收来自业务逻辑的内存对象的引用关系的获取请求,并触发所述可刷新内存对象容器处理模块访问内存对象引用关系页面,获取内存对象的引用关系,然后所述内存对象获取接口再将所述内存对象的引用关系提供给所述业务逻辑,
所述内存对象刷新接口接收来自刷新协调调度器的执行内存对象的刷新任务的指令,并触发所述可刷新内存对象容器处理模块,调用刷新行为模块生成新的内存对象,并触发所述可刷新内存对象容器处理模块,更新内存对象引用页面。
8.根据权利要求1所述的装置,其中,所述刷新行为模块包括刷新行为调用接口和刷新行为处理模块,
所述刷新行为调用接口接收来自可刷新内存对象容器的调用请求,触发所述刷新行为处理模块,根据刷新行为描述,生成新的内存对象。
9.根据权利要求1所述的装置,其中,所述刷新协调调度器包括刷新任务注册接口和刷新协调处理模块,所述刷新协调处理模块中存储有内存对象刷新调度策略和刷新任务列表,
所述刷新任务注册接口接收刷新任务的第一注册请求,并将刷新任务记录在所述刷新任务列表中,
所述刷新协调处理模块根据所述内存对象刷新调度策略对刷新任务列表中的刷新任务进行调度,向可刷新内存对象容器发送执行内存对象的刷新任务的指令。
10.根据权利要求1所述的装置,其中,所述可刷新内存对象容器和所述刷新行为模块为多个,所述装置还包括:
容器管理模块,用于接收来自业务逻辑的注册刷新任务的第二注册请求,创建所述可刷新内存对象容器和/或根据所述第二注册请求中包含所述与所述刷新任务相关的刷新行为描述,创建所述刷新行为模块。
11.根据权利要求10所述的装置,其中,所述容器管理模块还用于向所述刷新协调调度器注册所述刷新任务。
12.一种方法,所述方法基于权利要求1至11任一所述的装置来执行,该方法包括:
刷新协调调度器根据预设的内存对象刷新调度策略,对记录的内存对象的刷新任务进行调度,向可刷新内存对象容器发送执行内存对象的刷新任务的指令;
可刷新内存对象容器响应于所述刷新协调调度器的指令,调用刷新行为模块生成新的内存对象,并更新内存对象引用页面;
所述刷新行为模块响应于所述可刷新内存对象容器的调用,根据刷新行为描述,生成新的内存对象。
13.根据权利要求12所述的方法,其中,还包括:所述可刷新内存对象容器响应于来自业务逻辑的内存对象的引用关系的获取请求,向所述业务逻辑提供内存对象的引用关系。
14.根据权利要求12所述的方法,其中,所述更新内存对象引用页面包括:
创建当前的内存对象引用页面的镜像内存页面,在所述内存对象引用页面中包含对当前的内存对象的引用关系,在所述镜像内存页面中,将当前的内存对象的引用关系更新为新的内存对象的引用关系;
所述当前的内存对象引用页面切换为所述镜像内存页面。
15.根据权利要求12所述的方法,其中,所述刷新行为描述包括从内容源获取内容的方法,
所述根据所述刷新行为描述,生成新的内存对象包括:
调用所述从内容源获取内容的方法,获取更新后的内容,并根据该内容生成新的内存对象。
16.根据权利要求12所述的方法,其中,所述刷新行为描述包括对来自内容源的数据进行加工的方法和/或对脚本或程序集进行编译的方法,
所述根据刷新行为描述,生成新的内存对象,包括:
调用对所述数据进行加工的方法,将所述数据加工成指定数据结构的数据并封装在所述内存对象中,和/或,调用对脚本或程序集进行编译的方法,对所述脚本或程序集进行编译生成新的内存对象。
17.根据权利要求12所述的方法,其中,根据预设的内存对象刷新调度策略,对内存对象的刷新任务进行调度包括:
根据CPU使用率和/或I/O资源的占用率和/或业务逻辑运行的时间特征,协调各个内存对象的刷新任务。
18.一种电子设备,包括:
处理单元;以及
存储器,耦合至所述处理单元并且包含存储于其上的指令,所述指令在由所述处理单元执行时使所述设备执行动作,所述动作包括:控制可刷新内存对象容器、刷新协调调度器以及刷新行为模块执行以下处理:
所述刷新协调调度器根据预设的内存对象刷新调度策略,对记录的内存对象的刷新任务进行调度,向所述可刷新内存对象容器发送执行内存对象的刷新任务的指令;
所述可刷新内存对象容器响应于所述刷新协调调度器的指令,调用所述刷新行为模块生成新的内存对象,并更新内存对象引用页面;
所述刷新行为模块响应于所述可刷新内存对象容器的调用,根据刷新行为描述,生成新的内存对象。
19.根据权利要求18所述的电子设备,其中,还包括:所述可刷新内存对象容器响应于来自业务逻辑的内存对象的引用关系的获取请求,向所述业务逻辑提供内存对象的引用关系。
20.根据权利要求18所述的电子设备,其中,所述更新内存对象引用页面包括:
创建当前的内存对象引用页面的镜像内存页面,在所述内存对象引用页面中包含对当前的内存对象的引用关系,在所述镜像内存页面中,将当前的内存对象的引用关系更新为新的内存对象的引用关系;
所述当前的内存对象引用页面切换为所述镜像内存页面。
21.根据权利要求18所述的电子设备,其中,根据预设的内存对象刷新调度策略,对内存对象的刷新任务进行调度包括:
根据CPU使用率和/或I/O资源的占用率和/或业务逻辑运行的时间特征,协调各个内存对象的刷新任务。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810151263.0A CN110162385B (zh) | 2018-02-14 | 2018-02-14 | 可动态刷新内存对象的处理框架 |
PCT/US2019/015495 WO2019160677A1 (en) | 2018-02-14 | 2019-01-29 | Processing framework for dynamically refreshing memory object |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810151263.0A CN110162385B (zh) | 2018-02-14 | 2018-02-14 | 可动态刷新内存对象的处理框架 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110162385A true CN110162385A (zh) | 2019-08-23 |
CN110162385B CN110162385B (zh) | 2023-07-04 |
Family
ID=65598702
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810151263.0A Active CN110162385B (zh) | 2018-02-14 | 2018-02-14 | 可动态刷新内存对象的处理框架 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110162385B (zh) |
WO (1) | WO2019160677A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220222014A1 (en) * | 2021-01-11 | 2022-07-14 | Sigmastar Technology Ltd. | Memory device, image processing chip, and memory control method |
Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6560609B1 (en) * | 1999-06-14 | 2003-05-06 | International Business Machines Corporation | Delegating instance management functions to underlying resource managers |
US6567818B1 (en) * | 1999-06-14 | 2003-05-20 | International Business Machines Corporation | Employing management policies to manage instances of objects |
US20040230747A1 (en) * | 2000-07-06 | 2004-11-18 | Ims Steven D. | Object caching and update queuing technique to improve performance and resource utilization |
CN102081964A (zh) * | 2009-11-30 | 2011-06-01 | 国际商业机器公司 | 动态随机访问存储器刷新的方法和系统 |
US20140115292A1 (en) * | 2012-10-24 | 2014-04-24 | Apple Inc. | Dynamic obfuscation of heap memory allocations |
US20150016204A1 (en) * | 2013-07-11 | 2015-01-15 | Qualcomm Incorporated | Insertion-override counter to support multiple memory refresh rates |
CN104423996A (zh) * | 2013-09-04 | 2015-03-18 | 腾讯科技(深圳)有限公司 | 视图刷新方法和装置 |
CN105045722A (zh) * | 2015-08-26 | 2015-11-11 | 东南大学 | 一种ddr2-sdram控制器及其低延迟优化方法 |
US20150363437A1 (en) * | 2014-06-17 | 2015-12-17 | Ims Health Incorporated | Data collection and cleaning at source |
US20150380072A1 (en) * | 2014-06-30 | 2015-12-31 | Andre Schaefer | Dynamically applying refresh overcharge voltage to extend refresh cycle time |
CN105354052A (zh) * | 2015-09-30 | 2016-02-24 | 北京奇虎科技有限公司 | flash游戏加载方法和装置 |
CN105700902A (zh) * | 2014-11-27 | 2016-06-22 | 航天信息股份有限公司 | 数据加载和刷新方法及装置 |
CN106020963A (zh) * | 2016-06-07 | 2016-10-12 | 中国建设银行股份有限公司 | 一种跨系统内部服务调用方法和装置 |
CN106020951A (zh) * | 2016-05-12 | 2016-10-12 | 中国农业银行股份有限公司 | 一种任务调度方法及系统 |
US20160358302A1 (en) * | 2015-06-07 | 2016-12-08 | Apple, Inc. | Systrace Visualization Tool |
CN106852175A (zh) * | 2014-10-24 | 2017-06-13 | 微软技术许可有限责任公司 | 可配置易失性存储器数据保存触发器 |
US20170352406A1 (en) * | 2016-06-06 | 2017-12-07 | Intel Corporation | Memory controller-controlled refresh abort |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7818513B2 (en) * | 2004-08-10 | 2010-10-19 | Oracle America, Inc. | Coordinating accesses to shared objects using transactional memory mechanisms and non-transactional software mechanisms |
US7542977B2 (en) * | 2006-06-29 | 2009-06-02 | Intel Corporation | Transactional memory with automatic object versioning |
-
2018
- 2018-02-14 CN CN201810151263.0A patent/CN110162385B/zh active Active
-
2019
- 2019-01-29 WO PCT/US2019/015495 patent/WO2019160677A1/en active Application Filing
Patent Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6560609B1 (en) * | 1999-06-14 | 2003-05-06 | International Business Machines Corporation | Delegating instance management functions to underlying resource managers |
US6567818B1 (en) * | 1999-06-14 | 2003-05-20 | International Business Machines Corporation | Employing management policies to manage instances of objects |
US20040230747A1 (en) * | 2000-07-06 | 2004-11-18 | Ims Steven D. | Object caching and update queuing technique to improve performance and resource utilization |
CN102081964A (zh) * | 2009-11-30 | 2011-06-01 | 国际商业机器公司 | 动态随机访问存储器刷新的方法和系统 |
US20140115292A1 (en) * | 2012-10-24 | 2014-04-24 | Apple Inc. | Dynamic obfuscation of heap memory allocations |
US20150016204A1 (en) * | 2013-07-11 | 2015-01-15 | Qualcomm Incorporated | Insertion-override counter to support multiple memory refresh rates |
CN104423996A (zh) * | 2013-09-04 | 2015-03-18 | 腾讯科技(深圳)有限公司 | 视图刷新方法和装置 |
US20150363437A1 (en) * | 2014-06-17 | 2015-12-17 | Ims Health Incorporated | Data collection and cleaning at source |
US20150380072A1 (en) * | 2014-06-30 | 2015-12-31 | Andre Schaefer | Dynamically applying refresh overcharge voltage to extend refresh cycle time |
CN106852175A (zh) * | 2014-10-24 | 2017-06-13 | 微软技术许可有限责任公司 | 可配置易失性存储器数据保存触发器 |
CN105700902A (zh) * | 2014-11-27 | 2016-06-22 | 航天信息股份有限公司 | 数据加载和刷新方法及装置 |
US20160358302A1 (en) * | 2015-06-07 | 2016-12-08 | Apple, Inc. | Systrace Visualization Tool |
CN105045722A (zh) * | 2015-08-26 | 2015-11-11 | 东南大学 | 一种ddr2-sdram控制器及其低延迟优化方法 |
CN105354052A (zh) * | 2015-09-30 | 2016-02-24 | 北京奇虎科技有限公司 | flash游戏加载方法和装置 |
CN106020951A (zh) * | 2016-05-12 | 2016-10-12 | 中国农业银行股份有限公司 | 一种任务调度方法及系统 |
US20170352406A1 (en) * | 2016-06-06 | 2017-12-07 | Intel Corporation | Memory controller-controlled refresh abort |
CN106020963A (zh) * | 2016-06-07 | 2016-10-12 | 中国建设银行股份有限公司 | 一种跨系统内部服务调用方法和装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220222014A1 (en) * | 2021-01-11 | 2022-07-14 | Sigmastar Technology Ltd. | Memory device, image processing chip, and memory control method |
US11822818B2 (en) * | 2021-01-11 | 2023-11-21 | Sigmastar Technology Ltd. | Memory device, image processing chip, and memory control method |
Also Published As
Publication number | Publication date |
---|---|
WO2019160677A1 (en) | 2019-08-22 |
CN110162385B (zh) | 2023-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103412644B (zh) | 附属设备架构 | |
Shadija et al. | Microservices: granularity vs. performance | |
CN105900397A (zh) | 用于移动云服务的本地代理 | |
CN103106027A (zh) | 便携式设备中的触摸输入方法和装置 | |
CN109446570B (zh) | 业务流程展示方法、装置、计算机设备以及存储介质 | |
CN105518624A (zh) | 用于在用户设备中互通应用的方法和装置 | |
CN104081351B (zh) | 用于混合系统的分布式功能执行的方法、系统及介质 | |
CN104407865B (zh) | 窗口的显示方法及装置 | |
CN110019123A (zh) | 一种数据迁移方法和装置 | |
CN109857489A (zh) | 基于Android系统的开发系统、解耦方法和装置 | |
Cannella et al. | Adaptivity support for MPSoCs based on process migration in polyhedral process networks | |
CN109716735A (zh) | 用于在于一个或多个应用平台上执行的隔离的应用之间共享应用数据的系统和方法 | |
Mariani et al. | Coordinating activities and change: An event-driven architecture for situated MAS | |
CN103975301B (zh) | 通过本地服务器对本地客户机应用进行事件服务的方法 | |
KR20120079285A (ko) | 사용자 터치와 입김을 활용한 멀티 모달 인터페이스 지원 사용자 단말과 그 제어 방법 | |
US11315208B2 (en) | Conceptual representation of business processes for cross-domain mapping | |
CN110162385A (zh) | 可动态刷新内存对象的处理框架 | |
CN109254781A (zh) | 一种用于在用户设备上安装应用的方法与设备 | |
CN109753353A (zh) | 虚拟机资源分配方法、装置及电子设备 | |
CN105808313B (zh) | 智能终端数据交互系统及方法 | |
CN103164223A (zh) | 一种智能终端关机状态下实现闹钟的方法及智能终端 | |
CN104156209B (zh) | 跨平台应用界面建模方法及装置 | |
CN104620218A (zh) | 任务链的方法与装置 | |
CN105975265A (zh) | 一种基于改进型mvp模式的装置 | |
CN110427260A (zh) | 主机作业调度方法、装置及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |