一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种虚拟内存地址空间的分配方法、装置及电子设备与流程

2023-04-10 04:41:48 来源:中国专利 TAG:


1.本技术涉及内存处理技术领域,尤其涉及一种虚拟内存地址空间的分配方法、装置及电子设备。


背景技术:

2.虚拟内存地址空间,又称虚拟地址空间,是虚地址模式的一种,其包括虚拟内存地址(virtual memory address,vma),又称虚拟地址(virtual address,va),根据虚拟地址是否被使用,将虚拟地址分为占用状态和空闲状态。
3.在操作系统中,通常采用动态内存管理机制,内核将虚拟内存分配给有内存需求的线程,线程执行完毕后,再将内存释放,以供内核继续将内存分配给有内存需求的其他线程。
4.目前,在虚拟地址空间中,当搜寻到可分配的连续空闲虚拟地址时,即分配给内存请求,由于每一次虚拟地址的分配与释放大小浮动较大,当小内存释放后留下的连续空闲虚拟地址分布在内存空间各个不连续的区域时,容易造成内存碎片化。


技术实现要素:

5.本技术实施例提供一种虚拟内存地址空间的分配方法、装置及电子设备,其能够解决目前的虚拟内存分配存在内存碎片化的技术问题,提高虚拟内存地址空间的利用率。
6.第一方面,本技术实施例提供一种虚拟内存地址空间的分配方法,应用于电子设备,所述电子设备包括虚拟内存地址空间,所述方法包括:
7.预先设置优先区域,其中,所述优先区域位于所述虚拟内存地址空间,并且,所述优先区域包括若干个优先区块,每一优先区块包括多个大小相同的内存块;
8.获取虚拟内存分配请求,其中,所述虚拟内存分配请求对应虚拟内存请求空间;
9.根据所述虚拟内存请求空间的空间大小,匹配与所述虚拟内存请求空间对应的优先区块,从对应的优先区块中确定空闲的内存块分配给所述虚拟内存分配请求。
10.在一些实施例中,所述方法还包括:
11.建立优先区域中的每一优先区块与内存块标识的映射关系,其中,每一所述优先区块对应一个内存块标识,其中,所述内存块标识用于标识该优先区块包括的内存块的空间大小。
12.在一些实施例中,所述根据所述虚拟内存请求空间的空间大小,匹配与所述虚拟内存请求空间对应的优先区块,包括:
13.若所述虚拟内存请求空间的空间大小处于某一内存块的空间大小的预设范围内,则确定所述虚拟内存请求空间对应的优先区块为该内存块所在的优先区块。
14.在一些实施例中,所述内存块的空间大小的预设范围为(内存块的空间大小的一半,内存块的空间大小]。
15.在一些实施例中,所述方法还包括:
16.当任意一个优先区块中的内存块全部被占用时,从所述虚拟内存地址空间中划分备用优先区块。
17.在一些实施例中,所述虚拟内存地址空间被划分为优先区域和非优先区域,所述从所述虚拟内存地址空间中划分备用优先区块,包括:
18.从所述非优先区域中划分备用优先区块,其中,所述备用优先区块包括多个内存块,且所述备用优先区块中的每一内存块的空间大小与该优先区块中的内存块的空间大小相同。
19.在一些实施例中,所述方法还包括:
20.当获取到的虚拟内存分配请求对应的虚拟内存请求空间的空间大小不匹配对应的优先区块,则从所述非优先区域中分配虚拟地址空间,以满足所述虚拟内存分配请求。
21.在一些实施例中,所述方法还包括:
22.若所述非优先区域中的空闲的虚拟地址空间不足以满足所述虚拟内存分配请求,则从所述优先区域中分配虚拟地址空间,以满足所述虚拟内存分配请求。
23.在一些实施例中,所述电子设备包括第一处理器和第二处理器,所述第一处理器和第二处理器共用所述虚拟内存地址空间。
24.在一些实施例中,所述第一处理器包括中央处理器,所述第二处理器包括图形处理器。
25.第二方面,本技术实施例提供一种虚拟内存地址空间的分配装置,应用于电子设备,所述电子设备包括虚拟内存地址空间,所述装置包括:
26.优先区域设置单元,用于预先设置优先区域,其中,所述优先区域位于所述虚拟内存地址空间,并且,所述优先区域包括若干个优先区块,每一优先区块包括多个大小相同的内存块;
27.内存请求获取单元,用于获取虚拟内存分配请求,其中,所述虚拟内存分配请求对应虚拟内存请求空间;
28.虚拟内存分配单元,用于根据所述虚拟内存请求空间的空间大小,匹配与所述虚拟内存请求空间对应的优先区块,从对应的优先区块中确定空闲的内存块分配给所述虚拟内存分配请求。
29.第三方面,本技术实施例提供一种电子设备,包括:
30.至少一个处理器;以及
31.与所述至少一个处理器通信连接的存储器;其中,
32.所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如第一方面所述的虚拟内存地址空间的分配方法。
33.第四方面,本技术实施例提供一种非易失性计算机可读存储介质,所述非易失性计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使电子设备执行如第一方面所述的虚拟内存地址空间的分配方法。
34.第五方面,本技术实施例提供一种计算机程序,所述计算机程序包含程序指令,在所述程序指令由电子设备中的一个或多个处理器执行时,使所述电子设备执行如第一方面所述的虚拟内存地址空间的分配方法。
35.本技术实施例的有益效果是:区别于现有技术的情况下,本技术实施例提供的一种虚拟内存地址空间的分配方法,应用于电子设备,所述电子设备包括虚拟内存地址空间,所述方法包括:预先设置优先区域,其中,所述优先区域位于所述虚拟内存地址空间,并且,所述优先区域包括若干个优先区块,每一优先区块包括多个大小相同的内存块;获取虚拟内存分配请求,其中,所述虚拟内存分配请求对应虚拟内存请求空间;根据所述虚拟内存请求空间的空间大小,匹配与所述虚拟内存请求空间对应的优先区块,从对应的优先区块中确定空闲的内存块分配给所述虚拟内存分配请求。一方面,通过设置优先区域,优先区域包括若干个优先区块,每一优先区块包括多个大小相同的内存块,有利于为虚拟内存分配请求匹配对应的内存块,另一方面,通过获取虚拟内存分配请求,确定虚拟内存请求空间的空间大小,匹配与虚拟内存请求空间对应的优先区块,从对应的优先区块中确定空闲的内存块分配给虚拟内存分配请求,本技术能够提高虚拟内存地址空间的利用率。
附图说明
36.一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
37.图1是本技术实施例提供的一种虚拟内存地址空间的示意图;
38.图2是本技术实施例提供的一种虚拟内存地址空间的分配方法的流程示意图;
39.图3是本技术实施例提供的一种虚拟内存地址空间的分配方法的整理流程示意图;
40.图4是本技术实施例提供的另一种虚拟内存地址空间的分配方法的整体流程示意图;
41.图5是本技术实施例提供的一种划分后的最大内存块的示意图;
42.图6是本技术实施例提供的另一种虚拟内存地址空间的分配方法的流程示意图;
43.图7是本技术实施例提供的另一种虚拟内存地址空间的示意图;
44.图8是图7中的优先区域的示意图;
45.图9是本技术实施例提供的另一种虚拟内存地址空间的分配方法的整体流程示意图;
46.图10是本技术实施例提供的划分备用优先区块的流程示意图;
47.图11是本技术实施例提供的一种虚拟内存地址空间的分配装置的结构示意图;
48.图12是本技术实施例提供的另一种虚拟内存地址空间的分配装置的结构示意图;
49.图13是本技术实施例提供的一种电子设备的结构示意图。
具体实施方式
50.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本技术,并不用于限定本技术。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
51.需要说明的是,如果不冲突,本技术实施例中的各个特征可以相互结合,均在本申
请的保护范围之内。另外,虽然在装置示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于装置中的模块划分,或流程图中的顺序执行所示出或描述的步骤。再者,本技术所采用的“第一”、“第二”、“第三”等字样并不对数据和执行次序进行限定,仅是对功能和作用基本相同的相同项或相似项进行区分。
52.对本技术进行详细说明之前,对本技术实施例中涉及的名词和术语进行说明,本技术实施例中涉及的名词和术语适用于如下的解释。
53.(1)虚拟内存地址空间,指的是操作系统会将一部分硬盘空间当内存使用,这部分空间就是虚拟内存地址空间。虚拟地址空间用于解决物理内存稀缺问题,其中,虚拟内存地址空间根据32bit或64bit等地址总线的不同,有不同的可用范围,例如:如果是32bit地址总线,则虚拟地址空间包含的虚拟内存地址从0~0xffffffff(4g)的地址空间,也就是有4gb的寻址空间,默认一开始虚拟地址空间中的全部地址都是空闲状态,例如:系统为每个进程所分配的4gb虚拟地址空间(32位系统),用来存放进程的虚拟地址,再通过内存管理单元将虚拟地址映射到物理内存地址。
54.(2)内存单元,指的是虚拟内存分配的最小空间,在本技术实施例中,内存单元的大小可以根据具体需要进行设置,例如:设置一个内存单元的大小为1kb、2kb或4kb。
55.目前,在虚拟地址空间中,当搜寻到可分配的连续空闲虚拟地址时,即分配给内存请求,当线程执行完毕后立即将内存释放,由于每一次虚拟地址的分配与释放大小浮动较大,当小内存释放后留下的连续空闲虚拟地址分布在内存空间各个不连续的区域时,容易造成内存碎片化。
56.基于此,本技术实施例提供一种虚拟内存地址空间的分配方法,以解决目前的虚拟内存分配存在内存碎片化的技术问题,提高虚拟内存地址空间的利用率。
57.请参阅图1,图1是本技术实施例提供的一种虚拟内存地址空间的示意图;
58.如图1所示,该虚拟内存地址空间对应32bit地址总线,该虚拟内存地址空间包含的虚拟内存地址从0~0xffffffff(4g)的地址空间,也就是有4gb的寻址空间。
59.可以理解的是,本技术实施例中的虚拟内存地址空间也可以为对应64bit地址总线,下面以虚拟内存地址空间对应32bit地址总线为例进行说明。
60.请参阅图2,图2是本技术实施例提供的一种虚拟内存地址空间的分配方法的流程示意图;
61.其中,该虚拟内存地址空间的分配方法,应用于电子设备,例如:移动终端,其中,所述电子设备包括虚拟内存地址空间,具体的,该虚拟内存地址空间的分配方法,应用于该电子设备的一个或多个处理器。
62.如图2所示,该虚拟内存地址空间的分配方法,包括:
63.步骤s201:接收第一虚拟内存分配请求,其中,所述第一虚拟内存分配请求对应第一虚拟内存空间;
64.具体的,一个应用程序可以对应一个进程/线程,当应用程序启动时,进程/线程即开始启动,当进程/线程启动时,电子设备可通过内核为进程/线程分配虚拟内存空间,以供应用程序使用。当应用程序启动时,电子设备的处理器接收到进程/线程发送的第一虚拟内存分配请求时,其中,所述第一虚拟内存分配请求对应第一虚拟内存空间,所述第一虚拟内存空间即所述第一虚拟内存分配请求所需的内存需求量。
65.步骤s202:分配一个预设的最大内存块,并将所述最大内存块划分为两个大小相同的第一内存块;
66.具体的,当处理器接收到第一虚拟内存分配请求时,从所述电子设备的虚拟内存地址空间中分配一个预设的最大内存块,并将所述最大内存块划分为两个大小相同的第一内存块。其中,所述预设的最大内存块的位置由寻址方向确定,例如:预设的最大内存块的位置为寻址方向的第一个空间大小满足最大内存块的空间大小的虚拟内存空间。
67.可以理解的是,初次使用时,默认所述虚拟内存地址空间的全部地址都是空闲状态。
68.步骤s203:将其中一个第一内存块分配给所述第一虚拟内存分配请求,另一个第一内存块作为空闲的第一内存块,其中,所述第一虚拟内存空间的空间大小不大于所述第一内存块的空间大小。
69.具体的,所述第一虚拟内存分配请求对应第一虚拟内存空间,所述第一虚拟内存空间的空间大小不大于所述第一内存块的空间大小,因此,所述第一内存块能够满足所述第一虚拟内存分配请求。当所述另一个第一内存块作为空闲的第一内存块时,不直接释放所述空闲的第一内存块,而是等到整个最大内存块均为空闲状态时,才释放整个最大内存块。
70.通过将其中一个第一内存块分配给所述第一虚拟内存分配请求,并将另外一个第一内存块作为空闲的第一内存块,以等待下一次的第一虚拟内存分配请求,本技术能够减少碎片化。
71.具体的,请再参阅图3,图3是本技术实施例提供的一种虚拟内存地址空间的分配方法的整理流程示意图;
72.如图3所示,该虚拟内存地址空间的分配方法的整体流程,包括:
73.步骤s301:接收第一虚拟内存分配请求;
74.具体的,一个应用程序可以对应一个进程/线程,当应用程序启动时,进程/线程即开始启动,当进程/线程启动时,电子设备可通过内核为进程/线程分配虚拟内存空间,以供应用程序使用。当应用程序启动时,电子设备的处理器接收到进程/线程发送的第一虚拟内存分配请求时,其中,所述第一虚拟内存分配请求对应第一虚拟内存空间,所述第一虚拟内存空间即所述第一虚拟内存分配请求所需的内存需求量。
75.步骤s302:确定第一虚拟内存分配请求对应的第一虚拟内存空间;
76.具体的,所述第一虚拟内存分配请求对应第一虚拟内存空间,所述处理器在接收到所述第一虚拟内存分配请求之后,确定第一虚拟内存分配请求对应的第一虚拟内存空间。
77.步骤s303:分配一个预设的最大内存块;
78.具体的,当处理器接收到第一虚拟内存分配请求时,从所述电子设备的虚拟内存地址空间中分配一个预设的最大内存块,其中,所述最大内存块的空间大小被预先设置,例如:设置所述最大内存块的空间大小为1m、2m或4m,优选地,本技术实施例设置所述最大内存块的空间大小为1m。
79.步骤s304:根据所述第一虚拟内存空间的空间大小,将最大内存块划分为两个大小相同的第一内存块;
80.具体的,所述第一虚拟内存空间的空间大小不大于所述第一内存块的空间大小,因此,将所述最大内存块划分为两个大小相同的第一内存块,以将其中一个第一内存块分配给所述第一虚拟内存分配请求,例如:所述最大内存块的空间大小为1m,将最大内存块划分为两个第一内存块,每一个内存块的空间大小均为512kb。
81.步骤s305:将其中一个第一内存块分配给第一虚拟内存分配请求,另一个第一内存块作为空闲的第一内存块;
82.具体的,所述第一虚拟内存分配请求对应第一虚拟内存空间,所述第一虚拟内存空间的空间大小不大于所述第一内存块的空间大小,因此,所述第一内存块能够满足所述第一虚拟内存分配请求。例如:所述第一内存块的空间大小为512kb,所述第一虚拟内存分配请求对应的第一虚拟内存空间的空间大小为512kb,则将其中一个第一内存块分配给所述第一虚拟内存分配请求,并将另一个第一内存块作为空闲的第一内存块。可以理解的是,所述处理器可以根据寻址顺序确定其中一个第一内存块分配给所述第一虚拟内存分配请求,例如:将最先寻址到的第一内存块分配给所述第一虚拟内存分配请求。
83.步骤s306:下一次接收到第一虚拟内存分配请求;
84.具体的,当另一个应用程序启动时,进程/线程即开始启动,当进程/线程启动时,电子设备可通过内核为进程/线程分配虚拟内存空间,以供应用程序使用,其中,进程/线程向所述处理器发送第一虚拟内存分配请求,所述第一虚拟内存分配请求对应第一虚拟内存空间,可以理解的是,上一次接收到的第一虚拟内存分配请求和下一次接收到的第一虚拟内存请求对应的第一虚拟内存空间的空间大小可以相同,也可以不同,但是,上一次接收到的第一虚拟内存分配请求和下一次接收到的第一虚拟内存请求对应的第一虚拟内存空间的空间大小均不大于第一内存块的空间大小。
85.步骤s307:判断虚拟内存地址空间是否存在空闲的第一内存块;
86.具体的,判断虚拟内存地址空间是否存在空闲的第一内存块,若是,则进入步骤s308:将空闲的第一内存块分配给第一虚拟内存分配请求;若否,则返回步骤s303:分配一个预设的最大内存块;
87.具体的,当虚拟内存地址空间存在空闲的第一内存块时,分配所述空闲的第一内存块给所述第一虚拟内存分配请求;当所述虚拟内存地址空间不存在空闲的第一内存块时,重新分配一个预设的最大内存块,以分配给所述第一虚拟内存分配请求。
88.具体的,所述重新分配一个预设的最大内存块,以分配给所述第一虚拟内存分配请求,包括:
89.划分重新分配的所述最大内存块为大小相同的两个第一内存块,并将其中一个第一内存块分配给所述第一虚拟内存分配请求,另一个第一内存块作为空闲的第一内存块,相当于重复第一次划分最大内存块的步骤,即:分配一个预设的最大内存块,根据所述第一虚拟内存空间的空间大小,将最大内存块划分为两个大小相同的第一内存块,将其中一个第一内存块分配给第一虚拟内存分配请求,另一个第一内存块作为空闲的第一内存块。
90.步骤s308:将空闲的第一内存块分配给第一虚拟内存分配请求;
91.在本技术实施例中,通过将预设的最大内存块划分为两个大小相同的第一内存块,并在分配一个第一内存块之后,将另一个第一内存块保留,以等待下一次的第一虚拟内存分配请求,本技术能够避免进程/线程在使用完虚拟内存之后直接释放导致的碎片化问
题,提高虚拟内存地址空间的利用率。
92.请再参阅图4,图4是本技术实施例提供的另一种虚拟内存地址空间的分配方法的整体流程示意图;
93.如图4所示,该虚拟内存地址空间的分配方法的整体流程,包括:
94.步骤s401:接收第n虚拟内存分配请求;
95.具体的,所述第n虚拟内存分配请求对应第n虚拟内存空间,其中,n为正整数且n≥1。
96.步骤s402:确定第n虚拟内存分配请求对应的第n虚拟内存空间;
97.具体的,所述第n虚拟内存分配请求对应第n虚拟内存空间,例如:第二虚拟内存分配请求对应第二虚拟内存空间,所述第二虚拟内存空间的大小为256kb。
98.步骤s403:判断虚拟内存地址空间是否存在空闲的第n内存块;
99.具体的,判断虚拟内存地址空间是否存在空闲的第n内存块,所述第n内存块用于满足第n虚拟内存分配请求,若所述虚拟内存地址空间中存在空闲的第n内存块,则进入步骤s404:将空闲的第n内存块分配给第n虚拟内存分配请求;若所述虚拟内存地址空间中不存在空闲的第n内存块,则进入步骤s405:判断虚拟内存地址空间是否存在空闲的第n-1内存块;
100.步骤s404:将空闲的第n内存块分配给第n虚拟内存分配请求;
101.具体的,若虚拟内存地址空间中包括空闲的第n内存块,意味着之前划分某一第n-1内存块,并存在未分配的第n内存块,此时将空闲的第n内存块分配给第n虚拟内存分配请求;
102.步骤s405:判断虚拟内存地址空间是否存在空闲的第n-1内存块;
103.具体的,第n-1内存块是第n内存块的上级内存块,其中,第n-1内存块的空间大小是第n内存块的空间大小的两倍,例如:第一内存块的空间大小是第二内存块的空间大小的两倍。
104.若所述虚拟内存地址空间中存在空闲的第n-1内存块,则进入步骤s406:将空闲的第n-1内存块划分为两个大小相同的第n内存块;
105.若所述虚拟内存地址空间中存在空闲的第n-1内存块,则进入步骤s408:进一步判断虚拟内存地址空间中是否存在空闲的上级内存块,直至确定虚拟内存空间中不存在第一内存块;
106.步骤s406:将空闲的第n-1内存块划分为两个大小相同的第n内存块;
107.具体的,若所述第n虚拟内存分配请求为第三虚拟内存分配请求,则满足所述第三虚拟内存分配请求的最小内存块为第三内存块,则所述第n内存块为第三内存块,则所述第n-1内存块为第二内存块,此时将所述第二内存块划分为两个大小相同的第三内存块;
108.步骤s407:将其中一个第n内存块分配给第n虚拟内存分配请求,另一个第n内存块作为空闲的第n内存块;
109.具体的,若所述第n内存块为第三内存块,则所述第n-1内存块为第二内存块,则将所述第二内存块划分为大小相同的两个第三内存块,并将其中一个第三内存块分配给所述第三虚拟内存分配请求,并将另一个第三内存块作为空闲的第三内存块。
110.步骤s408:进一步判断虚拟内存地址空间中是否存在空闲的上级内存块,直至确
定虚拟内存空间中不存在第一内存块;
111.具体的,满足所述第n虚拟内存分配请求的最小内存块为第n内存块,其中,n为正整数,若虚拟内存地址空间中不存在空闲的第n内存块,则逐一确定是否存在第n内存块的上级内存块,即确定是否存在第n-1内存块、第n-2内存块、第n-3内存块,
……
,第一内存块,若不存在第一内存块,则分配一个最大内存块。
112.在本技术实施例中,所述方法还包括:
113.若存在空闲的上级内存块,则将所述上级内存块划分为两个大小相同的下一级内存块,再将其中一个下一级内存块划分为两个大小相同的再下一级内存块,以此类推,直至划分到第n内存块,即划分到满足第n虚拟内存分配请求的最小内存块,以满足所述第n虚拟内存分配请求。
114.步骤s409:分配一个最大内存块;
115.具体的,请再参阅图5,图5是本技术实施例提供的一种划分后的最大内存块的示意图;
116.如图5所示,在分配一个最大内存块之后,将所述最大内存块划分为大小相同的两个第一内存块,再将其中一个所述第一内存块中划分为大小相同的两个第二内存块,再将其中一个所述第二内存块划分为大小相同的两个第三内存块,
……
,直至划分到第n内存块,即划分到满足第n虚拟内存分配请求的最小内存块,以满足所述第n虚拟内存分配请求。
117.通过搜寻上级内存块,在搜寻到空闲的上级内存块之后,将所述空闲的上级内存块进行划分,直至划分到第n内存块,以满足第n虚拟内存分配请求的最小内存块,从而能够划分出多个内存块组合,例如:空闲的上级内存块为第一内存块,满足第n虚拟内存分配请求的最小内存块为第四内存块,则划分出一个第二内存块、一个第三内存块以及两个第四内存块,并将其中一个第四内存块分配给所述第n虚拟内存分配请求,此时虚拟内存空间中还保留有空闲的第二内存块、第三内存块以及第四内存块,从而能够更好地满足其他虚拟内存分配请求,提高虚拟内存空间的利用率。
118.在本技术实施例中,所述第n虚拟内存空间的空间大小不小于一个内存单元的大小,其中,内存单元的大小可以根据具体需要进行设置,例如:设置一个内存单元的大小为1kb、2kb或4kb。优选地,本技术实施例中的一个内存单元的大小为4kb。
119.在本技术实施例中,当所述最大内存块的空间被部分占用时,不释放所述最大内存块中的部分空闲空间;当所述最大内存块的空间全部为空闲空间时,释放所述最大内存块。通过保留最大内存块中的部分空闲空间,以等待下一次的虚拟内存分配请求,能够避免线程执行完毕后立即将内存释放导致的内存碎片化问题。
120.可以理解的是,当接收到虚拟内存分配请求对应的虚拟内存空间的空间大小大于第一内存块的空间大小,且不大于最大内存块的空间大小时,分配一个最大内存块给所述虚拟内存分配请求。
121.当接收到的虚拟内存分配请求对应的虚拟内存空间的空间大小大于最大内存块的空间大小时,从所述虚拟内存地址空间中搜寻连续的内存地址空间,以分配给当前的所述虚拟内存分配请求。
122.在本技术实施例中,通过提供一种虚拟内存地址空间的分配方法,应用于电子设备,所述电子设备包括虚拟内存地址空间,所述方法包括:接收第一虚拟内存分配请求,其
中,所述第一虚拟内存分配请求对应第一虚拟内存空间;分配一个预设的最大内存块,并将所述最大内存块划分为两个大小相同的第一内存块;将其中一个第一内存块分配给所述第一虚拟内存分配请求,另一个第一内存块作为空闲的第一内存块,其中,所述第一虚拟内存空间的空间大小不大于所述第一内存块的空间大小。
123.在本技术实施例中,为了进一步解决目前的虚拟内存分配存在内存碎片化的技术问题,提高虚拟内存地址空间的利用率,本技术实施例通过预先设置优先区域,以提供另一种虚拟内存地址空间的分配方法。
124.请参阅图6,图6是本技术实施例提供的另一种虚拟内存地址空间的分配方法的流程示意图;
125.其中,该虚拟内存地址空间的分配方法,应用于电子设备,例如:移动终端,其中,所述电子设备包括虚拟内存地址空间,其中,所述电子设备包括第一处理器和第二处理器,所述第一处理器和第二处理器共用所述虚拟内存地址空间,例如:所述第一处理器包括中央处理器(central processing unit,cpu),所述第二处理器包括图形处理器(graphics processing unit,gpu)。具体的,该虚拟内存地址空间的分配方法,应用于该电子设备的一个或多个处理器。
126.如图6所示,该虚拟内存地址空间的分配方法,包括:
127.步骤s601:预先设置优先区域,其中,所述优先区域位于所述虚拟内存地址空间,并且,所述优先区域包括若干个优先区块,每一优先区块包括多个大小相同的内存块;
128.具体的,请再参阅图7,图7是本技术实施例提供的另一种虚拟内存地址空间的示意图;
129.如图7所示,该虚拟内存地址空间被划分为优先区域和非优先区域,其中,该优先区域用于满足特定需求的虚拟内存分配请求,例如:空间大小位于某一特定范围内的虚拟内存分配请求,所述非优先区域用于满足非特定需求的虚拟内存分配请求。
130.请再参阅图8,图8是图7中的优先区域的示意图;
131.如图8所示,该优先区域包括若干个优先区块,其中,每一优先区块对应一个内存块标识,其中,所述内存块标识用于标识该优先区块包括的内存块的空间大小,例如:4kb、8kb、16kb、32kb、64kb、128kb、256kb、512kb或1mb,每一优先区块包括多个大小相同的内存块,其中,每一内存块对应一个的空间大小,例如:某一优先区块内的所有内存块对应的空间大小均为4kb、8kb、16kb、32kb、64kb、128kb、256kb、512kb或1mb。
132.具体的,通过在虚拟内存地址空间中划分优先区域和非优先区域,并设置优先区域包括若干个优先区块,例如:所述优先区域包括9个优先区块,每一优先区块包括多个空间大小相同的内存块,用于满足特定空间大小的虚拟内存分配请求,本技术能够更好地处理不同虚拟内存空间的虚拟内存分配请求,提高虚拟内存地址空间的利用率,并且,由于预先设置虚拟内存请求空间的空间大小对应的优先区块,本技术能够提高虚拟内存分配的效率。
133.步骤s602:获取虚拟内存分配请求,其中,所述虚拟内存分配请求对应虚拟内存请求空间;
134.具体的,一个应用程序可以对应一个进程/线程,当应用程序启动时,进程/线程即开始启动,当进程/线程启动时,电子设备可通过内核为进程/线程分配虚拟内存空间,以供
应用程序使用。当应用程序启动时,电子设备的处理器接收到进程/线程发送的虚拟内存分配请求时,其中,所述虚拟内存分配请求对应虚拟内存空间,所述虚拟内存空间即所述虚拟内存分配请求所需的内存需求量。
135.步骤s603:根据所述虚拟内存请求空间的空间大小,匹配与所述虚拟内存请求空间对应的优先区块,从对应的优先区块中确定空闲的内存块分配给所述虚拟内存分配请求。
136.具体的,所述根据所述虚拟内存请求空间的空间大小,匹配与所述虚拟内存请求空间对应的优先区块,包括:
137.若所述虚拟内存请求空间的空间大小处于某一内存块的空间大小的预设范围内,则确定所述虚拟内存请求空间对应的优先区块为该内存块所在的优先区块,例如:所述内存块的空间大小的预设范围为(内存块的空间大小的一半,内存块的空间大小]。
138.具体的,请再参阅图9,图9是本技术实施例提供的另一种虚拟内存地址空间的分配方法的整体流程示意图;
139.如图9所示,该虚拟内存地址空间的分配方法的整体流程,包括:
140.步骤s901:预先设置优先区域;
141.具体的,将虚拟内存地址空间划分为优先区域和非优先区域。
142.步骤s902:建立优先区域中的每一优先区块与内存块标识的映射关系,其中,每一所述优先区块对应一个内存块标识;
143.具体的,建立映射表,所述映射表存储所述优先区域中的每一优先区块与内存块标识的映射关系,通过查询所述映射表,可以确定优先区块对应的内存块标识,其中,该内存块标识包括该优先区块包括的每一内存块的空间大小。
144.步骤s903:获取虚拟内存分配请求;
145.具体的,所述虚拟内存分配请求由进程/线程发送,所述虚拟内存分配请求对应虚拟内存空间,所述虚拟内存空间即所述虚拟内存分配请求所需的内存需求量。
146.步骤s904:确定所述虚拟内存分配请求对应的虚拟内存请求空间的空间大小;
147.具体的,所述虚拟内存分配请求对应的虚拟内存请求空间的空间大小,即所述虚拟内存分配请求所需的内存需求量,例如:某一虚拟内存分配请求对应的内存需求量为512kb,则虚拟内存请求空间的空间大小为512kb。
148.步骤s905:判断虚拟内存请求空间的空间大小是否处于某一内存块的空间大小的预设范围内;
149.具体的,判断虚拟内存分配请求对应的虚拟内存请求空间的空间大小是否处于某一内存块的空间大小的预设范围内,若是,则进入步骤s906:确定所述虚拟内存分配请求对应的优先区块;
150.若否,则进入步骤s908:从非优先区域中分配虚拟地址空间给所述虚拟内存分配请求;
151.在本技术实施例中,所述内存块的空间大小的预设范围为(内存块的空间大小的一半,内存块的空间大小],例如:某一内存块的空间大小为512kb,则该内存块的空间大小的预设范围为(256kb,512kb],若某一虚拟内存分配请求对应的虚拟内存请求空间的空间大小为500kb,则确定所述虚拟内存请求空间的空间大小处于空间大小为512kb的内存块的
预设范围内,此时确定所述虚拟内存分配请求对应的优先区块为内存块标识为512kb的优先区块;假设优先区域中的优先区块的内存块的空间大小设置为4kb、8kb、16kb、32kb、64kb、128kb、256kb、512kb和1mb,若某一虚拟内存分配请求对应的虚拟内存请求空间的空间大小为2m,此时该虚拟内存分配请求对应的虚拟内存请求空间不处于某一内存块的空间大小的预设范围内,此时从非优先区域中分配虚拟地址空间给所述虚拟内存分配请求。
152.步骤s906:确定所述虚拟内存分配请求对应的优先区块;
153.具体的,根据所述虚拟内存分配请求对应的虚拟内存请求空间的空间大小,确定所述虚拟内存分配请求对应的优先区块。
154.步骤s907:从所述优先区块中确定空闲的内存块分配给所述虚拟内存分配请求;
155.具体的,当确定所述虚拟内存分配请求对应的优先区块之后,从所述优先区块中确定空闲的内存块分配给所述虚拟内存分配请求,例如:将最快寻址到的空闲的内存块分配给所述虚拟内存分配请求。
156.步骤s908:从非优先区域中分配虚拟地址空间给所述虚拟内存分配请求;
157.具体的,当虚拟内存分配请求对应的虚拟内存请求空间不处于某一内存块的空间大小的预设范围内,则从非优先区域中分配虚拟地址空间给所述虚拟内存分配请求,具体的,从非优先区域中寻址满足所述虚拟内存分配请求的虚拟地址空间,例如:某一虚拟内存分配请求对应的虚拟内存请求空间为2m,则从所述非优先区域中分配2m的虚拟地址空间给所述虚拟内存分配请求。
158.在本技术实施例中,将空间大小处于某一内存块的空间大小的预设范围内的虚拟内存请求空间对应的虚拟内存分配请求通过该内存块进行满足,本技术实施例能够更好地分配虚拟内存以防止内存碎片化。
159.在本技术实施例中,所述方法还包括:
160.建立优先区域中的每一优先区块与内存块标识的映射关系,其中,每一所述优先区块对应一个内存块标识,其中,所述内存块标识用于标识该优先区块包括的内存块的空间大小。
161.具体的,每一优先区块一一对应一个内存块标识,相当于该优先区块中的所有内存块的空间大小均为特定空间大小,例如:某一优先区块内的所有内存块对应的空间大小均为4kb、8kb、16kb、32kb、64kb、128kb、256kb、512kb或1mb。通过建立优先区域中的每一优先区块与内存块标识的映射关系,其中,每一所述优先区块对应一个内存块标识,其中,所述内存块标识用于标识该优先区块包括的内存块的空间大小,本技术能够更好地通过内存块标识确定某一优先区块的内存块的空间大小,以更好地进行内存分配。
162.可以理解的是,本技术实施例中的每一优先区块中的内存块的大小可以根据具体需要进行设置,例如:内存块的的大小设置为4kb、8kb、12kb、16kb、20kb、24kb等空间大小,在此不进行限定。
163.在本技术实施例中,每一优先区块的空间大小可以相同,也可以不同,例如:所述优先区域的空间大小为90mb,所述优先区域包括9个优先区块,每一优先区块的空间大小均为10mb。可以理解的是,由于每一优先区块的内存块的空间大小不同,因此,此时每一优先区块中包含的内存块的数量不同,例如:内存块标识为4kb的优先区块中的内存块的数量是内存块标识为8kb的优先区块中的内存块的数量的2倍,内存块标识为8kb的优先区块中的
内存块的数量是内存块标识为16kb的优先区块中的内存块的数量的2倍,以此类推,内存块标识为512kb的优先区块中的内存块的数量是内存块标识为1mb的优先区块中的内存块的数量的2倍。
164.在本技术实施例中,每一优先区块中包含的内存块的数量可以相同,也可以不同。可以理解的是,由于每一优先区块中包含的内存块的空间大小不同,若每一优先区块中包含的内存块的数量相同,则此时每一优先区块的空间大小不同,例如:内存块标识为8kb的优先区块的空间大小是内存块标识为4kb的优先区块的空间大小的2倍,内存块标识为16kb的优先区块的空间大小是内存块标识为8kb的优先区块的空间大小的2倍,以此类推,内存块标识为1mb的优先区块的空间大小是内存块标识为512kb的优先区块的空间大小的2倍。
165.在本技术实施例中,所述方法还包括:
166.当任意一个优先区块中的内存块全部被占用时,从所述虚拟内存地址空间中划分备用优先区块。
167.具体的,所述虚拟内存地址空间被划分为优先区域和非优先区域,所述从所述虚拟内存地址空间中划分备用优先区块,包括:
168.从所述非优先区域中划分备用优先区块,其中,所述备用优先区块包括多个内存块,且所述备用优先区块中的每一内存块的空间大小与该优先区块中的内存块的空间大小相同。
169.请再参阅图10,图10是本技术实施例提供的划分备用优先区块的流程示意图;
170.如图10所示,该划分备用优先区块的流程,包括:
171.步骤s101:确定所述虚拟内存分配请求对应的优先区块;
172.具体的,根据所述虚拟内存分配请求对应的虚拟内存请求空间,确定所述虚拟内存分配请求对应的优先区块。
173.步骤s102:判断所述优先区块中的内存块是否全部被占用;
174.具体的,判断所述优先区块中的内存块是否全部被占用,若是,则进入步骤s103:从非优先区域中划分备用优先区块,其中,所述备用优先区块包括多个内存块;若否,则进入步骤s105:从所述优先区块中确定空闲的内存块分配给所述虚拟内存请求;
175.可以理解的是,当所述优先区块中的内存块全部被占用,表示该优先区块中不存在空闲的内存块,此时无法满足虚拟内存分配请求,因此,需要寻求其他虚拟内存地址以满足虚拟内存分配请求。
176.步骤s103:从非优先区域中划分备用优先区块,其中,所述备用优先区块包括多个内存块;
177.具体的,从非优先区域中划分备用优先区块,即将所述非优先区域中划分备用优先区块到优先区域,其中,所述备用优先区块包括多个内存块,并且,所述备用优先区块中的每一内存块的空间大小与该优先区块中的内存块的空间大小相同,相当于所述备用优先区块为该虚拟内存请求对应的优先区块的复制,即从非优先区域中划分一个与该虚拟内存请求对应的优先区块完全相同的优先区块,以满足该虚拟内存请求。
178.步骤s104:从所述备用优先区块中确定空闲的内存块分配给所述虚拟内存分配请求;
179.具体的,从所述备用优先区块中确定空闲的内存块分配给所述虚拟内存分配请
求。
180.可以理解的是,若从非优先区域中划分多个备用优先区块,此时容易使得非优先区域的空间大小被减少,无法满足其他虚拟内存分配请求,例如:大空间的虚拟内存分配请求,因此,本技术还通过备用优先区块的回收,以避免过度使用备用优先区块的问题。
181.具体的,所述方法还包括:
182.当所述备用优先区块中的内存块被全部释放之后,并且,所述备用优先区块对应的原始优先区块中存在至少一个空闲的内存块,则将所述备用优先区块划分到所述非优先区域中,其中,所述原始优先区块指的是优先区域中的优先区块,每一原始优先区块对应的一个内存块标识。
183.步骤s105:从所述优先区块中确定空闲的内存块分配给所述虚拟内存请求;
184.具体的,当所述优先区块中的内存块未全部被占用,表示该优先区块中存在空闲的内存块,此时从所述优先区块中确定空闲的内存块分配给所述虚拟内存分配请求。
185.在本技术实施例中,通过提供一种虚拟内存地址空间的分配方法,应用于电子设备,所述电子设备包括虚拟内存地址空间,所述方法包括:预先设置优先区域,其中,所述优先区域位于所述虚拟内存地址空间,并且,所述优先区域包括若干个优先区块,每一优先区块包括多个大小相同的内存块;获取虚拟内存分配请求,其中,所述虚拟内存分配请求对应虚拟内存请求空间;根据所述虚拟内存请求空间的空间大小,匹配与所述虚拟内存请求空间对应的优先区块,从对应的优先区块中确定空闲的内存块分配给所述虚拟内存分配请求。一方面,该虚拟内存地址空间的分配方法通过设置优先区域,优先区域包括若干个优先区块,每一优先区块包括多个大小相同的内存块,有利于为虚拟内存分配请求匹配对应的内存块,另一方面,通过获取虚拟内存分配请求,确定虚拟内存请求空间的空间大小,匹配与虚拟内存请求空间对应的优先区块,从对应的优先区块中确定空闲的内存块分配给虚拟内存分配请求,本技术能够提高虚拟内存地址空间的利用率。
186.请再参阅图11,图11是本技术实施例提供的一种虚拟内存地址空间的分配装置的结构示意图;
187.其中,该虚拟内存地址空间的分配装置110,应用于电子设备,具体的,应用于电子设备的一个或多个处理器。
188.如图11所示,该虚拟内存地址空间的分配装置110,包括:
189.内存分配请求单元111,用于接收第一虚拟内存分配请求,其中,所述第一虚拟内存分配请求对应第一虚拟内存空间;
190.内存划分单元112,用于分配一个预设的最大内存块,并将所述最大内存块划分为两个大小相同的第一内存块;
191.虚拟内存分配单元113,用于将其中一个第一内存块分配给所述第一虚拟内存分配请求,另一个第一内存块作为空闲的第一内存块,其中,所述第一虚拟内存空间的空间大小不大于所述第一内存块的空间大小。
192.需要说明的是,上述装置可执行本技术实施例所提供的虚拟内存地址空间的分配方法,具备执行方法相应的功能模块和有益效果。未在装置实施例中详尽描述的技术细节,可参见本技术实施例所提供的虚拟内存地址空间的分配方法。
193.在本技术实施例中,通过提供一种虚拟内存地址空间的分配装置,应用于电子设
备,所述装置包括:内存分配请求单元,用于接收第一虚拟内存分配请求,其中,所述第一虚拟内存分配请求对应第一虚拟内存空间;内存划分单元,用于分配一个预设的最大内存块,并将所述最大内存块划分为两个大小相同的第一内存块;虚拟内存分配单元,用于将其中一个第一内存块分配给所述第一虚拟内存分配请求,另一个第一内存块作为空闲的第一内存块,其中,所述第一虚拟内存空间的空间大小不大于所述第一内存块的空间大小。通过将其中一个第一内存块分配给第一虚拟内存分配请求,并将另一个第一内存块作为空闲的第一内存块,以等待下一个第一虚拟内存分配请求,本技术能够解决目前的虚拟内存分配存在内存碎片化的技术问题,提高虚拟内存地址空间的利用率。
194.请再参阅图12,图12是本技术实施例提供的另一种虚拟内存地址空间的分配装置的结构示意图;
195.其中,该虚拟内存地址空间的分配装置120,应用于电子设备,具体的,应用于电子设备的一个或多个处理器。
196.如图12所示,该虚拟内存地址空间的分配装置120,包括:
197.优先区域设置单元121,用于预先设置优先区域,其中,所述优先区域位于所述虚拟内存地址空间,并且,所述优先区域包括若干个优先区块,每一优先区块包括多个大小相同的内存块;
198.内存请求获取单元122,用于获取虚拟内存分配请求,其中,所述虚拟内存分配请求对应虚拟内存请求空间;
199.虚拟内存分配单元123,用于根据所述虚拟内存请求空间的空间大小,匹配与所述虚拟内存请求空间对应的优先区块,从对应的优先区块中确定空闲的内存块分配给所述虚拟内存分配请求。
200.需要说明的是,上述装置可执行本技术实施例所提供的虚拟内存地址空间的分配方法,具备执行方法相应的功能模块和有益效果。未在装置实施例中详尽描述的技术细节,可参见本技术实施例所提供的虚拟内存地址空间的分配方法。
201.在本技术实施例中,通过提供一种虚拟内存地址空间的分配装置,应用于电子设备,所述电子设备包括虚拟内存地址空间,所述装置包括:优先区域设置单元,用于预先设置优先区域,其中,所述优先区域位于所述虚拟内存地址空间,并且,所述优先区域包括若干个优先区块,每一优先区块包括多个大小相同的内存块;内存请求获取单元,用于获取虚拟内存分配请求,其中,所述虚拟内存分配请求对应虚拟内存请求空间;虚拟内存分配单元,用于根据所述虚拟内存请求空间的空间大小,匹配与所述虚拟内存请求空间对应的优先区块,从对应的优先区块中确定空闲的内存块分配给所述虚拟内存分配请求。一方面,该虚拟内存地址空间的分配方法通过设置优先区域,优先区域包括若干个优先区块,每一优先区块包括多个大小相同的内存块,有利于为虚拟内存分配请求匹配对应的内存块,另一方面,通过获取虚拟内存分配请求,确定虚拟内存请求空间的空间大小,匹配与虚拟内存请求空间对应的优先区块,从对应的优先区块中确定空闲的内存块分配给虚拟内存分配请求,本技术能够提高虚拟内存地址空间的利用率。
202.请参阅图13,图13为本技术各个实施例的一种电子设备的硬件结构示意图;
203.如图13所示,该电子设备130包括但不限于:射频单元131、网络模块132、音频输出单元133、输入单元134、传感器135、显示单元136、用户输入单元137、接口单元138、存储器
139、处理器1310、以及电源1311等部件,所述电子设备130还包括摄像头。本领域技术人员可以理解,图13中示出的电子设备的结构并不构成对电子设备的限定,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。在本技术实施例中,电子设备包括但不限于电视机、手机、平板电脑、笔记本电脑、掌上电脑、车载终端、可穿戴设备、以及计步器等。
204.处理器1310,用于接收第一虚拟内存分配请求,其中,所述第一虚拟内存分配请求对应第一虚拟内存空间;分配一个预设的最大内存块,并将所述最大内存块划分为两个大小相同的第一内存块;将其中一个第一内存块分配给所述第一虚拟内存分配请求,另一个第一内存块作为空闲的第一内存块,其中,所述第一虚拟内存空间的空间大小不大于所述第一内存块的空间大小。
205.在本技术实施例中,通过在接收到第一虚拟内存分配请求时,通过将最大内存块划分为两个大小相同的第一内存块,通过将其中一个第一内存块分配给第一虚拟内存分配请求,并将另一个第一内存块作为空闲的第一内存块,以等待下一个第一虚拟内存分配请求,本技术能够解决目前的虚拟内存分配存在内存碎片化的技术问题,提高虚拟内存地址空间的利用率。
206.或者,所述处理器1310,用于预先设置优先区域,其中,所述优先区域位于所述虚拟内存地址空间,并且,所述优先区域包括若干个优先区块,每一优先区块包括多个大小相同的内存块;获取虚拟内存分配请求,其中,所述虚拟内存分配请求对应虚拟内存请求空间;根据所述虚拟内存请求空间的空间大小,匹配与所述虚拟内存请求空间对应的优先区块,从对应的优先区块中确定空闲的内存块分配给所述虚拟内存分配请求。
207.在本技术实施例中,一方面,通过设置优先区域,优先区域包括若干个优先区块,每一优先区块包括多个大小相同的内存块,有利于为虚拟内存分配请求匹配对应的内存块,另一方面,通过获取虚拟内存分配请求,确定虚拟内存请求空间的空间大小,匹配与虚拟内存请求空间对应的优先区块,从对应的优先区块中确定空闲的内存块分配给虚拟内存分配请求,本技术能够提高虚拟内存地址空间的利用率。
208.应当理解的是,本技术实施例中,射频单元131可用于收发信息或通话过程中,信号的接收和发送,具体的,将来自基站的下行数据接收后,给处理器1310处理;另外,将上行的数据发送给基站。通常,射频单元131包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器、双工器等。此外,射频单元131还可以通过无线通信系统与网络和其他设备通信。
209.电子设备130通过网络模块132为用户提供了无线的宽带互联网访问,如帮助用户收发电子邮件、浏览网页和访问流式媒体等。
210.音频输出单元133可以将射频单元131或网络模块132接收的或者在存储器139中存储的音频数据转换成音频信号并且输出为声音。而且,音频输出单元133还可以提供与电子设备130执行的特定功能相关的音频输出(例如,呼叫信号接收声音、消息接收声音等等)。音频输出单元133包括扬声器、蜂鸣器以及受话器等。
211.输入单元134用于接收音频或视频信号。输入单元134可以包括图形处理器(graphics processing unit,gpu)1341和麦克风1342,图形处理器1341对在视频捕获模式或图像捕获模式中由图像捕获装置(如摄像头)获得的静态图片或视频的目标图像进行处
理。处理后的图像帧可以显示在显示单元136上。经图形处理器1341处理后的图像帧可以存储在存储器139(或其它存储介质)中或者经由射频单元131或网络模块132进行发送。麦克风1342可以接收声音,并且能够将这样的声音处理为音频数据。处理后的音频数据可以在电话通话模式的情况下转换为可经由射频单元131发送到移动通信基站的格式输出。
212.电子设备130还包括至少一种传感器135,比如光传感器、运动传感器以及其他传感器。具体地,光传感器包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板1361的亮度,接近传感器可在电子设备130移动到耳边时,关闭显示面板1361和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别电子设备姿态(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;传感器135还可以包括指纹传感器、压力传感器、虹膜传感器、分子传感器、陀螺仪、气压计、湿度计、温度计、红外线传感器等,在此不再赘述。
213.显示单元136用于显示由用户输入的信息或提供给用户的信息。显示单元136可包括显示面板1361,可以采用液晶显示器(liquid crystal display,lcd)、有机发光二极管(organic light-emitting diode,oled)等形式来配置显示面板1361。
214.用户输入单元137可用于接收输入的数字或字符信息,以及产生与电子设备的用户设置以及功能控制有关的键信号输入。具体地,用户输入单元137包括触控面板1371以及其他输入设备1372。触控面板1371,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板1371上或在触控面板1371附近的操作)。触控面板1371可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器1310,接收处理器1310发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板1371。除了触控面板1371,用户输入单元137还可以包括其他输入设备1372。具体地,其他输入设备1372可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆,在此不再赘述。
215.进一步的,触控面板1371可覆盖在显示面板1361上,当触控面板1371检测到在其上或附近的触摸操作后,传送给处理器1310以确定触摸事件的类型,随后处理器1310根据触摸事件的类型在显示面板1361上提供相应的视觉输出。虽然在图13中,触控面板1371与显示面板1361是作为两个独立的部件来实现电子设备的输入和输出功能,但是在某些实施例中,可以将触控面板1371与显示面板1361集成而实现电子设备的输入和输出功能,具体此处不做限定。
216.接口单元138为外部装置与电子设备130连接的接口。例如,外部装置可以包括有线或无线头戴式耳机端口、外部电源(或电池充电器)端口、有线或无线数据端口、存储卡端口、用于连接具有识别模块的装置的端口、音频输入/输出(i/o)端口、视频i/o端口、耳机端口等等。接口单元138可以用于接收来自外部装置的输入(例如,数据信息、电力等等)并且将接收到的输入传输到电子设备130内的一个或多个元件或者可以用于在电子设备130和外部装置之间传输数据。
217.存储器139可用于存储软件程序以及各种数据。存储器139可主要包括存储程序区
和存储数据区,其中,存储程序区可存储至少一个功能所需的应用程序1391(比如声音播放功能、图像播放功能等)以及操作系统1392等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器139可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
218.处理器1310是电子设备的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或执行存储在存储器139内的软件程序和/或模块,以及调用存储在存储器139内的数据,执行电子设备的各种功能和处理数据,从而对电子设备进行整体监控。处理器1310可包括一个或多个处理单元;优选的,处理器1310可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1310中。
219.电子设备130还可以包括给各个部件供电的电源1311(比如电池),优选的,电源1311可以通过电源管理系统与处理器1310逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
220.另外,电子设备130包括一些未示出的功能模块,在此不再赘述。
221.优选的,本技术实施例还提供一种电子设备,包括处理器1310,存储器139,存储在存储器139上并可在所述处理器1310上运行的计算机程序,该计算机程序被处理器1310执行时实现上述的虚拟内存地址空间的分配方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
222.本技术实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被一个或多个处理器执行时实现上述虚拟内存地址空间的分配方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等。
223.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
224.以上所描述的装置或设备实施例仅仅是示意性的,其中所述作为分离部件说明的单元模块可以是或者也可以不是物理上分开的,作为模块单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络模块单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
225.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是移动终端,个人计算机,服务器,或者网络设备等)执行本技术各个实施例或者实施例的某些部分所述的方法。
226.最后应说明的是:以上结合附图描述的实施例仅用以说明本技术的技术方案,本技术并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的;在本技术的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本技术的不同方面的许多其它变化,为了简明,它们没有在细节中提供;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献