CN109408120A - 操作***启动优化 - Google Patents
操作***启动优化 Download PDFInfo
- Publication number
- CN109408120A CN109408120A CN201810900879.3A CN201810900879A CN109408120A CN 109408120 A CN109408120 A CN 109408120A CN 201810900879 A CN201810900879 A CN 201810900879A CN 109408120 A CN109408120 A CN 109408120A
- Authority
- CN
- China
- Prior art keywords
- result
- application program
- operating system
- results
- stage
- 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
- 238000005457 optimization Methods 0.000 title description 27
- 230000015654 memory Effects 0.000 claims abstract description 63
- 238000003860 storage Methods 0.000 claims abstract description 52
- 238000000034 method Methods 0.000 claims description 35
- 230000004044 response Effects 0.000 claims description 11
- 238000012545 processing Methods 0.000 claims description 9
- 238000010586 diagram Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 9
- 235000013399 edible fruits Nutrition 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 230000006399 behavior Effects 0.000 description 6
- 238000009434 installation Methods 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 238000012795 verification Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000011664 signaling Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 210000003733 optic disk Anatomy 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4406—Loading of operating system
-
- 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/442—Shutdown
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
在一个实施方案中,基于在关机期间执行的启动操作的结果来启动操作***。在操作中,在操作***的关机阶段期间,执行一个或多个启动操作,并且将这些操作的结果存储在存储器中。在所述操作***的启动阶段期间,接收所述结果,并且基于所述一个或多个结果启动所述操作***。
Description
相关申请的交叉引用
本申请要求2017年8月16日提交的并具有申请号201741028982的标题为“Operating system boot optimizations for automotive infotainment systems byprocessing application integrity&check during inactive states like shutdown”的印度临时专利申请的优先权权益。本相关申请的主题据此以引用的方式并入本文中。
技术领域
各个实施方案总体上涉及操作***,并且更具体来说,涉及操作***启动操作的优化。
背景技术
安装在计算***中的操作***可在启动或开机时执行多个操作。这些启动操作,除其他之外,准备操作***和安装在计算***上的一个或多个应用程序以供计算***的用户使用。这些启动操作的示例可包括应用程序解析、应用程序扫描、应用程序验证和应用程序优化。应用程序解析和应用程序扫描操作可包括例如提取应用程序数据并扫描应用程序数据以通过证书和签名匹配来进行兼容。应用程序验证和应用程序优化操作可包括例如断定在***中安装了哪些应用程序、验证这些已安装应用程序的完整性以及优化这些应用程序以用于执行。
随着计算***中安装的应用程序数量的增加,启动时间由于跨已安装应用程序执行启动操作所需的时间量而增加。在其中相对经常发生关机和启动循环的***中,启动操作花费的时间可能成为享受***的障碍。
其中相对经常发生关机和启动循环的***或环境的示例是车载环境,其中每当例如用户关闭车辆时都发生关机。此外,提供安装来自应用程序市场的应用程序的能力的信息娱乐***越来越多地部署在车载环境中。在这种信息娱乐***中,为了实现对应的人机界面的操作,信息娱乐***的操作***在启动时执行各种启动操作,诸如应用程序扫描和应用程序验证操作。随着车载环境中关机和启动循环相对频繁以及在这样的环境中已安装应用程序的使用越来越多,启动操作所消耗的时间可能很长,并且随着用户在车载环境信息娱乐***中安装甚至更多的应用程序,启动时间进一步增加。
如前所述,本领域中需要更高效的方式来执行操作***的启动操作。
发明内容
一个实施方案阐述了一种用于启动操作***的方法。该方法包括在操作***的关机阶段期间,执行一个或多个启动操作以生成一个或多个结果,并且将该一个或多个结果存储在存储器中。该方法还包括,在操作***的启动阶段期间,接收来自存储器的一个或多个结果,并且基于该一个或多个结果启动操作***。
另外的实施方案,除其他之外,提供被配置来实现上述方法的一种***和一种计算机可读存储介质。
所公开技术的至少一个优点是减少了启动操作***所消耗的时间。具体来说,在关机阶段期间执行启动操作,此时这些操作对用户的破坏性更小。基于这些操作的结果,在下一个启动阶段期间可省略至少一些启动操作。因此,减少了启动阶段期间所消耗的时间。
附图说明
为了能够详细地理解上述特征,可参考各实施方案(其中一些在附图中示出)来更具体描述以上已简要概述的各个实施方案。然而,应注意,附图仅仅示出了典型的实施方案,并且因此不应被认为是对本发明范围的限制,这是因为设想的实施方案可容许其他等效的实施方案。
图1是被配置来实现各个实施方案的一个或多个方面的计算***的方框图;
图2是示出了根据一些实施方案的在关机阶段期间执行的启动操作的示例的流程图;
图3是示出了根据一些实施方案的在启动阶段期间执行或省略的启动操作的示例的流程图;
图4是示出了根据一些实施方案的用于在关机过程期间执行启动操作的方法步骤的流程图;以及
图5是示出了根据一些实施方案的用于在启动过程期间执行或省略启动操作的方法步骤的流程图。
具体实施方式
在以下描述中,阐述许多特定细节以提供对各个实施方案的更透彻理解。然而,对本领域的技术人员来说将显而易见的是,可在没有这些特定细节中的一个或多个的情况下实践各个实施方案。
***概述
图1是被配置来实现各个实施方案的一个或多个方面的计算***100的方框图。如图所示,计算***100包括处理器102、输入/输出(I/O)装置104和存储器106。存储器106包括操作***108、一个或多个应用程序116和启动操作结果118。操作***108包括启动模块110、关机模块112和一个或多个启动操作模块114。
在一些实施方案中,计算***100是计算装置。例如,计算***100可以是台式计算机、膝上型计算机、服务器、工作站、终端、平板计算机、智能电话或其他种类的计算装置中的任何一种。在一些实施方案中,计算***100是嵌入或安装在另一***或装置中的***或装置。例如,计算***100可以是安装在车辆中的车载信息娱乐***。更一般地,计算***100可以是包括存储器和一个或多个处理器并且被配置来(例如,经由一个或多个处理器)执行存储在存储器中的指令(例如,操作***、应用程序等)的任何计算装置、电子装置或***。
处理器102可以是被配置来处理数据并且执行程序代码的任何技术上可行形式的处理装置。处理器102可包括例如但不限于芯片上***(SoC)、中央处理单元(CPU)、图形处理单元(GPU)、专用集成电路(ASIC)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)等。通常,处理器102可以是能够处理数据和/或执行程序代码(包括操作***108和应用程序116)的任何技术上可行的硬件单元。
I/O装置104可包括输入装置、输出装置和既能够接收输入也能够提供输出的装置。例如但不限于,I/O装置104可包括有线和/或无线通信装置,其向远程数据库、其他计算***或装置等发送数据和/或从远程数据库、其他计算***或装置等接收数据。I/O装置104还可包括用于接收输入和输出输出的一个或多个输入和/或输出装置。输入装置的示例包括键盘、鼠标、轨迹球、操纵杆、触控板、触敏表面或显示器、麦克风或其他音频输入装置、相机、物理控制件(例如,按钮、拨号盘等)、传感器等。输出装置的示例包括显示屏、扬声器、耳机、触觉输出装置、发光装置等。此外,I/O装置104可包括具有一个或多个连接器的联网装置,通过所述连接器例如在网络交换机之间和/或在一个或多个计算***100之间发送和/或接收数据信号和/或控制信号。
存储器106可包括存储器模块或存储器模块集合。存储器106存储用于由处理器102执行或使用的内容,诸如数据和程序代码。存储器106包括操作***108,以实现计算***100的整体功能,并因此协调计算***100的整体操作。在一些实施方案中,操作***108是Google Inc.的ANDROIDTM操作***。
存储器106包括一个或多个应用程序116。应用程序116根据由处理器102执行的特定应用程序116在计算***100中提供相应的功能和特征。在一些实施方案中,应用程序116根据用户或制造商指导安装到计算***100中。例如,应用程序116中的一个或多个可由计算***100的制造商安装,并且应用程序116中的其他应用程序可由计算***100的用户安装。用于用户安装的应用程序可从线上“应用商店”(例如,用户可从中免费或以支付为交换得到用于安装的应用程序的应用程序在线存储库或商店)、从非易失性存储介质(例如,光盘、闪存驱动器、闪存)或从另一***或装置(例如,从通信地耦接到计算***100的装置传送的应用程序)得到。在一些实施方案中,应用程序可作为相关联程序代码文件和数据文件的包安装并存储在存储器106中。
操作***108包括启动模块110。启动模块110实现操作***108的启动过程或阶段,并协调操作***108的启动过程或阶段的操作。启动模块110操作在计算***100通电之后(例如,从断电状态通电、在重启或重新启动计算***100之后)开始的启动过程或阶段。在一些实施方案中,启动过程或阶段可包括按顺序进行的多个子阶段。
操作***108还包括关机模块112。关机模块112实现操作***108的关机过程或阶段,并协调操作***108的关机过程或阶段的操作。关机模块112在计算***100被指示断电之后开始的关机阶段期间操作关机过程或阶段(例如,***被指示关闭或重启)。在一些实施方案中,关机过程或阶段可包括按顺序进行的多个子阶段。
操作***108还包括一个或多个启动操作模块114。启动操作模块114执行与操作***108的启动相关联的特定启动操作。在一些实施方案中,启动操作促进操作***108的启动和应用程序116的准备以供使用。在一些实施方案中,启动操作模块114对应用程序116执行启动操作。在一些实施方案中,启动操作包括用于应用程序解析、应用程序扫描、应用程序验证和应用程序优化的相应模块;并且启动操作模块114包括用于执行这些操作的一个或多个模块。应用程序解析可包括提取对应于应用程序116的数据(例如,元数据)。应用程序扫描可包括扫描应用程序116的应用程序数据以通过证书和签名匹配来进行兼容。应用程序验证可包括验证应用程序116的完整性。应用程序优化可包括优化应用程序116以供在计算***100中执行。在一些实施方案中,针对应用程序116中的每个执行相应的启动操作。
在一些实施方案中,启动操作模块114生成结果数据作为执行对应的启动操作的结果。例如,应用程序验证模块可生成验证结果数据作为执行应用程序验证操作的结果。验证结果数据指示,例如,生成结果数据的时间(例如,时间戳),以及验证是成功还是失败,或其他操作结果(例如,验证不完整)。更一般地,启动操作的结果数据指示操作的日期和时间或结果数据生成的日期和时间、与操作相关的元数据(例如,所操作的文件的名称和大小)以及操作是否成功、失败或某个其他结论(例如,操作不完整)。在一些实施方案中,如果操作成功完成,则操作成功(例如,验证应用程序、优化应用程序、完成应用程序扫描并确认应用程序的兼容性等),否则操作失败(例如,应用程序无法验证、应用程序未能优化、应用程序的兼容性未得到确认、操作因中断而不完整)。在一些实施方案中,可针对一个或多个应用程序中的每个(例如,应用程序116中的每一个)执行启动操作,并且可为应用程序116中的每个生成与操作相关联的相应结果数据。例如,对于应用程序116中的每个的验证操作,为应用程序116中的每个生成验证结果数据。由启动操作模块114生成的结果数据可存储(例如,缓存)在存储器106中的启动操作结果118中。
在关机阶段期间,执行一个或多个启动操作。由启动操作模块114在关机阶段期间执行启动操作,并且通过该执行生成的结果数据存储在存储器106中的启动操作结果118中。在一些实施方案中,如果在前一个关机阶段中执行的先前启动操作的结果存储在存储器106中,则可为了在当前关机阶段中执行的启动操作生成的结果而从存储器106中丢弃由先前启动操作生成的并存储在存储器106中的结果。例如,可将在最近一次关机阶段中由对应用程序的启动操作生成的先前结果存储在存储器106中。在当前关机阶段中,可从存储器106中丢弃先前结果,并且将在当前关机阶段中由对应用程序的启动操作生成的结果存储在存储器106中。在一些实施方案中,关机模块112用信号通知启动操作模块114在关机阶段期间执行启动操作。
在关机阶段完成并且计算***100关闭之后,计算***100被启动,并且操作***108开始启动阶段。在启动阶段期间,从存储器106接收启动操作结果118并读取启动操作结果118,并且操作***108根据启动操作结果启动。在一些实施方案中,根据启动操作结果启动操作***108包括确定相应的启动操作结果是否满足一个或多个失败条件中的任何一个。如果结果满足任何失败条件,则在启动阶段期间执行与结果相关联的启动操作。另外,还执行从存储器106没有接收到结果的任何启动操作。可能存在未接收到某个结果的许多原因中的任何原因,包括例如存储结果的存储器部分被清除(例如,根据缓存置换策略清除存储结果的缓存),或者在关机阶段根本没有执行操作(例如,启动是操作***108在计算***100处的首次启动,并且因此,没有在前的关机阶段)。如果结果不满足任何失败条件,则将结果用于启动操作***108,并且在启动阶段期间不执行与结果相关联的启动操作。以这种方式,在关机阶段期间执行启动操作,并且生成相关联的结果并将其存储在存储器中。读取存储的结果,并且可基于该结果在启动阶段期间省略执行部分或全部启动操作。
在一些实施方案中,失败条件包括以下中的一个或多个:结果指示对应的操作不成功(例如,操作失败、操作不完整)、结果已到期或结果无效。在一些实施方案中,如果基于结果的时间戳,该结果早于预定义的年龄阈值(例如,两个小时、四个小时),则结果已到期。在一些实施方案中,如果结果包括冲突的元数据(例如,如在结果中的元数据中所标识的,在关机阶段期间所操作的应用程序在启动阶段期间被检测为具有不同的特性,诸如具有不同的文件大小和/或不同的包内容),则结果无效。
在一些实施方案中,在某些情况下,在启动阶段期间完全丢弃存储器106中的启动操作结果118,并且在启动阶段期间执行对应的启动操作,而不管结果是否满足失败条件。例如,关机阶段和后续启动阶段可以是需要重新启动的软件更新或升级的结果(例如,操作***108的更新、应用程序116的更新等)。存储在存储器106中的启动操作结果118可在对应于需要的重新启动的启动阶段期间被丢弃(例如,好像从存储器106不能得到结果一样)。根据启动操作结果118的不可用性,在对应于需要的重新启动的启动阶段期间执行启动操作。
在一些实施方案中,关机阶段包括多个子阶段。例如,在一个子阶段中,关机模块112致使操作***108和应用程序116停止对事件和信号的处理。在另一子阶段中,关机模块112致使应用程序116的执行停止。在又一子阶段中,启动操作模块114执行启动操作,并且将从该执行生成的结果存储在存储器106中。用于停止处理事件和信号的子阶段和用于停止应用程序116的执行的子阶段都在用于执行启动操作和存储结果的子阶段之前。
启动操作
图2是示出了根据一些实施方案的在关机阶段期间执行的启动操作的示例的流程图200。流程图200包括由关机模块112、应用程序管理器模块202和应用程序优化器模块204执行的操作。在一些实施方案中,应用程序管理器模块202和应用程序优化器模块204是启动操作模块114的相应模块。为了说明,流程图200具体示出了在关机阶段期间执行的应用程序优化操作。在一些实施方案中,应用程序管理器模块202是用于ANDROIDTM操作***的“PackageManager”模块。在一些实施方案中,应用程序优化器模块204是用于ANDROIDTM操作***的“DexOptimizer”模块。
在流程图200中,在关机阶段期间,关机模块112用信号通知(212)应用程序管理器模块202对存储器106中的应用程序(例如,应用程序116)执行应用程序优化操作。应用程序管理器模块202接收来自关机模块112的信号。在一些实施方案中,应用程序管理器模块202管理应用程序116(例如,清点和跟踪应用程序116)。应用程序管理器模块202用信号通知(214)应用程序优化器模块204对应用程序116执行优化操作。
应用程序优化器模块204接收信号,并且对应用程序116执行优化操作(216)(例 如,对应用程序116中的每个执行优化操作)。应用程序优化器模块204生成对应用程序116执行的操作的结果数据,并且向应用程序管理器模块202提供(218)结果数据。
应用程序管理器模块202将结果数据存储(220)(例如,缓存)在存储器106中的启动操作结果118中。应用程序管理器模块202用信号通知(222)关机模块112已执行优化操作并且对应的结果数据被存储在存储器106中的启动操作结果118中。然后,关机模块112可继续关机阶段(例如,通过调用或用信号通知用于在关机阶段期间执行的更多启动操作、继续进行其他关机阶段操作等)。
图3是示出了根据一些实施方案的在启动阶段期间执行或省略的启动操作(例如,应用程序优化操作)的示例的流程图300。流程图300包括由启动模块110、应用程序管理器模块202和应用程序优化器模块204执行的操作。
启动模块110用信号通知(312)应用程序管理器模块202扫描存储器106中的应用程序(例如,应用程序116)。应用程序管理器模块202接收信号并且对应用程序116执行应用程序解析和应用程序扫描操作(314),以便清点应用程序116。在一些实施方案中,应用程序管理器模块202通过解析应用程序116来清点应用程序116以识别存储在存储器106中的应用程序116并提取应用程序116的元数据(例如,应用程序名称、应用程序包的内容、文件名称、文件大小等)。在一些实施方案中,应用程序管理器模块202扫描应用程序116以通过证书和签名匹配来检查应用程序116的兼容性。
应用程序管理器模块202从存储器106得到(例如,接收)存储的启动操作结果118,其包括来自图2中所示的优化操作的结果。应用程序管理器模块202读取(316)接收的启动操作结果118,并且对于来自图2中所示的优化操作的每个结果,确定结果是否满足失败条件。对于满足失败条件的结果,应用程序管理器模块202用信号通知(318)应用程序优化器模块204对结果适用的应用程序116执行优化操作。例如,如果对应用程序A的优化操作的结果满足失败条件,则用信号通知应用程序优化器模块204对应用程序A执行优化操作。应用程序优化器模块204响应于来自应用程序管理器模块202的信号执行优化操作,生成所执行操作的结果数据,并向应用程序管理器模块202提供(322)结果数据。
对于与优化操作相关联并且不满足任何失败条件的结果,应用程序管理器模块202放弃用信号通知应用程序优化器模块204对结果适用的应用程序116执行优化操作;对于结果适用的应用程序,在启动阶段期间省略优化操作。替代地,应用程序管理器模块202采用并使用结果,就像在启动阶段期间执行对应的优化操作一样。
在应用程序管理器模块202得到结果之后,无论是在步骤322中从应用程序优化器模块204新提供的还是从步骤316中读取的缓存结果中采用的结果,对于应用程序116中的每个,应用程序管理器模块202用信号通知(324)启动模块110应用程序116关于优化准备妥当。启动模块110使用新提供的结果和所采用的结果来启动操作***108。
虽然图2-3示出了在启动阶段期间基于在关机阶段期间生成的优化操作的结果执行或省略的优化操作,但是图2-3中所示的流程和上文的对应描述也适用于其他启动操作(例如,应用程序验证操作等)。此外,在一些实施方案中,启动模块110和关机模块112协调启动操作模块114。例如,在图3中,应用程序管理器模块202可向启动模块110报告步骤314中的解析和扫描的结果。然后,启动模块110读取缓存的优化操作结果(例如,启动模块110代替应用程序管理器模块202执行步骤316)。启动模块110用信号通知应用程序优化器模块204要执行的优化操作(例如,启动模块110代替应用程序管理器模块202执行步骤318)。在步骤320中执行优化操作之后,应用程序优化器模块204向启动模块110而不是应用程序管理器模块202提供结果。启动模块110可基于提供的结果和所采用的结果确定应用程序就绪以供使用,并且继续启动操作***。类似地,在图2中,关机模块112可代替应用程序管理器模块202用信号通知应用程序优化器模块204执行优化器操作、接收来自应用程序优化器模块204的结果并将结果缓存在存储器106中。
图4是示出了根据一些实施方案的用于在关机过程期间执行启动操作的方法步骤的流程图。虽然相对于图1的***描述了方法步骤,但本领域技术人员应理解,被配置来以任何顺序执行所述方法步骤的任何***均落在设想的实施方案的范围内。
如图所示,方法400开始于步骤402,其中在计算***100处的操作***108的关机阶段期间,一个或多个启动操作模块114(例如,对应用程序116)执行启动时操作,并且生成对应于所执行操作的结果。
在步骤404处,操作***108将结果存储(例如,缓存)在存储器106中的启动操作结果118中。在一些实施方案中,启动模块110存储结果。在一些其他实施方案中,相应的启动操作模块114将它们相应的结果存储在存储器106中。
图5是示出了根据一些实施方案的用于在启动过程期间执行或省略启动操作的方法步骤的流程图。虽然相对于图1的***描述了方法步骤,但本领域技术人员应理解,被配置来以任何顺序执行所述方法步骤的任何***均落在设想的实施方案的范围内。
如图所示,方法500开始于步骤502,其中在计算***100处的操作***108的启动阶段期间,操作***108(例如,启动模块110或启动操作模块114,诸如应用程序管理器模块202)从存储器106得到(例如,接收)在计算***100处最近一次关机阶段期间执行的启动时操作的启动时操作结果118。
在步骤504处,操作***108(例如,启动模块110或启动操作模块114)确定相应的启动时操作结果118是否满足一个或多个失败条件中的任何一个。如果在步骤504处,操作***108(例如,启动模块110或启动操作模块114)确定结果满足任何失败条件,则方法500进行到步骤508,其中启动操作模块114执行对应于结果的启动操作。如果在步骤504处,操作***108(例如,启动模块110或启动操作模块114)确定结果不满足任何失败条件,则方法进行到步骤506,其中从启动阶段中省略对应于结果的启动操作。换句话说,在启动阶段期间不执行启动操作。
如果在步骤510处,操作***108(例如,启动模块110或启动操作模块114)确定存在更多启动时操作结果118,则方法500返回到步骤504,其中操作***108(例如,启动模块110或启动操作模块114)确定另一结果是否满足失败条件。如果在步骤510处,操作***108(例如,启动模块110或启动操作模块114)确定不存在更多的要检查的结果,则方法500进行到步骤512,其中启动模块110使用不满足失败条件的启动时操作结果118和/或对应于在步骤508中执行的启动操作的结果来启动操作***108。
在一些实施方案中,在步骤512之前,一个或多个启动操作模块114执行在步骤502处没有得到对应结果的一个或多个启动操作。也可在步骤512中由启动模块110在启动中使用由这些所执行操作生成的结果。
总之,操作***在关机阶段执行各种启动操作。这些操作的结果存储在存储器中。在下次启动操作***时,操作***接收存储的结果。基于存储的结果,操作***省略了在启动期间执行启动操作中的至少一些。对于省略的启动操作,操作***替代地使用对应的存储结果进行启动。执行没有存储结果或结果满足失败条件的启动操作,并且这些操作的结果也由操作***用于启动。
有利地,本文公开的技术减少了操作***的启动时间。具体来说,启动操作所消耗的时间转移到消耗的时间对用户的破坏性更小的关机阶段。通过将时间转移到关机阶段,并且然后在下次启动阶段省略执行这些操作中的至少一些,减少了启动阶段所消耗的时间。因此,操作***,并且对应地是计算***,就绪以供用户更快地使用。
1.在一些实施方案中,一种非暂时性计算机可读存储介质包括指令,当由处理器执行时,所述指令致使所述处理器执行以下步骤:在操作***的关机阶段期间执行一个或多个启动操作以生成一个或多个结果,并将所述一个或多个结果存储在存储器中;并且在所述操作***的启动阶段期间,接收来自所述存储器的所述一个或多个结果,并基于所述一个或多个结果启动所述操作***。
2.如条款1所述的计算机可读存储介质,其中所述处理器包括在车载信息娱乐***中,并且所述操作***由所述处理器执行。
3.如条款1或2所述的计算机可读存储介质,其中所述一个或多个启动操作包括应用程序解析操作、应用程序扫描操作、应用程序验证操作和应用程序优化操作中的一个或多个。
4.如条款1-3中任一项所述的计算机可读存储介质,其中执行所述一个或多个启动操作包括针对一个或多个应用程序中的每个执行所述启动操作中的至少一个。
5.如条款1-4中任一项所述的计算机可读存储介质,其中基于所述一个或多个结果启动所述操作***包括确定所述一个或多个结果的第一结果满足一个或多个失败条件;并且响应于所述确定,在所述启动阶段期间执行与所述第一结果相关联的启动操作以生成第二结果。
6.如条款1-5中任一项所述的计算机可读存储介质,其中基于所述一个或多个结果启动所述操作***包括使用所述第二结果启动所述操作***。
7.如条款1-6中任一项所述的计算机可读存储介质,其中所述一个或多个失败条件包括所述第一结果失败的指示、所述第一结果已到期的指示和所述第一结果无效的指示中的至少一个。
8.如条款1-7中任一项所述的计算机可读存储介质,其中基于所述一个或多个结果启动所述操作***包括确定所述一个或多个结果中的第一结果不满足一个或多个失败条件;并且响应于所述确定,使用所述第一结果启动所述操作***。
9.如条款1-8中任一项所述的计算机可读存储介质,其中所述关机阶段包括多个子阶段,并且在所述多个子阶段中的第一子阶段期间执行所述执行和所述存储。
10.如条款1-9中任一项所述的计算机可读存储介质,其中所述第一子阶段在所述多个子阶段中的第二子阶段之前,并且还包括在所述第二子阶段处停止处理事件和信号。
11.在一些实施方案中,一种车载信息娱乐***包括存储一个或多个启动操作模块和一个或多个已安装应用程序的存储器;以及耦接到所述存储器的处理器,并且当执行所述一个或多个启动操作模块时,所述处理器被配置来:在所述操作***的关机阶段期间,执行所述一个或多个已安装应用程序的一个或多个启动操作以生成一个或多个结果,并将所述一个或多个结果存储在存储器中;以及在所述操作***的启动阶段期间,接收来自所述存储器的所述一个或多个结果,并基于所述一个或多个结果启动所述操作***。
12.如条款11所述的***,其中所述一个或多个启动操作包括对所述已安装应用程序执行的应用程序解析操作、对所述已安装应用程序执行的应用程序扫描操作、对所述已安装应用程序执行的应用程序验证操作和对所述已安装应用程序执行的应用程序优化操作中的一个或多个。
13.如条款11或12所述的***,其中接收来自所述存储器的所述一个或多个结果包括接收所述已安装应用程序中的每个的不同的结果。
14.如条款11-13中任一项所述的***,其中执行所述一个或多个启动操作包括执行所述已安装应用程序中的每个的所述一个或多个启动操作中的第一操作以生成一组结果,所述一组结果包括所述已安装应用程序中的每个的相应结果。
15.如条款11-14中任一项所述的***,其中基于所述一个或多个结果启动所述操作***包括确定与第一已安装应用程序相关联的第一结果满足一个或多个失败条件;并且响应于所述确定,在所述启动阶段期间执行所述第一已安装应用程序的所述第一操作以生成第二结果。
16.如条款11-15中任一项所述的***,其中所述一个或多个失败条件包括所述第一已安装应用程序的验证失败的指示、所述第一已安装应用程序的优化失败的指示、所述第一结果已到期的指示和所述第一结果无效的指示中的一个或多个。
17.如条款11-16中任一项所述的***,其中基于所述一个或多个结果启动所述操作***包括确定与所述已安装应用程序中的第二已安装应用程序相关联的第二结果不满足一个或多个失败条件;并且响应于所述确定,使用所述第二结果启动所述操作***。
18.如条款11-17中任一项所述的***,其中所述关机阶段包括多个子阶段,并且在所述多个子阶段中的第一子阶段期间执行所述执行和所述存储,并且还包括在所述多个子阶段中的第二子阶段中,停止所述一个或多个已安装应用程序的执行,其中所述第二子阶段在所述第一子阶段之前。
19.在一些实施方案中,一种计算机实现的方法包括,在操作***的关机阶段期间,执行一个或多个启动操作以生成一个或多个结果,并将所述一个或多个结果存储在存储器中;以及在所述操作***的启动阶段期间,接收来自所述存储器的所述一个或多个结果,并基于所述一个或多个结果启动所述操作***。
20.如条款19所述的方法,其中基于所述一个或多个结果启动所述操作***包括确定所述一个或多个结果的第一结果满足一个或多个失败条件;并且响应于所述确定,在所述启动阶段期间执行与所述第一结果相关联的启动操作以生成第二结果。
任何权利要求中所述的要求保护的元件和/或本申请中所述的任何元件的以任何方式进行的任何和所有组合都落在所述实施方案的设想范围内。
已出于说明目的而呈现了对各个实施方案的描述,但这些描述并非意图是详尽性的或限制于所公开的实施方案。在不脱离所描述的实施方案的范围和精神的情况下,许多修改和变化对于本领域的普通技术人员来说是显而易见的。
本实施方案的各方面可体现为一种***、方法或计算机程序产品。因此,本公开的各方面可采取完全硬件实施方案、完全软件实施方案(包括固件、驻留软件、微代码等)或组合软件方面和硬件方面的实施方案的形式,所述实施方案在本文中可全部概括地称为“模块”或“***”。此外,本公开的各方面可采取在一个或多个计算机可读介质中体现的计算机程序产品的形式,所述一个或多个计算机可读介质具有在其上体现的计算机可读程序代码。
可利用一个或多个计算机可读介质的任何组合。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质可以是(例如)但不限于电子、磁性、光学、电磁、红外或半导体***、设备或装置或者上述各项的任何合适组合。计算机可读存储介质的更特定的示例(非详尽性的列表)将包括以下各项:具有一个或多个电线的电气连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便携式光盘只读存储器(CD-ROM)、光学存储装置、磁性存储装置或上述各项的任何合适组合。在本文档的上下文中,计算机可读存储介质可以是任何有形介质,所述有形介质可含有或存储供指令执行***、设备或装置使用或连同指令执行***、设备或装置一起使用的程序。
以上参考根据本公开的实施方案的方法、设备(***)和计算机程序产品的流程图和/或方框图来描述了本公开的各方面。应理解,可通过计算机程序指令来实现流程图和/或方框图中的每个方框以及流程图和/或方框图中的方框组合。这些计算机程序指令可提供至通用计算机、专用计算机的处理器或其他可编程数据处理设备以产生一种机器,使得经由计算机的处理器或其他可编程数据处理设备执行的指令启用一个或多个流程图方框和/或一个或多个方框图方框中指定的功能/动作的实现。这样的处理器可以是但不限于通用处理器、专用处理器、应用程序特定的处理器或现场可编程处理器或门阵列。
附图中的流程图和方框图示出了根据本公开的各种实施方案的***、方法和计算机程序产品的可能实现方式的架构、功能和操作。就此而言,流程图或方框图中的每个方框均可表示代码的模块、片段或部分,所述代码包括用于实现指定的逻辑功能的一个或多个可执行指令。还应注意,在一些替代性实现方式中,方框中指出的功能可按照附图中指出的次序以外的次序发生。例如,连续示出的两个方框实际上可以大致同时执行,或者所述方框有时可以按相反的次序执行,这取决于所涉及的功能性。还应注意,方框图和/或流程图中的每个方框,以及方框图和/或流程图中的方框的组合可由执行指定功能或动作的基于专用硬件的***或者专用硬件和计算机指令的组合来实现。
虽然前述内容涉及本公开的各实施方案,但在不脱离本公开的基本范围的情况下可设想本公开的其他和更多实施方案,并且本公开的范围由所附权利要求确定。
Claims (20)
1.一种包括指令的非暂时性计算机可读存储介质,所述指令在由处理器执行时致使所述处理器执行以下步骤:
在操作***的关机阶段期间:
执行一个或多个启动操作以生成一个或多个结果;以及
将所述一个或多个结果存储在存储器中;以及
在所述操作***的启动阶段期间:
接收来自所述存储器的所述一个或多个结果;以及
基于所述一个或多个结果启动所述操作***。
2.如权利要求1所述的计算机可读存储介质,其中所述处理器包括在车载信息娱乐***中,并且所述操作***由所述处理器执行。
3.如权利要求1所述的计算机可读存储介质,其中所述一个或多个启动操作包括应用程序解析操作、应用程序扫描操作、应用程序验证操作和应用程序优化操作中的一个或多个。
4.如权利要求1所述的计算机可读存储介质,其中执行所述一个或多个启动操作包括针对一个或多个应用程序中的每个执行所述启动操作中的至少一个。
5.如权利要求1所述的计算机可读存储介质,其中基于所述一个或多个结果启动所述操作***包括:
确定所述一个或多个结果中的第一结果满足一个或多个失败条件;以及
响应于所述确定,在所述启动阶段期间执行与所述第一结果相关联的启动操作以生成第二结果。
6.如权利要求5所述的计算机可读存储介质,其中基于所述一个或多个结果启动所述操作***包括使用所述第二结果启动所述操作***。
7.如权利要求5所述的计算机可读存储介质,其中所述一个或多个失败条件包括所述第一结果失败的指示、所述第一结果已到期的指示和所述第一结果无效的指示中的至少一个。
8.如权利要求1所述的计算机可读存储介质,其中基于所述一个或多个结果启动所述操作***包括:
确定所述一个或多个结果中的第一结果不满足一个或多个失败条件;以及
响应于所述确定,使用所述第一结果启动所述操作***。
9.如权利要求1所述的计算机可读存储介质,其中所述关机阶段包括多个子阶段,并且在所述多个子阶段中的第一子阶段期间执行所述执行和所述存储。
10.如权利要求9所述的计算机可读存储介质,其中所述第一子阶段在所述多个子阶段中的第二子阶段之前,并且还包括在所述第二子阶段上停止处理事件和信号。
11.一种车载信息娱乐***,其包括:
存储器,所述存储器存储一个或多个启动操作模块和一个或多个已安装应用程序;以及
处理器,所述处理器耦接到所述存储器,并且在执行所述一个或多个启动操作模块时被配置来:
在所述操作***的关机阶段期间:
执行所述一个或多个已安装应用程序的一个或多个启动操作以生成一个或多个结果;以及
将所述一个或多个结果存储在存储器中;以及
在所述操作***的启动阶段期间:
接收来自所述存储器的所述一个或多个结果;以及
基于所述一个或多个结果启动所述操作***。
12.如权利要求11所述的***,其中所述一个或多个启动操作包括对所述已安装应用程序执行的应用程序解析操作、对所述已安装应用程序执行的应用程序扫描操作、对所述已安装应用程序执行的应用程序验证操作和对所述已安装应用程序执行的应用程序优化操作中的一个或多个。
13.如权利要求11所述的***,其中接收来自所述存储器的所述一个或多个结果包括接收所述已安装应用程序中的每个的不同的结果。
14.如权利要求11所述的***,其中执行所述一个或多个启动操作包括执行所述已安装应用程序中的每个的所述一个或多个启动操作中的第一操作以生成一组结果,所述一组结果包括所述已安装应用程序中的每个的相应结果。
15.如权利要求14所述的***,其中基于所述一个或多个结果启动所述操作***包括:
确定与第一已安装应用程序相关联的第一结果满足一个或多个失败条件;以及
响应于所述确定,在所述启动阶段期间执行所述第一已安装应用程序的所述第一操作以生成第二结果。
16.如权利要求15所述的***,其中所述一个或多个失败条件包括所述第一已安装应用程序的验证失败的指示、所述第一已安装应用程序的优化失败的指示、所述第一结果已到期的指示和所述第一结果无效的指示中的一个或多个。
17.如权利要求14所述的***,其中基于所述一个或多个结果启动所述操作***包括:
确定与所述已安装应用程序中的第二已安装应用程序相关联的第二结果不满足一个或多个失败条件;以及
响应于所述确定,使用所述第二结果启动所述操作***。
18.如权利要求11所述的***,其中所述关机阶段包括多个子阶段,并且在所述多个子阶段中的第一子阶段期间执行所述执行和所述存储,并且还包括在所述多个子阶段中的第二子阶段中,停止所述一个或多个已安装应用程序的执行,其中所述第二子阶段在所述第一子阶段之前。
19.一种计算机实现的方法,其包括:
在操作***的关机阶段期间:
执行一个或多个启动操作以生成一个或多个结果;以及
将所述一个或多个结果存储在存储器中;以及
在所述操作***的启动阶段期间:
接收来自所述存储器的所述一个或多个结果;以及
基于所述一个或多个结果启动所述操作***。
20.如权利要求19所述的方法,其中基于所述一个或多个结果启动所述操作***包括:
确定所述一个或多个结果中的第一结果满足一个或多个失败条件;以及
响应于所述确定,在所述启动阶段期间执行与所述第一结果相关联的启动操作以生成第二结果。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IN201741028982 | 2017-08-16 | ||
IN201741028982 | 2017-08-16 | ||
US15/785,412 US10725791B2 (en) | 2017-08-16 | 2017-10-16 | Operating system boot up optimizations |
US15/785,412 | 2017-10-16 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109408120A true CN109408120A (zh) | 2019-03-01 |
Family
ID=65361486
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810900879.3A Pending CN109408120A (zh) | 2017-08-16 | 2018-08-09 | 操作***启动优化 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10725791B2 (zh) |
CN (1) | CN109408120A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111835689A (zh) * | 2019-04-22 | 2020-10-27 | 华为技术有限公司 | 数字钥匙的身份认证方法、终端设备及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050273587A1 (en) * | 2004-06-07 | 2005-12-08 | Dell Products, L.P. | System and method for shutdown memory testing |
CN1825283A (zh) * | 2006-03-31 | 2006-08-30 | 浙江大学 | 嵌入式操作***硬件镜像启动优化的实现方法 |
CN103425506A (zh) * | 2013-05-20 | 2013-12-04 | 华为技术有限公司 | 关机方法及开机方法及通信终端 |
CN104252369A (zh) * | 2013-06-27 | 2014-12-31 | 上海博泰悦臻电子设备制造有限公司 | 车载设备及其双***备份方法及装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7533215B2 (en) | 2005-09-15 | 2009-05-12 | Intel Corporation | Distributed and packed metadata structure for disk cache |
CN102713845B (zh) | 2012-02-16 | 2014-11-05 | 华为终端有限公司 | 一种启动无线手持设备的方法及无线手持设备 |
US10162643B2 (en) * | 2016-06-29 | 2018-12-25 | Wipro Limited | Method and system for booting automotive electronics in an electronic control unit of an automobile |
-
2017
- 2017-10-16 US US15/785,412 patent/US10725791B2/en active Active
-
2018
- 2018-08-09 CN CN201810900879.3A patent/CN109408120A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050273587A1 (en) * | 2004-06-07 | 2005-12-08 | Dell Products, L.P. | System and method for shutdown memory testing |
CN1825283A (zh) * | 2006-03-31 | 2006-08-30 | 浙江大学 | 嵌入式操作***硬件镜像启动优化的实现方法 |
CN103425506A (zh) * | 2013-05-20 | 2013-12-04 | 华为技术有限公司 | 关机方法及开机方法及通信终端 |
CN104252369A (zh) * | 2013-06-27 | 2014-12-31 | 上海博泰悦臻电子设备制造有限公司 | 车载设备及其双***备份方法及装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111835689A (zh) * | 2019-04-22 | 2020-10-27 | 华为技术有限公司 | 数字钥匙的身份认证方法、终端设备及介质 |
CN111835689B (zh) * | 2019-04-22 | 2021-06-15 | 华为技术有限公司 | 数字钥匙的身份认证方法、终端设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
US10725791B2 (en) | 2020-07-28 |
US20190056957A1 (en) | 2019-02-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110603554B (zh) | 经由机器可读码进行离线数据转移的方法和*** | |
US11256496B2 (en) | Apparatus and method for managing application | |
CN107683479A (zh) | 基于nand的验证引导 | |
US9959125B2 (en) | Field update of boot loader using regular device firmware update procedure | |
CN110134426A (zh) | 一种嵌入式***升级方法、装置及终端设备 | |
CN104850427B (zh) | 一种代码升级方法及装置 | |
CN107925570B (zh) | 用以安全地激活或撤销密钥的计算装置 | |
CN106612192A (zh) | 设备的升级方法、装置和*** | |
EP3827380A1 (en) | Secure exploration for reinforcement learning | |
WO2018032757A1 (zh) | 组件升级的方法及装置 | |
CN111813428A (zh) | 终端固件的升级方法、装置、电子设备及存储介质 | |
KR20230004394A (ko) | 공유 메모리 액세스 제어 방법, 장치, 전자 기기 및 자율 주행 차량 | |
CN110175039A (zh) | 在线升级方法、设备、可读存储介质及电子设备 | |
CN102981872A (zh) | 终端设备开机、升级方法和终端设备 | |
CN105677409B (zh) | 一种***升级方法及装置 | |
CN102880478B (zh) | 软件更新方法 | |
CN106569907B (zh) | 一种***启动文件的校验及编译方法 | |
CN111176685A (zh) | 一种升级方法及装置 | |
CN109408120A (zh) | 操作***启动优化 | |
CN110515671A (zh) | 初始化方法、初始化装置、终端设备及可读存储介质 | |
KR102405593B1 (ko) | 전자 장치 및 그의 데이터 운용 방법 | |
CN109408098A (zh) | 应用的动态更新方法、***、电子设备和存储介质 | |
CN115964721A (zh) | 一种程序验证方法及电子设备 | |
CN106648671B (zh) | 一种应用升级方法及终端 | |
CN114296757A (zh) | 可穿戴设备的软件升级方法、装置、可穿戴设备及介质 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190301 |