CN116382785B - 用于数据处理的方法及装置、计算设备及存储介质 - Google Patents
用于数据处理的方法及装置、计算设备及存储介质 Download PDFInfo
- Publication number
- CN116382785B CN116382785B CN202310643364.0A CN202310643364A CN116382785B CN 116382785 B CN116382785 B CN 116382785B CN 202310643364 A CN202310643364 A CN 202310643364A CN 116382785 B CN116382785 B CN 116382785B
- Authority
- CN
- China
- Prior art keywords
- variable
- virtual memory
- nvm
- target
- memory segment
- 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
- 238000000034 method Methods 0.000 title claims abstract description 68
- 238000012545 processing Methods 0.000 title claims abstract description 37
- 238000013507 mapping Methods 0.000 claims description 7
- 230000001360 synchronised effect Effects 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 9
- 230000003068 static effect Effects 0.000 description 9
- 230000008569 process Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 6
- 238000013500 data storage Methods 0.000 description 5
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000012217 deletion Methods 0.000 description 3
- 230000037430 deletion Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 238000009434 installation Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 230000004931 aggregating effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4406—Loading of operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
- G06F3/0665—Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4411—Configuring for operating with peripheral devices; Loading of device drivers
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Human Computer Interaction (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Stored Programmes (AREA)
Abstract
本申请涉及嵌入式操作***技术领域,公开一种用于数据处理的方法及装置、计算设备及存储介质,其中,所述方法应用于包括非易失性存储区NVM和虚拟内存的嵌入式操作***,包括:在访问目标变量的情况下,确定目标变量所在的虚拟内存段;确定所述虚拟内存段所对应的目标数据对象;其中,目标数据对象存储在NVM中;根据目标变量在所述虚拟内存段中的相对位置和目标数据对象在NVM中的地址,确定目标变量在NVM中的地址;通过目标变量在NVM中的地址,访问目标变量的数据。
Description
技术领域
本申请涉及嵌入式操作***技术领域,例如涉及一种用于数据处理的方法及装置、计算设备及存储介质。
背景技术
目前,资源受限设备(Resource Constrained Device)通常是指电量供应有限,计算能力有限,以及存储容量有限的电子设备,例如智能卡(Java Card)和安全单元(SecureElement,SE)芯片等。其通常搭配嵌入式操作***进行使用,嵌入式操作***中应用程序的数据存储在内存中,内存被划分为易失性存储区(Random Access Memory,RAM)和非易失性存储区(Non Volatile Memory,NVM)。同时,嵌入式操作***中作为基本存储单元的变量(包括全局变量和引用变量),存储在内存的NVM中。
相关技术提供了一种数据处理方法,包括:获取数据处理请求,所述数据处理请求包括远端指针,所述远端指针用于记录数据在远端内存中的远端地址;基于所述远端指针中的远端地址,从所述远端内存中读取目标数据,并将所述目标数据存储于本地内存中,其中,所述本地内存与所述远端内存部署于不同的设备上,读取所述远端内存中数据的时间开销大于读取所述本地内存中数据的时间开销;根据所述数据处理请求,处理存储于所述本地内存中的所述目标数据。
在实现本公开实施例的过程中,发现相关技术中至少存在如下问题:
随着资源受限设备在各种业务领域中的应用程序的开发需要,存储在易失性存储区RAM中的变量成为了必不可少的应用数据成员。然而,相关技术中在Java Card操作***之外,尚未出现能够将变量存储在非易失性存储区NVM中的方法或机制。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本申请的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
为了对披露的实施例的一些方面有基本的理解,下面给出了简单的概括。所述概括不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围,而是作为后面的详细说明的序言。
本公开实施例提供了一种用于数据处理的方法及装置、计算设备及存储介质,以提供一种将变量存储在非易失性存储区NVM中的方法或机制,从而减少访问变量时所需的操作步骤,提高访问效率,并降低数据存储空间。
在一些实施例中,所述用于数据处理的方法,应用于包括非易失性存储区NVM和虚拟内存的嵌入式操作***,包括:
在访问目标变量的情况下,确定目标变量所在的虚拟内存段;
确定所述虚拟内存段所对应的目标数据对象;其中,目标数据对象存储在NVM中;
根据目标变量在所述虚拟内存段中的相对位置和目标数据对象在NVM中的地址,确定目标变量在NVM中的地址;
通过目标变量在NVM中的地址,访问目标变量的数据。
可选地,所述确定目标变量所在的虚拟内存段,包括:
根据目标变量在虚拟内存中的相对位置,确定所述虚拟内存段。
可选地,所述根据目标变量在所述虚拟内存段中的相对位置和目标数据对象在NVM中的地址,确定目标变量在NVM中的地址,包括:
根据目标变量的虚拟内存段的起始地址和目标变量的相对偏移量,计算得到目标变量在虚拟内存段中的相对位置;
根据目标变量在虚拟内存段中的相对位置,对目标数据对象进行同步偏移,得到目标变量在NVM中的地址。
可选地,所述NVM存储有包括目标变量的多个变量;所述方法还包括:
将多个变量分别归集至虚拟内存中;其中,每个变量被归集至对应限定名称的虚拟内存段中。
可选地,所述将多个变量分别归集至虚拟内存中,包括:
根据每个变量的名称,分别对需要存储至NVM中的多个变量进行限定;
将限定后的多个变量,分别归集至以限定每个变量所使用的名称命名的多个虚拟内存段中。
可选地,在将多个变量分别归集至虚拟内存中之后,还包括:
接收并在***运行环境中安装应用程序包,其中,所述应用程序包中包括多个变量的虚拟内存段信息;
根据虚拟内存段信息,在注册表中建立每个变量所属的虚拟内存段与对应的目标数据对象之间的映射关系。
可选地,所述虚拟内存段信息包括虚拟内存段的名称、大小和起始虚拟地址中的部分或全部。
可选地,所述根据虚拟内存段信息,在注册表中建立每个变量所属的虚拟内存段与对应的目标数据对象之间的映射关系,包括:
创建多个虚拟内存段对应存储在NVM中的目标数据对象,并记录在应用程序包的注册表中;
将多个虚拟内存段的名称、大小和起始虚拟地址,记录在应用程序包的注册表中;
在应用程序包的注册表中,将每个变量所属的虚拟内存段与每个变量对应存储在NVM中的目标数据对象进行关联。
可选地,所述应用程序包中包括一个或者多个应用程序实例;所述根据虚拟内存段信息,在注册表中建立每个变量所属的虚拟内存段与对应的目标数据对象之间的映射关系,包括:
创建多个虚拟内存段对应存储在NVM中的目标数据对象,并记录在应用程序实例的注册表中;
将多个虚拟内存段的名称、大小和起始虚拟地址,记录在应用程序实例的注册表中;
在应用程序实例的注册表中,将每个变量所属的虚拟内存段与每个应用程序实例对应存储在NVM中的目标数据对象进行关联。
可选地,所述方法还包括:
删除变量所指向的应用数据对象,并将变量的变量值设置为特定值;或者,
删除未被变量所指向的应用数据对象;或者,
删除加载至***运行环境中的应用程序包或应用程序实例,同时删除变量所指向的应用数据对象。
在一些实施例中,所述用于数据处理的装置,设置于包括非易失性存储区NVM和虚拟内存的嵌入式操作***,包括:
变量确定模块,被配置为在访问目标变量的情况下,确定目标变量所在的虚拟内存段;
数据对象确定模块,被配置为确定所述虚拟内存段所对应的目标数据对象;其中,目标数据对象存储在NVM中;
地址确定模块,被配置为根据目标变量在所述虚拟内存段中的相对位置和目标数据对象在NVM中的地址,确定目标变量在NVM中的地址;
变量访问模块,被配置为通过目标变量在NVM中的地址,访问目标变量的数据。
在一些实施例中,所述计算设备,搭载有嵌入式操作***,包括处理器和存储有程序指令的存储器,所述处理器被配置为在运行所述程序指令时,执行如本申请所述的用于数据处理的方法。
在一些实施例中,所述存储介质,存储有程序指令,所述程序指令在运行时,执行如本申请所述的用于数据处理的方法。
本公开实施例提供的用于数据处理的方法及装置、计算设备及存储介质,可以实现以下技术效果:
本申请将原本存储在RAM中的变量,归集至虚拟内存中的虚拟内存段中,并根据虚拟内存段构建能够存储在NVM中的目标数据对象,进而根据变量在虚拟内存段中的相对位置,确定变量在NVM中的地址,实现了可存储在NVM中的全局变量,从而在Java Card操作***之外的其他嵌入式操作***中,建立了通过变量就能访问存储在NVM中的数据的机制,减少了访问变量时所需的操作步骤,提高了访问效率,并降低了数据存储空间。
以上的总体描述和下文中的描述仅是示例性和解释性的,不用于限制本申请。
附图说明
一个或多个实施例通过与之对应的附图进行示例性说明,这些示例性说明和附图并不构成对实施例的限定,附图中具有相同参考数字标号的元件示为类似的元件,附图不构成比例限制,并且其中:
图1是本公开实施例提供的一个用于数据处理的方法的示意图;
图2是本公开实施例提供的另一个用于数据处理的方法的示意图;
图3是本公开实施例提供的一个变量访问过程的流程示意图;
图4是本公开实施例提供的另一个用于数据处理的方法的示意图;
图5是本公开实施例提供的另一个用于数据处理的装置的示意图;
图6是本公开实施例提供的一个关联到应用程序包的流程示意图;
图7是本公开实施例提供的另一个用于数据处理的装置的示意图;
图8是本公开实施例提供的一个关联到应用程序实例的流程示意图;
图9是本公开实施例提供的一个具体应用的流程示意图;
图10是本公开实施例提供的另一个具体应用的示意图;
图11是本公开实施例提供的另一个具体应用的示意图;
图12是本公开实施例提供的一个用于数据处理的装置的示意图;
图13是本公开实施例提供的一个计算设备的模块示意图。
具体实施方式
为了能够更加详尽地了解本公开实施例的特点与技术内容,下面结合附图对本公开实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本公开实施例。在以下的技术描述中,为方便解释起见,通过多个细节以提供对所披露实施例的充分理解。然而,在没有这些细节的情况下,一个或多个实施例仍然可以实施。在其它情况下,为简化附图,熟知的结构和装置可以简化展示。
本公开实施例的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开实施例的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含。
除非另有说明,术语“多个”表示两个或两个以上。
本公开实施例中,字符“/”表示前后对象是一种“或”的关系。例如,A/B表示:A或B。
术语“和/或”是一种描述对象的关联关系,表示可以存在三种关系。例如,A和/或B,表示:A或B,或,A和B这三种关系。
术语“对应”可以指的是一种关联关系或绑定关系,A与B相对应指的是A与B之间是一种关联关系或绑定关系。
对于嵌入式操作***,例如在Java Card操作***的***运行环境中,通过将所有变量或常量通过static关键字进行定义。以作为一个统一的静态域来管理,并在应用程序包被成功下载和链接后,根据静态域创建静态数据堆。此静态数据堆中包含数据对象(如应用申请的数组、数据对象、接口对象等)的引用变量,由于该引用变量被存储在非易失性存储空间NVM中,操作***运行环境如因***复位或者失电,不会导致引用变量数据丢失。同时,在***运行环境中,可通过专用静态域成员访问指令实现引用所指数据的内容访问。除此之外,在其它嵌入式操作***中,引用变量与其它全局变量一样,都被存储在易失性存储空间RAM中。即相关技术中不存在其他将变量存储在非易失性存储空间NVM中的方法和机制。
然而,随着本领域内各种业务应用程序的开发需要,存储在非易失性存储空间NVM中的全局变量和/或应用数据的引用变量,成为必不可少的应用成员变量。
应当注意的是,当应用程序需要访问存储在NVM中的变量或数据时,***运行环境也可以提供建立文件表的接口,即将应用所需存储在NVM中的变量或数据,以文件的方式进行查找、读、写、创建、删除等操作。然而,文件的方式一方面访问数据或变量效率低,另一方面操作繁琐,数据存储空间开销较大。可见,在不支持static关键字的情况下,如何建立存储在NVM中的全局变量或者引用变量,是亟待解决的技术问题。
为此,结合图1所示,本公开实施例提供一种用于数据处理的方法,应用于包括非易失性存储区NVM和虚拟内存的嵌入式操作***,包括:
步骤101:在访问目标变量的情况下,嵌入式操作***确定目标变量所在的虚拟内存段。
步骤102:嵌入式操作***确定虚拟内存段所对应的目标数据对象;其中,目标数据对象存储在NVM中。
步骤103:嵌入式操作***根据目标变量在虚拟内存段中的相对位置和目标数据对象在NVM中的地址,确定目标变量在NVM中的地址。
步骤104:嵌入式操作***通过目标变量在NVM中的地址,访问目标变量的数据。
在本申请的实施例中,在没有编程语言语法关键字和专用的静态域成员访问指令的情况下,本申请在定义全局变量时,通过__attribute__((section (“xxx”)))的编译指令,将所定义的全局变量归集到一个以“xxx”为名称的虚拟内存段中。
在嵌入式操作***加载含有此类定义的应用程序包时,根据以“xxx”为名称的虚拟内存段的大小创建一个存储在NVM中的数据对象,并将此数据对象的地址记录到注册表中。
在嵌入式操作***的***运行环境执行应用程序的过程中,若需要访问上述定义存储在NVM中的全局变量,则根据全局变量在虚拟内存中的相对位置,确定其所在虚拟内存段的虚拟地址范围。进而确定其是否是以“xxx”为名称或者ID命名的,存储在虚拟内存段中的全局变量。如果是,则确定注册表中记录的存储在NVM中目标数据对象,根据目标变量在虚拟内存段中的相对位置和目标数据对象在NVM中的地址,得到该全局变量在NVM中的地址。从而实现了可定义存储在NVM中的全局变量,并且仅需通过变量就能访问数据的功能或特征。其中,本申请定义的全局变量中包括用于记录应用数据对象的引用变量。
访问引用变量或者其它全局变量时,在字节码层面或汇编指令层面,涉及读取变量的值和将数据写入该变量。即使每个变量所在的位置存在差异,通常情况下,只需要对基础的读取和写入指令稍作扩展即可实现。
具体地,访问变量包括:读取变量的内容,即根据目标变量在虚拟内存中的相对偏移和与此虚拟内存对应的目标数据对象在NVM中的地址及需要读取的字节长度读取数据。以及,将数据写入变量,即根据数据对象在NVM中的地址,将需要写入的数据作为参数,调用操作***运行环境提供的擦写接口,将数据写入该地址。
采用本公开实施例提供的用于数据处理的方法,将原本存储在RAM中的变量,归集至虚拟内存中的虚拟内存段中,并根据虚拟内存段构建能够存储在NVM中的目标数据对象,进而根据变量在虚拟内存段中的相对位置,确定变量在NVM中的地址,实现了可存储在NVM中的全局变量,从而在Java Card操作***之外的其他嵌入式操作***中,建立了通过变量就能访问存储在NVM中的数据的机制,减少了访问变量时所需的操作步骤,提高了访问效率,并降低了数据存储空间。
结合图2所示,本公开实施例提供另一种用于数据处理的方法,包括:
步骤201:在访问目标变量为存储在NVM中的引用变量或者全局变量的情况下,嵌入式操作***根据目标变量在虚拟内存中的相对位置,确定虚拟内存段。
步骤202:嵌入式操作***确定虚拟内存段所对应的目标数据对象;其中,目标数据对象存储在NVM中。
步骤203:嵌入式操作***根据目标变量的虚拟内存段的起始地址和目标变量的相对偏移量,计算得到目标变量在虚拟内存段中的相对位置。
步骤204:嵌入式操作***根据目标变量在虚拟内存段中的相对位置,对目标数据对象进行同步偏移,得到目标变量在NVM中的地址。
步骤205:嵌入式操作***通过目标变量在NVM中的地址,访问目标变量的数据。
在本申请的实施例中,在没有编程语言语法关键字和专用的静态域成员访问指令的情况下,本申请在定义全局变量时,通过__attribute__((section (“xxx”)))的编译指令,将所定义的全局变量归集到一个以“xxx”为名称的虚拟内存段中。
在嵌入式操作***加载含有此类定义的应用程序包时,根据以“xxx”为名称的虚拟内存段的大小创建一个存储在NVM中的数据对象,并将此数据对象的地址记录到注册表中。
在嵌入式操作***的***运行环境执行应用程序的过程中,若需要访问上述定义存储在NVM中的全局变量,则根据全局变量在虚拟内存中的相对位置,确定其所在虚拟内存段的虚拟地址范围。进而确定其是否是以“xxx”为名称或者ID命名的,存储在虚拟内存段中的全局变量。如果是,则确定注册表中记录的存储在NVM中目标数据对象,结合该全局变量在虚拟内存段中的相对位置,得到该全局变量在NVM中的地址。从而实现了可定义存储在NVM中的全局变量,并且仅需通过变量就能访问数据对象的功能或特征。其中,本申请定义的全局变量中包括用于记录数据对象的引用变量。
访问引用变量或者全局变量时,在字节码层面或汇编指令层面。涉及读取变量的值和将数据写入该变量。即使每个变量所在的位置存在差异,通常情况下,只需要对基础的读取和写入指令稍作扩展即可实现。
具体地,访问变量包括:读取变量的内容,即根据数据对象在NVM中的地址及需要读取的字节长度读取数据。以及,将数据写入变量,即根据数据对象在NVM中的地址,将需要写入的数据作为参数,调用操作***运行环境提供的擦写接口,将数据写入该地址。
在本申请的实施例中,结合图3所示,在嵌入式操作***运行应用程序实例时,首先,基于字节码指令或汇编指令,根据虚拟内存地址访问变量。然后,判断该变量是否为存储在NVM中的引用变量或者全局变量。若否,则根据变量的虚拟内存地址,确定其在RAM变量栈中的地址,从而读取变量或将数据写入变量。若是,则根据变量在虚拟内存中的相对位置,识别出该变量所在的虚拟内存段。
然后,嵌入式操作***确定虚拟内存段所对应的数据对象,并根据该变量在虚拟内存段中的相对位置,对目标数据对象进行同步偏移,即可确定该变量在NVM中的地址。
最后,嵌入式操作***通过变量在NVM中的地址,访问目标变量的数据,即读取变量或将数据写入变量。
这样,能够基于变量在虚拟内存段中的相对偏移,同步确定出数据对象在NVM中的偏移,从而准确快速地获取变量在NVM中的地址,实现数据对象被变量持久化引用。
结合图4所示,本公开实施例提供另一种用于数据处理的方法,包括:
步骤401:嵌入式操作***将多个变量分别归集至虚拟内存中,其中,每个变量被归集至对应限定名称的虚拟内存段中。
步骤402:嵌入式操作***获取应用程序包,其中,应用程序包中包括多个变量的虚拟内存段信息。
步骤403:嵌入式操作***加载应用程序包,获得虚拟内存段信息。
步骤404:嵌入式操作***根据虚拟内存段信息,在注册表中建立每个变量所属的虚拟内存段与对应的目标数据对象之间的映射关系。
可选地,在NVM中存储有包括目标变量的多个变量。
可选地,将多个变量分别归集至虚拟内存中,包括:
根据每个变量的名称,分别对需要存储至NVM中的多个变量进行限定;
将限定后的多个变量,分别归集至以限定每个变量所使用的名称命名的多个虚拟内存段中。
在本申请的实施例中,对于用于记录应用数据对象在NVM中的地址的引用变量,与其它存储在RAM存储区的全局变量不同,该引用变量可被存储在NVM存储区中。通常情况下,该引用变量占用4个字节,在定义变量时可以通过编译指令__attribute__((section(“xxx”)))对变量进行限定。在编译时,编译器将引用变量归集到一个虚拟内存段中,虚拟内存段以“xxx”或者身份标识ID为名称,所有访问引用变量的字节码所访问的地址,都是相对该虚拟内存段中的相对偏移。
此外,对于引用变量以外的全局变量而言,如果需要将该变量定义成存储在NVM存储区中的数据时,也可以通过上述限定方法,将全局变量归集到一个虚拟内存段中,虚拟内存段以“xxx”或者身份标识ID为名称,本申请在此不再赘述。
这样,本申请通过特定的编译指令,能够快速且准确地实现变量的定义过程。
结合图5所示,本公开实施例提供另一种用于数据处理的方法,包括:
步骤501:嵌入式操作***将多个变量分别归集至虚拟内存中,其中,每个变量被归集至对应限定名称的虚拟内存段中。
步骤502:接收并在***运行环境中安装应用程序包,其中,应用程序包中包括多个变量的虚拟内存段信息,虚拟内存段信息包括虚拟内存段的名称、大小和起始虚拟地址中的部分或全部。
步骤503:嵌入式操作***创建多个虚拟内存段对应存储在NVM中的目标数据对象,并记录在应用程序包的注册表中。
步骤504:嵌入式操作***将多个虚拟内存段的名称、大小和起始虚拟地址,记录在应用程序包的注册表中。
步骤505:嵌入式操作***在应用程序包的注册表中,将每个变量所属的虚拟内存段与每个变量对应存储在NVM中的目标数据对象进行关联。
在本申请的实施例中,对于用于记录应用数据对象在NVM中的地址的引用变量,与其它存储在RAM存储区的全局变量不同,该引用变量可被存储在NVM存储区中。通常情况下,该引用变量占用4个字节,在定义变量时可以通过编译指令__attribute__((section(“xxx”)))对变量进行限定。在编译时,编译器将引用变量归集到一个虚拟内存段中,虚拟内存段以“xxx”或者身份标识ID为名称,所有访问引用变量的字节码所访问的地址,都是相对该虚拟内存段中的相对偏移。
此外,对于引用变量以外的全局变量而言,如果需要将该变量定义成存储在NVM存储区中的变量时,也可以通过上述限定方法,将全局变量归集到一个虚拟内存段中,虚拟内存段以“xxx”或者身份标识ID为名称,本申请在此不再赘述。
在本申请的实施例中,结合图6所示,首先,嵌入式操作***响应于外部实体发起的应用程序包下载流程,接收并在***运行环境中安装应用程序包,同时,创建用于管理应用程序包的注册表。然后,嵌入式操作***判断应用程序包中是否存在虚拟内存段信息。若否,则直接完成***内部链接。若是,则根据应用程序包中的虚拟内存段信息,创建一个存储在NVM中的目标数据对象。进而,嵌入式操作***将目标数据对象的地址,记录到应用程序包的注册表中。从而使得嵌入式操作***能够根据变量的在虚拟内存段中的相对位置,存储引用变量或其它全局变量,以完成***内部链接。
嵌入式操作***在完成应用程序包关联后,定义好的引用变量或者全局变量,可以被该应用程序包的所有安装好的程序实例调用。也就是说,上述变量可以用来存储该应用程序包实例化的所有应用数据。同时,对所有应用程序实例来说,只有一份这样的引用变量或者全局变量,与应用程序实例的个数无关。
这样,在访问存储在NVM存储区中的引用变量或者全局变量时,能够方便快速地查找到具体的存储位置。
结合图7所示,本公开实施例提供另一种用于数据处理的方法,包括:
步骤701:嵌入式操作***将多个变量分别归集至虚拟内存中,其中,每个变量被归集至对应限定名称的虚拟内存段中。
步骤702:接收并在***运行环境中安装应用程序包,其中,应用程序包中包括多个变量的虚拟内存段信息,虚拟内存段信息包括虚拟内存段的名称、大小和起始虚拟地址中的部分或全部。
步骤703:嵌入式操作***创建多个虚拟内存段对应存储在NVM中的目标数据对象,并记录在应用程序实例的注册表中。
步骤704:嵌入式操作***将多个虚拟内存段的名称、大小和起始虚拟地址,记录在应用程序实例的注册表中。
步骤705:嵌入式操作***在应用程序实例的注册表中,将每个变量所属的虚拟内存段与每个应用程序实例对应存储在NVM中的目标数据对象进行关联。
在本申请的实施例中,对于用于记录应用数据对象在NVM中的地址的引用变量,与其它存储在RAM存储区的全局变量不同,该引用变量可被存储在NVM存储区中。通常情况下,该引用变量占用4个字节,在定义变量时可以通过编译指令__attribute__((section(“xxx”)))对变量进行限定。在编译时,编译器将引用变量归集到一个虚拟内存段中,虚拟内存段以“xxx”或者身份标识ID为名称,所有访问引用变量的字节码所访问的地址,都是相对该虚拟内存段中的相对偏移。
此外,对于引用变量以外的全局变量而言,如果需要将该变量定义成存储在NVM存储区中的数据时,也可以通过上述限定方法,将引用变量归集到一个虚拟内存段中,虚拟内存段以“xxx”或者身份标识ID为名称,本申请在此不再赘述。
在本申请的实施例中,结合图8所示,首先,嵌入式操作***响应于外部实体发起的应用程序包下载流程,接收并在***运行环境中安装应用程序包中的一个或者多个应用程序实例,同时,创建用于管理每个应用程序实例的注册表。然后,嵌入式操作***判断应用程序包中是否存在虚拟内存段信息。若否,则直接完成一个或者多个应用程序实例的安装。若是,则为每个应用程序实例均创建一个存储在NVM中的目标数据对象。进而,嵌入式操作***将每个目标数据对象的地址记录到应用程序实例的注册表中。从而使得嵌入式操作***能够根据变量的在虚拟内存段中的相对位置,存储引用变量或其它全局变量,并完成一个或者多个应用程序实例的安装。
嵌入式操作***在完成应用程序实例关联后,每个应用程序实例都创建了各自独立的NVM存储位置。在应用程序的开发端,嵌入式操作***访问一个引用变量或全局变量时,虽然访问的虚拟内存段形同,但在不同的应用程序实例的应用情景下,其访问的NVM中的地址的存储位置并不相同。
在本申请的一个实际应用中,结合图9所示,在嵌入式操作***运行应用程序实例时,首先,基于字节码指令或汇编指令,根据虚拟内存地址访问变量。然后,判断该变量是否为存储在NVM中的引用变量或者全局变量。若否,则根据变量的虚拟内存地址,确定其在RAM变量栈中的地址,从而读取变量或将数据写入变量。若是,则根据变量在虚拟内存中的相对位置,识别出该变量所在的虚拟内存段。
然后,嵌入式操作***进一步判断该变量是否关联到应用程序包。若是,则根据该变量所在的虚拟内存段,在应用程序包的注册表中,获取该变量的数据对象。若否,则根据该变量所在的虚拟内存段,在当前正在运行的应用程序实例的注册表中获取该变量的数据对象。
再次,嵌入式操作***确定虚拟内存段所对应的数据对象,并根据该变量在虚拟内存段中的相对位置,对目标数据对象进行同步偏移,即可确定该变量在NVM中的地址。
最后,嵌入式操作***通过变量在NVM中的地址,访问目标变量的数据,即读取变量或将数据写入变量。
结合图10和图11所示,由于存储到NVM中的引用变量或全局变量是应用编程时通过编程语法定义的变量,故此类变量不存在被删除的情况。然而,对于引用变量所指的应用数据对象会存在被删除的情况。对此,无论是关联到应用程序包的引用变量,还是关联到应用程序实例的引用变量,其所指向的应用数据对象都可被删除。
可选地,一种删除应用数据对象的方式包括:删除引用变量所指向的应用数据对象,并将变量的变量值设置为特定值。
在本申请的实施例中,对于删除引用变量所指向的应用数据对象,在通常情况下,应用业务流程中可调用***运行环境提供的删除应用数据对象的接口。通过接口将引用变量所指的数据对象删除,然而,该引用变量中仍然记录着已被删除的应用数据对象所在的地址。应用编程者需要在程序代码中合适的位置,清除此引用变量的值。通常情况下,将此引用变量的值设置为特定值。例如,如图10和图11中所示,引用变量var_ref_4不指向任何数据对象,则其特定值设定为0。
可选地,另一种删除应用数据对象的方式包括:删除未被引用变量所指向的应用数据对象,此时不需要清除变量的变量值。
在本申请的实施例中,对于删除未被变量所指向的应用数据对象即垃圾回收,尤其是存储在NVM存储区中的引用变量,在***运行环境复位或者失电的情况下,不会改变引用变量中记录的内容,便于***运行环境重新上电工作后,能够快速访问所指的数据对象的内容。当应用数据对象没有被引用变量引用时,该应用数据对象被判定为垃圾数据,如图9和图10中所示,应用数据对象var_obj_2和应用数据对象var_obj_3数据对象没有被引用变量引用,则这两个应用数据对象被判定为垃圾对象。通过调用运行环境提供的垃圾回收接口,可以回收此类不被引用的应用数据对象,即删除应用数据对象。
可选地,另一种删除数据对象的方式包括:删除加载至***运行环境中的应用程序包或应用程序实例,同时删除变量所指向的应用数据对象。
在本申请的实施例中,对于删除应用程序包,删除应用程序包时,需要将此应用程序包实例化的所有应用程序实例及其应用数据对象全部删除,此时无论采用何种关联方法,引用变量所指向的应用数据对象都需要无条件删除。
对于删除应用程序实例,其本质是将应用程序实例及其应用数据对象一并删除,如果关联阶段采用关联到应用程序包,则引用变量被记录在应用程序包的注册表中的目标数据对象中。删除应用实例时,当目标数据对象中的变量的值与被删除应用的应用数据对象的地址相同时,表明正在被删除的应用程序实例的应用数据对象,可能被其它同应用程序包的应用实例引用。此时应拒绝删除应用实例。如必须要删除,则需要先将记录被删除程序实例的应用数据对象的所有引用变量都设置为特定值,例如为0,然后再删除该应用实例。如果关联阶段采用关联到应用程序实例,则引用变量被记录在该应用程序实例的注册表中的目标数据对象中,此目标数据对象与应用程序实例一并删除即可,不需要检查是否正在被引用。
这样,能够实现应用数据对象的完整删除,避免了***运行环境在执行多个应用程序实例时,引用变量引用错误的应用数据对象。
结合图12所示,本公开实施例提供一种用于数据处理的装置,设置于包括非易失性存储区NVM和虚拟内存的嵌入式操作***,包括:
变量确定模块1201,被配置为在访问目标变量的情况下,确定目标变量所在的虚拟内存段;
数据对象确定模块1202,被配置为确定虚拟内存段所对应的目标数据对象;其中,目标数据对象存储在NVM中;
地址确定模块1203,被配置为根据目标变量在所述虚拟内存段中的相对位置和目标数据对象在NVM中的地址,确定目标变量在NVM中的地址;
变量访问模块1204,被配置为通过目标变量在NVM中的地址,访问目标变量的数据。
采用本公开实施例提供的用于数据处理的装置,将原本存储在RAM中的变量,归集至虚拟内存中的虚拟内存段中,并根据虚拟内存段构建能够存储在NVM中的目标数据对象,进而根据变量在虚拟内存段中的相对位置,确定变量在NVM中的地址,实现了可存储在NVM中的全局变量,从而在Java Card操作***之外的其他嵌入式操作***中,建立了通过变量就能访问存储在NVM中的数据的机制,减少了访问变量时所需的操作步骤,提高了访问效率,并降低了数据存储空间。
结合图13所示,本公开实施例提供一种计算设备,搭载有嵌入式操作***,包括处理器(processor)130和存储器(memory)131。可选地,该装置还可以包括通信接口(Communication Interface)132和总线133。其中,处理器130、通信接口132、存储器131可以通过总线133完成相互间的通信。通信接口132可以用于信息传输。处理器130可以调用存储器131中的逻辑指令,以执行上述实施例的用于数据处理的方法。
此外,上述的存储器131中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。
存储器131作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序,如本公开实施例中的方法对应的程序指令/模块。处理器130通过运行存储在存储器131中的程序指令/模块,从而执行功能应用以及数据处理,即实现上述实施例中用于数据处理的方法。
存储器131可包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序;存储数据区可存储根据终端设备的使用所创建的数据等。此外,存储器131可以包括高速随机存取存储器,还可以包括非易失性存储器。
本公开实施例提供了一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令设置为执行上述用于数据处理的方法。
上述的计算机可读存储介质可以是暂态计算机可读存储介质,也可以是非暂态计算机可读存储介质。
本公开实施例的技术方案可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括一个或多个指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开实施例所述方法的全部或部分步骤。而前述的存储介质可以是非暂态存储介质,包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等多种可以存储程序代码的介质,也可以是暂态存储介质。
以上描述和附图充分地示出了本公开的实施例,以使本领域的技术人员能够实践它们。其他实施例可以包括结构的、逻辑的、电气的、过程的以及其他的改变。实施例仅代表可能的变化。除非明确要求,否则单独的部件和功能是可选的,并且操作的顺序可以变化。一些实施例的部分和特征可以被包括在或替换其他实施例的部分和特征。而且,本申请中使用的用词仅用于描述实施例并且不用于限制权利要求。如在实施例以及权利要求的描述中使用的,除非上下文清楚地表明,否则单数形式的“一个”(a)、“一个”(an)和“所述”(the)旨在同样包括复数形式。类似地,如在本申请中所使用的术语“和/或”是指包含一个或一个以上相关联的列出的任何以及所有可能的组合。另外,当用于本申请中时,术语“包括”(comprise)及其变型“包括”(comprises)和/或包括(comprising)等指陈述的特征、整体、步骤、操作、元素,和/或组件的存在,但不排除一个或一个以上其它特征、整体、步骤、操作、元素、组件和/或这些的分组的存在或添加。在没有更多限制的情况下,由语句“包括一个…”限定的要素,并不排除在包括所述要素的过程、方法或者设备中还存在另外的相同要素。本文中,每个实施例重点说明的可以是与其他实施例的不同之处,各个实施例之间相同相似部分可以互相参见。对于实施例公开的方法、产品等而言,如果其与实施例公开的方法部分相对应,那么相关之处可以参见方法部分的描述。
本领域技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,可以取决于技术方案的特定应用和设计约束条件。所述技术人员可以对每个特定的应用来使用不同方法以实现所描述的功能,但是这种实现不应认为超出本公开实施例的范围。所述技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本文所披露的实施例中,所揭露的方法、产品(包括但不限于装置、设备等),可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,可以仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例。另外,在本公开实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
附图中的流程图和框图显示了根据本公开实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这可以依所涉及的功能而定。在附图中的流程图和框图所对应的描述中,不同的方框所对应的操作或步骤也可以以不同于描述中所披露的顺序发生,有时不同的操作或步骤之间不存在特定的顺序。例如,两个连续的操作或步骤实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这可以依所涉及的功能而定。框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
Claims (13)
1.一种用于数据处理的方法,应用于包括非易失性存储区NVM和虚拟内存的嵌入式操作***,其特征在于,包括:
在访问目标变量的情况下,确定目标变量所在的虚拟内存段;
确定所述虚拟内存段所对应的目标数据对象;其中,目标数据对象存储在NVM中;
根据目标变量在所述虚拟内存段中的相对位置和目标数据对象在NVM中的地址,确定目标变量在NVM中的地址;
通过目标变量在NVM中的地址,访问目标变量的数据。
2.根据权利要求1所述的方法,其特征在于,所述确定目标变量所在的虚拟内存段,包括:
根据目标变量在虚拟内存中的相对位置,确定所述虚拟内存段。
3.根据权利要求1所述的方法,其特征在于,所述根据目标变量在所述虚拟内存段中的相对位置和目标数据对象在NVM中的地址,确定目标变量在NVM中的地址,包括:
根据目标变量的虚拟内存段的起始地址和目标变量的相对偏移量,计算得到目标变量在虚拟内存段中的相对位置;
根据目标变量在虚拟内存段中的相对位置,对目标数据对象进行同步偏移,得到目标变量在NVM中的地址。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述NVM存储有包括目标变量的多个变量;所述方法还包括:
将多个变量分别归集至虚拟内存中;其中,每个变量被归集至对应限定名称的虚拟内存段中。
5.根据权利要求4所述的方法,其特征在于,所述将多个变量分别归集至虚拟内存中,包括:
根据每个变量的名称,分别对需要存储至NVM中的多个变量进行限定;
将限定后的多个变量,分别归集至以限定每个变量所使用的名称命名的多个虚拟内存段中。
6.根据权利要求4所述的方法,其特征在于,在将多个变量分别归集至虚拟内存中之后,还包括:
接收并在***运行环境中安装应用程序包,其中,所述应用程序包中包括多个变量的虚拟内存段信息;
根据虚拟内存段信息,在注册表中建立每个变量所属的虚拟内存段与对应的目标数据对象之间的映射关系。
7.根据权利要求6所述的方法,其特征在于,所述虚拟内存段信息包括虚拟内存段的名称、大小和起始虚拟地址中的部分或全部。
8.根据权利要求7所述的方法,其特征在于,所述根据虚拟内存段信息,在注册表中建立每个变量所属的虚拟内存段与对应的目标数据对象之间的映射关系,包括:
创建多个虚拟内存段对应存储在NVM中的目标数据对象,并记录在应用程序包的注册表中;
将多个虚拟内存段的名称、大小和起始虚拟地址,记录在应用程序包的注册表中;
在应用程序包的注册表中,将每个变量所属的虚拟内存段与每个变量对应存储在NVM中的目标数据对象进行关联。
9.根据权利要求7所述的方法,其特征在于,所述应用程序包中包括一个或者多个应用程序实例;
所述根据虚拟内存段信息,在注册表中建立每个变量所属的虚拟内存段与对应的目标数据对象之间的映射关系,包括:
创建多个虚拟内存段对应存储在NVM中的目标数据对象,并记录在应用程序实例的注册表中;
将多个虚拟内存段的名称、大小和起始虚拟地址,记录在应用程序实例的注册表中;
在应用程序实例的注册表中,将每个变量所属的虚拟内存段与每个应用程序实例对应存储在NVM中的目标数据对象进行关联。
10.根据权利要求1至3任一项所述的方法,其特征在于,还包括:
删除变量所指向的应用数据对象,并将变量的变量值设置为特定值;或者,
删除未被变量所指向的应用数据对象;或者,
删除加载至***运行环境中的应用程序包或应用程序实例,同时删除变量所指向的应用数据对象。
11.一种用于数据处理的装置,设置于包括非易失性存储区NVM和虚拟内存的嵌入式操作***,其特征在于,包括:
变量确定模块,被配置为在访问目标变量的情况下,确定目标变量所在的虚拟内存段;
数据对象确定模块,被配置为确定所述虚拟内存段所对应的目标数据对象;其中,目标数据对象存储在NVM中;
地址确定模块,被配置为根据目标变量在所述虚拟内存段中的相对位置和目标数据对象在NVM中的地址,确定目标变量在NVM中的地址;
变量访问模块,被配置为通过目标变量在NVM中的地址,访问目标变量的数据。
12.一种计算设备,其特征在于,搭载有嵌入式操作***,包括处理器和存储有程序指令的存储器,所述处理器被配置为在运行所述程序指令时,执行如权利要求1至10任一项所述的用于数据处理的方法。
13.一种存储介质,存储有程序指令,其特征在于,所述程序指令在运行时,执行如权利要求1至10任一项所述的用于数据处理的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310643364.0A CN116382785B (zh) | 2023-06-01 | 2023-06-01 | 用于数据处理的方法及装置、计算设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310643364.0A CN116382785B (zh) | 2023-06-01 | 2023-06-01 | 用于数据处理的方法及装置、计算设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116382785A CN116382785A (zh) | 2023-07-04 |
CN116382785B true CN116382785B (zh) | 2023-09-12 |
Family
ID=86980966
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310643364.0A Active CN116382785B (zh) | 2023-06-01 | 2023-06-01 | 用于数据处理的方法及装置、计算设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116382785B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111344667A (zh) * | 2017-12-01 | 2020-06-26 | 华为技术有限公司 | 用于在一个或多个虚拟内存页的虚拟内存子页内编译和执行代码的***和方法 |
CN111611083A (zh) * | 2020-05-26 | 2020-09-01 | 北京字节跳动网络技术有限公司 | 虚拟内存上限检测方法、装置、计算机设备及存储介质 |
CN114428700A (zh) * | 2021-12-09 | 2022-05-03 | 交控科技股份有限公司 | 一种内存自检方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10146942B2 (en) * | 2015-02-24 | 2018-12-04 | Dell Products, Lp | Method to protect BIOS NVRAM from malicious code injection by encrypting NVRAM variables and system therefor |
-
2023
- 2023-06-01 CN CN202310643364.0A patent/CN116382785B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111344667A (zh) * | 2017-12-01 | 2020-06-26 | 华为技术有限公司 | 用于在一个或多个虚拟内存页的虚拟内存子页内编译和执行代码的***和方法 |
CN111611083A (zh) * | 2020-05-26 | 2020-09-01 | 北京字节跳动网络技术有限公司 | 虚拟内存上限检测方法、装置、计算机设备及存储介质 |
CN114428700A (zh) * | 2021-12-09 | 2022-05-03 | 交控科技股份有限公司 | 一种内存自检方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN116382785A (zh) | 2023-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8370835B2 (en) | Method for dynamically generating a configuration for a virtual machine with a virtual hard disk in an external storage device | |
US6865659B2 (en) | Using short references to access program elements in a large address space | |
JP4021520B2 (ja) | 読み出し専用メモリにクラスをロードする方法及びシステム | |
KR100380955B1 (ko) | 파일 시스템, 데이터 관리 방법 및 기록 매체 | |
US8434064B2 (en) | Detecting memory errors using write integrity testing | |
US7558804B1 (en) | Method, apparatus, and computer-readable medium for space-efficient storage of variables in a non-volatile computer memory | |
US7882198B2 (en) | Shared JAVA JAR files | |
CN110162306B (zh) | ***的提前编译方法和装置 | |
US20060064576A1 (en) | Boot systems and methods | |
WO2007046976A1 (en) | Extensible meta-data | |
JP2010511926A (ja) | 漸進・透過的ファイル更新 | |
JP5457496B2 (ja) | 携帯型データ記憶媒体のメモリ管理 | |
CN116149800B (zh) | Kvm虚拟机应用层无代理cdp方法、***及存储介质 | |
CN102541969B (zh) | 基于fat文件***的文件保护方法、***及存储器 | |
CN105224309A (zh) | 一种调取函数的方法和装置 | |
CN110287695B (zh) | 一种Java卡及其临时对象的管理方法 | |
CN114756296A (zh) | 可读写挂载启动方法、装置、存储介质及电子设备 | |
CN116700629B (zh) | 数据处理方法和装置 | |
CN116382785B (zh) | 用于数据处理的方法及装置、计算设备及存储介质 | |
CN106557572A (zh) | 一种安卓应用程序文件的提取方法及*** | |
EP4020297A1 (en) | Method for managing a volatile memory and java card device | |
CN112130789B (zh) | 片内RAM空间不足转片内flash存储的方法 | |
CN101271430B (zh) | 一种对存储设备中的数据进行保护的方法和装置 | |
CN113760193A (zh) | 用于资源受限制装置的数据读写方法、装置及指令集 | |
CN117251234B (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 |