CN110647428A - 镜像文件的制作及恢复方法、处理器和嵌入式系统 - Google Patents
镜像文件的制作及恢复方法、处理器和嵌入式系统 Download PDFInfo
- Publication number
- CN110647428A CN110647428A CN201910937090.XA CN201910937090A CN110647428A CN 110647428 A CN110647428 A CN 110647428A CN 201910937090 A CN201910937090 A CN 201910937090A CN 110647428 A CN110647428 A CN 110647428A
- Authority
- CN
- China
- Prior art keywords
- virtual kernel
- virtual
- kernel
- state data
- image file
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2056—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
-
- 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)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请涉及计算机技术领域,特别涉及一种镜像文件的制作及恢复方法、处理器和嵌入式系统,用以解决镜像文件制作速度慢的技术问题。制作方法包括:基于第一虚拟内核进行镜像加载,得到第二虚拟内核;确定接收到镜像文件制作指令后,通过第一虚拟内核复制并保存非进程状态数据;启动第二虚拟内核,并停止运行第一虚拟内核;通过第二虚拟内核读取第一虚拟内核的进程状态数据;通过第二虚拟内核对进程状态数据和非进程状态数据进行压缩,获得第一镜像文件。恢复方法包括,第二虚拟内核获取第一镜像文件,对其进行解压,切换到第一虚拟内核运行,恢复系统运行。本申请节省了复制和保存进程状态数据所消耗的时间和保存进程状态数据占用的内存空间。
Description
技术领域
本申请涉及计算机技术领域,特别涉及一种镜像文件的制作及恢复方法、处理器和嵌入式系统。
背景技术
目前广泛使用的嵌入式实时操作系统主要有嵌入式Linux、Windows Embedded、Android、iOS等。这些系统在无任务执行的时候,就切换到低功耗状态,根据使用场景,低功耗状态可以是冻结(Freeze)、等待(Standby)、挂起到内存(Suspend to RAM,STR)和挂起到磁盘(Suspend to disk,STD)中的任意一种。
其中,STR技术下,系统处于休眠状态,仅保留RAM自刷新,其他所有设备被挂起,所有的设备和系统状态都保存在RAM中,系统断电则存储在RAM中的设备和系统状态信息丢失。
在STD技术下,系统处于休眠状态,主电源关闭,系统信息到硬盘。STD技术相较于传统的开机,系统从休眠状态恢复到运行的速度更快;而相较于STR开机,速度要慢,但待机功耗更低,数据断电可保存,较STR开机更为安全。
参阅图1所示,以智能电视为例,其典型的最小嵌入式系统组成包括嵌入式多媒体存储卡(Embedded Multi Media Card,eMMC)、随机存取存储器(Random-Access Memory,RAM)和中央处理器(Central Processing Unit,CPU)。其中,eMMC,存储内容断电可保存,相当于个人电脑(personal computer,PC)的硬盘,用于存放操作系统镜像、应用程序和数据等;RAM相当于电脑的内存,操作系统和用户安装的用户程序,均是在RAM上运行的。智能电视运行时,需要将eMMC中的数据拷贝到RAM中。
对于智能电视进行的STD技术休眠方式为:处理器内核将系统在待机前将要保存的数据,例如整个系统的状态,包括内存页面、处理器状态、外部设备的状态等,进行打包,按照一定格式压缩制作成STD镜像文件,保存到eMMC中,这样可以保证交流断电后数据不丢失。在开机时从eMMC中拷贝镜像到RAM中,然后解压镜像,执行恢复流程,最终的结果是恢复到上次关机前的状态。
基于STD技术的已有方案中,在制作镜像文件时,为防止进行多线程压缩时破坏原有进程状态,需要提前申请大量内存,将系统的进程状态全部复制并保存到提前申请的内存中,进程状态的复制和保存消耗了较多的时间,降低了镜像文件制作的速度。
有鉴于此,需要重新设计一种方法以克服上述缺陷。
发明内容
本申请实施例提供一种镜像文件的制作方法、装置、智能设备和存储介质,用以解决现有技术中存在的技术问题。
本申请实施例提供的具体技术方案如下:
本申请实施例的第一方面,提供一种镜像文件的制作方法,包括:
基于第一虚拟内核进行镜像加载,得到第二虚拟内核;
在确定接收到镜像文件制作指令后,通过所述第一虚拟内核复制并保存系统在运行过程中产生的非进程状态数据;启动所述第二虚拟内核,并停止运行所述第一虚拟内核;
通过所述第二虚拟内核读取所述第一虚拟内核在系统运行过程中产生的进程状态数据,并获取所述非进程状态数据;
通过第二虚拟内核对所述进程状态数据和所述非进程状态数据进行压缩,获得第一镜像文件。
本申请实施例的第二方面,提供一种镜像文件的恢复方法,包括:
在确定收到系统恢复指令后,通过第二虚拟内核,读取预存的第一镜像文件,所述第一镜像文件中,包含对应第一虚拟内核预存的非进程状态数据和所述第一虚拟内核在系统运行过程中生成的进程状态数据;
通过所述第二虚拟内核,解压所述第一镜像文件到所述第一虚拟内核对应的存储器中;
通过所述第一虚拟内核,基于解压后的所述进程状态数据和所述非进程状态数据,恢复系统运行。
本申请实施例的第三方面,提供一种处理器,包括至少一个物理内核,所述物理内核用于执行以下操作:
运行第一虚拟内核,基于所述第一虚拟内核进行镜像加载,得到第二虚拟内核;
在确定接收到镜像文件制作指令后,通过所述第一虚拟内核复制并保存系统在运行过程中产生的非进程状态数据;启动所述第二虚拟内核,并停止运行所述第一虚拟内核;
通过所述第二虚拟内核读取所述第一虚拟内核在系统运行过程中产生的进程状态数据,并获取所述非进程状态数据;
通过第二虚拟内核对所述进程状态数据和所述非进程状态数据进行压缩,获得第一镜像文件。
可选的,基于第一虚拟内核进行镜像加载时,所述物理内核,具体用于执行以下操作:
通过所述第一虚拟内核,获取为所述第二虚拟内核预先分配的存储空间的起始地址;
通过所述第一虚拟内核,获取用于加载所述第二虚拟内核的第二镜像文件,将所述第二镜像文件加载到所述第二虚拟内核对应的存储空间的起始地址。
可选的,通过所述第一虚拟内核复制并保存用于制作镜像文件的非进程状态数据时,所述物理内核,具体用于执行以下操作:
通过所述第一虚拟内核复制中央处理器CPU状态数据、设备状态数据中的任一种或两种组合;
通过所述第一虚拟内核对复制的非进程状态数据进行保存。
可选的,启动所述第二虚拟内核,并停止运行所述第一虚拟内核时,所述物理内核,具体用于:
通过所述第一虚拟内核,向所述第二虚拟内核传递启动参数,所述启动参数至少包括所述第一虚拟内核的系统内存的起始地址和系统内存所占用的地址空间,以及非系统内存的起始地址和非系统内存所占用的地址空间;
通过所述第一虚拟内核,将程序指针跳转到所述第二虚拟内核对应的存储空间的起始地址,使所述第二虚拟内核开始运行,并停止运行所述第一虚拟内核;
通过所述第二虚拟内核,获取所述启动参数。
可选的,通过所述第一虚拟内核,向所述第二虚拟内核传递启动参数时,所述物理内核,具体用于执行以下操作:
通过所述第一虚拟内核,将要传递的所述启动参数保存到存储器中,并将保存所述启动参数的存储地址保存到寄存器中;
通过所述第二虚拟内核,获取所述启动参数时,所述获取单元,具体用于:
通过所述第二虚拟内核,读取所述寄存器中保存的所述存储地址,到所述存储地址获取所述启动参数。
本申请实施例的第四方面,提供一种处理器,包括至少一个物理内核,所述物理内核用于执行以下操作:
在确定收到系统恢复指令后,通过第二虚拟内核,读取预存的第一镜像文件,所述第一镜像文件中,包含对应第一虚拟内核预存的非进程状态数据和所述第一虚拟内核在系统运行过程中生成的进程状态数据;
通过所述第二虚拟内核,解压所述第一镜像文件到所述第一虚拟内核对应的存储器中;
通过所述第一虚拟内核,基于解压后的所述进程状态数据和所述非进程状态数据,恢复系统运行。
可选的,解压所述第一镜像文件到所述第一虚拟内核对应的存储器中之后,恢复系统运行之前,所述物理内核,还用于执行以下操作:
通过所述第二虚拟内核,将程序指针跳转到所述第一虚拟内核停止运行的存储地址,使所述第一虚拟内核恢复运行;
停止运行所述第二虚拟内核。
本申请实施例的第五方面,提供一种嵌入式系统,至少包括嵌入式多媒体存储卡eMMC、中央处理器CPU和存储器;
所述CPU设置有至少一个上述任一项所述的物理内核。
本申请实施例的第六方面,提供一种嵌入式系统,至少包括嵌入式多媒体存储卡eMMC、中央处理器CPU和存储器;
所述CPU设置有至少一个上述任一项所述的物理内核。
本申请实施例中,首先基于第一虚拟内核进行镜像加载,得到一个虚拟的第二虚拟内核;在确定接收到镜像文件制作指令时,通过所述第一虚拟内核复制并保存系统在运行过程中产生的非进程状态数据之后,由第一虚拟内核切换到第二虚拟内核运行,通过第二虚拟内核读取所述第一虚拟内核在系统运行过程中生成的进程状态数据,并获取所述非进程状态数据,通过第二虚拟内核对所述进程状态数据和所述非进程状态数据进行压缩,得到第一镜像文件。其中,第一虚拟内核仅需复制和保存非进程状态数据,无需复制和保存进程状态数据,在切换到第二虚拟内核运行后,第一虚拟内核停止运行,第一虚拟内核对应的进程状态不会再变化,因此,通过第二虚拟内核可直接读取第一虚拟内核对应的进程状态数据,进而压缩得到第一镜像文件,这样,相比于现有技术,本申请实施例提供的镜像文件制作方案,减少了用于保存进程状态数据所占用的内存空间,也节省了复制进程状态数据所消耗的时间,提升了制作镜像文件的效率。
附图说明
图1为本申请实施例中智能电视最小嵌入式系统示意图;
图2为本申请实施例中一个双核处理器架构示意图;
图3为本申请实施例中镜像文件的制作方法的流程示意图;
图4为本申请实施例中镜像文件的制作方法一个完整实施例的流程示意图;
图5为本申请实施例中镜像文件的恢复方法的流程示意图;
图6为本申请实施例中镜像文件的恢复方法的一个完整实施例的流程示意图;
图7为本申请实施例中处理器的主要结构示意图;
图8为本申请实施例中嵌入式系统的结构示意图。
具体实施方式
为了解决现有技术中存在的技术问题,本申请实施例中,在镜像文件制作时,通过增加一个第二虚拟内核,使第一虚拟内核在复制并保存非进程状态数据后,切换到第二虚拟内核运行,由第二虚拟内核执行后续的镜像文件制作过程,使第一虚拟内核的进程状态不再发生变化,因而第二虚拟内核可直接读取第一虚拟内核的进程状态数据,并获取第一虚拟内核所保存的非进程状态数据,对两种数据进行压缩得到第一镜像文件;在镜像恢复时,基于第二虚拟内核,将第一镜像文件解压到第一虚拟内核对应的内存中,并由第二虚拟内核切换到第一虚拟内核运行,实现系统的镜像恢复。
下面结合附图对本申请可选的实施方式作出进一步详细说明:
本申请实施例提供的镜像文件制作和镜像恢复方法,可基于单核处理器或者多核处理器架构执行,在多核处理器架构下,能够启动更多线程同时执行镜像文件的压缩和解压,因此执行效率更高。
例如,本申请实施例中,作为其中一种可实施方式,制作镜像文件以及进行镜像恢复的硬件基础结构,参阅图2所示,该CPU为双核处理器,设有两个物理内核分别是CPU0和CPU1,每个物理内核设置有相应的存储器,存储器可以为内存或者缓存(Cache),每个物理内核均可访问寄存器(Register)。
参阅图3所示,在本申请实施例中,镜像文件制作的详细流程如下:
S301,基于第一虚拟内核进行镜像加载,得到第二虚拟内核。
本申请实施例中,第一虚拟内核为一个物理内核镜像加载得到的一个虚拟内核,第二虚拟内核为经第一虚拟内核镜像加载得到的另一个虚拟内核。即第一虚拟内核和第二虚拟内核为基于同一物理内核运行的两个虚拟内核。
可选的,第一虚拟内核和第二虚拟内核,可以基于一个物理内核在不同时间运行,例如,可以选择CPU0作为支持第一虚拟内核和第二虚拟内核运行的物理内核。
在启动第二虚拟内核之前,需要预先为第二虚拟内核分配独立的存储空间,即保证第二虚拟内核所占用的存储空间与第一虚拟内核所占用的存储空间彼此独立,互不冲突。第二虚拟内核的存储空间,可以是第一虚拟内核为其单独申请分配的存储空间,也可以是系统为第二虚拟内核专门保留的存储空间。本申请实施例中,存储空间包括内存空间和/或缓存空间。
具体地,基于第一虚拟内核进行镜像加载,即通过第一虚拟内核获取第二虚拟内核需要占用的内存,并将第二虚拟内核的第二镜像文件读取到该部分内存中,具体包括:通过所述第一虚拟内核,获取为所述第二虚拟内核预先分配的存储空间的起始地址;通过所述第一虚拟内核,获取用于加载所述第二虚拟内核的第二镜像文件,将所述第二镜像文件加载到所述第二虚拟内核对应的存储空间的起始地址。
其中第二镜像文件为预先设置的用于加载第二虚拟内核的镜像文件,并非是用于恢复系统运行的镜像文件,与第一镜像文件相比具有不同属性。
S302,在确定接收到镜像文件制作指令后,通过所述第一虚拟内核复制并保存系统在运行过程中产生的非进程状态数据;启动所述第二虚拟内核,并停止运行所述第一虚拟内核;
首先,需要说明的是,在本申请实施例中,基于第一虚拟内核进行镜像加载,得到第二虚拟内核的步骤,可以在确定接收到镜像文件制作指令之前执行,也可以在确定接收到镜像文件制作指令之后执行,本实施例的步骤序号仅为描述方便,不可理解为对二者在执行时序上的固定限制。具体地,此处可以采用两种实施方式:
方式一:先基于第一虚拟内核进行镜像加载,得到第二虚拟内核,之后在收到镜像文件制作指令后,再通过第一虚拟内核复制并保存系统在运行过程中产生的非进程状态数据,以及执行后续步骤,这种方式将加载第二虚拟内核的操作提前完成,当收到镜像文件制作指令后,无需临时加载第二虚拟内核,制作第一镜像文件的速度更快;
方式二:在收到镜像文件制作指令后,再执行S302,这种方式二相比于方式一,在无需执行镜像文件制作时,节省了第二虚拟内核所占用的内存空间。
本申请实施例中,镜像文件制作指令,为用于指示制作第一镜像文件的指令。一般而言,以下几种情况会触发系统进行镜像文件制作:首次开机,系统升级,或者用户通过设置选项选择制作镜像文件等。例如,作为一种可实施方式,可以设置当系统升级时,则重新制作一次第一镜像文件。
或者,系统设置按照预设周期或者时长,触发一次第一镜像文件制作的操作。即,并非每次关机或者进入休眠状态时,均需要制作第一镜像文件。
因此,镜像文件制作指令,具体可以包括首次开机指令、关机指令、休眠指令、系统升级指令、用户选择进行镜像文件制作指令中的任一种或任意组合,或者包括系统根据这些指令中的一种而生成的镜像文件制作指令。
在本申请实施例中,非进程状态数据包括CPU状态数据、设备状态数据中的任一种或两种组合。
其中,CPU状态数据,主要包括CPU对应的寄存器状态数据,根据CPU架构以及型号的不同,是否保存CPU状态数据是可选的,一般而言,对于先进精简指令集计算机处理器(Advanced Reduced Instruction Set Computer Machine,ARM),无需保存CPU状态数据,例如ARM64;对于x86系列,则需要保存CPU状态数据。
设备状态数据,为指定设备的状态数据,主要包括指定设备的驱动在内存中的代码、堆栈信息,以及在CPU上产生的中断请求(Interrupt Request,IRQ)信息,这些信息保存在对应的寄存器中。
指定设备,可选的,可以包括执行多线程压缩所需要用到的除CPU以外的其它硬件设备。
具体地,对非进程状态数据进行复制和保存,可以包括:通过所述第一虚拟内核复制CPU状态数据、设备状态数据中的任一种或两种组合;并且通过所述第一虚拟内核对复制的非进程状态数据进行保存。
在本申请实施例中,第一虚拟内核和第二虚拟内核不能同时运行,因此,在保存非进程状态数据之后,启动所述第二虚拟内核,并停止运行所述第一虚拟内核,即完成由第一虚拟内核运行到第二虚拟内核运行的切换。
具体地,由第一虚拟内核运行切换到第二虚拟内核运行,可按照如下方式执行:
首先,通过所述第一虚拟内核,向所述第二虚拟内核传递启动参数,通过所述第一虚拟内核,将程序指针跳转到所述第二虚拟内核对应的存储空间的起始地址,使所述第二虚拟内核开始运行,并停止运行所述第一虚拟内核,然后通过所述第二虚拟内核,获取所述启动参数。
其中,启动参数至少包括所述第一虚拟内核的系统内存的起始地址、系统内存所占用的地址空间、非系统内存的起始地址、非系统内存所占用的地址空间。系统内存或者非系统内存占用的地址空间,分别指系统内存或者非系统内存占用的内存空间的大小。将起始地址和地址空间作为启动参数,包括两种可实施方式:一种是将系统内存或者非系统内存的起始地址与结束地址一并作为启动参数;第二种是,将起始地址和占用的内存空间大小作为启动参数一并传递,例如,根据结束地址和起始地址,计算得出所占用的内存空间大小为1GB(千兆字节),则将起始地址和1GB作为启动参数传递。
可选的,启动参数还可包括以下参数中任一种或任意组合:根文件系统设备、根文件系统类型、串口配置、init路径等等。
需要说明的是,传递启动参数的操作,应在程序指针跳转到第二虚拟内核对应的存储空间的起始地址之前执行。
可选的,作为一种可实施方式,通过所述第一虚拟内核,向所述第二虚拟内核传递启动参数,以及通过所述第二虚拟内核获取所述启动参数,具体包括:
通过所述第一虚拟内核,将要传递的所述启动参数保存到存储器中,并将保存所述启动参数的存储地址保存到寄存器中;通过所述第二虚拟内核,读取所述寄存器中保存的所述存储地址,到所述存储地址获取所述启动参数。
可选的,保存启动参数所占用的存储空间,应独立于第一虚拟内核和第二虚拟内核所占用的存储空间。
在本申请实施例中,存储器可以为RAM和/或Cache,其中RAM可以是动态随机存取存储器(Dynamic Random AccessMemory,DRAM)或者静态随机存取存储器(Static Random-Access Memory,SRAM)。
S303,通过所述第二虚拟内核读取所述第一虚拟内核在系统运行过程中产生的进程状态数据,并获取所述非进程状态数据;
具体的,在执行S303时,第二虚拟内核可以从第一虚拟内核对应的内存中直接读取进程状态数据。
进程状态数据,可选的,可以包括系统运行过程中产生的各种进程状态信息,并且可以完全存储在第一虚拟内核对应的内存中,主要以代码,堆栈等形式体现。保存进程状态数据时,无需关心具体进程,只需读取第一虚拟内核已使用的内存即可。
由于在S302中,第一虚拟内核传递给第二虚拟内核的启动参数中,包含系统内存和非系统内存的起始地址以及空间大小等信息,因此,第二虚拟内核可直接根据该起始地址,对应读取系统内存以及非系统内存中保留的进程状态数据。
S304,通过第二虚拟内核对所述进程状态数据和所述非进程状态数据进行压缩,获得第一镜像文件。
对于进程状态数据和非进程状态数据的压缩,可执行单线程压缩和多线程压缩。单线程压缩,由第二虚拟内核即可执行,但单线程压缩的时间较长,压缩效率比较低。
可选的,在执行S304时,可以通过所述第二虚拟内核,通知所述CPU的各个物理内核和所述硬件设备,对所述进程状态数据和所述非进程状态数据进行多线程压缩。即,通过第二虚拟内核,触发CPU的多个物理内核来执行多线程压缩任务,以缩短压缩时间。
可见,在执行多线程压缩之前,需要保证CPU中每个物理内核处于运行状态,因此,对所述进程状态数据和所述非进程状态数据进行压缩之前,还包括:
通过所述第二虚拟内核,使能CPU的各个物理内核,并解冻指定的硬件设备。
为进一步理解本申请实施例提供的镜像文件制作方法,下面列举一个完整的实施例。
需要说明的是,该实施例中包含镜像文件制作前的准备流程、镜像文件制作流程以及将制作出的镜像文件保存到eMMC的流程,不可理解为该实施例所述流程全部为本申请实施例所限定的制作镜像文件的必要流程。
该完整实施例基于四核处理器执行,存储器为RAM。参阅图4所示,该实施例包括以下流程:
S401:同步文件系统。
例如,对于linux系统而言,同步文件系统,就是将物理内存中的dirty页写入到磁盘中,保证磁盘和物理页之间的内容一致。
S402:冻结用户进程。
冻结当前正在运行的各个用户进程,以便内存中用户进程对应的进程状态数据不再变化,用户进程对应的进程状态数据对应保存到非系统内存中。
S403:回收内存(RAM)。
将用于存储无用文件或数据所占用的内存空间回收。
S404:分配内存。
该步骤包括为第二虚拟内核分配独立的内存空间。
可选的,为启动参数的存储分配独立的内存空间。
S405:冻结系统进程。
冻结当前正在运行的各个系统进程,以便内存中系统进程对应的进程状态数据不再变化,系统进程对应的进程状态数据对应保存到系统内存中。
冻结系统进程,包括冻结每个系统进程下的多个线程,即冻结CPU中每个物理内核或者物理内核对应的虚拟内核执行的线程。
S406:冻结指定设备。
预先指定系统中除CPU以外的其它所有硬件设备为指定设备,将其冻结。
S407:关闭非启动物理内核,保留CPU0。
以CPU0作为启动物理内核,其它三个物理内核均为非启动物理内核,在此步骤将其关闭,仅保留CPU0运行。
S408:保存CPU、设备状态数据到内存。
将CPU各个物理内核、指定设备的状态数据保存到内存中。
S409:第一虚拟内核运行切换到第二虚拟内核运行。
具体如何由第一虚拟内核运行切换到第二虚拟内核运行,参照前述实施例的描述,本实施例不再赘述。
S410:第二虚拟内核使能CPU的所有物理内核。
由于执行多线程压缩需要基于CPU的所有物理内核执行,因此需要在此步骤向CPU的各个物理内核发送一个使能信号,使其恢复运行状态。
S411:第二虚拟内核解冻设备。
执行多线程压缩还需要基于多种设备,因此,在此步骤中,还需要解冻执行多线程压缩会用到的多种硬件设备。此处解冻的设备包含在指定设备的范围之内,即解冻的设备可能是指定设备中的一部分,无需全部解冻。
S412:多线程压缩。
此步骤即基于运行中的CPU各个物理内核以及解冻的多种设备,执行多线程压缩。
S413:将压缩后的第一镜像文件写入eMMC。
此步骤并非每个实施例都需要执行的必要步骤,当应用于智能电视,且该智能电视具有图1所示的最小嵌入式系统时,需要执行此步骤。
一般而言,制作出的第一镜像文件先保存到RAM中,再对应保存到eMMC或者硬盘中。
基于同一发明构思,本申请实施例还提供一种镜像文件的恢复方法,参阅图5所示,该方法包括:
S501:在确定收到系统恢复指令后,通过第二虚拟内核,读取预存的第一镜像文件。
在本申请实施例中,制作一次镜像文件,可以执行多次解压过程。
其中,触发镜像恢复的条件为开机或者从休眠状态唤醒,系统恢复指令包括开机指令或从休眠状态恢复运行指令。第一镜像文件中,包含对应第一虚拟内核预存的非进程状态数据和所述第一虚拟内核在系统运行过程中生成的进程状态数据。
S502:通过所述第二虚拟内核,解压所述第一镜像文件到所述第一虚拟内核对应的存储器中。
与压缩过程对应地,对于第一镜像文件的解压过程,也可是单线程解压或者是多线程解压。
单线程解压由第二虚拟内核即可执行;多线程解压,则需要通过第二虚拟内核调动CPU的各个物理内核执行多线程解压,多线程解压的速度更快,效率更高。
在完成对第一镜像文件的解压过程后,由第二虚拟内核切换到第一虚拟内核运行,具体地,通过所述第二虚拟内核,将程序指针跳转到所述第一虚拟内核停止运行的存储地址,使所述第一虚拟内核恢复运行;停止运行所述第二虚拟内核。
S503:通过所述第一虚拟内核,基于解压后的所述进程状态数据和所述非进程状态数据,恢复系统运行。
至此,完成了镜像恢复,继续由第一虚拟内核控制系统运行。
为进一步理解本申请实施例提供的镜像文件恢复方法,下面列举一个完整的实施例。
需要说明的是,该实施例包含镜像文件恢复的流程,不可理解为该实施例所述流程全部为本申请实施例所限定的镜像文件恢复的必要流程。
参阅图6所示,该实施例包括以下流程:
S601:第二虚拟内核启动。
在收到开机指令或者从休眠状态恢复运行指令后,第二虚拟内核自行启动。
S602:使能CPU的所有物理内核。
第二虚拟内核使能CPU的所有物理内核,以执行多线程解压。
S603:基础设备初始化。
此步骤的基础设备包括解压第一镜像文件所需用到的硬件设备。以智能电视为例,当其安装的系统类型为图1所示的系统时,基础设备则至少包括eMMC,基础设备为指定设备中的一部分。
S604:读取第一镜像文件。
具体地,第二虚拟内核从对应的内存中对应读取第一镜像文件。
S605:多线程解压第一镜像文件到内存。
此步骤中,解压第一镜像文件到第一虚拟内核对应的内存中。
S606:关闭非启动物理内核,保留CPU0。
S607:由第二虚拟内核切换到第一虚拟内核。
具体地,作为一种可实施方式,将程序指针跳转到第一虚拟内核停止运行的内存地址,第一虚拟内核恢复运行,第二虚拟内核停止运行。
S608:第一虚拟内核使能CPU的所有物理内核。
第一虚拟内核恢复CPU中各个物理内核的运行。
S609:解冻指定设备。
第一虚拟内核将指定设备中未解冻的设备进行解冻。
S610:恢复进程。
第一虚拟内核恢复用户进程和系统进程。
至此,系统镜像恢复结束。
基于同一发明构思,本申请实施例还提供一种处理器,参阅图7所示,包括至少一个物理内核701,所述物理内核701用于执行以下操作:
运行第一虚拟内核7011,基于所述第一虚拟内核7011,在确定接收到镜像文件制作指令后,基于所述第一虚拟内核7011进行镜像加载,得到第二虚拟内核7012;
通过所述第一虚拟内核7011复制并保存系统在运行过程中产生的非进程状态数据;启动所述第二虚拟内核7012,并停止运行所述第一虚拟内核;
通过所述第二虚拟内核7012读取所述第一虚拟内核7011在系统运行过程中产生的进程状态数据,并获取所述非进程状态数据;
通过第二虚拟内核7012对所述进程状态数据和所述非进程状态数据进行压缩,获得第一镜像文件。
可选的,基于第一虚拟内核7011进行镜像加载时,所述物理内核,具体用于执行以下操作:
通过所述第一虚拟内核7011,获取为所述第二虚拟内核7012预先分配的存储空间的起始地址;通过所述第一虚拟内核7011,获取用于加载所述第二虚拟内核7012的第二镜像文件,将所述第二镜像文件加载到所述第二虚拟内核7012对应的存储空间的起始地址。
可选的,通过所述第一虚拟内核7011复制并保存用于制作镜像文件的非进程状态数据时,所述物理内核,具体用于执行以下操作:
通过所述第一虚拟内核7011复制中央处理器CPU状态数据、设备状态数据中的任一种或两种组合;通过所述第一虚拟内核7011对复制的非进程状态数据进行保存。
可选的,启动所述第二虚拟内核7012,并停止运行所述第一虚拟内核7011时,所述物理内核,具体用于:
通过所述第一虚拟内核7011,向所述第二虚拟内核7012传递启动参数,所述启动参数至少包括所述第一虚拟内核7011的系统内存的起始地址和系统内存所占用的地址空间,以及非系统内存的起始地址和非系统内存所占用的地址空间;通过所述第一虚拟内核7011,将程序指针跳转到所述第二虚拟内核7012对应的存储空间的起始地址,使所述第二虚拟内核7012开始运行,并停止运行所述第一虚拟内核7011;通过所述第二虚拟内核7012,获取所述启动参数。
可选的,通过所述第一虚拟内核7011,向所述第二虚拟内核7012传递启动参数时,所述物理内核,具体用于执行以下操作:
通过所述第一虚拟内核7011,将要传递的所述启动参数保存到存储器中,并将保存所述启动参数的存储地址保存到寄存器中;
通过所述第二虚拟内核7012,获取所述启动参数时,所述获取单元,具体用于:
通过所述第二虚拟内核7012,读取所述寄存器中保存的所述存储地址,到所述存储地址获取所述启动参数。
本申请实施例中,物理内核701所执行的具体操作,可参见上述镜像文件的制作方法实施例中的相关阐述,此处不再复述。
基于同一发明构思,本申请实施例还提供一种处理器,包括至少一个物理内核,所述物理内核用于执行以下操作:
确定收到系统恢复指令后,通过第二虚拟内核,读取预存的第一镜像文件,所述第一镜像文件中,包含对应第一虚拟内核预存的非进程状态数据和所述第一虚拟内核在系统运行过程中生成的进程状态数据;
通过所述第二虚拟内核,解压所述第一镜像文件到所述第一虚拟内核对应的存储器中;
通过所述第一虚拟内核,基于解压后的所述进程状态数据和所述非进程状态数据,恢复系统运行。
可选的,解压所述第一镜像文件到所述第一虚拟内核对应的存储器中之后,恢复系统运行之前,所述物理内核,还用于执行以下操作:
通过所述第二虚拟内核,将程序指针跳转到所述第一虚拟内核停止运行的存储地址,使所述第一虚拟内核恢复运行;停止运行所述第二虚拟内核。
本申请实施例中的物理内核所执行的具体操作,可参见上述镜像文件的恢复方法实施例中的相关阐述,此处不再复述。
基于同一发明构思,本申请实施例还提供一种嵌入式系统,参阅图8所示,至少包括嵌入式多媒体存储卡eMMC801、中央处理器CPU802和存储器803;
所述CPU802设置有至少一个物理内核,该物理内核用于执行上述任一项与镜像文件制作相关的操作。
基于同一发明构思,本申请实施例还提供一种嵌入式系统,至少包括嵌入式多媒体存储卡eMMC、中央处理器CPU和存储器。
所述CPU设置有至少一个物理内核,该物理内核用于执行上述任一项与镜像文件恢复相关的操作。
综上,本申请实施例中,第一虚拟内核仅需复制和保存非进程状态数据,无需复制和保存进程状态数据,在切换到第二虚拟内核运行后,第一虚拟内核停止运行,第一虚拟内核对应的进程状态不会再变化,因此,通过第二虚拟内核可直接读取第一虚拟内核对应的进程状态数据,进而压缩得到第一镜像文件。
相比于现有技术,本申请实施例提供的镜像文件制作以及恢复方案,减少了用于保存进程状态数据所占用的内存空间,也节省了复制进程状态数据所消耗的时间,提升了制作镜像文件的速度。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请实施例进行各种改动和变型而不脱离本申请实施例的精神和范围。这样,倘若本申请实施例的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (11)
1.一种镜像文件的制作方法,其特征在于,包括:
基于第一虚拟内核进行镜像加载,得到第二虚拟内核;
在确定接收到镜像文件制作指令后,通过所述第一虚拟内核复制并保存系统在运行过程中产生的非进程状态数据;启动所述第二虚拟内核,并停止运行所述第一虚拟内核;
通过所述第二虚拟内核读取所述第一虚拟内核在系统运行过程中产生的进程状态数据,并获取所述非进程状态数据;
通过第二虚拟内核对所述进程状态数据和所述非进程状态数据进行压缩,获得第一镜像文件。
2.一种镜像文件的恢复方法,其特征在于,包括:
在确定收到系统恢复指令后,通过第二虚拟内核,读取预存的第一镜像文件,所述第一镜像文件中,包含对应第一虚拟内核预存的非进程状态数据和所述第一虚拟内核在系统运行过程中生成的进程状态数据;
通过所述第二虚拟内核,解压所述第一镜像文件到所述第一虚拟内核对应的存储器中;
通过所述第一虚拟内核,基于解压后的所述进程状态数据和所述非进程状态数据,恢复系统运行。
3.一种处理器,包括至少一个物理内核,其特征在于,所述物理内核用于执行以下操作:
运行第一虚拟内核,基于所述第一虚拟内核进行镜像加载,得到第二虚拟内核;
在确定接收到镜像文件制作指令后,通过所述第一虚拟内核复制并保存系统在运行过程中产生的非进程状态数据;启动所述第二虚拟内核,并停止运行所述第一虚拟内核;
通过所述第二虚拟内核读取所述第一虚拟内核在系统运行过程中产生的进程状态数据,并获取所述非进程状态数据;
通过第二虚拟内核对所述进程状态数据和所述非进程状态数据进行压缩,获得第一镜像文件。
4.如权利要求3所述的处理器,其特征在于,基于第一虚拟内核进行镜像加载时,所述物理内核,具体用于执行以下操作:
通过所述第一虚拟内核,获取为所述第二虚拟内核预先分配的存储空间的起始地址;
通过所述第一虚拟内核,获取用于加载所述第二虚拟内核的第二镜像文件,将所述第二镜像文件加载到所述第二虚拟内核对应的存储空间的起始地址。
5.如权利要求3所述的处理器,其特征在于,通过所述第一虚拟内核复制并保存用于制作镜像文件的非进程状态数据时,所述物理内核,具体用于执行以下操作:
通过所述第一虚拟内核复制中央处理器CPU状态数据、设备状态数据中的任一种或两种组合;
通过所述第一虚拟内核对复制的非进程状态数据进行保存。
6.如权利要求3所述的处理器,其特征在于,启动所述第二虚拟内核,并停止运行所述第一虚拟内核时,所述物理内核,具体用于:
通过所述第一虚拟内核,向所述第二虚拟内核传递启动参数,所述启动参数至少包括所述第一虚拟内核的系统内存的起始地址和系统内存所占用的地址空间,以及非系统内存的起始地址和非系统内存所占用的地址空间;
通过所述第一虚拟内核,将程序指针跳转到所述第二虚拟内核对应的存储空间的起始地址,使所述第二虚拟内核开始运行,并停止运行所述第一虚拟内核;
通过所述第二虚拟内核,获取所述启动参数。
7.如权利要求6所述的处理器,其特征在于,通过所述第一虚拟内核,向所述第二虚拟内核传递启动参数时,所述物理内核,具体用于执行以下操作:
通过所述第一虚拟内核,将要传递的所述启动参数保存到存储器中,并将保存所述启动参数的存储地址保存到寄存器中;
通过所述第二虚拟内核,获取所述启动参数时,所述获取单元,具体用于:
通过所述第二虚拟内核,读取所述寄存器中保存的所述存储地址,到所述存储地址获取所述启动参数。
8.一种处理器,包括至少一个物理内核,其特征在于,所述物理内核用于执行以下操作:
在确定收到系统恢复指令后,通过第二虚拟内核,读取预存的第一镜像文件,所述第一镜像文件中,包含对应第一虚拟内核预存的非进程状态数据和所述第一虚拟内核在系统运行过程中生成的进程状态数据;
通过所述第二虚拟内核,解压所述第一镜像文件到所述第一虚拟内核对应的存储器中;
通过所述第一虚拟内核,基于解压后的所述进程状态数据和所述非进程状态数据,恢复系统运行。
9.如权利要求8所述的处理器,其特征在于,解压所述第一镜像文件到所述第一虚拟内核对应的存储器中之后,恢复系统运行之前,所述物理内核,还用于执行以下操作:
通过所述第二虚拟内核,将程序指针跳转到所述第一虚拟内核停止运行的存储地址,使所述第一虚拟内核恢复运行;
停止运行所述第二虚拟内核。
10.一种嵌入式系统,其特征在于,至少包括嵌入式多媒体存储卡eMMC、中央处理器CPU和存储器;
所述CPU设置有至少一个如权利要求3-7任一项所述的物理内核。
11.一种嵌入式系统,其特征在于,至少包括嵌入式多媒体存储卡eMMC、中央处理器CPU和存储器;
所述CPU设置有至少一个如权利要求8或9所述的物理内核。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910937090.XA CN110647428B (zh) | 2019-09-29 | 2019-09-29 | 镜像文件的制作及恢复方法、处理器和嵌入式系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910937090.XA CN110647428B (zh) | 2019-09-29 | 2019-09-29 | 镜像文件的制作及恢复方法、处理器和嵌入式系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110647428A true CN110647428A (zh) | 2020-01-03 |
CN110647428B CN110647428B (zh) | 2023-08-04 |
Family
ID=69012211
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910937090.XA Active CN110647428B (zh) | 2019-09-29 | 2019-09-29 | 镜像文件的制作及恢复方法、处理器和嵌入式系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110647428B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114168203A (zh) * | 2020-09-10 | 2022-03-11 | 成都鼎桥通信技术有限公司 | 双系统运行状态控制方法、装置和电子设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005103878A2 (en) * | 2004-04-26 | 2005-11-03 | Storewiz, Inc. | Method and system for compression of files for storage and operation on compressed files |
CN1818869A (zh) * | 2006-03-15 | 2006-08-16 | 浙江大学 | 嵌入式操作系统镜像启动的启动优化方法 |
US20070074192A1 (en) * | 2005-08-30 | 2007-03-29 | Geisinger Nile J | Computing platform having transparent access to resources of a host platform |
US20070074191A1 (en) * | 2005-08-30 | 2007-03-29 | Geisinger Nile J | Software executables having virtual hardware, operating systems, and networks |
US20120210095A1 (en) * | 2011-02-11 | 2012-08-16 | Fusion-Io, Inc. | Apparatus, system, and method for application direct virtual memory management |
US20170147227A1 (en) * | 2014-09-16 | 2017-05-25 | Kove Ip, Llc | External memory for virtualization |
-
2019
- 2019-09-29 CN CN201910937090.XA patent/CN110647428B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005103878A2 (en) * | 2004-04-26 | 2005-11-03 | Storewiz, Inc. | Method and system for compression of files for storage and operation on compressed files |
US20070074192A1 (en) * | 2005-08-30 | 2007-03-29 | Geisinger Nile J | Computing platform having transparent access to resources of a host platform |
US20070074191A1 (en) * | 2005-08-30 | 2007-03-29 | Geisinger Nile J | Software executables having virtual hardware, operating systems, and networks |
CN1818869A (zh) * | 2006-03-15 | 2006-08-16 | 浙江大学 | 嵌入式操作系统镜像启动的启动优化方法 |
US20120210095A1 (en) * | 2011-02-11 | 2012-08-16 | Fusion-Io, Inc. | Apparatus, system, and method for application direct virtual memory management |
US20170147227A1 (en) * | 2014-09-16 | 2017-05-25 | Kove Ip, Llc | External memory for virtualization |
Non-Patent Citations (3)
Title |
---|
DONG JIAN ET AL: "Research of 3D Modeling of Virtual Reality for LAMOST Based on OpenGL", IEEE * |
李福兴;李璐?;: "面向煤炭开采的大数据处理平台构建关键技术", 煤炭学报, no. 1 * |
郑婷婷;武延军;贺也平;: "云计算环境下的虚拟机快速克隆技术", 计算机工程与应用, no. 13 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114168203A (zh) * | 2020-09-10 | 2022-03-11 | 成都鼎桥通信技术有限公司 | 双系统运行状态控制方法、装置和电子设备 |
CN114168203B (zh) * | 2020-09-10 | 2024-02-13 | 成都鼎桥通信技术有限公司 | 双系统运行状态控制方法、装置和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN110647428B (zh) | 2023-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109739563B (zh) | 终端的控制方法、装置、系统及存储介质 | |
US5269022A (en) | Method and apparatus for booting a computer system by restoring the main memory from a backup memory | |
JP6399916B2 (ja) | 情報処理装置およびその制御方法 | |
EP1351146A1 (en) | Power management system and method with recovery after power failure | |
JP5860543B2 (ja) | ブートデータのロード | |
US9448889B2 (en) | BIOS failover update with service processor | |
US9448808B2 (en) | BIOS update with service processor without serial peripheral interface (SPI) access | |
US20030070065A1 (en) | Suspending to nonvolatile storage | |
CN109413497B (zh) | 一种智能电视机及其系统启动方法 | |
JP2009157756A (ja) | 情報処理装置およびデータ復旧方法 | |
US20230016888A1 (en) | Memory mapping for hibernation | |
WO2020093868A1 (zh) | 多核芯片、系统,及其方法和存储介质 | |
CN112506745B (zh) | 内存温度读取方法、装置及计算机可读存储介质 | |
TWI546661B (zh) | 使用狀態資訊回復系統之技術 | |
CN109683983B (zh) | 一种镜像文件的生成及加载方法、设备 | |
US9933953B1 (en) | Managing copy sessions in a data storage system to control resource consumption | |
CN110647428B (zh) | 镜像文件的制作及恢复方法、处理器和嵌入式系统 | |
CN106775846B (zh) | 用于物理服务器的在线迁移的方法及装置 | |
CN102360300B (zh) | 操作系统的启动方法及装置 | |
CN113127263B (zh) | 一种内核崩溃恢复方法、装置、设备及存储介质 | |
US9904559B2 (en) | Information processing apparatus and activation method therefor for processing data of a hibernation image | |
JP2012068797A (ja) | 起動高速化方法、情報処理装置及びプログラム | |
WO2020199009A1 (zh) | 启动装置的处理方法、装置、设备及存储介质 | |
KR102571501B1 (ko) | 메모리 장치 | |
JP2005258642A (ja) | 組込型情報処理装置 |
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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 266555 Qingdao economic and Technological Development Zone, Shandong, Hong Kong Road, No. 218 Applicant after: Hisense Video Technology Co.,Ltd. Address before: 266555 Qingdao economic and Technological Development Zone, Shandong, Hong Kong Road, No. 218 Applicant before: QINGDAO HISENSE ELECTRONICS Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |