【技术实现步骤摘要】
一种数据存储方法及装置
本申请涉及计算机
,尤其涉及一种数据存储方法及装置。
技术介绍
在现有的计算机体系结构中,用户进程虚拟地址空间到物理地址空间的映射由操作系统中物理内存管理系统来完成。在实际操作中,由物理内存管理系统动态的为数据分配物理存储空间。当空闲的物理内存空间变小时,内存进程KSWAPD被唤醒,内存中不经常使用的内存页被临时换出至硬盘的交换分区SWAP中;当该内存页再次被访问时,需要将该内存页从SWAP中再次换入至内存中。若被换出至SWAP的内存页在短时间内再次被换入内存,则会造成不必要的内存数据换入、换出,从而影响系统的处理性能。
技术实现思路
有鉴于此,本申请提供了一种数据存储方法及装置,能够解决现有技术中内存数据不必要的换入换出造成系统性能下降的问题。本申请实施例第一方面提供了一种数据存储方法,包括:响应于携带待存储数据的存储请求,为所述待存储数据分配一个对应的虚拟页,得到目标虚拟页;虚拟页与待存储数据一一对应;确定所述目标虚拟页映射的细粒度内存页,得到目标 ...
【技术保护点】
1.一种数据存储方法,其特征在于,所述方法包括:/n响应于携带待存储数据的存储请求,根据所述待存储数据的大小,为所述待存储数据分配一个对应的虚拟页,得到目标虚拟页;虚拟页与待存储数据一一对应;/n确定所述目标虚拟页映射的细粒度内存页,得到目标细粒度内存页;虚拟页与细粒度内存页一一对应,所述目标细粒度内存页的大小大于或等于所述待存储数据的大小;/n将所述待存储数据写入所述目标细粒度内存页;/n所述细粒度内存页利用以下步骤得到:/n从内存中申请一个连续的内存空间;所述内存空间包括至少一个物理页;/n基于当前接收到的待存储数据的大小,将所述内存空间包括的每个物理页划分为多个细粒度内存页。/n
【技术特征摘要】
1.一种数据存储方法,其特征在于,所述方法包括:
响应于携带待存储数据的存储请求,根据所述待存储数据的大小,为所述待存储数据分配一个对应的虚拟页,得到目标虚拟页;虚拟页与待存储数据一一对应;
确定所述目标虚拟页映射的细粒度内存页,得到目标细粒度内存页;虚拟页与细粒度内存页一一对应,所述目标细粒度内存页的大小大于或等于所述待存储数据的大小;
将所述待存储数据写入所述目标细粒度内存页;
所述细粒度内存页利用以下步骤得到:
从内存中申请一个连续的内存空间;所述内存空间包括至少一个物理页;
基于当前接收到的待存储数据的大小,将所述内存空间包括的每个物理页划分为多个细粒度内存页。
2.根据权利要求1所述的方法,其特征在于,所述基于当前接收到的待写入数据的大小,将所述内存空间包括的每个物理页划分为多个细粒度内存页,具体包括:
根据所述当前接收到的待存储数据的大小,从预设的多个内存大小中确定目标内存大小;所述目标内存大小为最小的待选内存大小,所述待选内存大小为所述多个内存大小中大于或等于所述当前接收到的待存储数据大小的内存大小;
当物理页的大小能够被所述目标内存大小整除时,将所述连续的内存空间包括的每个物理页划分为多个大小相同且等于所述目标内存大小的细粒度内存页;
当物理页的大小不能够被所述目标内存大小整除时,将所述连续的内存空间包括的每个物理页划分为第一细粒度内存页和至少一个第二细粒度内存页;所述第一细粒度内存页的大小小于所述目标内存大小,所述第二细粒度内存页的大小等于所述目标内存大小。
3.根据权利要求1所述的方法,其特征在在于,所述基于当前接收到的待存储数据的大小,将所述连续的内存空间包括的每个物理页划分为多个细粒度内存页,之后还包括:
获取每个细粒度内存页的内存页标识;所述内存页标识包括细粒度内存页的大小及其在对应物理页中的页内偏移量;
按照所述内存页标识,将划分得到的细粒度内存页链入对应的空闲链表中;所述空闲链表和所述内存页标识一一对应。
4.根据权利要求3所述的方法,其特征在于,所述确定所述对应的虚拟页映射的内存页,得到目标细粒度内存页,具体包括:
基于所述目标虚拟页,确定所述待存储数据的页内偏移量;
根据所述待存储数据的大小和页内偏移量,从对应的空闲链表中取出一个细粒度内存页作为所述目标细粒度内存页。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述将所述待存储数据写入所述目标细粒度内存页,之后还包括:
根据所述内存页标识,将所述目标细粒度内存页链入对应的第一先进先出链表,并将所述目标细粒度内存页的访问标签设置为第一标识;第一先进先出链表与内存页标识一一对应;
...
【专利技术属性】
技术研发人员:郝晓冉,陈岚,倪茂,
申请(专利权)人:中国科学院微电子研究所,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。