CN112462926B - 移动终端中的电源管理方法、装置、电子设备及计算机存储介质 - Google Patents
移动终端中的电源管理方法、装置、电子设备及计算机存储介质 Download PDFInfo
- Publication number
- CN112462926B CN112462926B CN202011449155.5A CN202011449155A CN112462926B CN 112462926 B CN112462926 B CN 112462926B CN 202011449155 A CN202011449155 A CN 202011449155A CN 112462926 B CN112462926 B CN 112462926B
- Authority
- CN
- China
- Prior art keywords
- kernel
- component
- computing
- sleep
- protection component
- 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.)
- Active
Links
Images
Classifications
-
- 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/329—Power saving characterised by the action undertaken by task scheduling
-
- 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/3206—Monitoring of events, devices or parameters that trigger a change in power modality
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Power Sources (AREA)
Abstract
本申请实施例提供了一种移动终端中的电源管理方法、装置、电子设备及计算机存储介质,涉及电源管理领域。该方法包括:当接收至少一个计算部件内核中的任意一个计算部件内核发送的休眠请求时,对计算部件内核发送挂起指令,以使得在计算部件内核挂起后,所有计算部件内核已挂起;在所有计算部件内核挂起后,对防护部件内核发送休眠指令,以使得防护部件内核休眠;在防护部件内核休眠后,进行系统下电。本申请实施例将所有计算部件内核挂起,提高了系统的运行效率,在唤醒时速度更快。在计算部件内核挂起后,再将防护部件内核休眠,提高了系统的安全性。
Description
技术领域
本申请涉及电源管理技术领域,具体而言,本申请涉及一种移动终端中的电源管理方法、装置、电子设备及计算机存储介质。
背景技术
在Linux系统中,内核包括多个运行应用程序等计算部件的内核以及一个运行可信防护部件的内核,当内核中没有任务调度时,会发送挂起请求或休眠请求。其中,运行应用程序等计算部件的内核为最后一个发送请求的内核时,会发送休眠请求。可信计算防护部件是可信计算技术体系中的一种应用,可信计算技术是作为一种计算和防护并行的计算模式,是实现关键信息基础设施和重要信息网络安全防御的重要途径,国内现已更新至可信计算3.0产业链。
现行的电源管理模块接收到内核发送的挂起请求或休眠请求后,会对发送请求的内核执行挂起或休眠,不会考虑发送请求的内核是运行应用程序等计算部件的内核,还是运行可信防护部件的内核。
内核休眠相对于挂起,需要保存更多的堆栈中的数据信息,若运行应用程序等计算部件的内核休眠了,会导致效率降低,而运行可信防护部件的内核先挂起或休眠了,会导致系统安全性降低,不能全程保护系统。
发明内容
本发明实施例提供一种克服上述问题或者至少部分地解决上述问题的移动终端中的电源管理方法、装置、电子设备及计算机存储介质。
第一方面,提供了一种移动终端中的电源管理方法,移动终端中包括至少一个计算部件内核和一个防护部件内核该方法包括:
当接收至少一个计算部件内核中的任意一个计算部件内核发送的休眠请求时,对计算部件内核发起挂起指令,以使得在计算部件内核挂起后,所有计算部件内核已挂起;
在所有计算部件内核挂起后,对防护部件内核发起休眠指令,以使得防护部件内核休眠;
在防护部件内核休眠后,进行系统下电。
在一个可能的实现方式中,当接收至少一个计算部件内核中的任意一个计算部件内核发送的休眠请求时,之前还包括:
当接收到至少一个计算部件内核中的任意一个计算部件内核发送的挂起请求,对任意一个计算部件内核发送挂起指令,以使得任意一个计算部件内核挂起。
在另一个可能的实现方式中,移动终端中的电源管理方法还包括:
当接收到防护部件内核发送的挂起请求或休眠请求时,判断所有计算部件内核是否挂起;
若所有计算部件内核挂起,则对防护部件内核发起休眠指令,以使得防护部件内核休眠;
在防护部件休眠后,进行系统下电。
在又一个可能的实现方式中,对任意一个计算部件内核发起挂起指令,之前还包括:
发送停止运行指令至任意一个计算部件内核,以使得任意一个计算部件内核停止运行;
在任意一个计算部件内核停止运行后,保存任意一个计算部件内核上运行的计算部件的堆栈中的数据信息。
在又一个可能的实现方式中,在所有系统计算部件内核挂起后,在所有计算部件内核挂起后,对防护部件内核发送休眠指令,以使得防护部件内核休眠,之前还包括:
根据防护部件内核的唯一标识,确定防护部件内核的CPU寄存器;
通过CPU寄存器向防护部件内核发起核间中断,以使得防护部件内核保存正在运行的防护部件的堆栈中的数据信息。
在又一个可能的实现方式中,防护部件休眠后,进行系统下电,之后还包括唤醒的过程,包括:
进行系统上电,发起中断,唤醒防护部件内核,以使得防护部件内核恢复堆栈中的数据信息;
防护部件内核唤醒后,防护部件内核发起核间中断,唤醒计算部件内核,以使得计算部件恢复堆栈中的数据信息。
第二方面,提供了一种移动终端中的电源管理的装置,该装置包括:
挂起模块,用于当接收至少一个计算部件内核中的任意一个计算部件内核发送的休眠请求时,对计算部件内核发起挂起指令,以使得在计算部件内核挂起后,所有计算部件内核已挂起;
休眠模块,用于在所有计算部件内核挂起后,对防护部件内核发起休眠指令,以使得防护部件内核休眠;
电源模块,用于防护部件休眠后,进行系统下电。
在一个可能的实现方式中,挂起模块包括:
计算挂起模块,用于当接收到至少一个计算部件内核中的任意一个计算部件内核发送的挂起请求,对任意一个计算部件内核发送挂起指令,以使得任意一个计算部件内核挂起。
在另一个可能的实现方式中,移动终端中的电源管理的装置还包括:
防护挂起模块,用于当接收到防护部件内核发送的挂起请求或休眠请求时,判断所有计算部件内核是否挂起;
防护休眠模块,用于若所有计算部件内核挂起,则对防护部件内核发起休眠指令,以使得防护部件内核休眠;
子电源模块,用于在防护部件休眠后,进行系统下电。
在又一个可能的实现方式中,计算挂起模块包括:
预挂起模块,用于发送停止运行指令至任意一个计算部件内核,以使得任意一个计算部件内核停止运行;
在任意一个计算部件内核停止运行后,保存任意一个计算部件内核上运行的计算部件的堆栈中的数据信息。
在又一个可能的实现方式中,休眠模块包括:
预休眠模块,用于根据防护部件内核的唯一标识,确定防护部件内核的CPU寄存器;
通过CPU寄存器向防护部件内核发起核间中断,以使得防护部件内核保存正在运行的防护部件的堆栈中的数据信息。
在又一个可能的实现方式中,电源模块包括:
唤醒模块,用于进行系统上电,发起中断,唤醒防护部件内核,以使得防护部件内核恢复堆栈中的数据信息;
防护部件内核唤醒后,防护部件内核发起核间中断,唤醒计算部件内核,以使得计算部件恢复堆栈中的数据信息。
第三方面,本发明实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现如第一方面所提供的方法的步骤。
第四方面,本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面所提供的方法的步骤。
本发明实施例提供的移动终端中的电源管理方法、装置、电子设备及存储介质,当接收到系统计算部件内核发送的休眠请求时,将所有系统计算部件内核挂起,需要保存的堆栈中的数据信息更少,提高了系统的运行效率,在唤醒时速度更快。在计算部件内核挂起后,再将防护部件内核休眠,然后进行系统下电,可以保证防护部件全程保护系统,提高了系统的安全性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。
图1为示例性示出的本申请实施例中计算部件与防护部件的结构图;
图2为本申请实施例提供的一种移动终端中的电源管理系统的结构示意图;
图3为本申请实施例中提供了一种移动终端中的电源管理的方法的流程示意图;
图4为本申请实施例提供的另一种移动终端中的电源管理方法流程图;
图5为本申请实施例提供的计算部件内核数据信息保存的流程示意图;
图6为本申请实施例提供的防护部件内核数据信息保存流程图;
图7为本申请实施例提供的请求发起的流程结构示意图;
图8为本申请实施例提供的系统唤醒的流程图;
图9为本申请实施例提供的一种移动终端中的电源管理装置的结构示意图;
图10为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面详细描述本申请的实施例,实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本发明的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
本申请提供的一种移动终端中的电源管理方法、装置、电子设备及计算机存储介质,旨在解决现有技术的如上技术问题。
在对本申请所示的各个实施例进行说明之前,首先对本申请涉及到的几个概念进行介绍:
内核是操作系统最基本的部分,是一个操作系统的核心,是基于硬件的第一层软件扩充,提供操作系统的最基本的功能,是操作系统工作的基础,它负责管理系统的进程、内存、设备驱动程序、文件和网络系统,决定着系统的性能和稳定性。
可信计算/可信用计算(Trusted Computing,TC)是一项由可信计算组(可信计算集群)推动和开发的技术。可信计算是在计算和通信系统中广泛使用基于硬件安全模块支持下的可信计算平台,以提高系统整体的安全性,防护部件运用了可信计算技术。可信计算技术是作为一种计算和防护并行的计算模式,是实现关键信息基础设施和重要信息系统网络安全防御的重要途径,国内现已更新至可信计算3.0产业链。
Hypervisor,一种运行在基础物理服务器和操作系统之间的中间软件层,可允许多个操作系统和应用共享硬件。也可叫做VMM(virtual machine monitor,虚拟机监视器)。Hypervisors是一种在虚拟环境中的“元”操作系统。他们可以访问服务器上包括磁盘和内存在内的所有物理设备。
挂起是一种省电模式,系统将机器的硬盘、显示器等外部设备停止工作,而CPU、内存仍然工作,等待用户随时唤醒,再次唤醒需要按键盘上的键数次。
体眠是一种更加省电的模式,它将内存中的数据保存于硬盘中,使CPU也停止工作,当再次使用时需按开关机键,机器将会恢复到执行休眠时的状态,而不用再次执行启动操作系统复杂的过程。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
图1示例性示出的本申请实施例中计算部件与防护部件的结构图。图中示例性的列出了计算部件和防护部件中可能包括的软件及其功能,如计算部件可以包括应用程序、中间件层和操作系统内核等,功能可以包括内核加固、权限管控、行为检测、可新连接、CPU调度、内存管理和外设管理等。防护部件可以包括可信软件基、管理程序等,功能可以包括身份验证、动态度量、可信报告、资源管理、任务调度、加密存储、启动控制、资源隔离、内存管理、外设管理、可信核和密码等。计算部件与防护部件之间建立了安全通道,可以相互之间进行交互,如可信验证、参数获取等。
图2为本申请实施例提供的一种移动终端中的电源管理系统的结构示意图。该系统包括:移动终端110、内核120、中间件130和电源管理模块140。
移动终端110可以是手机、平板电脑等移动终端。内核120可以包括多个运行计算部件的内核与一个运行防护部件的内核。
内核120可以发送挂起请求或休眠请求给电源管理模块140,电源管理模块140在接收到挂起请求或休眠请求后,对内核120进行发送挂起指令或休眠指令让内核120挂起或休眠。电源管理模块140可以对接收到的请求进行可能的转换后再发送指令,也可通过接收中间件130发送的请求,然后发送挂起或休眠指令让内核120挂起或休眠,本申请实施例采用一个中间件130来接受内核120发送的请求,并发送请求给电源管理模块,中间件130例如可以是Hypervisor虚拟机监视器。
在现有的电源管理中,电源管理模块接收到内核发送的挂起请求或休眠请求后,会对发送请求的内核执行挂起或休眠,不会考虑发送请求的内核是运行应用程序等计算部件的内核,还是运行可信防护部件的内核。而内核休眠相对于挂起,需要保存更多的堆栈中的数据信息,若运行应用程序等计算部件的内核休眠了,会导致效率降低,而运行可信防护部件的内核先挂起或休眠了,会导致系统安全性降低,不能全程保护系统。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
图3为本申请实施例中提供了一种移动终端中的电源管理的方法的流程示意图,如图1所示,该方法包括:
S101、当接收至少一个计算部件内核中的任意一个计算部件内核发送的休眠请求时,对计算部件内核发起挂起指令,以使得在计算部件内核挂起后,所有计算部件内核已挂起。
移动终端中含有多个内核,其中,有至少一个运行计算部件的内核,可以称为计算部件内核;有一个运行防护部件的内核,可以称为防护部件内核。当内核中没有任务调度时,内核会发送挂起请求或休眠请求,电源管理模块接收到请求后,对内核发送休眠指令或挂起指令,以使得内核进行挂起或休眠。
在Linux系统中,当所有的计算部件内核中没有任务调度时,最后的计算部件内核会发起休眠请求,之前的计算部件内核会发起挂起请求。本申请技术方案,当接收到至少一个计算部件内核中的任意一个计算部件内核发送的休眠请求时,对该计算部件内核发起挂起指令,以使得该计算部件内核挂起,此时所有的计算部件内核都已挂起。接收休眠请求后发送挂起指令,可以是电源管理模块本身进行的接收休眠请求并换后发送挂起命令,也可以是利用中间件进行接收休眠请求,并进行转换后发送挂起请求,以使得该计算部件内核挂起,本申请实施例采用Hypervisor虚拟机监视器接收计算部件内核发送的休眠请求,并发送挂起请求,以使得该计算部件内核挂起后,所有的计算部件内核都已挂起,本申请后续的实施例都采用Hypervisor虚拟机监视器接收内核发送的请求为例进行描述。
S102、在所有计算部件内核挂起后,对防护部件内核发起休眠指令,以使得防护部件内核休眠。
在所有的计算部件内核都已挂起后,还需要让防护部件内核休眠,对防护部件内核发送休眠指令,以使得防护部件内核休眠。
S103、在防护部件内核休眠后,进行系统下电。
在防护部件休眠内核后,即所有的计算部件内核都已挂起,防护部件已休眠,可以进行系统下电。
本申请实施例通过当接收到系统计算部件内核发送的休眠请求时,将所有系统计算部件内核挂起,需要保存的堆栈中的数据信息更少,提高了系统的运行效率,在唤醒时速度更快。在计算部件内核挂起后,再将防护部件内核休眠,然后进行系统下电,可以保证防护部件全程保护系统,提高了系统的安全性。
本申请实施例还提供了一种可能的实现方式,当接收至少一个计算部件内核中的任意一个计算部件内核发送的休眠请求时,之前还包括:
当接收到至少一个计算部件内核中的任意一个计算部件内核发送的挂起请求,对任意一个计算部件内核发起挂起指令,以使得任意一个计算部件内核挂起。
可以是电源管理模块直接接收至少一个计算部件内核中的任意一个计算部件内核发送的挂起请求,对任意一个计算部件内核发起挂起指令,以使得任意一个计算部件内核挂起,也可以采用中间件接收并发送请求的方式,如本申请实施例采用Hypervisor虚拟机监视器接收至少一个计算部件内核中的任意一个计算部件内核发送的挂起请求,并发送挂起请求对任意一个计算部件内核发起挂起指令,以使得任意一个计算部件内核挂起。
本申请实施例还提供了一种可能的实现方式,如图4所示,图4为本申请实施例提供的另一种移动终端中的电源管理方法流程图,该方法包括:
S201、当接收到防护部件内核发送的挂起请求或休眠请求时,判断所有计算部件内核是否挂起。
采用Hypervisor虚拟机监视器接收防护部件内核发送的挂起请求或休眠请求,并判断所有计算部件内核是否都已挂起,因为只有当所有的计算部件内核都已挂起时,防护部件内核才能进行休眠,并且若所有的计算部件内核都挂起了,防护部件内核可以休眠以节省资源。
S202、若所有计算部件内核挂起,则对防护部件内核发送休眠指令,以使得防护部件内核休眠。
若Hypervisor虚拟机监视器检测到所有计算部件内核都已挂起,则发送休眠请求,在接收到若Hypervisor虚拟机监视器发送的休眠请求后,对防护部件内核发送休眠指令,以使得防护部件内核休眠。
S203、在防护部件休眠后,进行系统下电。
在防护部件休眠内核后,即所有的计算部件内核都已挂起,防护部件已休眠,可以进行系统下电。
本申请实施例通过采用Hypervisor虚拟机监视器接收防护部件内核发送的挂起请求或休眠请求,并判断计算部件内核是否都已挂起,可以保证防护部件内核中运行的防护部件在计算部件内核挂起之前全程保护系统,提高的系统的安全性。
本申请实施例还提供了一种可能的实现方式,如图5所示,图5为本申请实施例提供的计算部件内核数据信息保存的流程示意图,对任意一个计算部件内核发起挂起指令,之前还包括:
S301、发送停止运行指令至任意一个计算部件内核,以使得任意一个计算部件内核停止运行。
在计算部件内核挂起之前,需要将计算部件内核中正在运行的计算部件的堆栈中的数据信息保存下来,以便系统唤醒之后保持之前的工作状态,可以采用Hypervisor虚拟机监视器发送停止运行指令给任意一个计算部件内核,停止运行指令可以是包含停止信息的汇编指令,以使得任意一个计算部件内核中正在运行的计算部件停止运行。
S302、在任意一个计算部件内核停止运行后,保存任意一个计算部件内核上运行的计算部件的堆栈中的数据信息。
在保存堆栈中的数据信息之前,还需要将正在运行的计算部件停止下来,避免没有保存所有的数据信息,在任意一个计算部件内核中正在运行的计算部件停止运行后,可以采用Hypervisor虚拟机监视器保存任意一个计算部件内核上运行的计算部件的堆栈中的数据信息。
本申请实施例通过采用Hypervisor虚拟机监视器发送停止运行指令给任意一个计算部件内核,并保存任意一个计算部件内核上运行的计算部件的堆栈中的数据信息,可以让任意一个计算部件内核上的数据信息在计算部件内核挂起时不丢失,保证了数据信息的完整性。
本申请实施例还提供了一种可能的实现方式,如图6所示,图6为本申请实施例提供的防护部件内核数据信息保存流程图,在所有计算部件内核挂起后,对防护部件内核发起休眠指令,以使得防护部件内核休眠,之前还包括:
S401、根据防护部件内核的唯一标识,确定防护部件内核的CPU寄存器。
防护部件内核的唯一标识可以是防护部件内核的ID,根据防护部件的ID可以确定该防护部件内核的CPU寄存器,CPU寄存器是负责计算机中数据信息的储存,它们之间通过CPU内的总线连接在一起。
S402、通过CPU寄存器向防护部件内核发起核间中断,以使得防护部件内核保存正在运行的防护部件的堆栈中的数据信息。
采用Hypervisor虚拟机监视器通过该防护部件内核的CPU寄存器向该防护部件发起核间中断,通知防护部件内核需要保存数据,防护部件内核可以自己保存堆栈中的数据信息,以使得防护部件内核保存正在运行的防护部件的堆栈中的数据信息。核间中断是一个计算机术语,发起方首先将消息写到一块共享内存中,然后发起核间中断,被中断的硬件线程在中断服务例程中读取该内存,以获得发起方通知的消息。
本申请实施例通过确定防护部件内核的CPU寄存器,采用Hypervisor虚拟机监视器发起核间中断通知防护部件内核,以使得防护部件内核保存正在运行的防护部件的堆栈中的数据信息,防止了正在防护部件的信息丢失,保证了系统的安全性。
本申请实施例还提供了一种可能的实现方式,如图7所示,图7为本申请实施例提供的请求发起的流程结构示意图,包括多个计算部件内核、一个防护部件内核、Hypervisor虚拟机监视器和电源管理模块。
当任意一个计算部件内核或一个防护部件内核中没有任务调度时,会发起挂起请求或休眠请求,其中最后一个发起请求的计算部件内核会发起休眠请求。
采用Hypervisor虚拟机监视器统一接收所有的挂起请求以及休眠请求,然后经过Hypervisor虚拟机监视器进行判断之后发送对应计算部件内核的挂起请求以及对应防护部件的休眠请求。
电源管理模块接收Hypervisor虚拟机监视器发送的挂起请求或休眠请求,然后根据挂起请求或休眠请求对请求对应的内核进行挂起或休眠。
本申请实施例通过采用Hypervisor虚拟机监视器统一接收所有的挂起请求以及休眠请求,没有修改电源管理模块的机制,降低了电源管理的复杂度。
本申请实施例还提供了一种可能的实现方式,如图8所示,图8为本申请实施例提供的系统唤醒的流程图,述防护部件休眠后,进行系统下电,之后还包括唤醒的过程,包括:
S501、进行系统上电,发起中断,唤醒防护部件内核,以使得防护部件内核恢复堆栈中的数据信息。
电源管理模块进行系统上电,电源管理模块向防护部件内核发起中断,唤醒防护部件内核。中断是一个计算机术语,是指计算机在运行过程中,出现一种意外情况需要主机干预时,机器能自动停止正在运行的程序进行处理,处理完毕后返回原状态,要想计算机为你服务,都要向系统提出申请,然后操作系统分配相应的处理。
防护部件内核被唤醒后,恢复防护部件内核中之前正在运行的防护部件的堆栈中的数据信息。
S502、防护部件内核唤醒后,防护部件内核发起核间中断,唤醒计算部件内核,以使得计算部件恢复堆栈中的数据信息。
在防护部件内核唤醒后,防护部件内核可以向Hypervisor虚拟机监视器发起核间中断,Hypervisor虚拟机监视器唤醒计算部件内核,然后Hypervisor虚拟机监视器恢复计算部件内核中之前正在运行的计算部件的堆栈中的数据信息。
本申请实施例通过先唤醒防护部件内核,再唤醒计算部件内核,保证了系统在唤醒时的安全性。通过Hypervisor虚拟机监视器将之前保存的堆栈中的信息恢复,可以保证数据信息的完整性。
本申请实施例提供了一种移动终端中的电源管理装置,如图9所示,该装置可以包括:挂起模块11、休眠模块12和电源模块13,具体地:
挂起模块11,用于当接收至少一个计算部件内核中的任意一个计算部件内核发送的休眠请求时,对计算部件内核发起挂起指令,以使得在计算部件内核挂起后,所有计算部件内核已挂起;
休眠模块12,用于在所有计算部件内核挂起后,对防护部件内核发起休眠指令,以使得防护部件内核休眠;
电源模块12,用于防护部件休眠后,进行系统下电。
在一个可能的实现方式中,挂起模块11包括:
计算挂起模块,用于当接收到至少一个计算部件内核中的任意一个计算部件内核发送的挂起请求,对任意一个计算部件内核发送挂起指令,以使得任意一个计算部件内核挂起。
在另一个可能的实现方式中,移动终端中的电源管理的装置还包括:
防护挂起模块,用于当接收到防护部件内核发送的挂起请求或休眠请求时,判断所有计算部件内核是否挂起;
防护休眠模块,用于若所有计算部件内核挂起,则对防护部件内核发起休眠指令,以使得防护部件内核休眠;
子电源模块,用于在防护部件休眠后,进行系统下电。
在又一个可能的实现方式中,计算挂起模块包括:
预挂起模块,用于发送停止运行指令至任意一个计算部件内核,以使得任意一个计算部件内核停止运行;
在任意一个计算部件内核停止运行后,保存任意一个计算部件内核上运行的计算部件的堆栈中的数据信息。
在又一个可能的实现方式中,休眠模块12包括:
预休眠模块,用于根据防护部件内核的唯一标识,确定防护部件内核的CPU寄存器;
通过CPU寄存器向防护部件内核发起核间中断,以使得防护部件内核保存正在运行的防护部件的堆栈中的数据信息。
在又一个可能的实现方式中,电源模块13包括:
唤醒模块,用于进行系统上电,发起中断,唤醒防护部件内核,以使得防护部件内核恢复堆栈中的数据信息;
防护部件内核唤醒后,防护部件内核发起核间中断,唤醒计算部件内核,以使得计算部件恢复堆栈中的数据信息。
本发明实施例提供的移动终端中的电源管理装置,具体执行上述方法实施例流程,具体请详见上述移动终端中的电源管理方法实施例的内容,在此不再赘述。本发明实施例提供的移动终端中的电源管理装置,通过当接收到系统计算部件内核发送的休眠请求时,将所有系统计算部件内核挂起,需要保存的堆栈中的数据信息更少,提高了系统的运行效率,在唤醒时速度更快。在计算部件内核挂起后,再将防护部件内核休眠,然后进行系统下电,可以保证防护部件全程保护系统,提高了系统的安全性。
本申请实施例中提供了一种电子设备,该电子设备包括:存储器和处理器;至少一个程序,存储于存储器中,用于被处理器执行时,与现有技术相比可实现:本申请实施例通过当接收到系统计算部件内核发送的休眠请求时,将所有系统计算部件内核挂起,需要保存的堆栈中的数据信息更少,提高了系统的运行效率,在唤醒时速度更快。在计算部件内核挂起后,再将防护部件内核休眠,然后进行系统下电,可以保证防护部件全程保护系统,提高了系统的安全性。
在一个可选实施例中提供了一种电子设备,如图10所示,图10所示的电子设备4000包括:处理器4001和存储器4003。其中,处理器4001和存储器4003相连,如通过总线4002相连。可选地,电子设备4000还可以包括收发器4004。需要说明的是,实际应用中收发器4004不限于一个,该电子设备4000的结构并不构成对本申请实施例的限定。
处理器4001可以是CPU(Central Processing Unit,中央处理器),通用处理器,DSP(Digital Signal Processor,数据信号处理器),ASIC(Application SpecificIntegrated Circuit,专用集成电路),FPGA(Field Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器4001也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线4002可包括一通路,在上述组件之间传送信息。总线4002可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(ExtendedIndustry Standard Architecture,扩展工业标准结构)总线等。总线4002可以分为地址总线、数据总线、控制总线等。为便于表示,图10中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器4003可以是ROM(Read Only Memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,RAM(Random Access Memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM(Electrically ErasableProgrammable Read Only Memory,电可擦可编程只读存储器)、CD-ROM(Compact DiscRead Only Memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
存储器4003用于存储执行本申请方案的应用程序代码,并由处理器4001来控制执行。处理器4001用于执行存储器4003中存储的应用程序代码,以实现前述方法实施例所示的内容。
本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,当其在计算机上运行时,使得计算机可以执行前述方法实施例中相应内容。与现有技术相比,本申请实施例通过当接收到系统计算部件内核发送的休眠请求时,将所有系统计算部件内核挂起,需要保存的堆栈中的数据信息更少,提高了系统的运行效率,在唤醒时速度更快。在计算部件内核挂起后,再将防护部件内核休眠,然后进行系统下电,可以保证防护部件全程保护系统,提高了系统的安全性。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
以上仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (9)
1.一种移动终端中的电源管理方法,所述移动终端中包括至少一个计算部件内核和一个防护部件内核,其特征在于,包括:
当接收所述至少一个计算部件内核中的任意一个计算部件内核发送的休眠请求时,对所述计算部件内核发送挂起指令,以使得在所述计算部件内核挂起后,所有所述计算部件内核已挂起;
在所有所述计算部件内核挂起后,对所述防护部件内核发送休眠指令,以使得所述防护部件内核休眠;
在所述防护部件内核休眠后,进行系统下电;
其中,当所有所述计算部件内核中没有任务调度时,最后的计算部件内核发送休眠请求,之前的任意一个计算部件内核发送挂起请求。
2.根据权利要求1所述的移动终端中的电源管理方法,其特征在于,所述当接收所述至少一个计算部件内核中的任意一个计算部件内核发送的休眠请求时,之前还包括:
当接收到所述至少一个计算部件内核中的任意一个计算部件内核发送的挂起请求,对所述任意一个计算部件内核发送挂起指令,以使得所述任意一个计算部件内核挂起。
3.根据权利要求1所述的移动终端中的电源管理方法,其特征在于,还包括:
当接收到所述防护部件内核发送的挂起请求或休眠请求时,判断所述所有所述计算部件内核是否挂起;
若所有所述计算部件内核挂起,则对所述防护部件内核发送休眠指令,以使得所述防护部件内核休眠;
在所述防护部件休眠后,进行系统下电。
4.根据权利要求2所述的移动终端中的电源管理方法,其特征在于,所述对所述任意一个计算部件内核发送挂起指令,之前还包括:
发送停止运行指令至所述任意一个计算部件内核,以使得所述任意一个计算部件内核停止运行;
在所述任意一个计算部件内核停止运行后,保存所述任意一个计算部件内核上运行的计算部件的堆栈中的数据信息。
5.根据权利要求1所述的移动终端中的电源管理方法,其特征在于,所述在所有所述计算部件内核挂起后,对所述防护部件内核发送休眠指令,以使得所述防护部件内核休眠,之前还包括:
根据所述防护部件内核的唯一标识,确定所述防护部件内核的CPU寄存器;
通过所述CPU寄存器向所述防护部件内核发起核间中断,以使得所述防护部件内核保存正在运行的防护部件的堆栈中的数据信息。
6.根据权利要求1所述的移动终端中的电源管理方法,其特征在于,所述防护部件休眠后,进行系统下电,之后还包括唤醒的过程,包括:
进行系统上电,发起中断,唤醒所述防护部件内核,以使得所述防护部件内核恢复堆栈中的数据信息;
所述防护部件内核唤醒后,所述防护部件内核发起核间中断,唤醒计算部件内核,以使得所述计算部件恢复堆栈中的数据信息。
7.一种移动终端中的电源管理装置,其特征在于,所述装置包括:
挂起模块,用于当接收至少一个计算部件内核中的任意一个计算部件内核发送的休眠请求时,对所述计算部件内核发起挂起指令,以使得在所述计算部件内核挂起后,所有所述计算部件内核已挂起;
休眠模块,用于在所有所述计算部件内核挂起后,对防护部件内核发起休眠指令,以使得所述防护部件内核休眠;
电源模块,用于所述防护部件休眠后,进行系统下电;
其中,当所有所述计算部件内核中没有任务调度时,最后的计算部件内核发起休眠请求,之前的任意一个计算部件内核发起挂起请求。
8.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至6任一项所述移动终端中的电源管理方法的步骤。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如权利要求1至6中任意一项所述移动终端中的电源管理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011449155.5A CN112462926B (zh) | 2020-12-09 | 2020-12-09 | 移动终端中的电源管理方法、装置、电子设备及计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011449155.5A CN112462926B (zh) | 2020-12-09 | 2020-12-09 | 移动终端中的电源管理方法、装置、电子设备及计算机存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112462926A CN112462926A (zh) | 2021-03-09 |
CN112462926B true CN112462926B (zh) | 2021-07-30 |
Family
ID=74800648
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011449155.5A Active CN112462926B (zh) | 2020-12-09 | 2020-12-09 | 移动终端中的电源管理方法、装置、电子设备及计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112462926B (zh) |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7971081B2 (en) * | 2007-12-28 | 2011-06-28 | Intel Corporation | System and method for fast platform hibernate and resume |
CN101281480B (zh) * | 2008-05-21 | 2010-06-23 | 中兴通讯股份有限公司 | 一种嵌入式系统中实现睡眠功能的方法 |
WO2012131884A1 (ja) * | 2011-03-28 | 2012-10-04 | 富士通株式会社 | マルチコアプロセッサシステム |
CN102779072B (zh) * | 2012-06-18 | 2014-06-25 | 中国科学院上海微系统与信息技术研究所 | 一种嵌入式系统及其应用进程的休眠与唤醒方法 |
JP2015064676A (ja) * | 2013-09-24 | 2015-04-09 | 株式会社東芝 | 情報処理装置、半導体装置、情報処理方法およびプログラム |
CN104460925A (zh) * | 2014-12-18 | 2015-03-25 | 山东超越数控电子有限公司 | 一种基于申威平台的电源管理实现方法 |
US9760147B2 (en) * | 2016-01-22 | 2017-09-12 | Microsoft Technology Licensing, Llc | Power control for use of volatile memory as non-volatile memory |
CN111427686B (zh) * | 2020-03-23 | 2023-03-24 | 贵阳块数据城市建设有限公司 | 一种处理器多线程并发方法 |
-
2020
- 2020-12-09 CN CN202011449155.5A patent/CN112462926B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN112462926A (zh) | 2021-03-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102789305B (zh) | 推迟挂起 | |
CN109564523B (zh) | 使用机会性管理程序降低性能可变性 | |
US8752060B2 (en) | Multi-CPU domain mobile electronic device and operation method thereof | |
US9952897B2 (en) | Managing processes within suspend states and execution states | |
CN102693162A (zh) | 基于共享内存和核间中断的多核平台上多个虚拟机之间进程通信方法 | |
CN102314377A (zh) | 加速器及其实现支持虚拟机迁移的方法 | |
TW200525365A (en) | Optimization of SMI handling and initialization | |
EP2756386B1 (en) | Managing processes within suspend states and execution states | |
WO2019028854A1 (zh) | 一种虚拟机的状态管理方法、装置和智能终端 | |
EP2672381A1 (en) | Virtual resource management method, system and device | |
WO2017107816A1 (zh) | 一种虚拟化平台中的数据处理方法及装置 | |
CN111414246B (zh) | 具备tee扩展的计算平台上的跨安全世界实时功能调用方法及装置 | |
EP2979182B1 (en) | On-demand scalable timer wheel | |
WO2014139379A1 (zh) | 一种异构操作系统中内核运行的方法及装置 | |
US20060155552A1 (en) | Event handling mechanism | |
CN114296915B (zh) | 一种操作系统调度方法、装置、设备及存储介质 | |
US20130145374A1 (en) | Synchronizing java resource access | |
CN112306652A (zh) | 带有上下文提示的功能的唤醒和调度 | |
JP5673666B2 (ja) | マルチコアプロセッサシステム、割込プログラム、および割込方法 | |
US9436505B2 (en) | Power management for host with devices assigned to virtual machines | |
US9524189B2 (en) | Information processing device, information processing method, and computer program product | |
CN112462926B (zh) | 移动终端中的电源管理方法、装置、电子设备及计算机存储介质 | |
WO2024007934A1 (zh) | 中断处理方法、电子设备和存储介质 | |
CN108701033A (zh) | 客户操作系统唤醒方法、装置、电子设备及可读介质 | |
CN102141920A (zh) | 一种动态配置C-State方法和通信设备 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |