CN107168784B - 基于多核系统的程序紧急启动方法及装置 - Google Patents

基于多核系统的程序紧急启动方法及装置 Download PDF

Info

Publication number
CN107168784B
CN107168784B CN201710339622.0A CN201710339622A CN107168784B CN 107168784 B CN107168784 B CN 107168784B CN 201710339622 A CN201710339622 A CN 201710339622A CN 107168784 B CN107168784 B CN 107168784B
Authority
CN
China
Prior art keywords
program
emergency
starting
computing
basic
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
Application number
CN201710339622.0A
Other languages
English (en)
Other versions
CN107168784A (zh
Inventor
邬小勇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NANJING THUNDER SOFTWARE TECHNOLOGY CO.,LTD.
Original Assignee
Quarkdata Software Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Quarkdata Software Co ltd filed Critical Quarkdata Software Co ltd
Priority to CN201710339622.0A priority Critical patent/CN107168784B/zh
Publication of CN107168784A publication Critical patent/CN107168784A/zh
Application granted granted Critical
Publication of CN107168784B publication Critical patent/CN107168784B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs

Abstract

本发明提供了基于多核系统的程序紧急启动方法及装置,涉及软件启动领域。本发明提供的基于多核系统的程序紧急启动方法,采用在接收到启动指令后,同时在不同的计算单元中分别运行基础程序和紧急程序,而后,当基础程序运行完成后,再由基础程序接管紧急程序的运行。进而,避免了传统方法中,先需要等待基础程序启动完成后,才能由基础程序来引导紧急程序的运行。使得紧急程序可以在系统刚上电的时候,就与基础程序分别在不同的计算单元中运行,保证了基础程序的引导不会出现问题,也保证了能够在第一时间开始紧急程序的运行。

Description

基于多核系统的程序紧急启动方法及装置
技术领域
本发明涉及软件启动领域,具体而言,涉及基于多核系统的程序紧急启动方法及装置。
背景技术
CPU是电子设备的核心器件,是具有运算功能的电子设备中不可缺少的部分。随着技术的发展,出现了两种CPU的改良方式。第一种改良方式是单纯的提高单核芯片的运转速度,这主要是从硬件选材、基础算法改进等方面进行的,这种改良方式具有一定的局限性,主要是当CPU的运转速度过高的时候,会导致芯片产生过高的热量,并且芯片的制作成本和其他相关参数也远远超出的设计要求。进而,当这种改良方式不好进行的时候,出现了第二种改良方式,即通过在一个处理器中集成两个或多个计算引擎(计算内核),从而形成了多核处理器。多核处理器在运行的过程中,是由多个计算内核协同工作,来完成原本只由一个计算内核所完成的工作。由于每个计算内核只需要完成完整任务的一部分,因而,不会导致某个计算内核压力过大(运转速度过高)的情况发生。
一般情况下,当前大部分的系统(如苹果系统、安卓系统)均会使用多核处理器的技术,并且还在原始多核处理器的基础上,进一步增加了核心算法,以使多核处理器在运转的时候,能够达到任务的最优分配。具体而言,多核处理器在启动(初次上电)的时候,首先会在指定的内核中启动基础程序(如加载内核镜像和引导内核启动、用户空间搭建等),之后在基础程序完成启动之后,再在基础程序的控制下开始运行用户所使用的各种应用型程序(如播放指定动画、启动倒车影像、启动监控设备等等),基础程序主要是对应用型程序所对应的各种任务进行分配,将大量的任务分别交给不同的计算内核来运行,以避免某个内核的压力过大。可见,在用户所使用的应用型程序运行前,如果系统是首次启动,则需要先启动基础程序,当基础程序运行完成后,才能运行应用型程序。
但由于基础程序需要一定的时间来启动,这就导致了在系统未上电的时候,如果用户期望使用某个应用型程序,用户需要等待一段时间(基础程序启动所花费的时间)才能够启动期望使用的应用型程序,这很大程度上降低了用户体验度。
发明内容
本发明的目的在于提供基于多核系统的程序紧急启动方法及装置,以提高在系统还未上电的情况下,启动应用型程序的速度。
第一方面,本发明实施例提供了基于多核系统的程序紧急启动方法,包括:
在接收到启动指令后,在第一计算单元中启动基础程序,并在第二计算单元中启动紧急程序;所述基础程序包括内核空间程序和用户空间程序;
当所述基础程序启动至目标启动状态时,由所述基础程序接管所述紧急程序的运行。
结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,还包括:
计算所述紧急程序相对应的启动状态作为目标启动状态。
结合第一方面,本发明实施例提供了第一方面的第二种可能的实施方式,其中,步骤所述计算所述紧急程序相对应的启动状态作为目标启动状态包括:
获取紧急程序的第一属性值,所述第一属性值包括以下的一种或多种:基础程序的大小、基础程序的重要程度和基础程序的危险程度;
根据所述紧急程序的属性值计算所述紧急程序的第一参考值;
根据所述第一参考值的大小,确定所述紧急程序所对应的启动状态作为目标启动状态。
结合第一方面,本发明实施例提供了第一方面的第三种可能的实施方式,其中,步骤所述在第二计算单元中启动紧急程序包括:
确定所述紧急程序所对应的启动规则,所述启动规则包括使用计算内核的数量和相应计算内核所使用的运行代码;
按照所述启动规则,使用所述第二计算单元中的计算内核启动所述紧急程序。
结合第一方面,本发明实施例提供了第一方面的第四种可能的实施方式,其中,步骤所述使用所述第二计算单元中的计算内核启动所述紧急程序包括:
通过第二计算单元中的多个计算内核共同启动所述紧急程序。
结合第一方面,本发明实施例提供了第一方面的第五种可能的实施方式,其中,步骤所述在第二计算单元中启动紧急程序包括:
获取紧急程序的第二属性值,所述第二属性值包括以下的一种或多种:基础程序的大小、基础程序的重要程度;
根据所述第二属性值计算所述紧急程序的第二参考值;
根据所述第二参考值的大小,确定启动所述紧急程序所使用的计算内核的目标数量;
使用所述第二计算单元中目标数量个计算内核协同启动所述紧急程序。
第二方面,本发明实施例还提供了基于多核系统的程序紧急启动装置,包括:
启动模块,用于在接收到启动指令后,在第一计算单元中启动基础程序,并在第二计算单元中启动紧急程序;所述基础程序包括内核空间程序和用户空间程序;
接管模块,用于当所述基础程序启动至目标启动状态时,由所述基础程序接管所述紧急程序的运行。
第三方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面所提供的方法的步骤。
本发明实施例提供的基于多核系统的程序紧急启动方法,采用在接收到启动指令后,现在在第一计算单元中启动基础程序,并同事在第二计算单元中启动紧急程序;其中所述基础程序包括内核空间程序和用户空间程序;而后,当所述基础程序启动至目标启动状态时,由所述基础程序接管所述紧急程序的运行。进而,避免了传统方法中,先需要等待基础程序启动完成后,才能由基础程序来引导紧急程序的运行。使得紧急程序可以在系统刚上电的时候,就与基础程序分别在不同的计算单元中运行,保证了基础程序的引导不会出现问题,也保证了能够在第一时间开始紧急程序的运行。
进一步,本发明实施例提供的第一种优化的基于多核系统的程序紧急启动方法,还可以根据紧急程序的不同来选择不同的启动状态作为目标启动状态,进而使得基础程序可以在不同的时机接管紧急程序,兼顾了系统运行的优化和系统整体的安全性。
进一步,本发明实施例提供的第二种优化的基于多核系统的程序紧急启动方法,还可以根据紧急程序的不同来选择不同数量的计算内核进行紧急程序的启动,优化了紧急程序的运行状态,使得紧急程序能够以教优的方式在第二计算单元中运行。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本发明实施例所提供的基于多核系统的程序紧急启动方法的基本流程图;
图2示出了本发明实施例所提供的基于多核系统的程序紧急启动方法的第一种优化方式的细节流程图;
图3示出了本发明实施例所提供的基于多核系统的程序紧急启动方法的第二种优化方式的细节流程图;
图4示出了本发明实施例所提供的基于多核系统的程序紧急启动方法的实例1的流程图;
图5示出了本发明实施例所提供的基于多核系统的程序紧急启动装置基本框架图。
具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
相关技术中,多核处理器已经广泛的使用在了不同领域的设备中,多核处理器通过多个计算内核协同工作方式,避免了某个计算内核运行压力过大(如频率过高)的问题。
为了提高多个计算内核的相互配合的能力,以及优化处理器整体的运算能力,在处理器启动阶段,会优选运行基础程序,如常见的Android系统会在Bootloader的引导下完成内核启动(内核启动的过程只会使用到某一个计算内核,而多核处理器的其他计算内核处于未工作状态),从而使处理器可以以内核态的状态下运行各种程序;之后处理器会继续搭建用户空间,以使处理器可以再用户态的状态下运行各种程序。一般情况下,用户所使用的应用型程序(如汽车的倒车影像程序、无人机的实时影像传递程序等等)需要在用户空间中运行,也就是,如果用户需要启动这些应用型程序,需要等待用户空间完全搭载完成后才能够启动,这导致了如果用户期望在刚开机时候(内核和用户空间均未启动的时候)就使用这些应用型程序,则需要等待内核和用户空间全部引导完成后,才能使用。很明显,此种情况下,用户需要等待一段时间(内核和用户空间启动的时间)后才能够使用,这大大影响了用户感受度,尤其是某些应用型程序(如倒车影像)对设备或人员的安全性有很大的影响,这些应用型程序启动的过慢,则会引发严重的事故。
有鉴于此,本申请提供了基于多核系统的程序紧急启动方法,如图1所示,该方法包括如下步骤:
S101,在接收到启动指令后,在第一计算单元中启动基础程序,并在第二计算单元中启动紧急程序;基础程序包括内核空间程序和用户空间程序;
S102,当基础程序启动至目标启动状态时,由基础程序接管紧急程序的运行。
其中,上述方法中所提及的多核系统至少有两个计算单元,分别是第一计算单元和第二计算单元,当然还可以有其他计算单元。此处的计算单元(第一计算单元,和/或第二计算单元)可以包括某一个计算内核或者是某多个计算内核。并且,第一计算单元和第二计算单元不共用计算内核。即,第一计算单元可以包括多个计算内核,和/或,第二计算单元也可以包括多个计算内核,且归属于第一计算单元的计算内核不会归属于第二计算单元。
上述方法中,紧急程序可以是固定的一个,也可以是多个,如果紧急程序是一个的话,则可以采用系统接收到启动指令(如开机指令,或者是紧急程序启动指令)后,直接默认为用户期望启动唯一的一个紧急程序;如果紧急程序是多个的话,则可以直接将启动指令所对应的程序作为紧急程序。
基础程序指的是内核空间程序或者是用户空间程序,也就是在系统接收到启动指令后,会在第一计算单元中启动内核空间程序,或者是进一步启动用户空间程序。目前,一般的系统在正常运行前,均需要启动内核空间,这是一般系统运转的基础,因此,即使步骤S101中不运行用户空间程序,也需要运行内核空间程序。运行内核空间程序和用户控件程序的目的是完成内核空间的搭建,和完成用户空间的搭建,以使一般的用户程序能够在内核态或用户态的状态下使用。
步骤S102中,当基础程序启动到指定状态的时候就可以有基础程序来接管紧急程序的运行。一般来说目标启动状态指的是内核空间建立完成(即内核空间程序引导完成),或者是用户空间建立完成(即用户空间程序引导完成),也可以是指其他基础程序可以已经可以接管紧急程序运行的状态。此时可以不再由第二计算单元来运行紧急程序,而是由启动完成的基础程序来接管紧急程序的运行。
实际上,基础程序的启动过程主要是对硬件设备的初始化、优化算法的引导和启动,步骤S101中,第二计算单元直接启动紧急程序的过程中,是没有经过优化算法进行任务分配的,紧急程序仅仅是直接在第二计算单元中运行,此种启动方式可能会导致某个计算内核的压力过大的问题,但由于启动的紧急程序不会过大,而且是刚刚启动,因此,通常不会对某个计算内核带来过大的负担;而步骤S102中,在基础程序开始运行后,在基础程序的调控下,会将紧急程序以更优化的方式进行运行(如通过指定的一个或多个计算内核来运行紧急程序,以保证某个计算内核的频率不会过高,进而使整个系统运转的更为合理)。并且,在基础程序启动至目标启动状态之后,在基础程序的调控下,系统可以进一步启动其他的应用型程序,并且是以较为优化的状态来运行这些应用型程序的。
需要说明的是,传统的内核空间程序或用户空间程序在启动的过程中(步骤S101执行的过程中)可能会初始化某些计算内核,或者是重启某些实体设备(如无人机上的摄像机、倒车影像系统中的后视摄像机、开机动画的快速显示),由于这些计算内核和实体设备正在被使用(被第二计算单元所运行的紧急程序所使用),因此,应当预先在启动程序中写入相应代码,以保留这些计算内核和实体设备,使得这些计算内核和实体设备不会被重启/初始化。
步骤S102执行的过程中,需要由基础程序来接管紧急程序的运行,此处的接管方式可以是以采用共享内存的方式来进行接管,以保证紧急程序是被无缝化接管的(如倒车影像程序所控制的显示设备不会中断显示、摄像设备不会中断等),保证用户的感受度。
通过上述步骤S101和步骤S102来完成紧急程序启动,使得原本需要在基础程序完全运行后才能够被执行的紧急程序,可以在系统刚刚上电的时候,就先由空闲的计算内核来运行(空闲的计算内核是指第二计算单元中的计算内核),保证了紧急程序能够快速启动,之后,当基础程序完全运行后,再由基础程序来接管紧急程序的运行,保证了紧急程序和其他应用型程序能够以较优的状态下运行。进而,通过本申请所提供的方法,兼顾了紧急程序的启动速度,也保证了紧急程序和其他应用型程序的合理性。经过发明人实测,本申请所提供的方法更适用于汽车倒车影像程序的紧急启动。
进一步,紧急程序可以是任意一个需要启动的应用型程序,也就是紧急程序可以有很多个,这些紧急程序都互有一定的差别,如某些程序过大、某些程序重要程度较高等等。进而,考虑到这些程序有一定的差别,因此可以将这些程序进行分类,并且对不同类别的程序进行不同的处理。并且,基础程序在启动到不同程度的时候,基础程序的成熟程度不同,也可以说是,基础程序接管紧急程序后,运行紧急程序的优化程度不同。如当仅完成内核空间程序启动后,运行紧急程序的优化程度要比完成用户空间程序启动后,运行进行程序的优化程度要低(此处的优化程度如:将运行某程序的任务分配给对应的计算内核来运行,分配的合理化程度便是优化程度的一种)。
具体而言,本申请所提供的方法,在上述步骤的基础上,还包括如下步骤:
计算紧急程序相对应的启动状态作为目标启动状态。
也就是,在步骤S102执行之前,先确定目标启动状态,即确定在什么状态下让基础程序来接管紧急程序的运行。如前文中的描述,基础程序在运行到不同程度下的时候,其成熟程度不同,如用户空间程序完全加载后的成熟程度就比只加载了内核空间程序的成熟程度高。因而,对于某些重要程序和某些较大的程序,则应当等待用户空间程序加载完成后再运行,以此来保证程序运行不会出现错误。并且,由于内核空间程序可以直接控制安全级别较高的设备,因此,某些程序是不适合在内核态中运行的,只能在用户空间运行。进而,通过给不同的紧急程序设定对应的启动状态,能够一定程度上保证紧急程序被高效的运行,也能够保证系统的安全性。
具体的,步骤计算紧急程序相对应的启动状态作为目标启动状态有两种具体的实现方式,下面说明第一种实现方式:
在预设的数据表中查找与紧急程序相对应的启动状态作为目标启动状态;数据表中携带有每个紧急程序的标识和对应的启动状态。
为实现这第一种实现方式,可以预先在系统中加入一个数据表,该数据表如下表1:
表1
编号 紧急程序号码 启动状态
1 1、4、5 第一启动状态
2 7、8 第二启动状态
3 3 第三启动状态
4 2、6 第四启动状态
如表1中所示,示出了紧急程序的号码(标识的一种)和对应的启动状态。进而系统在运行至步骤S102前,可以先在该数据表中查找对应的启动状态,之后当达到该启动状态的时候,由基础程序来接管紧急程序的运行。第一启动状态-第四启动状态,可以指的是内核空间程序启动完成状态和用户空间程序启动完成状态,也可以指其他状态(但应当保证在该种启动状态下,基础程序能够接管紧急程序的运行)。
第二种实现方式,可以在系统中预存一个算法,之后通过紧急程序的属性值来决定该紧急程序应当在什么时候被基础程序所接管。具体的,如图2所示,第二种实现方式如下:
S201,获取紧急程序的第一属性值,第一属性值包括以下的一种或多种:基础程序的大小、基础程序的重要程度和基础程序的危险程度;
S202,根据紧急程序的属性值计算紧急程序的第一参考值;
S203,根据第一参考值的大小,确定紧急程序所对应的启动状态作为目标启动状态。
步骤S201中,紧急程序的第一属性值可以通过多种方式获取,如建立查询表、通过查找程序中的属性代码等方式来获取。基础程序的大小通常指程序本身的大小,或者是占用的运行空间的大小;重要程度主要是由用户来确定的,如某些和安全有关的程序,其重要程度相对较高,反之则较低。危险程度主要指该程序是否会危及整个系统的安全,如是否是恶意程序,恶意程度的高低也可以理解为危险程度。
步骤S202中,可以使用预设的公式来计算第一参考值,如可以使用如下公式AX+BY+CZ=F,其中,ABC为常数,X为基础程序的大小,Y为基础程序的重要程度,Z为基础程序的危险程度,F为紧急程序的第一参考值。具体使用的时候该公式还可以进行调整。进而通过此种方式能够得到紧急程序的第一参考值。
步骤S203中,可以根据第一参考值的大小来确定紧急程序所对应的启动状态,在该步骤前可以预先建立一个表格,该表格中记录有不同的第一参考值和每个第一参考值所对应的启动状态,以供查询。
上述第一种实现方式和第二种实现方式相比,第一种实现方式对于系统而言,更为简便,但灵活性差,第二种则更自由,但可能会对系统造成一定的负担。
进一步,由于紧急程序的大小(或者说运行状态下所占用的系统空间)不同,和/或重要程度不同,某些情况下,当步骤S101在执行的时候,即步骤在第二计算单元中启动紧急程序,可以按照如下方式执行:由第二计算单元中的多个计算内核来共同启动紧急程序,以避免由单独的一个计算内核来运行紧急程序,导致紧急程序运行速度较慢,运行不够流畅。但实际工作中,如果有多个计算内核来共同运行某一个程序,在运行的过程中,需要多个计算内核进行信息交互,因此,如果紧急程序过小,则没有必要通过多个计算内核来协同启动,这样反而会过多的占用系统的资源,因此,对于不同的紧急程序,应当区别对待,也就是,在启动紧急程序前,应当先确定对应的启动规则(有单个计算内核启动,还是由多个计算内核启动),之后再按照启动规则来启动紧急程序。
一般情况下,紧急程序的启动是直接通过指定的计算内核读取相应代码来实现的,因此,一般需要将每个紧急程序的启动方式(通过单个/多个计算内核启动)预先写入系统的数据库中,进而在启动的时候,可以从数据库中直接调取到对应的紧急程序的启动规则,并通过相应的计算内核进行启动。
具体而言,步骤S101中,在第二计算单元中启动紧急程序可以由如下步骤实现:
确定紧急程序所对应的启动规则,启动规则包括使用计算内核的数量和相应计算内核所使用的运行代码;
按照启动规则,使用第二计算单元中的计算内核启动紧急程序。
也就是,可以先确定紧急程序的启动规则(如在预先建立的数据表中查找预先写入的启动规则),确定应当使用多少个计算内核进行启动,不同种类的紧急程序所需要使用的计算内核的数量是不同的。之后,让相应的计算内核按照对应的运行代码运行即可完成多个计算内核协同运行紧急程序的任务。优选的,步骤所述使用所述第二计算单元中的计算内核启动所述紧急程序包括:通过第二计算单元中的多个计算内核共同启动所述紧急程序。
更进一步,如图3所示,步骤S101中,步骤在第二计算单元中启动紧急程序可以由如下步骤组成:
S301,获取紧急程序的第二属性值,第二属性值包括以下的一种或多种:基础程序的大小、基础程序的重要程度;
S302,根据第二属性值计算紧急程序的第二参考值;
S303,根据第二参考值的大小,确定启动紧急程序所使用的计算内核的目标数量;
S304,使用第二计算单元中目标数量个计算内核共同启动紧急程序。
其中,步骤S301中,紧急程序的第二属性值可以通过多种方式获取,如建立查询表、通过查找程序中的属性代码等方式来获取。基础程序的大小通常指程序本身的大小,或者是占用的运行空间的大小;重要程度主要是由用户来确定的,如某些和安全有关的程序,其重要程度相对较高,反之则较低。当然,第二属性值也可以有危险程度主要指该程序是否会危及整个系统的安全,如是否是恶意程序,恶意程度的高低也可以理解为危险程度。
步骤S302中,可以使用预设的公式来计算第二参考值,也就是第二参考值与每个第二属性值均是有一定关联性的。如第二参考值与基础程序的大小呈正相关性,第二参考值与基础程序的重要程度呈正相关性。第二参考值和第二属性值的具体计算方式可以有用户进行设置。
步骤S303中,即依据第二参考值的大小来确定计算内核的目标数量,一般来说第二参考值的数值越大,启动紧急程序所使用的计算内核的目标数量就越多,以保证紧急程序能够正常的运行。
进而,在步骤S304中,使用第二计算单元中目标数量个计算内核共同启动紧急程序。
本申请所提供的方法,通过在基础程序没有启动完成之前,使用不负责启动基础程序的计算单元来启动紧急程序(一般不启动基础程序的计算内核是空闲状态),既保证了基本程序能够正常启动,也保证了紧急程序的启动是较快的。后续步骤中还增加了使用启动完成的基础程序来接管紧急程序的运行,保证了整体系统是优化的。
同时,本申请所提供的方案中,还提供了基础程序接管紧急程序的时机,兼顾了系统运行的优化和安全性。而且,还通过设置启动紧急程序的计算内核的数量,保证了计算内核可以被高效、合理的运行。
下面以一个具体的实例来说明本申请所提供的基于多核系统的程序紧急启动方法:
实例1,Android系统启动倒车影像驱动程序的方法,如图4所示:
S401,汽车点火后,Android系统上电;之后分别执行步骤S402和S408;
S402,Android系统中的Bootloader代码启动CPU 0;
S403,Android系统在CPU0中加载引导内核空间程序(Linux内核空间);
S404,Android系统的CPU0中引导结束内核空间程序后,Bootloader退出,内核空间程序开始启动,并由内核空间程序启动倒车影像程序;
S405,Android系统的内核空间程序采用共享内存机制向CPU1发出退出指令,以通知CPU1中运行的倒车影像程序结束运行;
S406,Android系统在内核空间持续运行倒车影像程序,并引导建立用户空间;
S407,在用户空间建立完成后,Android系统在用户空间中运行倒车影像程序,直至接收到用户所下达的停止指令。
S408,Android系统中的Bootloader代码启动CPU 1;
S409,Android系统中的CPU1运行倒车影像程序;
S410,Android系统的倒车影像程序实时检测汽车是否处于倒车状态(是否检测到倒档信号),如是,则执行步骤S411,如否,则重新执行步骤S410;
S411,Android系统的倒车影像程序打开系统中的Camera设备和图像处理芯片,将Camera获取的视频数据通过预留的显示管道设备显示;
S412,CPU1接收到退出指令后,结束倒车影像显示程序的运行。
上述步骤,S409主要有如下内容:
A.上电和初始化Camera设备;
B.上电和初始化图像处理芯片设备;
C.上电和初始化图像显示设备。
一般情况下,步骤S403中,CPU0在加在引导内核空间程序的时候,会自动对各种设备(包括CPU1和倒车影像程序所会使用到的Camera设备、显示设备等)进行重启,因此,为了保证用户感受度,应当避免对正在使用的设备进行重启,即,步骤S403和S404中,应当注意如下三部分:
A.Linux内核在CPU0执行初始化,通过内核启动参数过滤掉CPU1,让CPU1继续运行倒车影像显示功能(即不重启CPU1)。
B.内核启动过程中通过修改对应驱动来过滤掉对Camera设备的初始化操作(即不初始化Camera设备)。
C.内核启动过程中通过修改对应驱动来过滤掉对预留显示设备的初始化操作(即不初始化显示设备)。
S407中,在用户空间运行倒车影像程序的具体内容如下:
A.RVC检测倒档信号。
B.当检测到倒档信号后,Native倒车影像应用RVC从用户空间申请显示图层.
C.通知内核空间中的倒车影像程序停止运行,并释放预留显示设备。
D.RVC与内核倒车影像驱动交互,将申请的Surface映射到内核倒车影像驱动。
E.倒车影像直接从用户空间申请的Surface显示。
与前述方法相对应的,本申请还提供了基于多核系统的程序紧急启动装置,如图5所示,包括如下结构:
第一启动模块,用于在接收到启动指令后,在第一计算单元中启动基础程序,并在第二计算单元中启动紧急程序;基础程序包括内核空间程序和用户空间程序;
接管模块,用于当基础程序启动至目标启动状态时,由基础程序接管紧急程序的运行。
优选的,该装置还包括:
计算模块,用于计算所述紧急程序相对应的启动状态作为目标启动状态。
优选的,所述目标启动状态包括内核空间程序启动完成状态和用户空间程序启动完成状态。
优选的,计算模块包括:
第一获取单元,用于获取紧急程序的第一属性值,所述第一属性值包括以下的一种或多种:基础程序的大小、基础程序的重要程度和基础程序的危险程度;
第一运算单元,用于根据所述紧急程序的属性值计算所述紧急程序的第一参考值;
第一确定单元,用于根据所述第一参考值的大小,确定所述紧急程序所对应的启动状态作为目标启动状态。
优选的,第一启动模块包括:
第二确定单元,用于确定所述紧急程序所对应的启动规则,所述启动规则包括使用计算内核的数量和相应计算内核所使用的运行代码;
第一启动单元,用于按照所述启动规则,使用所述第二计算单元中的计算内核启动所述紧急程序。
优选的,第一启动单元,进一步用于通过第二计算单元中的多个计算内核共同启动所述紧急程序。
优选的,第一启动模块包括:
第二获取单元,用于获取紧急程序的第二属性值,所述第二属性值包括以下的一种或多种:基础程序的大小、基础程序的重要程度;
第二运算单元,用于根据所述第二属性值计算所述紧急程序的第二参考值;
第三确定单元,用于根据所述第二参考值的大小,确定启动所述紧急程序所使用的计算内核的目标数量;
第三启动单元,用于使用所述第二计算单元中目标数量个计算内核协同启动所述紧急程序。
优选的,所述第一计算单元包括一个计算内核,和/或所述第二运算单元中包括一个或多个计算内核。
本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述基于多核系统的程序紧急启动方法的步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

Claims (8)

1.基于多核系统的程序紧急启动方法,其特征在于,包括:
在接收到启动指令后,在第一计算单元中启动基础程序,并在第二计算单元中启动紧急程序;所述基础程序包括内核空间程序和用户空间程序;
计算所述紧急程序相对应的启动状态作为目标启动状态;
当所述基础程序启动至目标启动状态时,由所述基础程序接管所述紧急程序的运行;
所述计算所述紧急程序相对应的启动状态作为目标启动状态包括:
获取紧急程序的第一属性值,所述第一属性值包括以下的一种或多种:基础程序的大小、基础程序的重要程度和基础程序的危险程度;
根据所述紧急程序的属性值计算所述紧急程序的第一参考值;
根据所述第一参考值的大小,确定所述紧急程序所对应的启动状态作为目标启动状态。
2.根据权利要求1所述的方法,其特征在于,所述目标启动状态包括内核空间程序启动完成状态和用户空间程序启动完成状态。
3.根据权利要求1所述的方法,其特征在于,步骤所述在第二计算单元中启动紧急程序包括:
确定所述紧急程序所对应的启动规则,所述启动规则包括使用计算内核的数量和相应计算内核所使用的运行代码;
按照所述启动规则,使用所述第二计算单元中的计算内核启动所述紧急程序。
4.根据权利要求3所述的方法,其特征在于,步骤所述使用所述第二计算单元中的计算内核启动所述紧急程序包括:
通过第二计算单元中的多个计算内核共同启动所述紧急程序。
5.根据权利要求1所述的方法,其特征在于,步骤所述在第二计算单元中启动紧急程序包括:
获取紧急程序的第二属性值,所述第二属性值包括以下的一种或多种:基础程序的大小、基础程序的重要程度;
根据所述第二属性值计算所述紧急程序的第二参考值;
根据所述第二参考值的大小,确定启动所述紧急程序所使用的计算内核的目标数量;
使用所述第二计算单元中目标数量个计算内核协同启动所述紧急程序。
6.根据权利要求1所述的方法,其特征在于,所述第一计算单元包括一个计算内核,和/或所述第二计算单元中包括一个或多个计算内核。
7.基于多核系统的程序紧急启动装置,其特征在于,包括:
启动模块,用于在接收到启动指令后,在第一计算单元中启动基础程序,并在第二计算单元中启动紧急程序;所述基础程序包括内核空间程序和用户空间程序;计算所述紧急程序相对应的启动状态作为目标启动状态;所述计算所述紧急程序相对应的启动状态作为目标启动状态包括:获取紧急程序的第一属性值,所述第一属性值包括以下的一种或多种:基础程序的大小、基础程序的重要程度和基础程序的危险程度;根据所述紧急程序的属性值计算所述紧急程序的第一参考值;根据所述第一参考值的大小,确定所述紧急程序所对应的启动状态作为目标启动状态;
接管模块,用于当所述基础程序启动至目标启动状态时,由所述基础程序接管所述紧急程序的运行。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-6任一项所述方法的步骤。
CN201710339622.0A 2017-05-15 2017-05-15 基于多核系统的程序紧急启动方法及装置 Active CN107168784B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710339622.0A CN107168784B (zh) 2017-05-15 2017-05-15 基于多核系统的程序紧急启动方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710339622.0A CN107168784B (zh) 2017-05-15 2017-05-15 基于多核系统的程序紧急启动方法及装置

Publications (2)

Publication Number Publication Date
CN107168784A CN107168784A (zh) 2017-09-15
CN107168784B true CN107168784B (zh) 2020-11-03

Family

ID=59816336

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710339622.0A Active CN107168784B (zh) 2017-05-15 2017-05-15 基于多核系统的程序紧急启动方法及装置

Country Status (1)

Country Link
CN (1) CN107168784B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108248509A (zh) * 2018-01-17 2018-07-06 深圳市路畅科技股份有限公司 一种控制倒车影像显示的方法、装置以及车载导航仪
CN113545093A (zh) * 2019-03-29 2021-10-22 华为技术有限公司 启动装置的处理方法、装置、设备及存储介质
CN112040173A (zh) * 2020-07-20 2020-12-04 南斗六星系统集成有限公司 一种Android车机系统快速显示倒车视频的方法
CN112199222B (zh) * 2020-12-03 2021-03-16 湖北芯擎科技有限公司 一种视频显示方法、装置、电子设备及存储介质
CN113434203A (zh) * 2021-06-30 2021-09-24 东风汽车集团股份有限公司 快速启动汽车影像设备的方法及汽车影像系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102377988A (zh) * 2010-08-18 2012-03-14 安泰科技有限公司 车辆信息显示装置和方法
CN103150178A (zh) * 2013-02-05 2013-06-12 联发科技(新加坡)私人有限公司 一种开机显示控制方法及处理器芯片
CN103522961A (zh) * 2013-03-26 2014-01-22 Tcl康钛汽车信息服务(深圳)有限公司 一种快速启动倒车影像的方法、系统及车机系统
CN105187791A (zh) * 2015-09-08 2015-12-23 深圳市安普尔科技有限公司 车载倒车视频显示方法和装置
CN105282510A (zh) * 2015-10-21 2016-01-27 畅索软件科技(上海)有限公司 一种启动倒车影像的方法和装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9229905B1 (en) * 2011-04-22 2016-01-05 Angel A. Penilla Methods and systems for defining vehicle user profiles and managing user profiles via cloud systems and applying learned settings to user profiles
US9481301B2 (en) * 2012-12-05 2016-11-01 Magna Electronics Inc. Vehicle vision system utilizing camera synchronization
CN104123194A (zh) * 2014-07-16 2014-10-29 上海斐讯数据通信技术有限公司 内核态与用户态的通信结构及通信方法
CN106427782A (zh) * 2016-11-02 2017-02-22 延锋伟世通电子科技(上海)有限公司 基于智能车载平台的倒车影像快速显示方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102377988A (zh) * 2010-08-18 2012-03-14 安泰科技有限公司 车辆信息显示装置和方法
CN103150178A (zh) * 2013-02-05 2013-06-12 联发科技(新加坡)私人有限公司 一种开机显示控制方法及处理器芯片
CN103522961A (zh) * 2013-03-26 2014-01-22 Tcl康钛汽车信息服务(深圳)有限公司 一种快速启动倒车影像的方法、系统及车机系统
CN105187791A (zh) * 2015-09-08 2015-12-23 深圳市安普尔科技有限公司 车载倒车视频显示方法和装置
CN105282510A (zh) * 2015-10-21 2016-01-27 畅索软件科技(上海)有限公司 一种启动倒车影像的方法和装置

Also Published As

Publication number Publication date
CN107168784A (zh) 2017-09-15

Similar Documents

Publication Publication Date Title
CN107168784B (zh) 基于多核系统的程序紧急启动方法及装置
US11301257B2 (en) Computing performance and power management with firmware performance data structure
US10198332B2 (en) System on chip integrity verification method and system
US9715403B2 (en) Optimized extended context management for virtual machines
US10169061B2 (en) Scalable and flexible operating system platform
US11099884B2 (en) Dynamic control of halt polling based on receiving a monitoring instruction executed by a guest
US20190377612A1 (en) VCPU Thread Scheduling Method and Apparatus
CN112506534A (zh) 一种物理机启动qcow2格式系统镜像的方法及系统
WO2018036104A1 (zh) 一种布署虚拟机的方法、系统以及物理服务器
CN115357310A (zh) 系统启动方法、装置、电子设备和存储介质
CN111857854A (zh) 关机资源加载方法、装置、存储介质和电子设备
CN111045789B (zh) 一种虚拟机开机方法、装置及电子设备和存储介质
CN106682567A (zh) 一种指纹图像的采集处理方法及装置
US10810032B2 (en) System and method for dynamic guest-controlled halt polling using a CPU governor
CN106201612B (zh) 一种信息处理方法及电子设备
CN110321179B (zh) 一种应用程序启动方法、系统、装置及计算机存储介质
CN114115958A (zh) 程序启动方法及终端设备
CN109634721B (zh) 一种虚拟机与主机的启动通信方法及相关装置
US11188367B2 (en) Guest operating system physical memory page protection using hypervisor
US11163591B2 (en) Power management method and device, electronic apparatus, and computer program product
US9965315B1 (en) Multi-core guest operating system loading approach
CN107710156B (zh) 一种基于多核嵌入式处理器的显示方法、装置和嵌入式设备
CN112579514B (zh) 多核处理器堆栈初始化的方法及装置
CN110928592A (zh) 一种嵌入式系统及其启动方法、装置及电子设备
CN210166772U (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
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220119

Address after: 210012 Room 601, building 4, No.109 software Avenue, Yuhuatai District, Nanjing City, Jiangsu Province

Patentee after: NANJING THUNDER SOFTWARE TECHNOLOGY CO.,LTD.

Address before: 100191, 4 floor, Thai Xiang business building, 1 Longxiang Road, Haidian District, Beijing.

Patentee before: Thunder Software Technology Co.,Ltd.