CN113495678A - 一种dm缓存的分配方法及装置 - Google Patents
一种dm缓存的分配方法及装置 Download PDFInfo
- Publication number
- CN113495678A CN113495678A CN202010251150.5A CN202010251150A CN113495678A CN 113495678 A CN113495678 A CN 113495678A CN 202010251150 A CN202010251150 A CN 202010251150A CN 113495678 A CN113495678 A CN 113495678A
- Authority
- CN
- China
- Prior art keywords
- cache
- block device
- block
- allocated
- size
- 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
Images
Classifications
-
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0871—Allocation or management of cache space
-
- 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- 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]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请一种DM缓存的分配方法及装置,涉及存储技术领域,能够解空闲内存不足的情况下块设备的验证数据的读取效率降低的问题。该方法包括:当终端设备的空闲内存大于或者等于预设阈值时,确定每个块设备待分配的DM缓存大小,至少两个块设备包括第一块设备和第二块设备,第一块设备的访问频率大于第二块设备的访问频率,第一块设备待分配的DM缓存大于第二块设备待分配的DM缓存;根据每个块设备待分配的DM缓存大小,分别为每个块设备分配DM缓存。
Description
技术领域
本申请属于存储技术领域,尤其涉及一种设备映射(device mapper,DM)缓存的分配方法及装置。
背景技术
随着移动终端中应用程序日渐丰富多样,***安全问题面临严峻的考验。安卓(Android)***提供一种设备映射校验(device mapper verify,DM-verify)功能。即当应用程序访问一个块设备的***文件时,通过利用该块设备的验证数据(一般为固定的哈希值)对该块设备的***文件进行验证,确定***文件是否被该应用程序篡改,实现对***文件的安全性校验。
为了提高块设备的验证数据的读取效率,在终端设备的空闲内存充足的情况下,一般会从空闲内存中划分出一部分内存空间,平均分配给每个块设备作为DM缓存,用于缓存各个块设备的验证数据并进行***文件验证。而在空闲内存不足的情况下,按照预设的比例释放每个块设备的DM缓存(例如释放掉每个DM客户端90%的DM缓存),供终端设备计算使用。
然而,终端设备在空闲内存不足的情况下按照比例释放掉一部分DM缓存后,可能会导致各个块设备剩余的DM缓存大小不足以支持块设备的验证数据缓存以及***文件校验。应用程序需要从块设备读取验证数据。而当块设备的访问频率较大时,会导致大量读请求排队处理,进一步导致验证数据的读取效率降低。因此,可能造成***丢帧和应用启动变慢的问题。
发明内容
本申请实施例提供了一种DM缓存的分配方法及装置,能够解决终端设备在空闲内存不足的情况下块设备的验证数据的读取效率降低,导致***丢帧和应用启动变慢的问题。
本申请提供一种DM缓存的分配方法,应用于终端设备,终端设备包括至少两个块设备,该方法包括:当终端设备的空闲内存大于或者等于预设阈值时,确定每个块设备待分配的DM缓存大小,至少两个块设备包括第一块设备和第二块设备,第一块设备的访问频率大于第二块设备的访问频率,第一块设备待分配的DM缓存大于第二块设备待分配的DM缓存;根据每个块设备待分配的DM缓存大小,分别为每个块设备分配DM缓存。
采用本申请提供的DM缓存的分配方法,基于块设备的访问频率为各个块设备进行DM缓存分配,访问频率较大的块设备分配较大的DM缓存。使得终端设备在空闲内存不足的情况下按照比例释放掉一部分DM缓存后,访问频率较大的块设备能够剩余较多的DM缓存。从而在一定程度上能够减小访问频率较大的块设备由于DM缓存被释放,而导致剩余的DM缓存无法支持该块设备的验证数据缓存以及***文件校验的概率。减少在空闲内存不足的情况下,出现***丢帧和应用启动变慢的问题。
在一种可能的实现方式中,确定每个块设备待分配的DM缓存大小,包括:从每个块设备各自的参数配置信息中分别获取每个块设备的总DM缓存大小;根据每个块设备的总DM缓存大小和每个块设备已分配的DM缓存大小,确定每个块设备待分配的DM缓存大小。
在这种可能的实现方式中,通过在每个块设备的参数配置信息中增加一个信息节点,直接指示对应块设备的总DM缓存大小,提高DM缓存的分配效率。
在一种可能的实现方式中,该方法还包括:周期性地统计每个块设备的访问频率;根据统计的该至少两个块设备的访问频率,更新该至少两个块设备的参数配置信息中记录的总DM缓存大小。
在一种可能的实现方式中,根据统计的至少两个块设备的访问频率,更新至少两个块设备的参数配置信息中记录的总DM缓存大小,包括:根据统计的至少两个块设备的访问频率,确定每个块设备的缓存分数;根据每个块设备的缓存分数和预设的缓存分数与总DM缓存大小的对应关系,分别更新每个块设备的参数配置信息中记录的总DM缓存大小。
在上述两种可能的实现方式中,通过周期性的统计各个块设备的访问频率,并基于访问频率新该至少两个块设备的参数配置信息中记录的总DM缓存大小。以便于在该至少两个块设备的访问频率的大小关系发生变换时,终端设备也可以相应的更新该至少两个块设备的参数配置信息中记录的总DM缓存大小。提高了本申请提供的DM缓存分配方法的准确性。
在一种可能的实现方式中,确定每个块设备待分配的DM缓存大小,包括:获取每个块设备的缓存分数,块设备的缓存分数是根据至少两个块设备的访问频率确定的;根据每个块设备的缓存分数和预设的缓存分数与总DM缓存大小的对应关系,分别确定每个块设备的总DM缓存大小;根据每个块设备的总DM缓存大小和每个块设备已分配的DM缓存大小,确定每个块设备待分配的DM缓存大小。
第二方面,本申请提供一种DM缓存的分配装置,应用于终端设备,终端设备包括至少两个块设备,该分配装置包括:确定单元,用于在终端设备的空闲内存满足预设条件时,确定每个块设备待分配的DM缓存大小,至少两个块设备包括第一块设备和第二块设备,第一块设备的访问频率大于第二块设备的访问频率,第一块设备待分配的DM缓存大于第二块设备待分配的DM缓存;分配单元,用于根据确定单元确定的每个块设备待分配的DM缓存大小,分别为每个块设备分配DM缓存。
在一种可能的实现方式中,确定单元确定每个块设备待分配的DM缓存大小,包括:从每个块设备各自的参数配置信息中分别获取每个块设备的总DM缓存大小;根据每个块设备的总DM缓存大小和每个块设备已分配的DM缓存大小,确定每个块设备待分配的DM缓存大小。
在一种可能的实现方式中,分配装置还包括统计单元和更新单元:统计单元,用于周期性地统计每个块设备的访问频率;更新单元,用于根据统计单元统计的至少两个块设备的访问频率,更新至少两个块设备的参数配置信息中记录的总DM缓存大小。
在一种可能的实现方式中,更新单元根据统计的至少两个块设备的访问频率,更新至少两个块设备的参数配置信息中记录的总DM缓存大小,包括:根据统计的至少两个块设备的访问频率,确定每个块设备的缓存分数;根据每个块设备的缓存分数和预设的缓存分数与总DM缓存大小的对应关系,分别更新每个块设备的参数配置信息中记录的总DM缓存大小。
在一种可能的实现方式中,确定单元确定每个块设备待分配的DM缓存大小,包括:获取每个块设备的缓存分数,块设备的缓存分数是根据至少两个块设备的访问频率确定的;根据每个块设备的缓存分数和预设的缓存分数与总DM缓存大小的对应关系,分别确定每个块设备的总DM缓存大小;根据每个块设备的总DM缓存大小和每个块设备已分配的DM缓存大小,确定每个块设备待分配的DM缓存大小。
第三方面,本申请提供一种终端设备,包括存储器、处理器以及存储在存储器中并可在处理器上运行的计算机程序,处理器执行计算机程序时实现如上述第一方面或第一方面的任一可能的实现方式所述的方法。
第四方面,本申请提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现如上述第一方面或第一方面的任一可能的实现方式所述的方法。
第五方面,本申请实施例提供了一种计算机程序产品,该程序产品包括程序,当该程序被终端设备运行时,使得终端设备实现如上述第一方面或第一方面的任一可能的实现方式所述的方法。
本申请提供的第二方面至第二方面的技术效果可以参见上述第一方面或第一方面的各个实现方式的技术效果,此处不再赘述。
附图说明
图1为本申请提供的一种dm-verify***的示意图;
图2为本申请提供的一种DM缓存的分配方法的一个实施例的流程图;
图3为本申请提供的一种硬盘读写次数对比示意图;
图4为本申请提供的一种分配装置的结构示意图一;
图5为本申请提供的一种分配装置的结构示意图二;
图6为本申请提供的一种终端设备的结构示意图。
具体实施方式
本申请提供的缓存分配方法,适用于安卓***的dm-verify机制。为了便于读者理解本申请提供的缓存分配方法,首先结合图1,对dm-verify***以及dm-verify流程进行示例性的说明。
如图1所示,为本申请提供的一种dm-verify***的示意图。dm-verify***包括用户空间(User Space)层、虚拟文件***(Virtual File System,VFS)层、块(block)层、输入/输出调度层(input/Output scheduler layer)、块设备驱动层(block devicedriver)、硬盘(hard disk)。
其中,用户空间层、VFS层、块层、I/O调度层、块设备驱动层在移动终端的内核上运行。
用户空间层主要用于运行移动终端中各种各样的应用程序,例如,拍摄类应用、阅读类应用、视频播放类应用、音频播放类应用、办公类应用等。用户空间层可以通过文件***接口(File System interface)访问***文件,并通过输入/输出控制(input/outputcontrol,IOCTL)接口进行***调用,与内核交互。
VFS层用于管理文件***,为使用文件***的应用程序提FS接口。
块层包括DM层和通用块层(generic block layer)。其中,DM层用于文件***校验。通用块层用于管理各个块设备的地址。
I/O调度层用于根据块层提供的地址访问对应的块设备的驱动程序。
块设备驱动层中包括各个块设备的驱动程序,当一个块设备的驱动程序被调用时,即可从硬盘中读取该块设备的验证数据。
其中,一个块设备表示硬盘中的一个分区。移动终端的硬盘被划分为多个分区,例如***(system)分区、原始设计制造商(Original Design Manufacturer,odm)分区、定制(cust)分区等。其中,***分区用于存储***文件。cust分区用于存储定制信息,例如运营商定制信息。odm分区用于存储产品相关的配置信息。每一个分区表示一个块设备。下面以应用程序1和***分区为例,对dm-verify流程进行示例性的描述。
当应用程序1访问***分区的文件***时,应用程序1通过VFS层提供的FS接口,向块层发送读指令。块层接收到读指令后,首先由DM层中确定该FS接口对应的***分区的DM缓存是否被释放。若没有被释放,DM层则从该DM缓存读取***分区的验证数据。然后当从***分区中读取到***文件后,利用该验证数据对***文件进行验证,判断该应用程序1是否篡改了改***分区的文件***。
若DM缓存被释放,则由通用块层确定该***分区的地址。然后基于***分区的地址向I/O调度层发送校验请求。I/O调度层基于***分区的地址将该校验请求发送至块设备驱动层,调用***分区的驱动程序,以从***分区中读取***分区的验证数据。当从***分区中读取到***文件后,利用该验证数据对***文件进行验证,判断该应用程序1是否篡改了改***分区的文件***。
目前,dm-verify机制中的DM缓存采用平均分配机制。一般来讲,移动终端中所有块设备的DM缓存总量是固定的,且根据移动终端的物理内存的大小,DM缓存总量也有所不同。而每个块设备设置一般都设置有多个个DM客户端(client),用于并行处理该块设备的文件***验证。因此,移动终端一般会基于DM客户端的总数量,对DM缓存总量进行均分。也就是说,每个块设备的每个DM客户端的DM缓存大小均相同。
例如,若每个块设备包括3个DM客户端,那么根据移动终端的物理内存的大小,以及移动终端所包含的块设备的数量的不同,每个DM客户端的DM缓存大小可以如下表1所示:
表1
当移动终端的物理内存有充足的空闲内存时,终端设备则会基于表1为每个块设备的每个DM客户端分配DM缓存。而当空闲内存不足时,终端设备则会释放掉一部分DM缓存,例如释放掉每个DM客户端90%的DM缓存,供终端设备计算使用。
然而,终端设备在空闲内存不足的情况下按照比例释放掉一部分DM缓存后,可能会导致各个块设备剩余的DM缓存大小不足以支持块设备的验证数据缓存以及***文件校验。例如,4G的终端设备包括3个块设备。当空闲内存不足时,每个块设备被释放90%的DM缓存。也就是说,每个块设备的每个DM客户端还剩余8519680*0.1=851968B的DM缓存。假设,块设备的每个DM客户端需要至少1048576B才能支持块设备的验证数据缓存以及***文件校验。此时,块设备剩余的851968B的DM缓存小于1048576B,无法支持块设备的验证数据缓存以及***文件校验。应用程序需要通过I/O调度层从块设备读取验证数据。这就导致访问频率较大的块设备,大量读请求需要在I/O队列中进行排队等待,进一步导致验证数据的读取效率降低,并可能造成***丢帧和应用启动变慢的问题。
为此,本申请提供一种DM缓存的分配方法,基于块设备的访问频率为各个块设备进行DM缓存分配,访问频率较大的块设备分配较大的DM缓存。从而终端设备在空闲内存不足的情况下按照比例释放掉一部分DM缓存后,访问频率较大的块设备能够剩余较多的DM缓存。从而在一定程度上能够减小访问频率较大的块设备由于DM缓存被释放,而导致剩余的DM缓存无法支持该块设备的验证数据缓存以及***文件校验的概率。从而减少在空闲内存不足的情况下,出现***丢帧和应用启动变慢的问题。
需要说明的是,在下述实施例中,当提及术语“第一”或者“第二”等序数词时,除非根据上下文其确实表达顺序之意,否则应当理解为仅仅是起区分之用。术语“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其他实施或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
请参见图2,图2是本申请一个实施例提供的一种DM缓存的分配方法的示意流程图。本实施例中DM缓存的分配方法的执行主体为安装有安卓***并支持dm-verify机制的终端设备。例如,该终端设备可以是支持dm-verify机制的智能手机、平板电脑、可穿戴设备、机器人等终端。基于如图1所示的dm-verify***,终端设备包括至少两个块设备。如图2所示的图像压缩方法可包括:
S101:当终端设备的空闲内存大于或者等于预设阈值时,确定每个块设备待分配的DM缓存大小。
其中,空闲内存是指终端设备的物理内存中未被使用的内存空间,当空闲内存大于或者等于预设阈值时,表示终端设备具备充足空闲内存,可以从空闲内存中划分一部分内存空间作为DM缓存。
块设备待分配的DM缓存大小可以是块设备的总DM缓存大小减去已分配的DM缓存大小所得到的DM缓存大小。即终端设备根据每个块设备的总DM缓存大小和每个块设备已分配的DM缓存大小,确定每个块设备待分配的DM缓存大小。
可以理解的是,已分配的DM缓存可能为0。例如,在初始状态下(例如,终端设备刚开机),终端设备还未对各个块设备进行过DM缓存分配,即每个块设备已分配的DM缓存为0。又例如,终端设备在空闲内存减小至预设阈值以下(表示空闲内存不足)时,将每个块设备的DM缓存全部释放。那么,当空闲内存再一次大于或者等于预设阈值时,每个块设备已分配的DM缓存即为0。在这种情况下,终端设备确定的每个块设备待分配的DM缓存大小即为每个块设备的总DM缓存大小。
或者,已分配的DM缓存也可能不为0。例如,终端设备在运行过程中,随着计算量的增大,终端设备在空闲内存减小至预设阈值以下时,终端设备释放掉每个块设备90%的。那么,当空闲内存再一次大于或者等于预设阈值时,每个块设备已分配的DM缓存即为总DM缓存大小的10%。此时,终端设备确定的每个块设备待分配的DM缓存大小即为每个块设备的总DM缓存大小的90%。
在本申请实施例中,终端设备的至少两个块设备包括第一块设备和第二块设备,第一块设备的访问频率大于第二块设备的访问频率,第一块设备待分配的DM缓存大于第二块设备待分配的DM缓存。
在一个示例中,第一块设备可以是该至少两个块设备中访问频率最大的块设备,除了第一块设备外,该至少两个块设备中剩余的块设备均为第第二块设备。即在该示例中,终端设备可以为访问频率最大的块设备分配较大的DM缓存,为剩余块设备分配较小的DM缓存。例如,可以随机分配或则和
例如,终端设备包括3个块设备,分别表示为DM-1、DM-2以及DM-3。这3个块设备的的DM缓存总量为300K。假设DM-1的访问频率最大,那么DM-1为第一块设备,DM-1和DM-2为第二块设备。终端设备可以将300K中的80%(即240K)分配给第一块设备,剩余的60K的内存空间可以平均分配给两个第二块设备作为DM缓存。也就是说,DM-1的总DM缓存大小为240K,DM-2和DM-3的总DM缓存大小均为30K。当终端设备的空闲内存大于或者等于预设阈值时,若每个块设备已分配的DM缓存大小均为0,那么,终端设备可以确定DM-1未分配的DM缓存大小为240K,DM-2和DM-3未分配的DM缓存大小分别为30K。若每个块设备已分配的DM缓存大小为各个块设备的总DM缓存的10%,那么,终端设备可以确定DM-1未分配的DM缓存大小为277K,DM-2和DM-3未分配的DM缓存大小分别为27K。
在另一个示例中,第一块设备和第二块设备也可以是终端设备中的任意两个块设备。第一块设备表示两个块设备中访问频率相对较大的块设备,第二块设备表示两个块设备中访问频率相对较小的块设备。在该示例中,对于终端设备中任意两个块设备,终端设备为访问频率相对较大的块设备分配相对较大的内存空间作为DM缓存,为访问频率相对较小分配相对较小的内存空间作为DM缓存。
例如,假设DM-1的访问频率最大,DM-2的访问频率次之,DM-3的访问频率最小。这3个块设备的的DM缓存总量为300K。终端设备可以将300K中的240K内存空间分配给DM-1作为DM-1的DM缓存;将40K内存空间分配给DM-2作为DM-2的DM缓存;将20K内存空间分配给DM-3作为DM-3的DM缓存。也就是说,DM-1的总DM缓存大小为240K,DM-2的总DM缓存大小为40K,DM-3的总DM缓存大小为20K。当终端设备的空闲内存大于或者等于预设阈值时,若每个块设备已分配的DM缓存大小均为0,那么,终端设备可以确定DM-1未分配的DM缓存大小为240K,DM-2未分配的DM缓存大小为40K,DM-3未分配的DM缓存大小为30K。若每个块设备已分配的DM缓存大小为各个块设备的总DM缓存的10%,那么,终端设备可以确定DM-1未分配的DM缓存大小为277K,DM-2未分配的DM缓存大小为36K,DM-3未分配的DM缓存大小分别为18K。可以理解的是,对于DM-1和DM-2来说,DM-1为第一块设备,DM-2为第第二块设备;对于DM-1和DM-3来说,DM-1为第一块设备,DM-3为第第二块设备;对于DM-3和DM-2来说,DM-2为第一块设备,DM-3为第第二块设备。
可选的,终端设备可以从每个块设备各自的参数配置信息中分别获取每个块设备的总DM缓存大小;然后在根据每个块设备的总DM缓存大小和每个块设备已分配的DM缓存大小,确定每个块设备待分配的DM缓存大小。
本申请中,可以在每个块设备的参数配置信息中增加一个信息节点,指示对应块设备的总DM缓存大小。例如,DM-1的参数配置信息为“/sys/module/dm_bufio/parameters”。通过在“/sys/module/dm_bufio/parameters”中增加信息节点“/cache_size_per_client”,以通过“/sys/module/dm_bufio/parameters/cache_size_per_client”记录DM-1的总DM缓存大小。
每个参数配置信息中新增的信息节点的值(即总DM缓存大小)可以基于对应块设备的访问频率来设置。
示例性的,块设备的访问频率可以是终端设备的生产商基于历史经验确定的经验值。例如,***分区的访问频率往往大于oem分区和vendor分区的访问频率。基于终端设备中的至少两个块设备的访问频率的大小关系,分配每个块设备的总DM缓存大小。例如,基于终端设备的DM缓存总量和终端设备中的DM-1、DM-2以及DM-3的访问频率的大小关系,可以设置访问频率最大的DM-1的总DM缓存大小为DM缓存总量的80%,访问频率次之的DM-2的总DM缓存大小为DM缓存总量的15%,访问频率最小的DM-3总DM缓存大小为DM缓存总量的5%。最后,将确定好的每个块设备的总DM缓存大小预先记录在对应的参数配置信息中,以供终端设备读取并计算待分配的DM缓存大小。
或者,块设备的访问频率也可以是终端设备在预设时间段内统计所得。终端设备可以先根据统计得到的该至少两个块设备的访问频率,确定每个块设备的缓存分数。该缓存分数例如可以表示该至少两个块设备的访问频率的大小关系。然后,终端设备根据预设的缓存分数与总DM缓存大小的对应关系,确定每个块设备的总DM缓存大小,并将每个块设备的总DM缓存大小记录在对应的参数配置信息中新增的信息节点。
例如,缓存分数可以包括1、2、3。若块设备的访问频率最大,则该块设备的缓存分数为3;若块设备的访问频率次之,则该块设备的缓存分数为2;若块设备的访问频率最小,则该块设备的缓存分数为3。预设的缓存分数与总DM缓存大小的对应关系可以如下表2所示:
表2
例如,当终端设备基于统计的访问频率确定DM-1的缓存分数为3时,即可根据表1所示对应关系确定DM-1的总DM缓存大小为DM缓存总量的80%。并将DM-1的参数配置信息中新增的信息节点赋值为80%。
可以理解的是,终端设备可以周期性地统计每个块设备的访问频率。并且,在周期性统计各个块设备的访问频率的过程中,若该至少两个块设备的访问频率的大小关系发生变换,终端设备也可以相应的更新该至少两个块设备的参数配置信息中记录的总DM缓存大小。
即,在周期性统计各个块设备的访问频率的过程中,终端设备可以根据统计的至少两个块设备的访问频率,确定每个块设备的缓存分数;并根据每个块设备的缓存分数和预设的缓存分数与总DM缓存大小的对应关系,分别更新每个块设备的参数配置信息中记录的总DM缓存大小。
可选的,终端设备也可以设置有每个块设备的缓存分数。当终端设备的空闲内存大于或者等于预设阈值时,通过获取每个块设备的缓存分数,并根据每个块设备的缓存分数和预设的缓存分数与总DM缓存大小的对应关系,分别确定每个块设备的总DM缓存大小;然后根据每个块设备的总DM缓存大小和每个块设备已分配的DM缓存大小,确定每个块设备待分配的DM缓存大小。
可以理解的是,在该可选的方式中,终端设备中设置的每个块设备的缓存分数,可以是基于各个块设备的访问频率的经验值计算所得,并预先设置在终端设备中的。也可以是终端设备通过统计各个块设备的访问频率,计算出每个块设备的缓存分数,然后设置在该终端设备中。当然,终端设备在周期性统计各个块设备的访问频率的过程中,若各个块设备的访问频率的大小关系发生变换,终端设备可以相应的修改每个块设备的缓存分数。
S202:终端设备根据每个块设备待分配的DM缓存大小,分别为每个块设备分配DM缓存。
例如,假设终端设备的物理内存为4G,且终端设备包括DM-1、DM-2、DM-3共3个块设备。参见表1,终端设备的DM缓存总量为76677120B。若终端设备确定DM-1待分配的DM缓存大小为DM缓存总量的80%(即80%*76677120=61341696B);DM-2待分配的DM缓存大小为DM缓存总量的15%(即15%*76677120=11501568B);DM-3待分配的DM缓存大小为DM缓存总量的5%(即5%*76677120=3833856B)。那么,终端设备即可为DM-1分配61341696B的DM缓存,为DM-2分配11501568B的DM缓存,为DM-3分配3833856B的DM缓存。
假设,当终端设备再一次内存空间不足时,终端设备将DM-1、DM-2、DM-3的DM缓存均释放90%。即DM-1释放的DM缓存,剩余的DM缓存大小为61341696-55207527=6134169B,DM-1每个DM客户端剩余的DM缓存大小为DM-2释放的DM缓存,剩余的DM缓存大小为11501568-10351412=1150156B,DM-2每个DM客户端剩余的DM缓存大小为DM-3释放的DM缓存,剩余的DM缓存大小为3833856-3450471=383385B,DM-3每个DM客户端剩余的DM缓存大小为383385/3=127795B。
可以看出,在内存空间不足的情况下,终端设备释放掉每个块设备90%的DM缓存后,访问频率最大的DM-1的每个DM客户端剩余的DM缓存大小为2044723.2B。在每个DM客户端能够支持块设备的验证数据缓存以及***文件校验的DM缓存的最小值为1048576B的情况下,DM-1的每个DM客户端剩余的DM缓存大小依然支持DM-1验证数据缓存以及***文件校验。
因此,降低了在空闲内存不足的情况下,访问频率大的块设备的验证数据的读取效率降低的概率,进而降低了***丢帧和应用启动变慢的问题。
下面结合图3所示的硬盘读写次数对比示意图,对本申请提供的DM缓存的分配方法的效果进行示例性的说明。图3中的(a)为采用平均分配机制进行DM缓存分配时,硬盘读写次数曲线示意图。图3中的(b)为采用本申请提供的DM缓存的分配方法进行DM缓存分配时,硬盘读写次数曲线示意图。其中,纵坐标表示硬盘的读写次数,横坐标表示时间。
经过图3中的(a)和(b)的对比可以看出,在空闲内存不足的情况下,采用本申请提供的DM缓存的分配方法,能够明显减少硬盘读写次数。因此,可以降低读请求在硬盘上排队等待处理的时间,进而降低出现***丢帧和应用启动变慢的问题的概率。
对应于上文实施例所述的DM缓存分配方法,图4示出了本申请实施例提供的分配装置的结构框图,为了便于说明,仅示出了与本申请实施例相关的部分。
参照图4,该分配装置包括:
确定单元401,用于在终端设备的空闲内存满足预设条件时,确定每个块设备待分配的DM缓存大小,所述至少两个块设备包括第一块设备和第二块设备,所述第一块设备的访问频率大于第二块设备的访问频率,所述第一块设备待分配的DM缓存大于所述第二块设备待分配的DM缓存。
分配单元402,用于根据所述确定单元401确定的每个所述块设备待分配的DM缓存大小,分别为每个所述块设备分配DM缓存。
可选的,所述确定单元401确定每个所述块设备待分配的DM缓存大小,包括:
从每个所述块设备各自的参数配置信息中分别获取每个所述块设备的总DM缓存大小;根据每个所述块设备的总DM缓存大小和每个所述块设备已分配的DM缓存大小,确定每个所述块设备待分配的DM缓存大小。
可选的,基于图4如图5所示,所述分配装置还包括统计单元403和更新单元404:
所述统计单元403,用于周期性地统计每个所述块设备的访问频率。
所述更新单元404,用于根据所述统计单元403统计的所述至少两个块设备的访问频率,更新所述至少两个块设备的参数配置信息中记录的总DM缓存大小。
可选的,所述更新单元404根据统计的所述至少两个块设备的访问频率,更新所述至少两个块设备的参数配置信息中记录的总DM缓存大小,包括:根据统计的所述至少两个块设备的访问频率,确定每个所述块设备的缓存分数;根据每个所述块设备的缓存分数和预设的缓存分数与总DM缓存大小的对应关系,分别更新每个所述块设备的参数配置信息中记录的总DM缓存大小。
可选的,所述确定单元401确定每个所述块设备待分配的DM缓存大小,包括:获取每个所述块设备的缓存分数,所述块设备的缓存分数是根据所述至少两个块设备的访问频率确定的;根据每个所述块设备的缓存分数和预设的缓存分数与总DM缓存大小的对应关系,分别确定每个所述块设备的总DM缓存大小;根据每个所述块设备的总DM缓存大小和每个所述块设备已分配的DM缓存大小,确定每个所述块设备待分配的DM缓存大小。
需要说明的是,上述单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述分配装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述***中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
示例性的,上述分配装置可以是终端设备的处理器中的功能模块。
本申请实施例还提供了一种终端设备,如图6所示,该终端设备包括:至少一个处理器601、至少一个存储器602以及存储在所述至少一个存储器中并可在所述至少一个处理器上运行的计算机程序603,所述处理器601执行所述计算机程序603时实现上述任意各个方法实施例中的步骤。
其中,本申请实施例中的处理器601,可以包括如下至少一种类型:通用中央处理器(Central Processing Unit,CPU)、数字信号处理器(Digital Signal Processor,DSP)、微处理器、特定应用集成电路专用集成电路(Application-Specific IntegratedCircuit,ASIC)、微控制器(Microcontroller Unit,MCU)、现场可编程门阵列(FieldProgrammable Gate Array,FPGA)、或者用于实现逻辑运算的集成电路。例如,处理器601可以是一个单核(single-CPU)处理器或多核(multi-CPU)处理器。至少一个处理器601可以是集成在一个芯片中或位于多个不同的芯片上。
本申请实施例中的存储器602,可以包括硬盘以及能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的介质。例如,该介质可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(Electrically erasable programmabler-only memory,EEPROM)等。在某些场景下,存储器还可以包括只读光盘(compact discread-only memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备等。对比本申请不做限制。
存储器602可以是独立存在,与处理器601相连。可选的,存储器602也可以和处理器601集成在一起,例如集成在一个芯片之内。其中,存储器602能够存储执行本申请实施例的技术方案的程序,并由处理器601来控制执行,被执行的各类计算机程序代码也可被视为是处理器601的驱动程序。例如,处理器601用于执行存储器602中存储的计算机程序代码,从而实现本申请实施例中的技术方案。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现可实现上述各个方法实施例中的步骤。
本申请实施例提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得移动终端执行时实现可实现上述各个方法实施例中的步骤。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质至少可以包括:能够将计算机程序代码携带到拍照装置/终端设备的任何实体或装置、记录介质、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、电载波信号、电信信号以及软件分发介质。例如U盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的终端设备和方法,可以通过其它的方式实现。例如,以上所描述的终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (12)
1.一种设备映射DM缓存的分配方法,应用于终端设备,所述终端设备包括至少两个块设备,其特征在于,所述方法包括:
当所述终端设备的空闲内存大于或者等于预设阈值时,确定每个所述块设备待分配的DM缓存大小,所述至少两个块设备包括第一块设备和第二块设备,所述第一块设备的访问频率大于第二块设备的访问频率,所述第一块设备待分配的DM缓存大于所述第二块设备待分配的DM缓存;
根据每个所述块设备待分配的DM缓存大小,分别为每个所述块设备分配DM缓存。
2.根据权利要求1所述的方法,其特征在于,所述确定每个所述块设备待分配的DM缓存大小,包括:
从每个所述块设备各自的参数配置信息中分别获取每个所述块设备的总DM缓存大小;
根据每个所述块设备的总DM缓存大小和每个所述块设备已分配的DM缓存大小,确定每个所述块设备待分配的DM缓存大小。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
周期性地统计每个所述块设备的访问频率;
根据统计的所述至少两个块设备的访问频率,更新所述至少两个块设备的参数配置信息中记录的总DM缓存大小。
4.根据权利要求3所述的方法,其特征在于,所述根据统计的所述至少两个块设备的访问频率,更新所述至少两个块设备的参数配置信息中记录的总DM缓存大小,包括:
根据统计的所述至少两个块设备的访问频率,确定每个所述块设备的缓存分数;
根据每个所述块设备的缓存分数和预设的缓存分数与总DM缓存大小的对应关系,分别更新每个所述块设备的参数配置信息中记录的总DM缓存大小。
5.根据权利要求1所述的方法,其特征在于,所述确定每个所述块设备待分配的DM缓存大小,包括:
获取每个所述块设备的缓存分数,所述块设备的缓存分数是根据所述至少两个块设备的访问频率确定的;
根据每个所述块设备的缓存分数和预设的缓存分数与总DM缓存大小的对应关系,分别确定每个所述块设备的总DM缓存大小;
根据每个所述块设备的总DM缓存大小和每个所述块设备已分配的DM缓存大小,确定每个所述块设备待分配的DM缓存大小。
6.一种设备映射DM缓存的分配装置,应用于终端设备,所述终端设备包括至少两个块设备,其特征在于,所述分配装置包括:
确定单元,用于在所述终端设备的空闲内存满足预设条件时,确定每个所述块设备待分配的DM缓存大小,所述至少两个块设备包括第一块设备和第二块设备,所述第一块设备的访问频率大于第二块设备的访问频率,所述第一块设备待分配的DM缓存大于所述第二块设备待分配的DM缓存;
分配单元,用于根据所述确定单元确定的每个所述块设备待分配的DM缓存大小,分别为每个所述块设备分配DM缓存。
7.根据权利要求6所述的分配装置,其特征在于,所述确定单元确定每个所述块设备待分配的DM缓存大小,包括:
从每个所述块设备各自的参数配置信息中分别获取每个所述块设备的总DM缓存大小;根据每个所述块设备的总DM缓存大小和每个所述块设备已分配的DM缓存大小,确定每个所述块设备待分配的DM缓存大小。
8.根据权利要求7所述的分配装置,其特征在于,所述分配装置还包括统计单元和更新单元:
所述统计单元,用于周期性地统计每个所述块设备的访问频率;
所述更新单元,用于根据所述统计单元统计的所述至少两个块设备的访问频率,更新所述至少两个块设备的参数配置信息中记录的总DM缓存大小。
9.根据权利要求8所述的分配装置,其特征在于,所述更新单元根据统计的所述至少两个块设备的访问频率,更新所述至少两个块设备的参数配置信息中记录的总DM缓存大小,包括:
根据统计的所述至少两个块设备的访问频率,确定每个所述块设备的缓存分数;根据每个所述块设备的缓存分数和预设的缓存分数与总DM缓存大小的对应关系,分别更新每个所述块设备的参数配置信息中记录的总DM缓存大小。
10.根据权利要求6所述的分配装置,其特征在于,所述确定单元确定每个所述块设备待分配的DM缓存大小,包括:
获取每个所述块设备的缓存分数,所述块设备的缓存分数是根据所述至少两个块设备的访问频率确定的;根据每个所述块设备的缓存分数和预设的缓存分数与总DM缓存大小的对应关系,分别确定每个所述块设备的总DM缓存大小;根据每个所述块设备的总DM缓存大小和每个所述块设备已分配的DM缓存大小,确定每个所述块设备待分配的DM缓存大小。
11.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至5任一项所述的方法。
12.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010251150.5A CN113495678B (zh) | 2020-04-01 | 2020-04-01 | 一种dm缓存的分配方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010251150.5A CN113495678B (zh) | 2020-04-01 | 2020-04-01 | 一种dm缓存的分配方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113495678A true CN113495678A (zh) | 2021-10-12 |
CN113495678B CN113495678B (zh) | 2022-06-28 |
Family
ID=77994040
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010251150.5A Active CN113495678B (zh) | 2020-04-01 | 2020-04-01 | 一种dm缓存的分配方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113495678B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20000052480A (ko) * | 1998-12-15 | 2000-08-25 | 가네꼬 히사시 | 캐시 프로세스용 시스템 및 방법 |
CN102063386A (zh) * | 2010-12-17 | 2011-05-18 | 曙光信息产业(北京)有限公司 | 一种单载体多目标的缓存***的缓存管理方法 |
CN104571939A (zh) * | 2013-10-23 | 2015-04-29 | 株式会社东芝 | 存储装置、高速缓存控制器及数据写入方法 |
CN105243031A (zh) * | 2015-09-17 | 2016-01-13 | 浪潮(北京)电子信息产业有限公司 | 一种缓存分区分配空闲页的方法及装置 |
CN106776368A (zh) * | 2016-11-29 | 2017-05-31 | 郑州云海信息技术有限公司 | 一种数据读取时的缓存管理方法、装置及*** |
CN108984130A (zh) * | 2018-07-25 | 2018-12-11 | 广东浪潮大数据研究有限公司 | 一种分布式存储的缓存读取方法及其装置 |
CN109359063A (zh) * | 2018-10-15 | 2019-02-19 | 郑州云海信息技术有限公司 | 面向存储***软件的缓存置换方法、存储设备及存储介质 |
CN109379395A (zh) * | 2018-08-22 | 2019-02-22 | 中国平安人寿保险股份有限公司 | 一种接口数据缓存设置方法及终端设备 |
CN109388493A (zh) * | 2018-10-12 | 2019-02-26 | 郑州云海信息技术有限公司 | 一种缓存分区容量调整的方法、装置及存储介质 |
-
2020
- 2020-04-01 CN CN202010251150.5A patent/CN113495678B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20000052480A (ko) * | 1998-12-15 | 2000-08-25 | 가네꼬 히사시 | 캐시 프로세스용 시스템 및 방법 |
CN102063386A (zh) * | 2010-12-17 | 2011-05-18 | 曙光信息产业(北京)有限公司 | 一种单载体多目标的缓存***的缓存管理方法 |
CN104571939A (zh) * | 2013-10-23 | 2015-04-29 | 株式会社东芝 | 存储装置、高速缓存控制器及数据写入方法 |
CN105243031A (zh) * | 2015-09-17 | 2016-01-13 | 浪潮(北京)电子信息产业有限公司 | 一种缓存分区分配空闲页的方法及装置 |
CN106776368A (zh) * | 2016-11-29 | 2017-05-31 | 郑州云海信息技术有限公司 | 一种数据读取时的缓存管理方法、装置及*** |
CN108984130A (zh) * | 2018-07-25 | 2018-12-11 | 广东浪潮大数据研究有限公司 | 一种分布式存储的缓存读取方法及其装置 |
CN109379395A (zh) * | 2018-08-22 | 2019-02-22 | 中国平安人寿保险股份有限公司 | 一种接口数据缓存设置方法及终端设备 |
CN109388493A (zh) * | 2018-10-12 | 2019-02-26 | 郑州云海信息技术有限公司 | 一种缓存分区容量调整的方法、装置及存储介质 |
CN109359063A (zh) * | 2018-10-15 | 2019-02-19 | 郑州云海信息技术有限公司 | 面向存储***软件的缓存置换方法、存储设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113495678B (zh) | 2022-06-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10901802B2 (en) | Method and apparatus for implementing virtual GPU and system | |
Cidon et al. | Memshare: a dynamic multi-tenant key-value cache | |
JP6412244B2 (ja) | 負荷に基づく動的統合 | |
US20110246742A1 (en) | Memory pooling in segmented memory architecture | |
JP4317531B2 (ja) | 複数のメモリ・バッファ・サイズを均衡させるためのシステムおよび方法 | |
CN109981702B (zh) | 一种文件存储方法及*** | |
US11907164B2 (en) | File loading method and apparatus, electronic device, and storage medium | |
US10891150B2 (en) | Storage control method and storage controller for user individual service environment | |
CN109960569B (zh) | 一种虚拟化处理方法及装置 | |
US7330956B1 (en) | Bucket based memory allocation | |
US10534712B1 (en) | Service level agreement based management of a pre-cache module | |
CN110727517A (zh) | 一种基于分区设计的内存分配方法和装置 | |
CN111984425A (zh) | 用于操作***的内存管理方法、装置及设备 | |
CN115421787A (zh) | 指令执行方法、装置、设备、***、程序产品及介质 | |
US10664393B2 (en) | Storage control apparatus for managing pages of cache and computer-readable storage medium storing program | |
CN113495678B (zh) | 一种dm缓存的分配方法及装置 | |
US9405470B2 (en) | Data processing system and data processing method | |
CN106537321B (zh) | 存取文件的方法、装置和存储*** | |
CN109408412B (zh) | 内存预取控制方法、装置及设备 | |
CN112114962A (zh) | 一种内存分配方法及装置 | |
CN114637594A (zh) | 多核处理设备、任务分配方法、装置及存储介质 | |
WO2016032803A1 (en) | Dynamic load-based merging | |
US11016685B2 (en) | Method and defragmentation module for defragmenting resources | |
KR102334237B1 (ko) | 다중 포그라운드 어플리케이션을 위한 페이지 캐쉬 관리 방법 및 장치 | |
CN116431327B (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 |