本发明专利技术公开了一种系统休眠的方法及装置,该方法包括:计算所需申请的内存数;根据计算得到的所述内存数,从非易失性内存中划分出对应的预设数量的物理内存;将所述非易失性内存中划分出的物理内存转换为块设备;使用新生成的所述块设备代替磁盘进行存储内部镜像,用于非易失性内存的系统休眠。本发明专利技术所提供的系统休眠的方法及装置在系统休眠时,系统会将需要保存的数据按照原有的流程保存到由内存转换成的块设备中,取代了原先的磁盘,由于从内存中读取数据要远比从磁盘中读取数据快,从而缩短了系统唤醒的时间,提高了用户体验以及工作效率。
【技术实现步骤摘要】
本专利技术涉及操作系统
,特别是涉及一种系统休眠的方法及装置。
技术介绍
当前在操作系统中,提供了系统的睡眠与休眠两种机制,在节省了系统资源的同时,也提高了用户的体验以及工作效率。当用户使用系统的睡眠或休眠机制时,用户当前所有的工作都会被记录保存,系统唤醒时会重新恢复到之前的工作状态。目前在系统中的睡眠机制让系统进入部分断电状态,将数据保存到内存中,当唤醒时数据从内存中读取并让系统恢复到之前的状态,唤醒所需的时间较短;而系统的休眠机制则是让系统进入全部断电状态,为了能够在下电时仍然可以保存数据,系统休眠时采用磁盘来保存内存镜像,当系统唤醒时则从磁盘设备中读取数据恢复到之前的状态。由于系统从内存读写数据要比从磁盘读取数据块很多,因此,系统睡眠时唤醒的时间非常短。鉴于此,提供一种既满足休眠时断电数据不丢失的要求,又缩短唤醒所需要的时间的系统休眠的方法及装置是非常有必要的。
技术实现思路
本专利技术的目的是提供一种系统休眠的方法及装置,目的在于解决现有休眠机制中系统唤醒所需要的时间较长的问题。为解决上述技术问题,本专利技术提供一种系统休眠的方法,包括:计算所需申请的内存数;根据计算得到的所述内存数,从非易失性内存中划分出对应的预设数量的物理内存;将所述非易失性内存中划分出的物理内存转换为块设备;使用新生成的所述块设备代替磁盘进行存储内部镜像,用于非易失性内存的系统休眠。可选地,所述计算所需申请的内存数包括:通过当前系统中的内存计算所需申请的内存数。可选地,所述根据计算得到的所述内存数,从非易失性内存中划分出对应的预设数量的物理内存包括:获取所述非易失性内存所在的节点;将所述内存数与非易失性内存的物理内存可分配的数量进行比较;当所述物理内存可分配的数量小于所述内存数时,系统休眠终止,否则从固定地址分配所需的物理内存;将起始的所述物理内存的地址转换为虚拟地址。可选地,所述将所述非易失性内存中划分出的物理内存转换为块设备包括:为所述块设备申请设备号;为所述块设备申请新的请求队列,根据所述虚拟地址,从申请的所述物理内存中读取或写入相应的数据;为所述块设备的各个数据结构赋值并注册所述块设备。可选地,在所述计算所需申请的内存数之前还包括:接收用户输入的触发指令,开启所述非易失性内存的系统休眠的功能。本专利技术还提供了一种系统休眠的装置,包括:计算模块,用于计算所需申请的内存数;划分模块,用于根据计算得到的所述内存数,从非易失性内存中划分出对应的预设数量的物理内存;转换模块,用于将所述非易失性内存中划分出的物理内存转换为块设备;代替模块,用于使用新生成的所述块设备代替磁盘进行存储内部镜像,用于非易失性内存的系统休眠。可选地,所述计算模块具体用于:通过当前系统中的内存计算所需申请的内存数。可选地,所述划分模块包括:获取单元,用于获取所述非易失性内存所在的节点;比较单元,用于将所述内存数与非易失性内存的物理内存可分配的数量进行比较;分配单元,用于当所述物理内存可分配的数量小于所述内存数时,系统休眠终止,否则从固定地址分配所需的物理内存;转换单元,用于将起始的所述物理内存的地址转换为虚拟地址。可选地,所述转换模块包括:第一申请单元,用于为所述块设备申请设备号;第二申请单元,用于为所述块设备申请新的请求队列,根据所述虚拟地址,从申请的所述物理内存中读取或写入相应的数据;注册单元,用于为所述块设备的各个数据结构赋值并注册所述块设备。可选地,还包括:触发模块,用于在所述计算所需申请的内存数之前,接收用户输入的触发指令,开启所述非易失性内存的系统休眠的功能。本专利技术所提供的系统休眠的方法及装置,通过计算所需申请的内存数;根据计算得到的内存数,从非易失性内存中划分出对应的预设数量的物理内存;将非易失性内存中划分出的物理内存转换为块设备;使用新生成的块设备代替磁盘进行存储内部镜像,用于非易失性内存的系统休眠。可见,本专利技术所提供的系统休眠的方法及装置在系统休眠时,系统会将需要保存的数据按照原有的流程保存到由内存转换成的块设备中,取代了原先的磁盘,由于从内存中读取数据要远比从磁盘中读取数据快,从而缩短了系统唤醒的时间,提高了用户体验以及工作效率。附图说明为了更清楚的说明本专利技术实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术所提供的系统休眠的方法的一种具体实施方式的流程图;图2为本专利技术所提供的另一实施例中内存申请的过程流程图;图3为本专利技术所提供的另一实施例中内存的块设备驱动过程的流程图;图4为本专利技术实施例提供的系统休眠的装置的结构框图。具体实施方式为了使本
的人员更好地理解本专利技术方案,下面结合附图和具体实施方式对本专利技术作进一步的详细说明。显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。本专利技术所提供的系统休眠的方法的一种具体实施方式的流程图如图1所示,该方法包括:步骤S101:计算所需申请的内存数;步骤S102:根据计算得到的所述内存数,从非易失性内存中划分出对应的预设数量的物理内存;步骤S103:将所述非易失性内存中划分出的物理内存转换为块设备;步骤S104:使用新生成的所述块设备代替磁盘进行存储内部镜像,用于非易失性内存的系统休眠。具体地,系统休眠时保存数据的设备为系统的swap分区,本申请将用新的块设备替换掉原有swap分区中的设备。本专利技术所提供的系统休眠的方法,通过计算所需申请的内存数;根据计算得到的内存数,从非易失性内存中划分出对应的预设数量的物理内存;将非易失性内存中划分出的物理内存转换为块设备;使用新生成的块设备代替磁盘进行存储内部镜像,用于非易失性内存的系统休眠。可见,本专利技术所提供的系统休眠的方法,在系统休眠时,系统会将需要保存的数据按照原有的流程保存到由内存转换成的块设备中,取代了原先的磁盘,由于从内存中读取数据要远比从磁盘中读取数据快,从而缩短了系统唤醒的时间,提高了用户体验以及工作效率。在上述实施例的基础上,步骤S101计算所需申请的内存数可以具体为:通过当前系统中的内存计算所需申请的内存数。所需申请的内存数可以具体为当前系统中的内存的一倍或者两倍。本专利技术将非易失性内存转换为块设备,使用新的生成的块设备代替原有的磁盘用于系统休眠。为了确保在系统唤醒时能够得到正确的块设备,本专利技术实施例分配固定的内存用于块设备。作本文档来自技高网...
【技术保护点】
一种系统休眠的方法,其特征在于,包括:计算所需申请的内存数;根据计算得到的所述内存数,从非易失性内存中划分出对应的预设数量的物理内存;将所述非易失性内存中划分出的物理内存转换为块设备;使用新生成的所述块设备代替磁盘进行存储内部镜像,用于非易失性内存的系统休眠。
【技术特征摘要】
1.一种系统休眠的方法,其特征在于,包括:
计算所需申请的内存数;
根据计算得到的所述内存数,从非易失性内存中划分出对应的预
设数量的物理内存;
将所述非易失性内存中划分出的物理内存转换为块设备;
使用新生成的所述块设备代替磁盘进行存储内部镜像,用于非易
失性内存的系统休眠。
2.如权利要求1所述的系统休眠的方法,其特征在于,所述计
算所需申请的内存数包括:
通过当前系统中的内存计算所需申请的内存数。
3.如权利要求2所述的系统休眠的方法,其特征在于,所述根
据计算得到的所述内存数,从非易失性内存中划分出对应的预设数量
的物理内存包括:
获取所述非易失性内存所在的节点;
将所述内存数与非易失性内存的物理内存可分配的数量进行比
较;
当所述物理内存可分配的数量小于所述内存数时,系统休眠终
止,否则从固定地址分配所需的物理内存;
将起始的所述物理内存的地址转换为虚拟地址。
4.如权利要求3所述的系统休眠的方法,其特征在于,所述将
所述非易失性内存中划分出的物理内存转换为块设备包括:
为所述块设备申请设备号;
为所述块设备申请新的请求队列,根据所述虚拟地址,从申请的
所述物理内存中读取或写入相应的数据;
为所述块设备的各个数据结构赋值并注册所述块设备。
5.如权利要求1至4任一项所述的系统休眠的方法,其特征在
于,在所述计算所需申请的内存数之前还包括:
接收用户输入的触发指令,开启所述非易失性内存的系统休眠的
功能。
6.一种系统休眠的装置,其特征在于,包括:<...
【专利技术属性】
技术研发人员:刘长生,吴楠,
申请(专利权)人:浪潮北京电子信息产业有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。