CN113467923A - 一种设备休眠方法及计算设备 - Google Patents
一种设备休眠方法及计算设备 Download PDFInfo
- Publication number
- CN113467923A CN113467923A CN202010245862.6A CN202010245862A CN113467923A CN 113467923 A CN113467923 A CN 113467923A CN 202010245862 A CN202010245862 A CN 202010245862A CN 113467923 A CN113467923 A CN 113467923A
- Authority
- CN
- China
- Prior art keywords
- memory
- memory units
- data
- equipment
- units
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3296—Power saving characterised by the action undertaken by lowering the supply or operating voltage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4418—Suspend and resume; Hibernate and awake
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Power Sources (AREA)
- Stored Programmes (AREA)
Abstract
一种设备休眠方法及计算设备,在该方法中,在设备进入休眠状态之前,释放与前台进程无关的后台进程所占用的内存空间,这样,设备的内存中并没有保存与前台进程无关的后台进程,也就是说,减少了设备在休眠时存储在内存中的数据,从而当设备需要唤醒时,只需要从内存中读取较少的数据即可迅速恢复工作状态,可以减少在唤醒设备时从内存中读取数据的时延,可以加快设备的唤醒速度。另外,由于设备在休眠时将数据存储在了内存中,也就是说,在休眠状态中只需要对设备的内存进行供电,可以保证设备的低功耗。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种设备休眠方法及计算设备。
背景技术
设备功耗问题一直是业内的一个挑战。解决功耗问题的方法之一为:在设备的系统处于空闲时,将其休眠;当需要使用时,快速唤醒系统,以恢复工作状态。从而可以节省设备在未被使用时的功耗,并在使用时将其快速唤醒,降低休眠对用户使用的影响。
作为一种示例,一种休眠方式为休眠到内存(suspend to random accessmemory,STR),其主要思想是:当设备的系统处于空闲状态时,将系统正在运行的各个任务对应的数据、缓存中的数据以及中央处理器(central processing unit,CPU)寄存器中的数据等写入到内存中,关闭CPU以及部分器件,从而使得设备处于低功耗状态。当需要使用该设备时,则从内存中读取相应地数据,解冻任务,恢复整个系统。由于休眠到内存后,数据均保存在内存中,因此,在休眠到内存方式中,只需要对内存和剩余未关闭的器件进行供电即可,从而可以降低设备在系统空闲时的功耗。
但是,当需要唤醒设备时,需要从内存中读取数据,而读取数据的过程存在一定的时延,从而会造成系统的唤醒速度较慢。因此,如何均衡设备的功耗以及唤醒速度,是目前亟待解决的技术问题。
发明内容
本申请提供一种设备休眠方法及计算设备,用以在保证设备的低功耗的情况,加快设备的唤醒速度。
第一方面,提供一种设备休眠方法,在该方法中,在设备的系统处于空闲状态时,首先,结束系统中运行的与前台进程无关的后台进程,并释放该后台进程占用的内存空间,然后,将系统运行的信息存储到该设备的内存,其中,系统运行的信息不包括被释放的后台进程的信息,进而控制该设备进入休眠状态。在本申请实施例中,控制设备进入休眠状态包括:关闭该设备中除内存外的其他器件,该其他器件包括该设备的处理器。
在上述技术方案中,由于在设备进入休眠状态之前,设备的内存中并没有保存与前台进程无关的后台进程,也就是说,减少了设备在休眠时存储在内存中的数据,这样,当设备需要唤醒时,只需要从内存中读取较少的数据即可迅速恢复工作状态,可以减少在唤醒设备时从内存中读取数据的时延,从而加快设备的唤醒速度。另外,由于设备在休眠时将数据存储在了内存中,也就是说,在休眠状态中只需要对设备的内存进行供电,可以保证设备的低功耗。
在一种可能的设计中,在控制设备进入休眠状态之前,还可以将内存中的第一部分内存单元的数据压缩后迁移到内存中的第二部分内存单元中。其中,设备的内存包括多个内存单元,第一部分内存单元中被占用的存储空间小于阈值,第二部分内存单元包括存储操作系统数据的内存单元以及被占用的存储空间大于或等于该阈值的内存单元,该阈值可以根据实际使用进行设置。在这种情况,控制设备进入休眠状态包括:关闭该设备中除该第二部分内存单元之外的其他器件。
在上述技术方案中,若设备的内存是包括多个内存单元的,则在保存系统运行的信息时,系统运行的信息,例如各个处于运行状态的进程的数据,可能会分散存储在该多个内存单元中,在这种情况下,可以通过将内存中存储的数据进行压缩并进行迁移到一部分内存单元中,例如,迁移到第二部分内存单元中,这样,该系统运行的信息只存储在该第二部分内存单元中,从而可以减少系统运行的信息所占用的内存单元的数量,从而在控制设备进入休眠状态时,则可以只对该第二部分内存单元进行供电,而不用对整个内存都供电,可以进一步减少设备在处于休眠状态时的功耗。
进一步地,在对内存中存储的数据进行压缩并迁移时,可以选择对特定的内存单元中存储的数据进行压缩并迁移到其他内存单元中,该特定的内存单元可以是被占用的存储空间小于阈值的内存单元,这样,可以减少进行压缩处理的数据量,且可以减少需要迁移的数据量。
进一步,在上述技术方案中,是将被占用的存储空间小于阈值的第一部分内存单元中的数据进行迁移,这样,迁移的数据量较小,从而当设备需要唤醒时,只需要将该少量的数据迁移到初始位置,可以减少在唤醒阶段的处理时长,提高唤醒的速度。
在一种可能的设计中,在控制设备进入休眠状态之前,还可以释放该内存中的非活动页占用的内存空间。
在上述技术方案中,设备的内存可以根据数据使用的频繁程度等因素,将内存页分为活动页和非活动页,例如,活动页中的数据可以表示最近被使用的数据,而非活动页中的数据可以表示一段时间内未被使用的数据,因此,通过在设备进入休眠状态前释放非活动页占用的内存空间,可以进一步减少设备的系统运行的信息所占用的内存空间。并且,由于进一步减少了系统运行的信息所占用的内存空间,则内存中存储的数据量也减少了,则可以进一步减少进行压缩处理的数据量以及需要迁移的数据量。进一步,也可以减少在唤醒阶段的处理时长,提高唤醒的速度。
在一种可能的设计中,在控制设备进入休眠状态之后,若需要唤醒设备,则可以对该设备的其他器件恢复供电,并将存储于第二部分内存单元中的压缩数据解压缩后迁移到第一部分内存单元中,这样,设备则可以根据该第一部分内存单元和该第二部分内存单元中存储的数据恢复在进入休眠状态前该系统中运行的进程。
在上述技术方案中,当需要唤醒设备时,则可以将压缩并迁移的数据,进行解压缩处理,然后迁移回初始内存单元(即第一部分内存单元)中,以使处理器通过从相应的内存单元中读取数据以恢复在设备进入休眠状态之前该系统中运行的进程。
若系统需要恢复被结束的后台进程,则需要重新创建对应的后台进程;若系统需要使用被释放的非活动页中的数据,则可以按照缺页情况,从数据的存储位置重新读取。
第二方面,提供一种设备休眠方法,在该方法中,在设备的系统处于空闲状态时,首先,将系统运行的信息保存到设备的内存,然后,将内存中的第一部分内存单元的数据压缩后迁移到内存中的第二部分内存单元中,其中,设备的内存包括多个内存单元,第一部分内存单元中被占用的存储空间小于阈值,第二部分内存单元包括存储操作系统数据的内存单元以及被占用的存储空间大于或等于阈值的内存单元,该阈值可以根据实际使用情况进行设置,最后,控制设备进入休眠状态,其中,在设备进入休眠状态时,关闭设备中除该第二部分内存单元之外的其他器件,该其他器件包括设备的处理器。
在上述技术方案中,在控制设备进入休眠状态之前,将保存在内存的系统运行的信息进行压缩,可以减少系统运行的信息所占用的内存空间。进一步,将压缩后的数据迁移到一部分内存单元中,例如,迁移到包括存储操作系统数据的内存单元以及被占用的存储空间大于或等于阈值的第二部分内存中,这样,系统运行的信息只存储在该第二部分内存单元中,从而可以减少系统运行的信息所占用的内存单元的数量,从而在控制设备进入休眠状态时,则可以只对该第二部分内存单元进行供电,而不用对整个内存都供电,可以减少设备在处于休眠状态时的功耗。
在一种可能的设计中,在将系统运行的信息保存到设备的内存之前,可以先结束系统中运行的与前台进程无关的后台进程,并释放该后台进程占用的内存空间。
在上述技术方案中,通过结束并释放与前台进程无关的后台进程,从而可以减少在设备进入休眠状态时保存在内存中的数据量,可以进一步减少在休眠状态时需要供电的内存单元。并且由于内存中存储的数据量减少了,从而可以进一步减少进行压缩处理的数据量以及需要迁移的数据量。
进一步,由于减少了设备在休眠时存储在内存中的数据,这样,当设备需要唤醒时,只需要从内存中读取较少的数据即可迅速恢复工作状态,可以减少在唤醒设备时从内存中读取数据的时延,从而加快设备的唤醒速度。
在一种可能的设计中,在控制设备进入休眠状态之前,还可以释放内存中的非活动页占用的内存空间。
在上述技术方案中,通过释放非活动页占用的内存空间,可以进一步减少在设备进入休眠状态时,保存在内存中的数据量。
在一种可能的设计中,在控制设备进入休眠状态之后,若需要唤醒设备,则可以首先对其他器件恢复供电,然后,将存储于第二部分内存单元中的压缩数据解压缩后迁移到第一部分内存单元中,这样,设备则可以根据第一部分内存单元和第二部分内存单元中存储的数据恢复在进入休眠状态前系统中运行的进程。
在上述技术方案中,当需要唤醒设备时,则可以将压缩并迁移的数据,进行解压缩处理,然后迁移回初始内存单元(即第一部分内存单元)中,以使处理器通过从相应的内存单元中读取数据以恢复在设备进入休眠状态之前该系统中运行的进程。
第三方面,提供一种计算设备,该计算设备包括处理器,用于实现上述第一方面描述的方法。该计算设备还可以包括内存,用于存储程序指令和数据。该内存与该处理器耦合,该处理器可以调用并执行该内存中存储的程序指令,用于实现上述第一方面描述的方法中的任意一种方法。
在一种可能的设计中,所述处理器用于:在该设备的系统处于空闲状态时,结束系统中运行的与前台进程无关的后台进程,并释放该后台进程占用的内存空间;将系统运行的信息存储到该设备的内存,所述系统运行的信息不包括所述后台进程的信息;并控制所述设备进入休眠状态。
第四方面,提供一种计算设备,该计算设备包括处理器,用于实现上述第二方面描述的方法。该计算设备还可以包括内存,用于存储程序指令和数据。该内存与该处理器耦合,该处理器可以调用并执行该内存中存储的程序指令,用于实现上述第二方面描述的方法中的任意一种方法。
在一种可能的设计中,所述处理器用于:在设备的系统处于空闲状态时,将所述系统运行的信息保存到所述设备的内存;将所述内存中的第一部分内存单元的数据压缩后迁移到所述内存中的第二部分内存单元中,其中,所述内存包括多个内存单元,所述第一部分内存单元中被占用的存储空间小于阈值,所述第二部分内存单元包括存储操作系统数据的内存单元以及被占用的存储空间大于或等于所述阈值的内存单元;控制所述设备进入休眠状态,其中,在所述休眠状态时,关闭所述设备中除所述第二部分内存单元之外的其他器件。
第五方面,提供一种计算设备,该计算设备包括释放模块、存储模块以及控制模块,这些模块可以执行上述第一方面任一种设计示例中所执行的相应功能。例如:
所述释放模块,用于在所述设备的系统处于空闲状态时,结束所述系统中运行的与前台进程无关的后台进程,并释放所述后台进程占用的内存空间;所述存储模块,用于将所述系统运行的信息存储到所述设备的内存,所述系统运行的信息不包括所述后台进程的信息;所述控制模块,用于控制所述设备进入休眠状态。
第六方面,提供一种计算设备,该计算设备包括存储模块以及控制模块,这些模块可以执行上述第二方面任一种设计示例中所执行的相应功能。例如:
所述存储模块,用于在所述设备的系统处于空闲状态时,将所述系统运行的信息保存到所述设备的内存;以及,将所述内存中的第一部分内存单元的数据压缩后迁移到所述内存中的第二部分内存单元中,其中,所述内存包括多个内存单元,所述第一部分内存单元中被占用的存储空间小于阈值,所述第二部分内存单元包括存储操作系统数据的内存单元以及被占用的存储空间大于或等于所述阈值的内存单元;所述控制模块,用于控制所述设备进入休眠状态,其中,在所述休眠状态时,关闭所述设备中除所述第二部分内存单元之外的其他器件。
第七方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被计算机执行时,使所述计算机执行第一方面或第二方面中任意一项所述的方法。
第八方面,本申请实施例提供一种计算机程序产品,所述计算机程序产品存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被计算机执行时,使所述计算机执行第一方面或第二方面中任意一项所述的方法。
第九方面,本申请提供了一种芯片系统,该芯片系统包括处理器,还可以包括存储器,用于实现第一方面或第二方面所述的方法。该芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。
上述第三方面至第九方面及其实现方式的有益效果可以参考对第一方面或第二方面的方法及其实现方式的有益效果的描述。
附图说明
图1为本申请实施例提供的设备的一个示例性的结构示意图;
图2为本申请实施例提供的设备休眠方法的一种示例的流程图;
图3为本申请实施例中处理器获取的进程树的一种示例的示意图;
图4为本申请实施例中活动页列表和非活动页列表的一种示例的示意图;
图5为本申请实施例提供的设备休眠方法的另一种示例的流程图;
图6为本申请实施例中将第一部分内存单元的数据压缩后迁移到内存中的第二部分内存单元的一种示例的示意图;
图7为本申请实施例提供的一种内存的结构示意图;
图8为本申请实施例提供的设备休眠方法的另一种示例的流程图;
图9为本申请实施例提供的计算设备的一种示例的结构示意图;
图10为本申请实施例提供的计算设备的另一种示例的结构示意图。
具体实施方式
为了使本申请实施例的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施例作进一步地详细描述。
为便于本领域技术人员对本申请的技术方案的理解,下面对本申请所涉及的技术术语进行说明。
1)设备,可以包括终端设备(terminal equipment),网络设备,移动边缘计算设备(mobile edge computing,MEC)或者也可以是物联网(internet of things,IoT)设备等。其中,终端设备可以包括移动电话(或称为“蜂窝”电话),具有移动终端的计算机,便携式、袖珍式、手持式、计算机内置的或者车载的移动装置,智能穿戴式设备等。网络设备可以包括接入网设备,例如包括基站,接入点等用于接入网中在空口通过一个或多个小区与无线终端通信的设备。核心网设备可以包括数据网络(data network,DN)设备,用户数据管理(user data management,UDM)设备等。
2)系统,可以包括设备中运行的操作系统,安装在设备中的各种应用程序,设备运行时的各种进程,以及设备的各种应用程序或者硬件所对应的寄存器信息等。其中,设备运行时的进程可以包括前台进程或者后台进程。操作系统可以是手机或者手表或者平板电脑或者基站中的操作系统,例如操作系统可以为Windows系统、MAC OS系统、Linux系统或者Android系统等,当然也可以是面向未来的系统,本申请实施例描述的系统是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定。
3)前台进程,可以为处于运行状态的进程中,和用户有交互的进程,或者可以为用户当前正在使用的进程。例如,用户在使用手机中的音乐播放程序播放音乐,则用于支持该音乐播放程序运行的至少一个进程即为前台进程。需要说明的是,进程和程序不是一一对应的关系,一个程序可对应多个进程,即多个进程可执行同一程序,但是一个进程只能对应一个程序。
4)后台进程,可以为处于运行状态的进程中,不和用户交互的进程,通常可以指后台服务进程。例如,用户的手机在开机会自动启动的定位服务程序,但是用户未使用,则用于支持该定位服务程序运行的至少一个进程即为后台进程。
另外,前台进程和后台进程是计算机领域的通用定义,当然,在某些情况下,也可以有其他名称,例如,将前台进程称为活跃进程,或者将后台进程称为非活跃进程,在此不对具体的名称进行限制。在本申请实施例中,以“前台进程”和“后台进程”为例进行说明。
5)本申请实施例中“多个”是指两个或两个以上,鉴于此,本申请实施例中也可以将“多个”理解为“至少两个”。“至少一个”,可理解为一个或多个,例如理解为一个、两个或更多个。例如,包括至少一个,是指包括一个、两个或更多个,而且不限制包括的是哪几个,例如,包括A、B和C中的至少一个,那么包括的可以是A、B、C、A和B、A和C、B和C、或A和B和C。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,字符“/”,如无特殊说明,一般表示前后关联对象是一种“或”的关系。
除非有相反的说明,本申请实施例提及“第一”、“第二”等序数词用于对多个对象进行区分,不用于限定多个对象的顺序、时序、优先级或者重要程度。
下面介绍本申请实施例提供的一种设备的结构图。
请参考图1,示出了设备的一个示例性的结构示意图。如图1所示,设备100包括:处理器110、存储器120和外围设备130等部件。本领域技术人员可以理解,图2中示出的计算设备的结构并不构成对计算设备的限定,本发明实施例提供的计算设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
这些部件可通过一根或多根总线140或信号线进行通信,总线可以分为地址总线、数据总线、控制总线等。
处理器110可以是中央处理器(central processing unit,CPU),加速处理器(accelerated processing unit,APU),图形处理器(graphics processing unit,GPU),网络处理器(network processor,NP)等,或者也可以是前述多种处理器的组合等。处理器110还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(application-specificintegrated circuit,ASIC),可编程逻辑器件(programmable logic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complex programmable logic device,CPLD),现场可编程逻辑门阵列(field-programmable gate array,FPGA),通用阵列逻辑(genericarray logic,GAL)或其任意组合。
存储器120可以包括易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);存储器120也可以包括非易失性存储器(non-volatilememory),例如快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD);存储器120还可以包括上述种类的存储器的组合。存储器120的个数可以为一个或者多个,具体可以根据需要进行设置。存储器120也可以是处理器110中的存储器,在此不做限制。
外围设备130可以包括显示器、扬声器、麦克风等器件。
存储器120,用于存储设备100的系统所包括的代码和数据,例如应用程序和操作系统对应的代码。存储器120可以包括内存、外部存储器以及寄存器,内存可以用于存储操作系统以及处于运行状态的应用程序对应的代码,外部存储器以及寄存器可以用于存储处于运行状态的应用程序在运行过程中产生的数据,外部存储器还可以用于存储其他未运行的应用程序对应的代码。处理器110可将外部存储器中存储的代码或者数据调存到内存中,以实现该代码定义的功能。例如,处理器110可以在设备100开机时,将操作系统对应的代码调存到内存中,从而在设备100上实现操作系统的各种功能;处理器210也可以根据用户需求,将其他应用程序对应的代码调存到内存中,从而在设备100上实现该应用程序的各种功能。
影响设备100使用的其中一个因素是设备功耗较大的问题。在相关技术中,为了降低设备的功耗,提出一种设备的休眠及恢复方式,即STR。在该方法中,当设备的系统处于空闲状态时,将系统正在运行的各个任务对应的数据、缓存中的数据等保存到内存中,关闭CPU以及部分器件,从而使得设备处于低功耗状态;当需要使用该设备时,则从内存中读取相应地数据,解冻任务,恢复整个系统。
但是,由于休眠到内存后,数据均保存在内存中,当需要唤醒设备时,需要从内存中读取数据,而读取数据的过程存在一定的时延,从而会造成系统的唤醒速度较慢。因此,如何均衡设备的功耗以及唤醒速度,是目前亟待解决的技术问题。
鉴于此,本申请实施例提供一种设备休眠方法。在该方法中,通过减少设备在休眠时存储在内存中的数据,这样,当设备需要唤醒时,只需要从内存中读取较少的数据即可迅速恢复工作状态,可以减少在唤醒设备时从内存中读取数据的时延,从而加快设备的唤醒速度。且,由于设备在休眠时将数据存储在了内存中,也就是说,在休眠状态中只需要对设备的内存进行供电,可以保证设备的低功耗,实现了均衡设备的功耗和唤醒速度的效果。
下面,结合附图对本申请实施例中的方法进行介绍。为方便说明,在下文中,将以该方法应用于如图1所示的设备100中为例。
请参考图2,为本申请实施例提供的一种设备休眠方法的流程图,该流程图描述如下:
S21、设备开机并处于工作状态。
当设备100开机后,设备100的处理器110则将设备100的操作系统对应的代码存入内存中,然后执行该内存中的代码,启动设备100。然后,处理器110则可以根据用户的操作,启动应用程序。例如,处理器110检测到用户启动音乐播放应用程序的操作,则处理器110将该应用程序对应的代码从外部存储器中存入到内存,并执行该代码,以播放音乐。当然,处理器110也可以执行操作系统中预设的开机自动启动的应用程序,例如,定位应用程序等,具体执行过程与前述启动音乐播放应用程序的过程相似,在此不再赘述。
S22、在设备的系统处于空闲状态时,结束系统中运行的与前台进程无关的后台进程,并释放后台进程占用的内存空间。
当启动设备100后,处理器110可以根据在预设时长内是否检测到用户对设备100的操作指令,来确定设备100的系统是否处于空闲状态。该预设时长例如为30秒,当处理器110在30秒内未检测到用户对设备100的任意一个操作指令,则处理器110确定设备100的系统处于空闲状态。需要说明的是,前述确定系统是否处于空闲状态的过程只是一种示例,也可以通过其他方式控制设备处于空闲状态,例如,检测到用户用于控制设备处于空闲状态的操作,则设备根据用户的操作进入空闲状态,本申请实施例中不对此进行限制。
当确定系统处于空闲状态时,为了减少内存空间的占用,处理器110可以结束系统中运行的与前台进程无关的后台进程,并释放后台进程占用的内存空间。其中,与前台进程无关的后台进程,可以为,结束该后台进程后不会影响前台进程的使用的后台进程。
作为一种示例,处理器110可以获取由系统中运行的进程构成的进程树,然后根据该进程树,确定出与前台进程无关的后台进程。其中,进程树用于指示多个进程之间的依赖关系,例如,第一个进程为第二个进程的子进程,则说明第一个进程与第二个进程相关或者第一个进程依赖第二个进程。
如图3所示,为处理器110获取的进程树的一种示例的示意图。如图3所示,设备100的操作系统中处于运行状态的进程包括进程1~进程14,其中,进程1为初始(init)进程,进程2~进程5为在init进程的子进程,即进程2~进程5依赖init进程;进程6和进程7为进程2的子进程,进程8~进程10为进程3的子进程,进程11和进程12为进程4的子进程,进程13和进程14为进程8的子进程。然后,处理器110根据各个进程是否与用户进行交互,确定出前台进程和后台进程,例如,处理器110确定出前台进程为进程10~进程14,则其余的进程中除init进程之外的进程均为后台进程,即进程2~进程9。在确定出前台进程和后台进程后,处理器110根据该进程树可以判断出与前台进程10相关的后台进程为进程3,与前台进程11和前台进程12相关的后台进程均为进程4,与前台进程13和前台进程14相关的后台进程均为进程8,则进程2~进程9中与前台进程无关的后台进程为进程2、进程5~进程7和进程9。
当然,处理器110也可以通过其他方式确定出与前台进程无关的后台进程,在此不作限制。
在处理器110确定出与前台进程无关的后台进程后,则结束与前台进程无关的后台进程,并释放该后台进程所占用的内存空间。
需要说明的是,为了进一步减少进程所占用的内存空间,处理器110除了可以结束与前台进程无关的后台进程,还可以结束部分前台进程。例如,处理器110可以统计每个前台进程与用户的交互次数,然后结束交互次数最少或者交互次数少于预设次数的前台进程,在此不作限制。在本申请实施例中,以处理器110仅结束与前台进程无关的后台进程为例进行说明。
S23、释放内存中的非活动页占用的内存空间。
在设备100处于工作状态时,操作系统为了方便对内存空间进行管理,可以根据每个内存页的访问频率,形成活动页列表(active page list)和非活动页列表(inactivepage list)。例如,将经常访问的内存页或者访问频率高于或等于预设次数的内存页存入到活动页列表中,然后将不经常访问或者访问频率低于预设次数的内存页存入非活动页列表中。当然,非活动页列表中也可以包括无效页(invalid page),该无效页可以是已经结束的进程所占用的内存页等,在此不作限制。
例如,请参考图4,若inactive page list中的内存页刚访问过,则处理器110会将该内存页从inactive page list中迁移到active page list的首部;若active page list的尾部中的内存页刚被访问过,则处理器110会将该内存页从active page list的尾部迁移到active page list的首部;若active page list的尾部内存页长时间未被访问,则处理器110会将该内存页迁移到inactive page list的首部,且,处理器110也会根据inactive page list中每个内存页未被访问的频率高低,实时对inactive page list中内存页进行排序,访问频率低的靠近尾部,访问频率高的靠近首部。
因此,在本申请实施例中,为了进一步减少进程所占用的内存空间,处理器110在确定操作系统处于空闲状态时,可以释放inactive page list尾部的内存页或者整个inactive page list中的内存页,或者,将inactive page list尾部的内存页或者整个inactive page list中的内存页中的数据迁移至设备100的外部存储器中,以进一步减少进程所占用的内存空间。
需要说明的是,步骤S23为可选步骤,即不是必须要执行的。另外,若执行步骤S23,在本申请实施例中,不对步骤S22和步骤S23的执行顺序进行限制,例如,可以先执行步骤S22再执行步骤S23,或者也可以先执行步骤S23再执行步骤S22,或者也可以同时执行步骤S22和步骤S23。
S24、将系统运行的信息存储到设备的内存。
在本申请实施例中,系统运行的信息可以包括操作系统的计算机代码和运行过程中产生的数据、处于运行状态的应用程序对应的计算机代码、进程和数据,以及设备的各种硬件,例如内存、处理器110、寄存器等对应的寄存器信息等,还可以包括缓存(cache)中被修改的数据,在此不一一列举。但是该系统运行的信息不包括前述被结束的与前台进程无关的后台进程的信息,若处理器110还执行了步骤S23,则该系统运行的信息还不包括非活动页中的数据。
将系统运行的信息存储到设备的内存,主要是指,将系统运行的信息中存储在内存之外的信息存储到内存中,例如,将寄存器以及缓存中存储的系统运行的信息存储到内存中,对于系统运行的信息中已经保存在内存的部分数据则不用执行该步骤。
S25、控制所述设备进入休眠状态。
在执行上述步骤之后,处理器110则控制设备进入休眠状态。在本申请实施例中,控制设备进入休眠状态包括:关闭设备中除内存外的其他器件,该其他器件包括设备的处理器。
S26、在需要唤醒设备时,对其他器件恢复供电,根据内存中存储的数据恢复系统。其中所述恢复系统包括恢复在进入休眠状态前所述系统中运行的进程。
当然,若在进入休眠状态之前,处理器110将寄存器中系统运行的信息存储到内存,则处理器110在恢复对其他器件供电之后,可以将该部分数据重新写回到寄存器中,然后根据内存和寄存器中的数据恢复系统。在本发明实施例中,所述根据内存中存储的数据恢复系统包括根据内存和寄存器中的数据恢复设备的操作系统、系统中运行的进程以及恢复设备的各种硬件处于工作状态等。例如,可以根据存储的进程的信息恢复在进入休眠状态前所述系统中运行的进程。
另外,若系统需要恢复被结束的后台进程,则需要重新创建对应的后台进程;若系统需要使用被释放的非活动页中的数据,则可以按照缺页情况,从数据的存储位置重新读取。
在上述技术方案中,由于在设备进入休眠状态之前,设备的内存中并没有保存与前台进程无关的后台进程,也就是说,减少了设备在休眠时存储在内存中的数据,这样,当设备需要唤醒时,只需要从内存中读取较少的数据即可迅速恢复工作状态,可以减少在唤醒设备时从内存中读取数据和恢复数据的时延,从而加快设备的唤醒速度。另外,由于设备在休眠时将数据存储在了内存中,也就是说,在休眠状态中只需要对设备的内存进行供电,可以保证设备的低功耗。
在图2所示的实施例中,主要是针对加快设备的唤醒速度来实现设备的功耗以及唤醒速度的均衡的效果的。在其他实施例中,也可以通过进一步降低设备的功耗来实现设备的功耗以及唤醒速度的均衡。请参考图5,为本申请实施例提供的设备休眠方法的另一种示例的流程图,该流程图的描述如下:
S51、设备开机并处于工作状态。
步骤S51与步骤S21相似,在此不再赘述。
S52、在设备的系统处于空闲状态时,将系统运行的信息保存到设备的内存。
处理器110确定系统是否处于空闲状态的方式,与步骤S22中相似,在此不再赘述。在本申请实施例中,系统运行的信息可以包括操作系统的计算机代码和运行过程中产生的数据、处于运行状态的应用程序对应的计算机代码、进程和数据,以及设备的各种硬件,例如内存、处理器110、寄存器等对应的寄存器信息等,还可以包括缓存(cache)中被修改的数据,在此不一一列举。当处理器110确定系统处于空闲状态,则将上述系统运行的信息保存到内存中。
S53、将内存中的第一部分内存单元的数据压缩后迁移到内存中的第二部分内存单元中。
在本申请实施例中,设备的内存包括多个内存单元,内存单元可以为内存条或者内存芯片或者是内存颗粒等,在此不对内存单元进行限制。
处理器110可以记录该多个内存单元中每个内存单元被占用的存储空间的情况,然后根据每个内存单元被占用的存储空间的情况,对内存单元中存储的数据进行选择性压缩和迁移。例如,根据每个内存单元被占用的存储空间的情况,将该多个内存单元分为第一部分内存单元和第二部分内存单元,第一部分内存单元包括至少一个内存单元,第二部分内存单元也包括至少一个内存单元。其中,第一部分内存单元中被占用的存储空间小于阈值,第二部分内存单元包括存储操作系统数据的内存单元以及被占用的存储空间大于或等于该阈值的内存单元。该阈值可以是预先设置好的,或者,也可以是处理器110根据每个内存单元被占用的存储空间的情况确定的,例如,按照被占用的存储空间由多到少的顺序对该多个内存单元进行排序,然后将该阈值设置为:排序后位于中间位置的内存单元被占用的存储空间的数值,当然,该阈值也可以采用其他方式设置,在此不一一说明。
作为一种示例,请参考图6,以内存单元为动态随机存取存储器(dynamic randomaccess memory,DRAM)芯片,设备100的内存包括DRAM芯片1~DRAM芯片8这8个DRAM芯片为例。
处理器110可以记录每个DRAM芯片被占用的存储空间的情况。例如,DRAM芯片1~DRAM芯片4被占用的存储空间均为10%,DRAM芯片5~DRAM芯片6被占用的存储空间为5%,DRAM芯片7中存储操作系统的数据且被占用的存储空间为21%,DRAM芯片8被占用的存储空间为21%。
然后,处理器110根据预设的阈值,例如为20%,将8个DRAM芯片分为第一部分内存单元和第二部分内存单元。由于DRAM芯片1~DRAM芯片6中被占用的存储空间均小于20%,DRAM芯片7和DRAM芯片8被占用的存储空间大于20%,且操作系统的数据存储在DRAM芯片7中,因此,处理器110将DRAM芯片1~DRAM芯片6划分为第一部分内存单元,将DRAM芯片7和DRAM芯片8划分为第二部分内存单元。
进而,处理器110将第一部分内存单元中的数据进行压缩,即将DRAM芯片1~DRAM芯片6中的数据进行压缩,然后,将压缩后的数据迁移到DRAM芯片7和DRAM芯片8。在图6中,以将DRAM芯片1~DRAM芯片4中压缩后的数据迁移到DRAM芯片7,将DRAM芯片5~DRAM芯片6中压缩后的数据迁移到DRAM芯片8为例。在本申请实施例中,处理器110可以调用对应的压缩软件的计算机程序对DRAM芯片1~DRAM芯片6中的数据进行压缩,或者,设备100中还包括专用于进行数据压缩的器件,处理器110可以控制该器件对DRAM芯片1~DRAM芯片6中的数据进行压缩,在此不作限制。
当然,在上述示例中,也可以将第一部分内存单元的数据全部迁移至第二部分内存单元中的其中一个内存单元,例如,将DRAM芯片1~DRAM芯片6中的数据进行压缩后迁移至DRAM芯片7中。且,为了进一步减少操作系统运行的信息所占用的内存单元的数量,也可以将第二部分内存单元中未存储操作系统的数据的内存单元中的数据迁移至存储操作系统的数据的内存单元,例如,DRAM芯片8中的数据迁移至DRAM芯片7中。具体的迁移方式在此不作限制。
通过将保存在内存的系统运行的信息进行压缩,可以减少系统运行的信息所占用的内存空间。进一步,将压缩后的数据迁移到一部分内存单元中,例如,迁移到包括存储操作系统数据的内存单元以及被占用的存储空间大于或等于阈值的第二部分内存中,这样,系统运行的信息只存储在该第二部分内存单元中,从而可以减少系统运行的信息所占用的内存单元的数量。
需要说明的是,若为了最小化系统运行的信息所占用的内存单元的数量,则将该阈值设置为一个较大的值,例如,为单个内存单元的存储空间的80%,这样,当各个内存单元中存储的数据量均较大,例如均为60%,则需要进行压缩和迁移的数据量也会较大,从而给系统带来了较大的压缩和迁移的开销,因此,合理地设置前述用于对内存单元进行分类的阈值,可以在尽可能地减少系统运行的信息所占用的内存单元的数量的情况下,避免过大的压缩和迁移的开销。
另外,在一些情况中,若第一部分内存单元中存储的数据量过大,即使被压缩后也无法存储在第二部分内存单元中,在这种情况下,也可以将压缩后的数据存储到第一部分内存单元中。例如,在前述示例中,DRAM芯片1~DRAM芯片6为第一部分内存单元,DRAM芯片7和DRAM芯片8为第二部分内存单元,当DRAM芯片7和DRAM芯片8中的存储空间不足时,也可以将压缩后的数据存储到DRAM芯片1~DRAM芯片6中的一个DRAM芯片中,例如存储到DRAM芯片6中,这样,压缩后的数据只占用了3个DRAM芯片,也可以起到减少系统运行的信息所占用的内存单元的数量的作用。
或者,若第一部分内存单元中存储的数据量过大,即使被压缩后也无法存储在第二部分内存单元的剩余存储空间中,在这种情况下,也可以对第二部分内存单元中的数据进行压缩,以减小第二部分内存单元中的数据所占用的存储空间。
S54、控制所述设备进入休眠状态。
与图2所示的实施例不同的是,在本申请实施例中,控制设备进入休眠状态时,需要关闭设备中除第二部分内存单元之外的其他器件,其中,其他器件包括处理器。
这样,在设备进入休眠状态时,则可以只对该第二部分内存单元进行供电,而不用对整个内存都供电,可以减少设备在处于休眠状态时的功耗。
作为一种示例,请参考图7,为本申请提供的一种内存的结构示意图。如图7所示,内存可以包括控制逻辑单元,该控制逻辑单元包括控制接口模块、模式转换模块以及对各个内存单元进行独立供电的管理控制模块。其中,控制接口模块用于指示模式转换模块处于休眠状态还是运行状态,管理控制模块根据模式转换模块所指示的状态,对内存单元的供电状态进行调整,若模式转换模块指示处于休眠状态,则管理控制模块需要根据控制接口模块输入的信息,对部分内存单元进行供电;若模式转换模块指示处于运行状态,则管理控制模块需要对所有的内存单元进行供电。其中,在模式转换模块指示处于休眠状态时,控制接口模块可以接收处理器110发送的需要供电的内存单元的标识(即第二部分内存单元的标识),并将该信息发送给管理控制模块,以使管理控制模块仅对该第二部分内存单元进行供电。
S55、在需要唤醒设备时,对其他器件恢复供电,并将存储于第二部分内存单元中的压缩数据解压缩后迁移到第一部分内存单元中,根据第一部分内存单元和第二部分内存单元中存储的数据恢复系统。
由于在设备进入休眠状态时,处理器110对第一部分内存单元中的数据进行了压缩迁移,因此,在唤醒设备时,需要将进行压缩并迁移的数据重新写回初始位置即写回第一部分内存单元中,然后根据内存单元和寄存器中的数据恢复系统。在本发明实施例中,所述根据内存中存储的数据恢复系统包括根据内存和寄存器中的数据恢复设备的操作系统、系统中运行的进程以及恢复设备的各种硬件处于工作状态等。例如,处理器110可以从读取第一部分内存单元中读取在进入休眠状态前系统中运行的进程的信息,解冻进程,以恢复设备在进入休眠状态之前的进程状态。也可以根据内存和寄存器中的数据恢复设备的操作系统、系统中运行的进程以及恢复设备的各种硬件处于工作状态等。
在本申请实施例中,处理器110可以同步进行根据第二部分内存单元中操作系统对应的数据恢复操作系统的过程以及对压缩并迁移的数据进行解压缩并写回到初始位置的过程,从而可以加快唤醒设备的速度。
需要说明的是,为了进一步加快唤醒设备的速度,当对设备的其他器件恢复供电后,针对该第一部分内存单元中的数据,可以只进行解压操作,然后直接将解压后的数据迁移至压缩前的数据所对应的寄存器中。在这种情况下,在对第一部分内存单元中的数据进行压缩时,可以在压缩数据中增加位置标识信息,该位置标识信息可以用于指示在进行压缩处理之前的数据所在的寄存器地址,这样,当数据解压后,可以直接根据该位置标识信息,写回相应的寄存器,而不用将解压后的数据先写入第一部分内存单元,然后再从第一部分内存单元中写入到寄存器中,可以减少处理器的处理流程,加快唤醒设备的速度。
在图2和图5所示的实施例中,分别从两个方面对本申请提供的设备休眠方式进行了描述,在一些情况下,图2和图5所示的实施例也可以合并使用。例如,在图2所示的实施例的步骤S24之后,增加图5所示的实施例中步骤S53,从而得到如图8所示的流程图。
S81、设备开机并处于工作状态。
S82、在设备的系统处于空闲状态时,结束系统中运行的与前台进程无关的后台进程,并释放后台进程占用的内存空间。
S83、释放内存中的非活动页占用的内存空间。
S84、将系统运行的信息存储到设备的内存。
S85、将内存中的第一部分内存单元的数据压缩后迁移到内存中的第二部分内存单元中。
S86、控制所述设备进入休眠状态。
在本申请实施例中,控制设备进入休眠状态时,需要关闭设备中除第二部分内存单元之外的其他器件,其中,其他器件包括处理器。
S87、在需要唤醒设备时,对其他器件恢复供电,并将存储于第二部分内存单元中的压缩数据解压缩后迁移到第一部分内存单元中,根据第一部分内存单元和第二部分内存单元中存储的数据恢复在进入休眠状态前系统中运行的进程。
其中,步骤S81~步骤S84与步骤S21~步骤S24相似,步骤S85~步骤S87与步骤S53~步骤S55相似,在此不再赘述。
也就是说,在图8所示的实施例中,在设备进入休眠状态时,首先结束并释放与前台进程无关的后台进程和释放非活动页占用的内存空间,以减少保存在内存中的数据量,然后,在对保存在内存中的数据进行压缩并迁移,以减少在休眠状态时需要供电的内存单元的数量。且,由于内存中存储的数据量也减少了,可以进一步减少进行压缩处理的数据量以及需要迁移的数据量。这样,在控制设备进入休眠状态时,则可以只对部分内存单元进行供电,而不用对整个内存都供电,可以减少设备在处于休眠状态时的功耗。且,由于减少了设备在休眠时存储在内存中的数据,这样,当设备需要唤醒时,只需要从内存中读取较少的数据即可迅速恢复工作状态,可以减少在唤醒设备时从内存中读取数据的时延,从而加快设备的唤醒速度。
上述本申请提供的实施例中,为了实现上述本申请实施例提供的方法中的各功能,设备可以包括硬件结构和/或软件模块,以硬件结构、软件模块、或硬件结构加软件模块的形式来实现上述各功能。上述各功能中的某个功能以硬件结构、软件模块、还是硬件结构加软件模块的方式来执行,取决于技术方案的特定应用和设计约束条件。
图9示出了一种计算设备900的结构示意图。计算设备900可以是硬件结构、软件模块、或硬件结构加软件模块。计算设备900可以由芯片系统实现。本申请实施例中,芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。
计算设备900可以包括释放模块901、存储模块902和控制模块903。
释放模块901可以用于执行图2所示的实施例中的步骤S22~步骤S23,或用于执行图8所示的实施例中的步骤S82~步骤S83,和/或用于支持本文所描述的技术的其它过程。
存储模块902可以用于执行图2所示的实施例中的步骤S24,或用于执行图5所示的实施例中的步骤S52~步骤S53,或用于执行图8所示的实施例中的步骤S84~步骤S85,和/或用于支持本文所描述的技术的其它过程。
控制模块903可以用于执行图2所示的实施例中的步骤S21、步骤S25~步骤S26,或用于执行图5所示的实施例中的步骤S51、步骤S54~步骤S55,或用于执行图8所示的实施例中的步骤S81、步骤S86~步骤S87,和/或用于支持本文所描述的技术的其它过程。
其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
图9所示的实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,另外,在本申请各个实施例中的各功能模块可以集成在一个处理器中,也可以是单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
如图10所示为本申请实施例提供的计算设备1000,其中,该计算设备1000可以为芯片系统。本申请实施例中,芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。
计算设备1000包括至少一个处理器1020,用于实现或用于支持计算设备1000实现本申请实施例提供的方法中存储服务端的功能。示例性地,处理器1020可以结束系统中运行的与前台进程无关的后台进程,可以将所述内存中的第一部分内存单元的数据压缩后迁移到所述内存中的第二部分内存单元中,具体参见方法示例中的详细描述,此处不做赘述。
计算设备1000还可以包括至少一个存储器1030,包括内存,用于存储程序指令和/或数据。存储器1030和处理器1020耦合。本申请实施例中的耦合是装置、单元或模块之间的间接耦合或通信连接,可以是电性,机械或其它的形式,用于装置、单元或模块之间的信息交互。处理器1020可能和存储器1030协同操作。处理器1020可能执行存储器1030中存储的程序指令。所述至少一个存储器中的至少一个可以包括于处理器中。
计算设备1000还可以包括接口1010,用于通过传输介质使得计算设备1000中的各个器件可以进行通信。
本申请实施例中不限定上述接口1010、处理器1020以及存储器1030之间的具体连接介质。本申请实施例在图10中以存储器1030、处理器1020以及接口1010之间通过总线1050连接,总线在图10中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图10中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
在本申请实施例中,处理器1020可以是通用处理器、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
在本申请实施例中,存储器1030可以是非易失性存储器,比如硬盘(hard diskdrive,HDD)或固态硬盘(solid-state drive,SSD)等,还可以是易失性存储器(volatilememory),例如随机存取存储器(random-access memory,RAM)。存储器是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本申请实施例中的存储器还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
本申请实施例中还提供一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行图2、图5或图8所示的实施例中设备执行的方法。
本申请实施例中还提供一种计算机程序产品,包括指令,当其在计算机上运行时,使得计算机执行图2、图5或图8所示的实施例中设备执行的方法。
本申请实施例提供了一种芯片系统,该芯片系统包括处理器,还可以包括存储器,用于实现前述方法中服务端的功能。该芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。
本申请实施例提供的方法中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、网络设备、用户设备或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,简称DSL)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机可以存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,数字视频光盘(digital video disc,简称DVD))、或者半导体介质(例如,SSD)等。
Claims (18)
1.一种设备休眠方法,其特征在于,包括:
在设备的系统处于空闲状态时,结束所述系统中运行的与前台进程无关的后台进程,并释放所述后台进程占用的内存空间;
将所述系统运行的信息存储到所述设备的内存,所述系统运行的信息不包括所述后台进程的信息;
控制所述设备进入休眠状态。
2.根据权利要求1所述的方法,其特征在于,在所述控制所述设备进入休眠状态之前,所述方法还包括:
将所述内存中的第一部分内存单元的数据压缩后迁移到所述内存中的第二部分内存单元中,其中,所述内存包括多个内存单元,所述第一部分内存单元中被占用的存储空间小于阈值,所述第二部分内存单元包括存储操作系统数据的内存单元以及被占用的存储空间大于所述阈值的内存单元;
所述控制所述设备进入休眠状态包括:
关闭所述设备中除所述第二部分内存单元之外的其他器件。
3.根据权利要求1或2所述的方法,其特征在于,在所述控制所述设备进入休眠状态之前,所述方法还包括:
释放所述内存中的非活动页占用的内存空间。
4.根据权利要求2所述的方法,其特征在于,还包括:
对所述其他器件恢复供电;
将存储于所述第二部分内存单元中的压缩数据解压缩后迁移到所述第一部分内存单元中;
根据所述第一部分内存单元和所述第二部分内存单元中存储的数据恢复在进入休眠状态前所述系统中运行的进程。
5.一种设备休眠方法,其特征在于,包括:
在设备的系统处于空闲状态时,将所述系统运行的信息保存到所述设备的内存;
将所述内存中的第一部分内存单元的数据压缩后迁移到所述内存中的第二部分内存单元中,其中,所述内存包括多个内存单元,所述第一部分内存单元中被占用的存储空间小于阈值,所述第二部分内存单元包括存储操作系统数据的内存单元以及被占用的存储空间大于所述阈值的内存单元;
控制所述设备进入休眠状态,其中,在所述休眠状态时,关闭所述设备中除所述第二部分内存单元之外的其他器件。
6.根据权利要求5所述的方法,其特征在于,所述将所述系统运行的信息保存到所述设备的内存之前,所述方法还包括:
结束所述系统中运行的与前台进程无关的后台进程,并释放所述后台进程占用的内存空间。
7.根据权利要求5或6所述的方法,其特征在于,在所述控制所述设备进入休眠状态之前,所述方法还包括:
释放所述内存中的非活动页占用的内存空间。
8.根据权利要求5-7任一项所述的方法,其特征在于,还包括:
对所述其他器件恢复供电;
将存储于所述第二部分内存单元中的压缩数据解压缩后迁移到所述第一部分内存单元中;
根据所述第一部分内存单元和所述第二部分内存单元中存储的数据恢复在进入休眠状态前所述系统中运行的进程。
9.一种计算设备,其特征在于,包括:
释放模块,用于在所述设备的系统处于空闲状态时,结束所述系统中运行的与前台进程无关的后台进程,并释放所述后台进程占用的内存空间;
存储模块,用于将所述系统运行的信息存储到所述设备的内存,所述系统运行的信息不包括所述后台进程的信息;
控制模块,用于控制所述设备进入休眠状态。
10.根据权利要求9所述的计算设备,其特征在于,所述存储模块还用于:
将所述内存中的第一部分内存单元的数据压缩后迁移到所述内存中的第二部分内存单元中,其中,所述内存包括多个内存单元,所述第一部分内存单元中被占用的存储空间小于阈值,所述第二部分内存单元包括存储操作系统数据的内存单元以及被占用的存储空间大于所述阈值的内存单元;
所述控制模块具体用于:
关闭所述设备中除所述第二部分内存单元之外的其他器件。
11.根据权利要求9或10所述的计算设备,其特征在于,所述释放模块还用于:
释放所述内存中的非活动页占用的内存空间。
12.根据权利要求10所述的计算设备,其特征在于,所述控制模块还用于:对所述其他器件恢复供电;
所述存储模块还用于,将存储于所述第二部分内存单元中的压缩数据解压缩后迁移到所述第一部分内存单元中;
所述控制模块还用于,根据所述第一部分内存单元和所述第二部分内存单元中存储的数据恢复在进入休眠状态前所述系统中运行的进程。
13.一种计算设备,其特征在于,包括:
存储模块,用于在所述设备的系统处于空闲状态时,将所述系统运行的信息保存到所述设备的内存;以及,
将所述内存中的第一部分内存单元的数据压缩后迁移到所述内存中的第二部分内存单元中,其中,所述内存包括多个内存单元,所述第一部分内存单元中被占用的存储空间小于阈值,所述第二部分内存单元包括存储操作系统数据的内存单元以及被占用的存储空间大于所述阈值的内存单元;
控制模块,用于控制所述设备进入休眠状态,其中,在所述休眠状态时,关闭所述设备中除所述第二部分内存单元之外的其他器件。
14.根据权利要求13所述的计算设备,其特征在于,所述设备还包括:
释放模块,用于结束所述系统中运行的与前台进程无关的后台进程,并释放所述后台进程占用的内存空间。
15.根据权利要求13或14所述的计算设备,其特征在于,释放模块还用于:
释放所述内存中的非活动页占用的内存空间。
16.根据权利要求13-15任一项所述的计算设备,其特征在于,所述控制模块还用于:对所述其他器件恢复供电;
所述存储模块还用于,将存储于所述第二部分内存单元中的压缩数据解压缩后迁移到所述第一部分内存单元中;
所述控制模块还用于,根据所述第一部分内存单元和所述第二部分内存单元中存储的数据恢复在进入休眠状态前所述系统中运行的进程。
17.一种计算设备,其特征在于,包括:
内存,用于存储程序指令;
处理器,连接所述内存并用于执行所述程序指令以执行如权利要求1-4任意一项所述的设备休眠方法。
18.一种计算设备,其特征在于,包括:
内存,用于存储程序指令;
处理器,连接所述内存并用于执行所述程序指令以执行如权利要求5-8任意一项所述的设备休眠方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010245862.6A CN113467923A (zh) | 2020-03-31 | 2020-03-31 | 一种设备休眠方法及计算设备 |
EP21780288.3A EP4116825A4 (en) | 2020-03-31 | 2021-03-26 | DEVICE STANDBY METHOD AND COMPUTER DEVICE |
PCT/CN2021/083400 WO2021197239A1 (zh) | 2020-03-31 | 2021-03-26 | 一种设备休眠方法及计算设备 |
US17/955,695 US20230023461A1 (en) | 2020-03-31 | 2022-09-29 | Device suspend method and computing device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010245862.6A CN113467923A (zh) | 2020-03-31 | 2020-03-31 | 一种设备休眠方法及计算设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113467923A true CN113467923A (zh) | 2021-10-01 |
Family
ID=77865587
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010245862.6A Pending CN113467923A (zh) | 2020-03-31 | 2020-03-31 | 一种设备休眠方法及计算设备 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230023461A1 (zh) |
EP (1) | EP4116825A4 (zh) |
CN (1) | CN113467923A (zh) |
WO (1) | WO2021197239A1 (zh) |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5497494A (en) * | 1993-07-23 | 1996-03-05 | International Business Machines Corporation | Method for saving and restoring the state of a CPU executing code in protected mode |
US5752044A (en) * | 1995-06-07 | 1998-05-12 | International Business Machines Corporation | Computer system having multi-level suspend timers to suspend from operation in attended and unattended modes |
US8694764B2 (en) * | 2011-02-24 | 2014-04-08 | Microsoft Corporation | Multi-phase resume from hibernate |
CN103365392B (zh) * | 2012-03-26 | 2016-06-08 | 辽宁华鼎科技股份有限公司 | 内存管理系统 |
CN102779072B (zh) * | 2012-06-18 | 2014-06-25 | 中国科学院上海微系统与信息技术研究所 | 一种嵌入式系统及其应用进程的休眠与唤醒方法 |
CN102841674B (zh) * | 2012-07-25 | 2015-02-04 | 中国科学院上海微系统与信息技术研究所 | 基于新型存储器的嵌入式系统及其进程的休眠与唤醒方法 |
US9330736B2 (en) * | 2012-11-09 | 2016-05-03 | Qualcomm Incorporated | Processor memory optimization via page access counting |
JP6399916B2 (ja) * | 2014-01-20 | 2018-10-03 | キヤノン株式会社 | 情報処理装置およびその制御方法 |
JP6403976B2 (ja) * | 2014-04-09 | 2018-10-10 | アルパイン株式会社 | コンピュータプログラム、情報処理装置及び処理実行方法 |
CN103927145B (zh) * | 2014-04-28 | 2017-02-15 | 中国科学院微电子研究所 | 一种基于混合内存的系统休眠、唤醒方法及装置 |
US10552179B2 (en) * | 2014-05-30 | 2020-02-04 | Apple Inc. | Resource management with dynamic resource policies |
CN105573860A (zh) * | 2014-11-11 | 2016-05-11 | 鸿富锦精密工业(武汉)有限公司 | 用于计算机系统中的休眠管理方法及休眠管理系统 |
CN105739982B (zh) * | 2016-01-29 | 2019-05-10 | 浪潮(北京)电子信息产业有限公司 | 一种系统休眠的方法及装置 |
US10268486B1 (en) * | 2016-03-25 | 2019-04-23 | Amazon Technologies, Inc. | Expedited resume process from hibernation |
CN106528282A (zh) * | 2016-09-23 | 2017-03-22 | 依偎科技(南昌)有限公司 | 一种关闭进程的方法、装置以及终端 |
CN107168798A (zh) * | 2017-05-16 | 2017-09-15 | 郑州云海信息技术有限公司 | 一种设备休眠方法及装置、设备休眠唤醒方法及装置 |
US10649889B2 (en) * | 2017-06-04 | 2020-05-12 | Apple Inc. | Method and apparatus for managing kernel memory of data processing systems |
KR102492996B1 (ko) * | 2018-06-08 | 2023-01-31 | 삼성전자주식회사 | 외부 입력을 이용하여 백그라운드 태스크를 처리하는 전자 장치 및 그 저장 매체 |
CN110865884A (zh) * | 2019-09-30 | 2020-03-06 | 华为技术有限公司 | 一种内存管理方法及装置 |
-
2020
- 2020-03-31 CN CN202010245862.6A patent/CN113467923A/zh active Pending
-
2021
- 2021-03-26 WO PCT/CN2021/083400 patent/WO2021197239A1/zh unknown
- 2021-03-26 EP EP21780288.3A patent/EP4116825A4/en active Pending
-
2022
- 2022-09-29 US US17/955,695 patent/US20230023461A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20230023461A1 (en) | 2023-01-26 |
EP4116825A4 (en) | 2023-05-24 |
EP4116825A1 (en) | 2023-01-11 |
WO2021197239A1 (zh) | 2021-10-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6336161B1 (en) | Computer configuration system and method with state and restoration from non-volatile semiconductor memory | |
CN101916201B (zh) | 一种基于Android移动终端冷启动的方法和装置 | |
US7757060B2 (en) | Reducing wake latency time for power conserving state transition | |
US8752060B2 (en) | Multi-CPU domain mobile electronic device and operation method thereof | |
JP5705996B2 (ja) | プラットフォームのレジューム時間を改善する方法および装置 | |
US9530461B2 (en) | Architectures and techniques for providing low-power storage mechanisms | |
EP3161622B1 (en) | Accelerating boot time zeroing of memory based on non-volatile memory (nvm) technology | |
KR20140014146A (ko) | 동면으로부터의 다중 페이즈 재개 | |
CN113703799B (zh) | 计算设备及其bios更新方法和介质 | |
JP6276470B2 (ja) | ポータブルコンピューティングデバイスの揮発性メモリのスタンバイ電力を低減するためのシステムおよび方法 | |
CN102203746A (zh) | 具有共享存储器架构的组合的移动设备和固态盘 | |
US6336153B1 (en) | High-speed hybernation | |
JP2004178596A (ja) | ディスクレスネットワークブータブルコンピュータにおける不揮発性メモリキャッシュを用いた信頼性の改善 | |
CN101937376A (zh) | 一种数据管理方法及数据存储装置 | |
CN107122316B (zh) | 一种soc备电方法以及soc | |
CN113656076A (zh) | 一种基于硬件复用通道的bios启动方法及装置 | |
CN114579055B (zh) | 磁盘存储方法、装置、设备及介质 | |
CN114490023B (zh) | 一种基于arm和fpga的高能物理可计算存储设备 | |
CN111104048B (zh) | 一种数据处理方法及分布式存储系统 | |
CN111857596B (zh) | Ssd低功耗实现方法、装置、计算机设备及存储介质 | |
WO2021197239A1 (zh) | 一种设备休眠方法及计算设备 | |
CN116126127A (zh) | 一种供电方法、硬盘及计算设备 | |
CN113986001A (zh) | 芯片及控制方法 | |
US10840943B1 (en) | System and method of data compression between backup server and storage | |
US20240231822A1 (en) | Control method and chip |
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 |