下面的描述涉及用于对存储器的存储器访问请求处理的技术。
背景技术:
1、使用机器虚拟化技术,计算装置(诸如,服务器或超级计算机)可同时执行轻量级内核(lwk)和linux内核,以减少操作系统(os)噪声并且帮助确保稳定的延迟。
2、由于轻量级操作系统的极简设计,在计算装置的一个分区中执行的典型轻量级操作系统或lwk相对于在计算装置的另一分区中执行的linux可缺乏存储器保护。例如,当在轻量级操作系统中发生页错误时,可由于解决页错误的失败而发生系统挂起。
技术实现思路
1、提供本
技术实现要素:
以简化的形式介绍在以下具体实施方式中进一步描述的构思的选择。本发明内容不意在确定要求权利的主题的关键特征或必要特征,也不意在用于帮助确定要求权利的主题的范围。
2、在一个总体方面,一种方法包括处理对存储器的访问请求,所述方法与计算装置的目标内核的执行相关联地被执行,其中,所述方法包括:基于第一虚拟存储器地址接收对存储器的访问请求;基于页表确定与第一虚拟存储器地址对应的第一物理存储器地址是否被获取;响应于确定与第一虚拟存储器地址对应的第一物理存储器地址未被获取,确定第一虚拟存储器地址是否是有效地址;响应于确定第一虚拟存储器地址是有效地址,基于用于目标内核的空闲存储器池来为访问请求分配目标虚拟存储器空间或目标物理存储器空间,空闲存储器池包括当前分配的虚拟存储器和/或物理存储器;以及基于分配的目标虚拟存储器空间或目标物理存储器空间来处理访问请求。
3、所述方法还可包括:基于将虚拟存储器地址与物理存储器地址相关联的转换后备缓冲器(tlb)来确定是否发生第一虚拟存储器地址的tlb未命中。
4、可响应于确定已经发生tlb未命中,执行确定与第一虚拟存储器地址对应的第一物理存储器地址是否被获取的步骤。
5、所述方法还可包括:响应于确定与第一虚拟存储器地址对应的第一物理存储器地址已被获取,基于第一物理存储器地址来处理访问请求。
6、确定第一虚拟存储器地址是否是有效地址的步骤可包括:确定第一虚拟存储器地址是否是分配给目标内核的虚拟存储器区域中的地址。
7、空闲存储器池可包括至少一个子页。
8、分配的步骤可包括:分配与子页对应的物理存储器子帧。
9、空闲存储器池可包括至少一个页和子页,其中,子页小于页。
10、所述方法还可包括:更新关于目标虚拟存储器空间的一个或多个页的标志信息,其中,标志信息使目标虚拟存储器空间的一个或多个页的子页相对于空闲存储器池被管理。
11、访问请求可包括存储器分配请求,其中,分配虚拟存储器空间或物理存储器空间的步骤基于通过存储器分配请求接收的标志信息。
12、计算装置可包括包含多个核的中央处理器(cpu),并且内核中的至少一个可被分配给目标内核。
13、目标内核可以是由主内核执行的辅助内核。
14、可基于由计算装置执行的应用或程序来启动目标内核,并且对于目标内核,计算装置的核的至少一部分和计算装置的存储器区域的至少一部分可被分配给目标内核。
15、所述方法还可包括:对物理存储器的完整帧进行分配,并且将所述完整帧与虚拟存储器空间的相应的完整虚拟页相关联;对物理存储器的部分帧信息进行分配,并且将所述部分帧与虚拟存储器地址空间的相应的部分页相关联,以及将部分帧和/或部分页包括在空闲存储器池中,其中,目标虚拟存储器空间或目标物理存储器空间包括一部分帧和/或一部分页。
16、一个或多个实施例包括:存储指令的非暂时性计算机可读记录介质,所述指令在由处理器执行时,将处理器配置为执行在此描述的任何一个、任何组合或所有操作和/或方法。
17、在一个总体方面,一种方法包括:基于第一虚拟存储器地址接收对存储器的访问请求;确定第一虚拟存储器地址是否是无效地址;基于确定第一虚拟存储器地址是无效地址,确定第一虚拟存储器地址是否在目标内核可访问的存储器区域中;以及响应于确定第一虚拟存储器地址在目标内核可访问的区域中,基于空闲存储器池为访问请求分配目标虚拟存储器空间或目标物理存储器空间。
18、在一个总体方面,一种计算装置包括:处理器;以及存储器,存储指令,所述指令被配置为:使处理器处理对存储器的访问请求,以及对虚拟页和相应的物理帧进行管理和分配;对虚拟页的虚拟子页和物理帧的物理子帧进行管理和分配;提供包括虚拟子页的至少一部分和/或物理子帧的一部分的空闲存储器池;基于第一虚拟存储器地址接收对存储器的访问请求;确定与第一虚拟存储器地址对应的第一物理存储器地址是否在页表中;响应于确定与第一虚拟存储器地址对应的第一物理存储器地址未被获取,确定第一虚拟存储器地址是否是有效地址;以及响应于确定第一虚拟存储器地址是有效地址,从空闲存储器池为访问请求分配目标虚拟存储器空间或目标物理存储器空间。
19、处理器可包括:从计算装置的多个核之中分配给目标内核的内核。
20、目标物理存储器空间可以是计算装置的随机存取存储器(ram)的整个存储器空间的一部分。
21、分配的步骤可基于页错误被执行。
22、页错误可与尚未被分配给第一虚拟存储器地址的物理帧对应。
23、空闲存储器池可包括:至少一个虚拟页或物理帧以及一个虚拟子页或物理子帧。
24、目标虚拟存储器空间或目标物理存储器空间可包括:具有分配的状态的页的虚拟子页或具有分配的状态的物理帧的物理子帧。
25、在一个总体方面,一种方法包括:对计算装置的物理存储器的完整帧进行分配,并且将所述完整帧与虚拟存储器空间的相应的完整虚拟页相关联;对物理存储器的部分帧进行分配,并且将所述部分帧与虚拟存储器地址空间的相应的部分页相关联,以及接收对虚拟存储器地址空间中的虚拟存储器地址的存储器分配请求,并且基于此,对物理存储器的一部分帧进行分配并且将所述一部分帧与虚拟存储器地址相关联。
26、所述方法还可包括:基于对所述完整帧进行分配的步骤和/或对所述一部分帧进行分配的步骤来维持空闲存储器池,以及从空闲存储器池分配所述一部分帧。
27、对所述一部分帧进行分配的步骤可基于与存储器分配请求相关联的页错误。
28、在接收到存储器分配请求之前,帧可被标记为被分配,所述一部分帧可包括所述帧的一部分,并且所述一部分帧可被标记为可用于分配。
29、所述一部分帧可基于尚未被使用而被标记为可用。
30、对所述部分帧进行分配的步骤可基于确定虚拟存储器地址在与存储器分配请求相关联的进程或内核可访问的虚拟存储器空间中。
31、根据以下具体实施方式、附图和权利要求,其他特征和方面将是清楚的。
1.一种处理对存储器的访问请求的方法,所述方法与计算装置的内核的执行相关联地被执行,所述方法包括:
2.根据权利要求1所述的方法,还包括:
3.根据权利要求1所述的方法,还包括:
4.根据权利要求1所述的方法,其中,确定第一虚拟存储器地址是否是有效地址的步骤包括:
5.根据权利要求1所述的方法,其中,空闲存储器池包括至少一个子页。
6.根据权利要求5所述的方法,其中,分配的步骤包括:分配与所述至少一个子页对应的物理存储器子帧。
7.根据权利要求5所述的方法,其中,空闲存储器池还包括至少一个页,所述至少一个子页小于所述至少一个页。
8.根据权利要求1所述的方法,还包括:
9.根据权利要求1所述的方法,还包括:
10.根据权利要求1所述的方法,其中,访问请求包括存储器分配请求,其中,分配所述目标虚拟存储器空间和目标物理存储器空间中的至少一个的步骤基于通过存储器分配请求接收的标志信息。
11.根据权利要求1所述的方法,其中,计算装置包括包含多个核的中央处理器,其中,所述多个核中的至少一个被分配给所述内核。
12.根据权利要求1所述的方法,其中,所述内核包括:由主内核执行的辅助内核。
13.根据权利要求1所述的方法,其中,基于由计算装置执行的应用或程序来启动所述内核,并且
14.根据权利要求1所述的方法,还包括:
15.一种非暂时性计算机可读记录介质,包括:被配置为使计算装置执行根据权利要求1至权利要求14中的任意一项所述的方法的指令。
16.一种计算装置,包括:
17.根据权利要求16所述的计算装置,其中,处理器包括:从计算装置的多个核之中分配给内核的核。
18.根据权利要求16所述的计算装置,其中,目标物理存储器空间是计算装置的随机存取存储器的整个存储器空间的一部分。
19.根据权利要求16所述的计算装置,其中,分配的步骤基于页错误被执行。
20.根据权利要求19所述的计算装置,其中,页错误与尚未被分配给第一虚拟存储器地址的物理帧对应。