CN118349972A - 内存管理方法和装置 - Google Patents
内存管理方法和装置 Download PDFInfo
- Publication number
- CN118349972A CN118349972A CN202310083038.9A CN202310083038A CN118349972A CN 118349972 A CN118349972 A CN 118349972A CN 202310083038 A CN202310083038 A CN 202310083038A CN 118349972 A CN118349972 A CN 118349972A
- Authority
- CN
- China
- Prior art keywords
- memory
- permission
- client device
- authority
- token
- 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.)
- Pending
Links
- 238000007726 management method Methods 0.000 title claims abstract description 51
- 238000000034 method Methods 0.000 claims abstract description 58
- 238000012545 processing Methods 0.000 claims description 32
- 238000012790 confirmation Methods 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 8
- 238000010200 validation analysis Methods 0.000 claims 1
- 230000006854 communication Effects 0.000 description 22
- 238000004891 communication Methods 0.000 description 19
- 230000008569 process Effects 0.000 description 19
- 230000006870 function Effects 0.000 description 17
- 238000010586 diagram Methods 0.000 description 9
- 238000013461 design Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 239000004065 semiconductor Substances 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 229910044991 metal oxide Inorganic materials 0.000 description 4
- 150000004706 metal oxides Chemical class 0.000 description 4
- 230000000295 complement effect Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 229920001621 AMOLED Polymers 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 230000026676 system process Effects 0.000 description 2
- JBRZTFJDHDCESZ-UHFFFAOYSA-N AsGa Chemical compound [As]#[Ga] JBRZTFJDHDCESZ-UHFFFAOYSA-N 0.000 description 1
- 229910000577 Silicon-germanium Inorganic materials 0.000 description 1
- LEVVHYCKPQWKOP-UHFFFAOYSA-N [Si].[Ge] Chemical compound [Si].[Ge] LEVVHYCKPQWKOP-UHFFFAOYSA-N 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 210000000988 bone and bone Anatomy 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 239000013078 crystal Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 229910052751 metal Inorganic materials 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 238000011022 operating instruction Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 150000003071 polychlorinated biphenyls Chemical class 0.000 description 1
- 239000002096 quantum dot Substances 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000001702 transmitter Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
Abstract
本申请实施例公开了内存管理方法和装置,涉及计算机技术领域,能够提升电子设备分配内存访问权限的分配效率。该方法包括:首先生成权限表地址。然后向客户端设备发送的权限表地址。之后接收客户端设备发送的内存注册请求。然后在权限表地址生成客户端设备的权限表。之后向客户端设备发送权限信息。其中,权限表地址用于表征客户端设备的权限表在内存的用户空间中的存储位置。内存注册请求用于请求获取内存的访问权限。权限表用于记录权限信息,权限信息用于表征权限表对应的客户端设备对内存的访问权限。
Description
技术领域
本申请实施例涉及计算机技术领域,尤其涉及内存管理方法和装置。
背景技术
目前,随着通信技术的发展,通信系统也越来越复杂,分布式通信系统应运而生。分布式通信系统包括了多个不同的子系统,不同的子功能往往分布在不同的子系统中。为了实现某种特定的功能,这些子系统中的子功能需要协同工作,共同完成特定的目标。为此,不同的子系统之间需要相互通信以便协同工作。在当前的分布式通信系统中,在进行通信的时候,被访问的客户端设备可以将内存会交给发起访问的用户端设备进行访问。
客户端设备的内存通常可以分为多个内存段(Memory Segment),被多个不同的用户端设备进行访问。在该应用场景下就需要基于不同的用户端设备进行权限控制,避免单个用户端设备对客户端设备的恶意访问对其他的用户端设备产生影响。
然而,相关技术中客户端设备在收到多个用户访问请求时,需要较长的内存访问权限分配时间,客户端设备的内存访问权限分配效率较差。因此如何提升客户端设备的分配效率是本领域人员亟需解决的问题之一。
发明内容
本申请实施例提供了内存管理方法和装置,能够提升电子设备分配内存访问权限的分配效率。为达到上述目的,本申请实施例采用如下技术方案:
第一方面,本申请实施例了一种内存管理方法,该方法包括:首先生成权限表地址。然后向所述客户端设备发送的所述权限表地址。之后接收所述客户端设备发送的内存注册请求。然后在所述权限表地址生成所述客户端设备的权限表。之后向所述客户端设备发送所述权限信息。其中,所述权限表地址用于表征客户端设备的权限表在所述内存的用户空间中的存储位置。所述内存注册请求用于请求获取所述内存的访问权限。所述权限表用于记录权限信息,所述权限信息用于表征所述权限表对应的客户端设备对所述内存的访问权限。
相关技术中,客户端设备在需要访问内存时向服务端设备发送内存注册请求,服务端设备在收到内存注册请求后,生成客户端设备的权限表地址,然后在内存的内核空间生成对应的权限表后,客户端设备才能访问相应内存区域。当多个客户端设备同时向服务端设备发送内存注册请求,服务端设备需要较长时间处理,内存权限分配时间较长。而在本申请实施例提供的内存管理方法,客户端设备提前生成客户端设备的权限表地址,并将权限表地址送给相应的客户端设备。客户端设备在需要访问内存时向服务端设备发送内存注册请求,服务端设备在收到内存注册请求后,无需在生成客户端设备的权限表地址,仅需要在内存的用户空间生成对应的权限表。由此降低了电子设备分配内存访问权限的分配时间,提高了分配效率。并且,相较于相关技术将权限表存储在内核空间中,创建、修改和注销权限表需要进入内核态下操作,本申请实施例将权限表存储在用户空间,创建、修改和注销权限表无需进入内核态下操作,进一步降低编辑权限表的所需时间。
在一种可能的实现方式中,上述方法还可以包括:接收所述客户端设备发送的内存访问请求,所述内存访问请求用于请求访问内存的目标区域,所述目标区域为所述内存的任一区域;根据所述内存访问请求对所述客户端设备进行内存访问权限确认。
在一种可能的实现方式中,所述内存访问请求包括所述客户端设备的实例标识和令牌标识。
在一种可能的实现方式中,所述根据所述内存访问请求对所述客户端设备进行内存访问权限确认,包括:根据所述实例标识查询第一表格确定所述实例标识对应的令牌标识,所述第一表格用于记录实例标识与令牌标识的索引关系;根据所述令牌标识查询第二表格确定所述令牌标识对应的内存访问权限,所述第二表格用于记录令牌标识与权限表地址的索引关系;根据所述令牌标识对应的内存访问权限对所述客户端设备进行内存访问权限确认。
可以看出,本申请实施例提供的方法,可以在收到客户端设备发送的内存访问请求后,根据内存访问请求中的实例标识索引第一表格至对应的第二表格,然后通过内存访问请求中的令牌标识索引确定令牌标识对应的内存访问权限,之后通过确定的内存访问权限对所述客户端设备进行内存访问权限确认,确认客户端是否具备目标区域的访问权限,从而防止避免客户端设备对本端的恶意内存访问对其他的用户产生影响。
在一种可能的实现方式中,所述令牌标识可以为操作系统中的进程标识或进程号。
需要说明的是,一个操作系统可以包括一个或多个实例,即一个操作系统标识可以对应一个或多个实例标识。
在一种可能的实现方式中,一个target entity可以指代一个target os。
在另一种可能的实现方式中,也可以使用多个target entity指代一个targetos。entity包括但不限于os的范围。
在一种可能的实现方式中,可以根据所述令牌标识确定所述令牌标识对应的权限表地址;根据所述权限表地址查询所述令牌标识对应的权限表确定所述令牌标识对应的内存访问权限;在所述令牌标识对应的内存访问权限包括所述目标区域的访问权限的情况下,确定所述客户端设备对所述目标区域存在访问权限。
可以看出,本申请实施例提供的方法,可以根据内存访问请求中的令牌标识确定令牌标识对应的权限表地址,之后通过该权限表地址查询对应的权限表以对所述客户端设备进行内存访问权限确认,确认客户端是否具备目标区域的访问权限,从而防止避免客户端设备对本端的恶意内存访问对其他的用户产生影响。
在另一种可能的实现方式中,可以根据所述令牌标识确定所述令牌标识对应的第一级权限表地址;根据所述第一级权限表地址和偏移量确定所述令牌标识对应的第二级权限表地址;根据所述第二级权限表地址确定所述权限表地址。
可以理解的是,权限表可以采用多级链表的形式。例如,如果单个用户的权限表空间无法被单个权限表存储空间块所容纳,就可以采用多级权限表存储空间块来实现扩展。相应地,权限表采用多级链表的形式,势必就需要一个地址将两个权限表地址进行链接。因此可以通过多级权限表地址确定令牌标识对应权限表地址,然后通过该权限表地址查询对应的权限表以对所述客户端设备进行内存访问权限确认,确认客户端是否具备目标区域的访问权限,从而防止避免客户端设备对本端的恶意内存访问对其他的用户产生影响。
在一种可能的实现方式中,上述偏移量可以为权限表存储空间块的偏移量。
可以理解的是,通过权限表存储空间块的偏移量作为两个权限表地址之间的链接。而不是以虚拟地址或物理地址作为两个权限表地址之间的链接。是因为权限表存储空间块的偏移量作为两个权限表地址之间的链接可以表达一个用户不可见的个权限表存储空间块(MPT Base Block)维护了权限表存储空间块的基地址和大小。以防止此时用户误填下一级权限表地址,硬件需要针对该越界行为进行判断并进行拦截,确保填充表项的范围不会超过预设权限表的范围。以此保证确保用户态的访问范围是可控的,防止发生地址越界攻击。例如,硬件会进行检错,即检查的时候会检查用户任意填写的权限表存储空间块的偏移量(Offset)不能超过Size的空间。
在一种可能的实现方式中,所述第一表格存储在所述内存的内核空间。
可以理解的是,第一表格的访问频率较低,因此将第一表格存储在所述内存的内核空间,即可以在不影响内存访问效率的情况下保证第一表格的安全性。
在一种可能的实现方式中,所述第二表格存储在所述内存的内核空间。
可以理解的是,第二表格的访问频率较低,因此将第二表格存储在所述内存的内核空间,即可以在不影响内存访问效率的情况下保证第二表格的安全性。
第二方面,本申请实施例了一种内存管理装置,应用于电子设备,所述电子设备包括内存,该内存管理装置包括:处理单元和收发单元。所述处理单元,用于生成权限表地址以及在所述权限表地址生成所述客户端设备的权限表,所述权限表地址用于表征客户端设备的权限表在所述内存的用户空间中的存储位置,所述权限表用于记录权限信息,所述权限信息用于表征所述权限表对应的客户端设备对所述内存的访问权限。所述收发单元,用于向所述客户端设备发送的所述权限表地址、接收所述客户端设备发送的内存注册请求以及向所述客户端设备发送所述权限信息,所述内存注册请求用于请求获取所述内存的访问权限。
在一种可能的实现方式中,所述收发单元还用于:接收所述客户端设备发送的内存访问请求,所述内存访问请求用于请求访问内存的目标区域,所述目标区域为所述内存的任一区域;
在一种可能的实现方式中,所述处理单元还用于:根据所述内存访问请求对所述客户端设备进行内存访问权限确认。
在一种可能的实现方式中,所述内存访问请求包括所述客户端设备的实例标识和令牌标识。
在一种可能的实现方式中,所述处理单元具体用于:根据所述实例标识查询第一表格确定所述实例标识对应的令牌标识,所述第一表格用于记录实例标识与令牌标识的索引关系;根据所述令牌标识查询第二表格确定所述令牌标识对应的内存访问权限,所述第二表格用于记录令牌标识与权限表地址的索引关系;根据所述令牌标识对应的内存访问权限对所述客户端设备进行内存访问权限确认。
在一种可能的实现方式中,所述处理单元具体用于:根据所述令牌标识确定所述令牌标识对应的权限表地址;根据所述权限表地址查询所述令牌标识对应的权限表确定所述令牌标识对应的内存访问权限;在所述令牌标识对应的内存访问权限包括所述目标区域的访问权限的情况下,确定所述客户端设备对所述目标区域存在访问权限。
在一种可能的实现方式中,所述处理单元具体用于:根据所述令牌标识确定所述令牌标识对应的第一级权限表地址;根据所述第一级权限表地址和偏移量确定所述令牌标识对应的第二级权限表地址;根据所述第二级权限表地址确定所述权限表地址。
在一种可能的实现方式中,所述第一表格存储在所述内存的内核空间。
可以理解的是,第一表格的访问频率较低,因此将第一表格存储在所述内存的内核空间,即可以在不影响内存访问效率的情况下保证第一表格的安全性。
在一种可能的实现方式中,所述第二表格存储在所述内存的内核空间。
可以理解的是,第二表格的访问频率较低,因此将第二表格存储在所述内存的内核空间,即可以在不影响内存访问效率的情况下保证第二表格的安全性。
第三方面,本申请实施例还提供一种内存管理装置,该内存管理装置包括:至少一个处理器,当所述至少一个处理器执行程序代码或指令时,实现上述第一方面或其任意可能的实现方式中所述的方法。
可选地,该内存管理装置还可以包括至少一个存储器,该至少一个存储器用于存储该程序代码或指令。
第四方面,本申请实施例还提供一种芯片,包括:输入接口、输出接口、至少一个处理器。可选地,该芯片还包括存储器。该至少一个处理器用于执行该存储器中的代码,当该至少一个处理器执行该代码时,该芯片实现上述第一方面或其任意可能的实现方式中所述的方法。
可选地,上述芯片还可以为集成电路。
第五方面,本申请实施例还提供一种计算机可读存储介质,用于存储计算机程序,该计算机程序包括用于实现上述第一方面或其任意可能的实现方式中所述的方法。
第六方面,本申请实施例还提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机实现上述第一方面或其任意可能的实现方式中所述的方法。
本实施例提供的内存管理装置、计算机存储介质、计算机程序产品和芯片均用于执行上文所提供的方法,因此,其所能达到的有益效果可参考上文所提供的方法中的有益效果,此处不再赘述。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请实施例的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种通信系统的结构示意图;
图2为本申请实施例提供的一种内存管理方法的流程示意图;
图3为本申请实施例提供的一种索引权限表的流程示意图;
图4为本申请实施例提供的一种第二表格的结构示意图;
图5为本申请实施例提供的另一种第二表格的结构示意图;
图6为本申请实施例提供的一种内存管理装置的结构示意图;
图7为本申请实施例提供的一种芯片的结构示意图;
图8为本申请实施例提供的又一种电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请实施例一部分实施例,而不是全部的实施例。基于本申请实施例中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请实施例保护的范围。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
本申请实施例的说明书以及附图中的术语“第一”和“第二”等是用于区别不同的对象,或者用于区别对同一对象的不同处理,而不是用于描述对象的特定顺序。
此外,本申请实施例的描述中所提到的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选的还包括其他没有列出的步骤或单元,或可选的还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
需要说明的是,本申请实施例的描述中,“示例性地”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性地”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优先或更具优势。确切而言,使用“示例性地”或者“例如”等词旨在以具体方式呈现相关概念。
在本申请实施例的描述中,除非另有说明,“多个”的含义是指两个或两个以上。
目前,随着通信技术的发展,通信系统也越来越复杂,分布式通信系统应运而生。分布式通信系统包括了多个不同的子系统,不同的子功能往往分布在不同的子系统中。为了实现某种特定的功能,这些子系统中的子功能需要协同工作,共同完成特定的目标。为此,不同的子系统之间需要相互通信以便协同工作。在当前的分布式通信系统中,在进行通信的时候,被访问的客户端设备可以将内存会交给发起访问的用户端设备进行访问。
客户端设备的内存通常可以分为多个内存段(Memory Segment),被多个不同的用户端设备进行访问。在该应用场景下就需要基于不同的用户端设备进行权限控制,避免单个用户端设备对客户端设备的恶意访问对其他的用户端设备产生影响。
然而,相关技术中客户端设备在收到多个用户访问请求时,需要较长的内存访问权限分配时间。
为此,本申请实施例提供了一种内存管理方法,能够提升电子设备分配内存访问权限的分配效率。该方法适用于通信系统,图1示出了该通信系统的一种可能的存在形式。
如图1所示该通信系统包括多个电子设备,电子设备包括服务端设备10和客户端设备20。服务端设备10和客户端设备20可以通过有线或无线方式进行通信。其中,服务端设备10包括内存。
图2示出了本申请实施例提供的一种内存管理方法,该方法包括:
S201、生成权限表地址。
其中,上述权限表地址用于表征客户端设备的权限表在上述内存的用户空间中的存储位置。
示例性地,服务端设备的通信进程可以生成表征客户端设备的权限表在服务端设备的内存的用户空间中的存储位置的权限表地址。
S202、向客户端设备发送的权限表地址。
示例性地,当服务端设备需要与用户端设备的通信进程进行通信的时候,服务端设备可以向客户端设备发送的客户端的权限表地址。
S203、接收客户端设备发送的内存注册请求。
其中,内存注册请求用于请求获取服务端设备的内存的访问权限。
示例性地,当客户端设备需要对服务端设备的内存进行访问的时候,客户端设备可以向服务端设备发送内存注册请求以请求获取服务端设备的内存的访问权限。相应地,服务端设备接收客户端设备发送的内存注册请求。
S204、在权限表地址生成客户端设备的权限表。
其中,上述权限表(memory protection table,MPT),用于记录权限信息。
上述权限信息,即令牌值(Token Value),用于表征权限表对应的客户端设备对上述内存的访问权限。
示例性地,服务端设备可以为每个客户端设备的每个进程(系统进程)生成对应的一个或多个权限表,并记录权限表与表征客户端设备的进程的令牌标识的索引信息。然后将多个权限表存储在内存的用户空间中,服务端设备或客户端设备可以通过每个权限表的权限表基本块地址(MPT Base Block Address)在服务端设备的内存的用户空间中访问对应的权限表。
例如,服务端设备设备可以为每个Token ID(即每个进程系统进程标识)建立对应的一个或多个权限表MPT,然后记录Token ID和权限表MPT的索引信息。
相较于相关技术将权限表存储在内核空间中,创建、修改和注销权限表需要进入内核态下操作,本申请实施例将权限表存储在用户空间,创建、修改和注销权限表无需进入内核态下操作,降低编辑权限表的所需时间。
S205、向客户端设备发送权限信息。
示例性地,服务端设备当其需要与多个用户端设备的通信进程进行通信的时候,可以将生成的多个权限表中填充的权限信息(即Token Value)分发给不同的客户端设备进行使用。
相关技术中,客户端设备在需要访问内存时向服务端设备发送内存注册请求,服务端设备在收到内存注册请求后,生成客户端设备的权限表地址,然后在内存的内核空间生成对应的权限表后,客户端设备才能访问相应内存区域。当多个客户端设备同时向服务端设备发送内存注册请求,服务端设备需要较长时间处理,内存权限分配时间较长。而在本申请实施例提供的内存管理方法,客户端设备提前生成客户端设备的权限表地址,并将权限表地址送给相应的客户端设备。客户端设备在需要访问内存时向服务端设备发送内存注册请求,服务端设备在收到内存注册请求后,无需在生成客户端设备的权限表地址,仅需要在内存的用户空间生成对应的权限表。由此降低了电子设备分配内存访问权限的分配时间,提高了分配效率。
可选地,本申请实施例提供的方法还可以包括:
S206、接收上述客户端设备发送的内存访问请求。
其中,上述内存访问请求用于请求访问内存的目标区域,上述目标区域为上述内存的任一区域。
在一种可能的实现方式中,服务端设备可以接收客户端设备发送的携带有实例标识和令牌标识的内存访问请求。
在另一种可能的实现方式中,服务端设备可以接收客户端设备发送的携带有实例标识、令牌标识和VA地址的内存访问请求。
在又一种可能的实现方式中,服务端设备可以先接收客户端设备发送的实例标识和令牌标识,然后接收客户端设备发送的内存访问请求。
在又一种可能的实现方式中,服务端设备可以先接收客户端设备发送的实例标识、令牌标识和VA地址,然后接收客户端设备发送的内存访问请求。
S207、根据上述内存访问请求对上述客户端设备进行内存访问权限确认。
可以看出,本申请实施例提供的方法,可以在收到客户端设备发送的内存访问请求后,根据内存访问请求对上述客户端设备进行内存访问权限确认,确认客户端是否具备目标区域的访问权限,从而防止避免客户端设备对本端的恶意内存访问对其他的用户产生影响。
在一种可能的实现方式中,可以先根据上述实例标识查询第一表格确定上述实例标识对应的令牌标识。然后根据上述令牌标识查询第二表格确定上述令牌标识对应的内存访问权限。之后根据上述令牌标识对应的内存访问权限对上述客户端设备进行内存访问权限确认。其中,上述第一表格用于记录实例标识与令牌标识的索引关系。上述第二表格用于记录令牌标识与权限表地址的索引关系。第二表格确保了单个实例标识下的单个进程下不同地址段的权限索引是分开的。
在一种可能的实现方式中,上述令牌标识可以为操作系统中的进程标识或进程号。
需要说明的是,一个操作系统可以包括一个或多个实例,即一个操作系统标识可以对应一个或多个实例标识。
在一种可能的实现方式中,一个target entity可以指代一个target os。
在另一种可能的实现方式中,也可以使用多个target entity指代一个targetos。entity包括但不限于os的范围。
示例性地,如图3所示,服务端设备在收到客户端设备发送的内存访问请求后,可以根据客户端设备的实例标识(Target Entity ID)索引第一表格(Target Entity ConfigTa ble)确定实例标识(Target Entity ID)对应的第二表格(Protection ContextTable),然后根据客户端设备的令牌标识(Token ID)索引第二表格(Protection ContextTable)得到客户端设备的令牌标识对应权限表的地址,然后通过令牌标识对应权限表的地址访问令牌标识对应权限表。之后在上述令牌标识对应的内存访问权限包括上述目标区域的访问权限的情况下,确定上述客户端设备对上述目标区域存在访问权限。
可以看出,本申请实施例提供的方法,可以在收到客户端设备发送的内存访问请求后,根据内存访问请求中的实例标识索引第一表格至对应的第二表格,然后通过内存访问请求中的令牌标识索引确定令牌标识对应的内存访问权限,之后通过确定的内存访问权限对上述客户端设备进行内存访问权限确认,确认客户端是否具备目标区域的访问权限,从而防止避免客户端设备对本端的恶意内存访问对其他的用户产生影响。
如图4所示,在一种可能的实现方式中,上述第二表格可以包括权限表基本块地址(MPT Base Block Address)和权限表基本块大小(MPT Base Block Size)。权限表基本块地址可以与VA地址建立映射,使用户端设备基于其获取的VA进行权限表基本块地址对应的MPT表的操作。
如图5上述,在一种可能的实现方式中,上述第二表格还可以包括权限表下一级块表地址(MPT Block Table Address)和权限表下一级块表大小(MPT Block Table Size)。
可以理解的是,权限表可以采用多级链表的形式。例如,如果单个用户的权限表空间无法被单个权限表存储空间块所容纳,就可以采用多级权限表存储空间块来实现扩展。相应地,权限表采用多级链表的形式,势必就需要一个地址将两个权限表地址进行链接。因此可以通过多级权限表地址确定令牌标识对应权限表地址,然后通过该权限表地址查询对应的权限表以对上述客户端设备进行内存访问权限确认,确认客户端是否具备目标区域的访问权限,从而防止避免客户端设备对本端的恶意内存访问对其他的用户产生影响。
在一种可能的实现方式中,上述偏移量可以为权限表存储空间块的偏移量。
可以理解的是,通过权限表存储空间块的偏移量作为两个权限表地址之间的链接。而不是以虚拟地址或物理地址作为两个权限表地址之间的链接。是因为存储空间块的偏移量作为两个权限表地址之间的链接可以表达一个用户不可见的权限表存储空间块(MPT Ba se Block)维护了权限表存储空间块的基地址和大小。以防止此时用户误填下一级权限表地址,硬件需要针对该越界行为进行判断并进行拦截,确保填充表项的范围不会超过预设权限表的范围。以此保证确保用户态的访问范围是可控的,防止发生地址越界攻击。例如,硬件会进行检错,即检查的时候会检查用户任意填写的权限表存储空间块的偏移量(Offs et)不能超过Size的空间。
在一种可能的实现方式中,可以先根据上述令牌标识确定上述令牌标识对应的权限表地址。然后根据上述权限表地址查询上述令牌标识对应的权限表确定上述令牌标识对应的内存访问权限。之后在上述令牌标识对应的内存访问权限包括上述目标区域的访问权限的情况下,确定上述客户端设备对上述目标区域存在访问权限。
示例性地,如图4所示,服务端设备在收到客户端设备发送的内存访问请求后,可以根据客户端设备的实例标识(Target Entity ID)索引第一表格(Target Entity ConfigTa ble)确定实例标识(Target Entity ID)对应的第二表格(Protection ContextTable),然后根据客户端设备的令牌标识(Token ID)索引第二表格(Protection ContextTable)得到客户端设备的令牌标识对应权限表的地址(即权限表基本块地址(MPT BaseBlock Address)),然后通过令牌标识对应权限表的地址访问,即权限表基本块地址(MPTBas e Block Address)令牌标识对应权限表。之后在上述令牌标识对应的内存访问权限包括上述目标区域的访问权限的情况下,确定上述客户端设备对上述目标区域存在访问权限。
在一种可能的实现方式中,可以先根据上述令牌标识确定上述令牌标识对应的第一级权限表地址。然后根据上述第一级权限表地址和偏移量确定上述令牌标识对应的第二级权限表地址。之后根据上述第二级权限表地址确定上述权限表地址。
示例性地,如图5所示,服务端设备在收到客户端设备发送的内存访问请求后,可以根据客户端设备的实例标识(Target Entity ID)索引第一表格(Target Entity ConfigTa ble)确定实例标识(Target Entity ID)对应的第二表格(Protection ContextTable),然后根据客户端设备的令牌标识(Token ID)索引第二表格(Protection ContextTable)得到客户端设备的令牌标识对应第一级权限表地址(即权限表基本块地址(MPTBase Bloc k Address))和权限表下一级块表地址(MPT Block Table Address),然后通过第一级权限表地址和偏移量作为索引访问权限表下一级块表(MPT Block Table)以确定第二级权限表地址(即权限表下一级块地址(MPT Next Block Address)),之后根据上述第二级权限表地址确定上述权限表地址,然后通过令牌标识对应权限表的地址访问。之后在上述令牌标识对应的内存访问权限包括上述目标区域的访问权限的情况下,确定上述客户端设备对上述目标区域存在访问权限。
其中,权限表下一级块表(MPT Block Table)为第2个到第N个权限表存储空间块的真实地址簿。即权限表存储空间块2~N的真实地址簿.
需要说明的是,第一级权限表地址可以为任意权限表存储空间块的地址。第二级权限表地址可以为第一级权限表地址对应的存储空间块的下一级的任意权限表存储空间块。
例如,第一级权限表地址可以为权限表基本块的地址,则第二级权限表地址可以为权限表存储空间块2~N中任意一个权限表存储空间块的地址。
又例如,第一级权限表地址为权限表存储空间块2的地址,则第二级权限表地址可以为权限表存储空间块3~N中任意一个权限表存储空间块的地址。
在一种可能的实现方式中,上述第一表格存储在上述内存的内核空间。
可以理解的是,第一表格的访问频率较低,因此将第一表格存储在上述内存的内核空间,即可以在不影响内存访问效率的情况下保证第一表格的安全性。
在一种可能的实现方式中,上述第二表格存储在上述内存的内核空间。
可以理解的是,第二表格的访问频率较低,因此将第二表格存储在上述内存的内核空间,即可以在不影响内存访问效率的情况下保证第二表格的安全性。
下面将结合图6介绍用于执行上述内存管理方法的内存管理装置。
可以理解的是,内存管理装置为了实现上述功能,其包含了执行各个功能相应的硬件和/或软件模块。结合本文中所公开的实施例描述的各示例的算法步骤,本申请实施例能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以结合实施例对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请实施例的范围。
本申请实施例可以根据上述方法示例对内存管理装置进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块可以采用硬件的形式实现。需要说明的是,本实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在采用对应各个功能划分各个功能模块的情况下,图6示出了上述实施例中涉及的内存管理装置的一种可能的组成示意图,应用于电子设备,上述电子设备包括内存,如图6所示,该内存管理装置600可以包括:处理单元601和收发单元602。
上述处理单元601,用于生成权限表地址以及在所述权限表地址生成所述客户端设备的权限表,所述权限表地址用于表征客户端设备的权限表在所述内存的用户空间中的存储位置,所述权限表用于记录权限信息,所述权限信息用于表征所述权限表对应的客户端设备对所述内存的访问权限。
上述收发单元602,用于向所述客户端设备发送的所述权限表地址、接收所述客户端设备发送的内存注册请求以及向所述客户端设备发送所述权限信息,所述内存注册请求用于请求获取所述内存的访问权限。
在一种可能的实现方式中,上述收发单元602还用于:接收上述客户端设备发送的内存访问请求,上述内存访问请求用于请求访问内存的目标区域,上述目标区域为上述内存的任一区域;
在一种可能的实现方式中,上述处理单元601还用于:根据上述内存访问请求对上述客户端设备进行内存访问权限确认。
在一种可能的实现方式中,上述内存访问请求包括上述客户端设备的实例标识和令牌标识。
在一种可能的实现方式中,上述处理单元601具体用于:根据上述实例标识查询第一表格确定上述实例标识对应的令牌标识,上述第一表格用于记录实例标识与令牌标识的索引关系;根据上述令牌标识查询第二表格确定上述令牌标识对应的内存访问权限,上述第二表格用于记录令牌标识与权限表地址的索引关系;根据上述令牌标识对应的内存访问权限对上述客户端设备进行内存访问权限确认。
在一种可能的实现方式中,上述处理单元601具体用于:根据上述令牌标识确定上述令牌标识对应的权限表地址;根据上述权限表地址查询上述令牌标识对应的权限表确定上述令牌标识对应的内存访问权限;在上述令牌标识对应的内存访问权限包括上述目标区域的访问权限的情况下,确定上述客户端设备对上述目标区域存在访问权限。
在一种可能的实现方式中,上述处理单元601具体用于:根据上述令牌标识确定上述令牌标识对应的第一级权限表地址;根据上述第一级权限表地址和偏移量确定上述令牌标识对应的第二级权限表地址;根据上述第二级权限表地址确定上述权限表地址。
在一种可能的实现方式中,上述第一表格存储在上述内存的内核空间。
可以理解的是,第一表格的访问频率较低,因此将第一表格存储在上述内存的内核空间,即可以在不影响内存访问效率的情况下保证第一表格的安全性。
在一种可能的实现方式中,上述第二表格存储在上述内存的内核空间。
可以理解的是,第二表格的访问频率较低,因此将第二表格存储在上述内存的内核空间,即可以在不影响内存访问效率的情况下保证第二表格的安全性。
本申请实施例还提供了一种芯片。图7示出了一种芯片700的结构示意图。芯片700包括一个或多个处理器701以及接口电路702。可选的,上述芯片700还可以包含总线703。
处理器701可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述内存管理方法的各步骤可以通过处理器701中的硬件的集成逻辑电路或者软件形式的指令完成。
可选地,上述的处理器701可以是通用处理器、数字信号处理(digital signalproces sing,DSP)器、集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(field-programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
接口电路702可以用于数据、指令或者信息的发送或者接收,处理器701可以利用接口电路702接收的数据、指令或者其他信息,进行加工,可以将加工完成信息通过接口电路702发送出去。
可选的,芯片还包括存储器,存储器可以包括只读存储器和随机存取存储器,并向处理器提供操作指令和数据。存储器的一部分还可以包括非易失性随机存取存储器(non-vo latile random access memory,NVRAM)。
可选的,存储器存储了可执行软件模块或者数据结构,处理器可以通过调用存储器存储的操作指令(该操作指令可存储在操作系统中),执行相应的操作。
可选的,芯片可以使用在本申请实施例涉及的内存管理装置中。可选的,接口电路702可用于输出处理器701的执行结果。关于本申请实施例的一个或多个实施例提供的内存管理方法可参考前述各个实施例,这里不再赘述。
需要说明的,处理器701、接口电路702各自对应的功能既可以通过硬件设计实现,也可以通过软件设计来实现,还可以通过软硬件结合的方式来实现,这里不作限制。
图8为本申请实施例提供的一种电子设备的结构示意图,电子设备100可以为手机、平板电脑、可穿戴设备、车载设备、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、笔记本电脑、超级移动个人计算机(ultra-mobile personalcomput er,UMPC)、上网本、个人数字助理(personal digital assistant,PDA)、内存管理装置或者内存管理装置中的芯片或者功能模块。
示例性地,图8是本申请实施例提供的一例电子设备100的结构示意图。电子设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universa lserial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。其中传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
可以理解的是,本申请实施例示意的结构并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
其中,控制器可以是电子设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuit sound,I2S)接口,脉冲编码调制(pulse codemodulation,PCM)接口,通用异步收发传输器(universal asynchronousreceiver/transmi tter,UART)接口,移动产业处理器接口(mobile industry processorinterface,MIPI),通用输入输出(general-purpose input/output,GPIO)接口,用户标识模块(subscriber ide ntity module,SIM)接口,和/或通用串行总线(universal serialbus,USB)接口等。
其中,I2C接口是一种双向同步串行总线,处理器110可以通过I2C接口耦合触摸传感器180K,使处理器110与触摸传感器180K通过I2C总线接口通信,实现电子设备100的触摸功能。MIPI接口可以被用于连接处理器110与显示屏194,摄像头193等外围器件。MIPI接口包括摄像头串行接口(camera serial interface,CSI),显示屏串行接口(displa yserial interface,DSI)等。在一些实施例中,处理器110和摄像头193通过CSI接口通信,实现电子设备100的拍摄功能。处理器110和显示屏194通过DSI接口通信,实现电子设备100的显示功能。
可以理解的是,本申请实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备100的结构限定。在本申请另一些实施例中,电子设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,外部存储器,显示屏194,摄像头193,和无线通信模块160等供电。
电子设备100通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emittingdiode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganic light emitting diode的,AMOLED),柔性发光二极管(flex light-emittingdiode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot lightemitting diodes,QLED)等。在一些实施例中,电子设备100可以包括1个或N个显示屏194,N为大于1的正整数。
电子设备100可以通过ISP,摄像头193,触摸传感器、视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。
其中,ISP用于处理摄像头193反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给ISP处理,转化为肉眼可见的图像。ISP还可以对图像的噪点,亮度,肤色进行算法优化。ISP还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,ISP可以设置在摄像头193中。
摄像头193用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的RGB,YUV等格式的图像信号,应理解,在本申请实施例的描述中,以RGB格式的图像为例进行介绍,本申请实施例对图像格式不作限定。在一些实施例中,电子设备100可以包括1个或N个摄像头193,N为大于1的正整数。
数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当电子设备100在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。
视频编解码器用于对数字视频压缩或解压缩。电子设备100可以支持一种或多种视频编解码器。这样,电子设备100可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving picture experts group,MPEG)1,MPEG2,MPEG3,MPEG4等。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备100的存储能力。内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行电子设备100的各种功能应用以及数据处理。内部存储器121可以包括存储程序区和存储数据区。
电子设备100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。电子设备100可以接收按键输入,产生与电子设备100的用户设置以及功能控制有关的键信号输入。马达191可以产生振动提示。马达191可以用于来电振动提示,也可以用于触摸振动反馈。例如,作用于不同应用(例如拍照,音频播放等)的触摸操作,可以对应不同的振动反馈效果。作用于显示屏194不同区域的触摸操作,马达191也可对应不同的振动反馈效果。指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。SIM卡接口195用于连接SIM卡。
需要指出的是,电子设备100可以是芯片系统或有图8中类似结构的设备。其中,芯片系统可以由芯片构成,也可以包括芯片和其他分立器件。本申请的各实施例之间涉及的动作、术语等均可以相互参考,不予限制。本申请的实施例中各个设备之间交互的消息名称或消息中的参数名称等只是一个示例,具体实现中也可以采用其他的名称,不予限制。此外,图8中示出的组成结构并不构成对该电子设备100的限定,除图8所示部件之外,该电子设备100可以包括比图8所示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
本申请中描述的处理器和收发器可实现在集成电路(integrated circuit,IC)、模拟IC、射频集成电路、混合信号IC、专用集成电路(application specific integratedcircuit,ASIC)、印刷电路板(printed circuit board,PCB)、电子设备等上。该处理器和收发器也可以用各种IC工艺技术来制造,例如互补金属氧化物半导体(complementary metaloxid e semiconductor,CMOS)、N型金属氧化物半导体(nMetal-oxide-semiconductor,NMOS)、P型金属氧化物半导体(positive channel metal oxide semiconductor,PMOS)、双极结型晶体管(Bipolar Junction Transistor,BJT)、双极CMOS(BiCMOS)、硅锗(Si Ge)、砷化镓(GaAs)等。
本申请实施例还提供一种内存管理装置,该装置包括:至少一个处理器,当上述至少一个处理器执行程序代码或指令时,实现上述相关方法步骤实现上述实施例中的内存管理方法。
可选地,该装置还可以包括至少一个存储器,该至少一个存储器用于存储该程序代码或指令。
本申请实施例还提供一种计算机存储介质,该计算机存储介质中存储有计算机指令,当该计算机指令在内存管理装置上运行时,使得内存管理装置执行上述相关方法步骤实现上述实施例中的内存管理方法。
本申请实施例还提供了一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述相关步骤,以实现上述实施例中的内存管理方法。
本申请实施例还提供一种内存管理装置,这个装置具体可以是芯片、集成电路、组件或模块。具体的,该装置可包括相连的处理器和用于存储指令的存储器,或者该装置包括至少一个处理器,用于从外部存储器获取指令。当装置运行时,处理器可执行指令,以使芯片执行上述各方法实施例中的内存管理方法。
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件,或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其他的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其他的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
上述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例上述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
Claims (17)
1.一种内存管理方法,其特征在于,应用于电子设备,所述电子设备包括内存,所述方法包括:
生成权限表地址,所述权限表地址用于表征客户端设备的权限表在所述内存的用户空间中的存储位置;
向所述客户端设备发送的所述权限表地址;
接收所述客户端设备发送的内存注册请求,所述内存注册请求用于请求获取所述内存的访问权限;
在所述权限表地址生成所述客户端设备的权限表,所述权限表用于记录权限信息,所述权限信息用于表征所述权限表对应的客户端设备对所述内存的访问权限;
向所述客户端设备发送所述权限信息。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收所述客户端设备发送的内存访问请求,所述内存访问请求用于请求访问内存的目标区域,所述目标区域为所述内存的任一区域;
根据所述内存访问请求对所述客户端设备进行内存访问权限确认。
3.根据权利要求2所述的方法,其特征在于,所述内存访问请求包括所述客户端设备的实例标识和令牌标识,所述根据所述内存访问请求对所述客户端设备进行内存访问权限确认,包括:
根据所述实例标识查询第一表格确定所述实例标识对应的令牌标识,所述第一表格用于记录实例标识与令牌标识的索引关系;
根据所述令牌标识查询第二表格确定所述令牌标识对应的内存访问权限,所述第二表格用于记录令牌标识与权限表地址的索引关系;
根据所述令牌标识对应的内存访问权限对所述客户端设备进行内存访问权限确认。
4.根据权利要求3所述的方法,其特征在于,所述根据所述令牌标识对应的内存访问权限对所述客户端设备进行内存访问权限确认,包括:
根据所述令牌标识确定所述令牌标识对应的权限表地址;
根据所述权限表地址查询所述令牌标识对应的权限表确定所述令牌标识对应的内存访问权限;
在所述令牌标识对应的内存访问权限包括所述目标区域的访问权限的情况下,确定所述客户端设备对所述目标区域存在访问权限。
5.根据权利要求4所述的方法,其特征在于,所述根据所述令牌标识确定所述令牌标识对应的权限表地址,包括:
根据所述令牌标识确定所述令牌标识对应的第一级权限表地址;
根据所述第一级权限表地址和偏移量确定所述令牌标识对应的第二级权限表地址;
根据所述第二级权限表地址确定所述权限表地址。
6.根据权利要求3至5中任一项所述的方法,其特征在于,所述第一表格存储在所述内存的内核空间。
7.根据权利要求3至6中任一项所述的方法,其特征在于,所述第二表格存储在所述内存的内核空间。
8.一种内存管理装置,其特征在于,应用于电子设备,所述电子设备包括内存,所述装置包括:处理单元和收发单元;
所述处理单元,用于生成权限表地址以及在所述权限表地址生成所述客户端设备的权限表,所述权限表地址用于表征客户端设备的权限表在所述内存的用户空间中的存储位置,所述权限表用于记录权限信息,所述权限信息用于表征所述权限表对应的客户端设备对所述内存的访问权限;
所述收发单元,用于向所述客户端设备发送的所述权限表地址、接收所述客户端设备发送的内存注册请求以及向所述客户端设备发送所述权限信息,所述内存注册请求用于请求获取所述内存的访问权限。
9.根据权利要求8所述的装置,其特征在于,所述收发单元还用于:
接收所述客户端设备发送的内存访问请求,所述内存访问请求用于请求访问内存的目标区域,所述目标区域为所述内存的任一区域;
所述处理单元,还用于根据所述内存访问请求对所述客户端设备进行内存访问权限确认。
10.根据权利要求9所述的装置,其特征在于,所述内存访问请求包括所述客户端设备的实例标识和令牌标识,所述处理单元具体用于:
根据所述实例标识查询第一表格确定所述实例标识对应的令牌标识,所述第一表格用于记录实例标识与令牌标识的索引关系;
根据所述令牌标识查询第二表格确定所述令牌标识对应的内存访问权限,所述第二表格用于记录令牌标识与权限表地址的索引关系;
根据所述令牌标识对应的内存访问权限对所述客户端设备进行内存访问权限确认。
11.根据权利要求10所述的装置,其特征在于,所述处理单元具体用于:
根据所述令牌标识确定所述令牌标识对应的权限表地址;
根据所述权限表地址查询所述令牌标识对应的权限表确定所述令牌标识对应的内存访问权限;
在所述令牌标识对应的内存访问权限包括所述目标区域的访问权限的情况下,确定所述客户端设备对所述目标区域存在访问权限。
12.根据权利要求11所述的装置,其特征在于,所述处理单元具体用于:
根据所述令牌标识确定所述令牌标识对应的第一级权限表地址;
根据所述第一级权限表地址和偏移量确定所述令牌标识对应的第二级权限表地址;
根据所述第二级权限表地址确定所述权限表地址。
13.根据权利要求10至12中任一项所述的装置,其特征在于,所述第一表格存储在所述内存的内核空间。
14.根据权利要求10至13中任一项所述的装置,其特征在于,所述第二表格存储在所述内存的内核空间。
15.一种内存管理装置,包括至少一个处理器和存储器,其特征在于,所述至少一个处理器执行存储在存储器中的程序或指令,以使得所述内存管理装置实现上述权利要求1至7中任一项所述的方法。
16.一种计算机可读存储介质,用于存储计算机程序,其特征在于,当所述计算机程序在计算机或处理器运行时,使得所述计算机或所述处理器实现上述权利要求1至7中任一项所述的方法。
17.一种计算机程序产品,所述计算机程序产品中包含指令,其特征在于,当所述指令在计算机或处理器上运行时,使得所述计算机或所述处理器实现上述权利要求1至7中任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310083038.9A CN118349972A (zh) | 2023-01-16 | 2023-01-16 | 内存管理方法和装置 |
PCT/CN2023/120591 WO2024152597A1 (zh) | 2023-01-16 | 2023-09-22 | 内存管理方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310083038.9A CN118349972A (zh) | 2023-01-16 | 2023-01-16 | 内存管理方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118349972A true CN118349972A (zh) | 2024-07-16 |
Family
ID=91820052
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310083038.9A Pending CN118349972A (zh) | 2023-01-16 | 2023-01-16 | 内存管理方法和装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN118349972A (zh) |
WO (1) | WO2024152597A1 (zh) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103488588A (zh) * | 2013-10-09 | 2014-01-01 | 中国科学院计算技术研究所 | 一种内存保护方法、系统及网络接口控制器 |
CN110554911A (zh) * | 2018-05-30 | 2019-12-10 | 阿里巴巴集团控股有限公司 | 内存访问与分配方法、存储控制器及系统 |
CN110928737B (zh) * | 2018-09-19 | 2021-05-18 | 华为技术有限公司 | 监控样本进程的内存访问行为的方法和装置 |
CN115309665A (zh) * | 2021-05-07 | 2022-11-08 | 华为技术有限公司 | 计算机设备及内存注册方法 |
CN114626034A (zh) * | 2022-03-16 | 2022-06-14 | 中电(海南)联合创新研究院有限公司 | 一种内存访问方法、装置、设备及存储介质 |
-
2023
- 2023-01-16 CN CN202310083038.9A patent/CN118349972A/zh active Pending
- 2023-09-22 WO PCT/CN2023/120591 patent/WO2024152597A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2024152597A1 (zh) | 2024-07-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102221023B1 (ko) | 이미지를 처리하는 전자장치 및 방법 | |
US10348971B2 (en) | Electronic device and method for generating thumbnails based on captured images | |
KR102122476B1 (ko) | 화면의 회전을 컨트롤할 수 있는 전자 장치 및 방법 | |
EP4440121A2 (en) | Device capability scheduling method and electronic device | |
CN104869305B (zh) | 处理图像数据的方法及其装置 | |
WO2018048177A1 (ko) | 전자 장치 및 복수의 영상을 처리하는 방법 | |
US20150244823A1 (en) | Apparatus and method for providing push service based on location | |
CN110780929B (zh) | 调用硬件接口的方法及电子设备 | |
US20160092750A1 (en) | Method for recommending one or more images and electronic device thereof | |
CN110597840B (zh) | 基于区块链的伴侣关系建立方法、装置、设备及存储介质 | |
CN114692094A (zh) | 一种应用程序权限管理方法及电子设备 | |
CN112433689A (zh) | 用于同屏器的数据传输方法、装置、同屏器及介质 | |
CN117828689A (zh) | 校验方法和装置 | |
CN116709417B (zh) | 一种温度控制方法及相关设备 | |
CN118349972A (zh) | 内存管理方法和装置 | |
KR20190139175A (ko) | 알림을 제공하는 방법 및 그 전자 장치 | |
CN117652151A (zh) | 控制曝光的方法、装置与电子设备 | |
KR102054993B1 (ko) | 알림을 제공하는 방법 및 그 전자 장치 | |
CN118276759A (zh) | 硬盘控制方法和装置 | |
CN117938973A (zh) | 报文处理方法和装置 | |
CN110830723B (zh) | 拍摄方法、装置、存储介质及移动终端 | |
CN118057532A (zh) | 命令处理方法和装置 | |
CN118101669A (zh) | 投屏方法和装置 | |
CN118101779A (zh) | 报文处理方法和装置 | |
CN118540274A (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 |