CN106874031A - 一种终端设备系统程序的启动方法及装置 - Google Patents

一种终端设备系统程序的启动方法及装置 Download PDF

Info

Publication number
CN106874031A
CN106874031A CN201710001430.9A CN201710001430A CN106874031A CN 106874031 A CN106874031 A CN 106874031A CN 201710001430 A CN201710001430 A CN 201710001430A CN 106874031 A CN106874031 A CN 106874031A
Authority
CN
China
Prior art keywords
program module
task groups
program
dependence
group
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
Application number
CN201710001430.9A
Other languages
English (en)
Other versions
CN106874031B (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.)
Vidaa Netherlands International Holdings BV
Original Assignee
Qingdao Hisense Electronics 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 Qingdao Hisense Electronics Co Ltd filed Critical Qingdao Hisense Electronics Co Ltd
Priority to CN201710001430.9A priority Critical patent/CN106874031B/zh
Publication of CN106874031A publication Critical patent/CN106874031A/zh
Application granted granted Critical
Publication of CN106874031B publication Critical patent/CN106874031B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提供一种终端设备系统程序的启动方法及装置,本方法将多个程序模块划分为多个任务组,每个任务组中至少存在一个程序模块与其它任务组中程序模块具有依赖关系,而每个任务组内的各个程序模块之间不具有依赖关系。以上分组方式,使得系统程序内各个程序模块的依赖关系更为清晰,在根据实际需求增减需要启动的程序模块时,可根据程序模块的依赖关系直接调整相关任务组,从而增强系统程序启动的可配置性能和可扩展性能。本方法中,各任务组之间根据相应程序模块的依赖关系依次启动,可确保各个任务组内程序模块的正常启动;任务组内各程序模块以并行方式启动,有利缩短系统程序的启动时间,提高系统资源的使用效率。

Description

一种终端设备系统程序的启动方法及装置
技术领域
本发明涉及终端设备技术领域,尤其涉及一种终端设备系统程序的启动方法及装置。
背景技术
终端设备操作系统的系统程序通常包括硬件抽象层、中间件层以及外围设备管理模块等多个系统层次,每个系统层次又包括多个具有特定功能的程序模块。通常,系统启动需要各个层次的程序模块参与,由于不同的程序模块分别用于实现不同的功能,因此,程序模块之间可能存在依赖关系。例如,在系统启动过程中,某个程序模块需要调用其它程序模块提供的方法,或者访问其它程序模块中的某些数据成员,这样,存在依赖关系的两个程序模块需要按照被依赖程序模块先启动,依赖程序模块后启动的顺序依次启动。通常,系统层次高的程序模块的启动需要依赖系统层次低的程序模块。例如,外围设备管理模块所处的层次高于中间件层和硬件抽象层的系统层次,因此,若启动外围设备管理模块的某些程序模块,则需要预先启动中间件层和硬件抽象层中相应的程序模块。
图1所示的是一种常见的系统程序启动示意图。由图1可见,系统程序中包括N个程序模块,各程序模块以单线程方式依次启动。其中,程序模块1和程序模块2之间存在依赖关系(程序模块2依赖程序模块1),因此,需根据相应的依赖关系顺序启动;程序模块3、程序模块4和程序模块5与其他各程序模块之间不存在依赖关系,可按照随机顺序逐个启动。按照图1所示的单线程启动方式,需要在上一程序模块的启动任务完成后再开始新的程序模块的启动任务,显然,这种系统程序的启动方式时间消耗较多,系统资源的使用效率低。另外,在根据实际需求增减需要启动的程序模块时,还要考虑各程序模块之间的依赖关系重新确定程序模块的启动顺序,因此,这种系统程序启动方式的可配置性能和可扩展性能较低。
对系统程序单线程启动方式的进一步改进,是多线程并行启动方式。例如,各程序模块同时接受启动任务,其中,被依赖程序模块线程执行相关启动动作,启动完成后释放信号量,即一个特定的信号,给相关的依赖程序线程;依赖程序线程需要在接收到该信号量后再执行启动动作。这种通过信号量控制启动顺序的方式,需针对系统程序中每一个被依赖程序模块单独创建信号量,即一个特定的信号,并配以初始化、等待信号、给予信号以及清理等相关操作,当系统程序中存在较多依赖关系的程序模块时,信号量的使用将额外占用系统资源,降低系统资源的使用效率。
发明内容
本发明提供一种终端设备系统程序的启动方法及装置,以解决现有技术中系统资源使用效率低的技术问题。
本发明提供一种终端设备系统程序的启动方法,所述方法包括:
将系统程序内包含的多个程序模块划分为多个任务组,每个所述任务组中包括至少一个程序模块,具有依赖关系的两个程序模块被分配在不同的任务组,每个所述任务组中的部分或全部程序模块与其它任务组中的程序模块具有依赖关系;
根据各任务组之间程序模块的依赖关系,确定各个所述任务组的组间启动顺序;
按照所述任务组内各程序模块并行启动,各任务组之间根据所述组间启动顺序依次启动的方式启动系统程序。
本发明提供还一种终端设备系统程序的启动装置,包括:处理器、存储器和通信接口,所述处理器、所述存储器和所述通信接口通信总线相连;
所述通信接口,用于接收和发送信号;
所述存储器,用于存储程序代码;
所述处理器,用于读取所述存储器中存储的程序代码,并执行如权利要求1至8中任一项所述的方法。
本发明的实施例提供的技术方案可以包括以下有益效果:
本发明提供一种终端设备系统程序的启动方法及装置,本方法将多个程序模块划分为多个任务组,每个任务组中至少存在一个程序模块与其它任务组中程序模块具有依赖关系,而每个任务组内的各个程序模块之间不具有依赖关系。以上分组方式,使得系统程序内各个程序模块的依赖关系更为清晰,在根据实际需求增减需要启动的程序模块时,可根据程序模块的依赖关系直接调整相关任务组,从而增强系统程序启动的可配置性能和可扩展性能。本方法中,各任务组之间根据相应程序模块的依赖关系依次启动,可确保各个任务组内程序模块的正常启动;任务组内各程序模块以并行方式启动,有利缩短系统程序的启动时间,提高系统资源的使用效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
图1是一种常见的系统程序启动示意图;
图2是本发明实施例1中提供的一种终端设备系统程序启动方法的方法流程图;
图3是本发明实施例1中提供的一种系统程序内包含的多个程序模块划分任务组的流程示意图;
图4是本发明实施例2中提供的一种终端设备系统程序启动方法的方法流程图;
图5是本发明实施例2中提供的一种多线程的工作示意图;
图6是本发明实施例2中提供的一种步骤S207的方法流程图;
图7是本发明实施例3中提供的一种终端设备系统程序启动方法的方法流程图;
图8是本发明实施例3中提供的一种同一系统程序内多个程序模块划分任务组的流程示意图;
图9是本发明实施例提供的一种终端设备系统程序启动装置的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置的例子。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其它实施例的不同之处。
图2是本发明实施例1中提供的一种终端设备系统程序启动方法的方法流程图。由图2可见,本方法可包括以下步骤:
步骤S101:将系统程序内包含的多个程序模块划分为多个任务组。
每个所述任务组中包括至少一个程序模块,具有依赖关系的两个程序模块被分配在不同的任务组,每个所述任务组中的部分或全部程序模块与其它任务组中的程序模块具有依赖关系。
通常,系统层次高的程序模块需要依赖系统层次低的程序模块,因而,可借助于程序模块所属的系统层次划分任务组。当然,对于划分任务组,其他可能的实施方式也可以是,先确定出与其他程序模块具有依赖关系的多个程序模块,将以上确定出的多个程序模块中具有依赖关系的程序模块划分为不同的任务组,与系统程序内其他程序模块均不具有依赖关系的程序模块,可随机划分到以上任意一个任务组中。
例如,本实施例中,系统程序可包括程序模块1-程序模块N,共N个程序模块。其中,程序模块1、程序模块2、程序模块5、程序模块10和程序模块15与系统程序内其他程序模块具有依赖关系。具体的,程序模块2依赖程序模块1;程序模块5和程序模块10均依赖程序模块2,且程序模块5和程序模块10之间不存在依赖关系;程序模块15依赖程序模块10。
图3是本发明实施例1中提供的一种系统程序内包含的多个程序模块划分任务组的流程示意图。由图3可见,本方法可先确定出与系统程序内其他程序模块具有依赖关系的程序模块1、程序模块2、程序模块5、程序模块10和程序模块15,再根据以上5个程序模块之间的依赖关系,将彼此具有依赖关系的程序模块1、程序模块2和程序模块15分别划分至任务组11、任务组12和任务组13,将不存在依赖关系的程序模块5和程序模块10划分至任务组14。对于除程序模块1、程序模块2、程序模块5、程序模块10和程序模块15以外的其他程序模块,可随机划分至任务组11、任务组12、任务组13和任务组14中的任意一组。
步骤S102:根据各任务组之间程序模块的依赖关系,确定各个所述任务组的组间启动顺序。
本实施例中,程序模块2依赖程序模块1;程序模块5和程序模块10均依赖程序模块2,且程序模块5和程序模块10之间不存在依赖关系;程序模块15依赖程序模块10,因此,各任务组的组间启动顺序应为任务组11>任务组12>任务组14>任务组13。
步骤S103:按照所述任务组内各程序模块并行启动,各任务组之间根据所述组间启动顺序依次启动的方式启动系统程序。
本发明提供一种终端设备系统程序的启动方法及装置,本方法将多个程序模块划分为多个任务组,每个任务组中至少存在一个程序模块与其它任务组中程序模块具有依赖关系,而每个任务组内的各个程序模块之间不具有依赖关系。以上分组方式,使得系统程序内各个程序模块的依赖关系更为清晰,在根据实际需求增减需要启动的程序模块时,可根据程序模块的依赖关系直接调整相关任务组,从而增强系统程序启动的可配置性能和可扩展性能。本方法中,各任务组之间根据相应程序模块的依赖关系依次启动,可确保各个任务组内程序模块的正常启动;任务组内各程序模块以并行方式启动,有利缩短系统程序的启动时间,提高系统资源的使用效率。
本发明实施例2中,系统程序内包括的程序模块可为IIC(集成电路总线,英文全称:Inter-Integrated Circuit)、GPIO(总线扩展器,英文全称:General Purpose InputOutput)、总线驱动、设置管理模块、数据访问中间件、消息中间件、对象中间件、数字电视协议栈、外接功放设备以及移动存储器。
图4是本发明实施例2中提供的一种终端设备系统程序启动方法的方法流程图。由图4可见,本方法可包括以下步骤:
步骤S201:确定系统程序内包含的所述多个程序模块的系统层次。
实施例2中各个程序模块的系统层次可确定为:IIC、GPIO、总线驱动和设置管理模块属于硬件抽象层;数据访问中间件、消息中间件、对象中间件和数字电视协议栈属于中间件层;高频头、外接功放设备以及移动存储器属于外围设备管理模块。
步骤S202:确定属于同一系统层次的各个程序模块之间的依赖关系。
确定属于同一系统层次的各个程序模块之间的依赖关系,即判断属于同一系统层次的程序模块是否需要调用本系统层次其它程序模块提供的方法,或者访问本系统层次其它程序模块中的某些数据成员。经过以上判断,本实施例中,属于同一系统层次的各个程序模块之间的依赖关系均不存在依赖关系。
步骤S203:将属于同一系统层次的各个程序模块划分为至少一个任务组。
由于属于同一系统层次的各个程序模块之间的依赖关系均不存在依赖关系,因此,可将硬件抽象层对应的各程序模块划分为任务组21、中间件层对应的各程序模块划分为任务组22、外围设备管理模块对应的各程序模块划分为任务组23。
步骤S204:根据各任务组之间程序模块的依赖关系,确定各个所述任务组的组间启动顺序。
本实施例可按照各个程序模块所属的系统层次由低到高的顺序,确定各个所述任务组的组间启动顺序。本实施例中系统层次由低到高依次为硬件抽象层、中间件层和外围设备管理模块,因而,相应的各个所述任务组的组间启动顺序为:任务组21>任务组22>任务组23。
图5是本发明实施例2中提供的一种多线程的工作示意图。由图5可见,线程池内包括M个线程,所述M个线程可分为工作和空闲两种状态。线程池首先为第一个任务组(任务组21)分配四个线程,其中,每一个线程关联第一个任务组中的一个程序模块。分配至任务组21的四个线程并行启动。在任务组21中的各程序模块均启动完成后,线程池将接收到各程序模块的反馈信息,此时,线程池再为任务组22分配相应的线程,并以此类推,从而实现任务组内各程序模块并行启动,各任务组之间根据组间启动顺序依次启动。
在本发明其他可能的情况中,例如,任务组内程序模块的数量较大或者线程池内处于空闲状态的线程较少,线程池无法为任务组内每一个程序模块分配一个相关联的线程时,线程池可以根据任务组内程序模块的数量创建新的线程,以使任务组内各程序模块均可以实现并行启动。线程池具体的工作流程可体现为以下步骤。
步骤S205:线程池为所述组间启动顺序中第一个任务组内的各程序模块分别分配一个相关联的线程。
步骤S206:各线程同时调用相应程序模块的抽象接口。
本发明所述的程序模块可继承统一的抽象接口,这些接口包含但不限于:检测相关资源是否可用、初始化硬件及程序模块、向系统注册、挂载,以使程序模块对外可用。其中,每一个程序模块可包括多个抽象接口,相关联的线程可按照固定逻辑依次调用所述多个抽象接口,若多个抽象接口均调用成功,则相应的程序模块调用完成。
步骤S207:判断所述第一个任务组内的各程序模块的抽象接口是否均完成调用,如果是,则执行步骤S208。
图6是本发明实施例2中提供的一种步骤S207的方法流程图。由图6可见,步骤S207可包括以下步骤:
步骤S2071:确定是否接收到所述第一个任务组内全部程序模块的执行结果信息。如果是,则执行步骤S2072。
步骤S2072:判断所述执行结果信息是否均为执行成功信息。如果所述执行结果信息均为执行成功信息,则执行步骤S2073。
步骤S2073:确认所述第一个任务组内各程序模块的抽象接口均完成调用。
与程序模块相关联的线程在执行结束时,将执行结果信息发送至线程池。当相应程序模块的抽象接口全部被调用成功时,则线程发送的执行结果信息为执行成功信息;当相应程序模块的抽象接口由于调用参数错误、调用方式错误,或者被依赖的程序模块未预先启动等原因无法被全部调用成功时,则线程发送的执行结果信息为执行失败信息。在对应任务组内的全部线程均反馈执行成功信息后,所述对应任务组启动完成。
步骤S208:按照所述组间启动顺序同时启动下一任务组内的各程序模块。
步骤S209:判断所述下一任务组内的各程序模块是否均完成启动,若是,则重复执行本步骤S208。
图7是本发明实施例3中提供的一种终端设备系统程序启动方法的方法流程图。由图7可见,本方法可包括以下步骤:
步骤S301:确定系统程序内包含的所述多个程序模块的系统层次。
步骤S302:在同一系统层次内,确定各个程序模块之间所具有的各个依赖关系的依赖级数。其中,所述依赖级数至少为两级,每一级至少对应一个程序模块。
在同一系统层次内,各个程序模块之间也可能具有依赖关系(如硬件抽象层中的高频头需要依赖IIC)。有时,各个程序模块之间的依赖关系还可能比较复杂,可能存在一个程序模块依赖多个程序模块的多重依赖关系,或者,多个程序模块依次依赖的链状依赖关系。因此,为了明确划分同一系统层次内各个程序模块之间的依赖关系,可将同一系统层次内的多种依赖关系对应设置为不同的依赖级数。依赖关系的依赖级数越低,则构成此依赖关系的程序模块需要越早启动,以便依赖此程序模块的其他程序模块可以顺利启动。
步骤S303:将所述各个依赖关系中属于同一级别的程序模块划分为一组。
由于同一任务组内的各个程序模块需并行启动,因此,彼此之间具有依赖关系的程序模块需要分别划分在不同的任务组中,以确保各个程序模块的顺利启动。本实施例中,可将各个依赖关系中属于同一级别的程序模块划分为一组。
步骤S304:将与所属系统层次内的程序模块均不具有依赖关系的程序模块,随机划分到所属系统层次的任意一个任务组中。
更为优选的,在本发明其他实施例中,也可以将与所属系统层次内的程序模块均不具有依赖关系的程序模块,平均划分到所属系统层次的各个任务组中。如果以上不具有依赖关系的程序模块的数量与任务组的数量不匹配,无法将以上程序模块完全平均划分到所属系统层次的各个任务组中,则可以随机选择出一个任务组,保证此任务组以外的其他任务组内程序模块的数量均相同。
以上平均划分的分配方式,可使各个任务组内程序模块的数量相对均衡,避免线程池针对某一个程序模块数量较多的任务组创建大量线程后,再为后续其他任务组分配线程时,出现大量处于空闲状态的线程,造成系统资源的浪费,降低系统资源的使用效率。
例如,本实施例中,某一系统层次内可包括程序模块1-程序模块M,共M个程序模块。其中,程序模块1-程序模块8与本系统层次内其他程序模块具有依赖关系,其余程序模块与本系统层次内其他程序模块不具有依赖关系。
图8是本发明实施例3中提供的一种同一系统程序内多个程序模块划分任务组的流程示意图。
由图8可见,本方法可先确定程序模块1-程序模块8的依赖关系。具体的,程序模块2依赖程序模块1、程序模块4依赖程序模块2和程序模块3、程序模块5依赖程序模块3、程序模块6和程序模块7均依赖程序模块5、程序模块8依赖程序模块7。按照以上依赖关系,可将程序模块1的依赖级数确定为1级、程序模块2的依赖级数确定为2级、程序模块3的依赖级数确定为3级、程序模块4(程序模块5)的依赖级数确定为4级、程序模块5(程序模块4)的依赖级数确定为5级、程序模块6和程序模块7的依赖级数确定为6级、程序模块8的依赖级数确定为7级。按照以上依赖级数,将属于同一级别的程序模块划分为一组,即将程序模块1-程序模块8相应划分为7个任务组。同时,将与所属系统层次内的程序模块均不具有依赖关系的程序模块平均分配至以上7个任务组中。
步骤S305:根据各个所述任务组的系统层次,确定不同系统层次的所述各个任务组的组间启动顺序。
步骤S306:如果同一系统层次内包括多个任务组,则根据同一系统层次内各个任务组中程序模块的依赖级数,确定同一系统层次内各个任务组的组间启动顺序。
步骤S307:按照所述任务组内各程序模块并行启动,各任务组之间根据所述组间启动顺序依次启动的方式启动系统程序。
图9是本发明实施例提供的一种终端设备系统程序启动装置的结构示意图。如图9所示,该启动装置900,其结构可包括:至少一个处理器(processor)901、内存(memory)902、外围设备接口(peripheral interface)903、输入/输出子系统(I/O subsystem)904、电力线路905和通信线路906。
在图9中,箭头表示能进行计算机系统的构成要素间的通信和数据传送,且其可利用高速串行总线(high-speed serial bus)、并行总线(parallel bus)、存储区域网络(SAN,Storage Area Network)和/或其他适当的通信技术而实现。
内存902可包括操作系统912和启动控制例程922。例如,内存902可包括高速随机存取存储器(high-speed random access memory)、磁盘、静态随机存取存储器(SPAM)、动态随机存取存储器(DRAM)、只读存储器(ROM)、闪存或非挥发性内存。内存902可存储用于操作系统912和启动控制例程922的程序编码,也就是说可包括启动装置900的动作所需的程序模块、指令集架构或其之外的多种数据。此时,处理器901或外围设备接口906等其他控制器与内存902的存取可通过处理器901进行控制。
外围设备接口903可将启动装置900的输入和/或输出外围设备与处理器901和内存902相结合。并且,输入/输出子系统904可将多种输入/输出外围设备与外围设备接口906相结合。例如,输入/输出子系统904可包括显示器、键盘、鼠标、打印机或根据需要用于将照相机、各种传感器等外围设备与外围设备接口903相结合的控制器。输入/输出外围也可不经过输入/输出子系统904而与外围设备接口903相结合,即终端设备电路及制冷设备电路也可不经过输入/输出子系统904而与外围设备接口903相结合。
电力线路905可向终端设备的电路元件的全部或部分供给电力。例如,电力线路905可包括如电力管理系统、电池或交流(AC)之一个以上的电源、充电系统、电源故障检测电路(power failure detection circuit)、电力变换器或逆变器、电力状态标记符或用于电力生成、管理、分配的任意其他电路元件。
处理器901通过施行存储在内存902中的程序模块或指令集架构可执行启动装置900的多种功能且处理数据。也就是说,处理器901通过执行基本的算术、逻辑以及计算机系统的输入/输出演算,可构成为处理计算机程序的命令。
以上所述的本发明实施方式,并不构成对本发明保护范围的限定。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明的保护范围之内。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (9)

1.一种终端设备系统程序的启动方法,其特征在于,所述方法包括:
将系统程序内包含的多个程序模块划分为多个任务组,每个所述任务组中包括至少一个程序模块,具有依赖关系的两个程序模块被分配在不同的任务组,每个所述任务组中的部分或全部程序模块与其它任务组中的程序模块具有依赖关系;
根据各任务组之间程序模块的依赖关系,确定各个所述任务组的组间启动顺序;
按照所述任务组内各程序模块并行启动,各任务组之间根据所述组间启动顺序依次启动的方式启动系统程序。
2.根据权利要求1所述的方法,其特征在于,将系统程序内包含的多个程序模块划分为多个任务组包括:
确定系统程序内包含的所述多个程序模块的系统层次;
确定属于同一系统层次的各个程序模块之间的依赖关系;
将属于同一系统层次的各个程序模块划分为至少一个任务组,其中,属于同一系统层次的具有依赖关系的程序模块被分配在相应系统层次的不同任务组中。
3.根据权利要求2所述的方法,其特征在于,确定属于同一系统层次的各个程序模块之间的依赖关系,包括:
在同一系统层次内,确定各个程序模块之间所具有的各个依赖关系的依赖级数,其中,所述依赖级数至少为两级,每一级至少对应一个程序模块;
将属于同一系统层次的各个程序模块划分为至少一个任务组,包括:
将所述各个依赖关系中属于同一级别的程序模块划分为一组。
4.根据权利要求3所述的方法,其特征在于,将属于同一系统层次的各个程序模块划分为至少一个任务组,还包括:
将与所属系统层次内的程序模块均不具有依赖关系的程序模块,随机划分到所属系统层次的任意一个任务组中。
5.根据权利要求3所述的方法,其特征在于,根据各任务组之间程序模块的依赖关系,确定各个所述任务组的组间启动顺序包括:
根据各个所述任务组的系统层次,确定不同系统层次的所述各个任务组的组间启动顺序;
如果同一系统层次内包括多个任务组,则根据同一系统层次内各个任务组中程序模块的依赖级数,确定同一系统层次内各个任务组的组间启动顺序。
6.根据权利要求1所述的方法,其特征在于,按照所述任务组内各程序模块并行启动,各任务组之间根据所述组间启动顺序依次启动的方式启动系统程序包括:
线程池为所述组间启动顺序中第一个任务组内的各程序模块分别分配一个相关联的线程;
各线程同时调用相应程序模块的抽象接口;
判断所述第一个任务组内的各程序模块的抽象接口是否均完成调用;
如果所述第一个任务组内各程序模块的抽象接口均完成调用,则按照所述组间启动顺序同时启动下一任务组内的各程序模块,并判断所述下一任务组内的各程序模块是否均完成启动,若所述下一任务组内的各程序模块均完成启动,则重复执行本步骤。
7.根据权利要求6所述的方法,其特征在于,判断所述第一个任务组内的各程序模块的抽象接口是否均完成调用包括:
确定是否接收到所述第一个任务组内全部程序模块的执行结果信息;
如果接收到所述第一个任务组内全部程序模块的执行结果信息,则判断所述执行结果信息是否均为执行成功信息;
如果所述执行结果信息均为执行成功信息,则确认所述第一个任务组内各程序模块的抽象接口均完成调用。
8.根据权利要求6所述的方法,其特征在于,线程池为所述组间启动顺序中第一个任务组内的各程序模块分别分配一个相关联的线程之前,所述方法还包括:
判断线程池内处于空闲状态的线程数量是否小于所述组间启动顺序中第一个任务组内程序模块的数量;
如果所述线程池内处于空闲状态的线程数量小于所述组间启动顺序中第一个任务组内程序模块的数量,则根据所述第一个任务组内程序模块的数量创建线程。
9.一种终端设备系统程序的启动装置,其特征在于,包括:处理器、存储器和通信接口,所述处理器、所述存储器和所述通信接口通信总线相连;
所述通信接口,用于接收和发送信号;
所述存储器,用于存储程序代码;
所述处理器,用于读取所述存储器中存储的程序代码,并执行如权利要求1至8中任一项所述的方法。
CN201710001430.9A 2017-01-03 2017-01-03 一种终端设备系统程序的启动方法及装置 Active CN106874031B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710001430.9A CN106874031B (zh) 2017-01-03 2017-01-03 一种终端设备系统程序的启动方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710001430.9A CN106874031B (zh) 2017-01-03 2017-01-03 一种终端设备系统程序的启动方法及装置

Publications (2)

Publication Number Publication Date
CN106874031A true CN106874031A (zh) 2017-06-20
CN106874031B CN106874031B (zh) 2020-08-28

Family

ID=59164653

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710001430.9A Active CN106874031B (zh) 2017-01-03 2017-01-03 一种终端设备系统程序的启动方法及装置

Country Status (1)

Country Link
CN (1) CN106874031B (zh)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108343437A (zh) * 2018-02-11 2018-07-31 陕西陕煤黄陵矿业有限公司 一种高效率综采工作面设备启动方法
CN109151216A (zh) * 2018-10-30 2019-01-04 努比亚技术有限公司 应用启动方法、移动终端、服务器及计算机可读存储介质
CN109246470A (zh) * 2018-09-29 2019-01-18 武汉斗鱼网络科技有限公司 多线程同步的弹幕分发方法、装置、设备及存储介质
WO2019028992A1 (zh) * 2017-08-09 2019-02-14 上海壹账通金融科技有限公司 多模块版本依赖关系构建方法、装置、服务器和存储介质
CN109359256A (zh) * 2018-09-29 2019-02-19 北京城市网邻信息技术有限公司 页面加载方法、装置、设备及存储介质
CN109358916A (zh) * 2018-11-20 2019-02-19 锐捷网络股份有限公司 嵌入式系统的启动方法及装置
CN109725995A (zh) * 2018-06-15 2019-05-07 中国平安人寿保险股份有限公司 数据抽取任务执行方法、装置、设备及可读存储介质
CN111209052A (zh) * 2018-11-20 2020-05-29 北京京东尚科信息技术有限公司 一种应用启动的方法及系统
CN111258740A (zh) * 2020-02-03 2020-06-09 北京无限光场科技有限公司 一种用于启动应用程序的方法、装置和电子设备
CN111258674A (zh) * 2020-01-14 2020-06-09 清华大学 一种数值应用程序的软件模块集成系统及运行方法
CN112559156A (zh) * 2020-12-23 2021-03-26 百果园技术(新加坡)有限公司 一种多依赖任务分组管理方法、装置、设备及存储介质
CN113126968A (zh) * 2021-05-19 2021-07-16 网易(杭州)网络有限公司 任务执行方法、装置、电子设备和存储介质
CN113127089A (zh) * 2019-12-27 2021-07-16 深圳市华胜软件技术有限公司 一种服务架构的模块的启动控制方法、计算机设备
CN114647464A (zh) * 2022-05-19 2022-06-21 恒生电子股份有限公司 应用的并行启动处理方法、装置及电子设备
WO2022206227A1 (zh) * 2021-03-30 2022-10-06 阿里巴巴(中国)有限公司 系统启动方法、设备、系统及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100377084C (zh) * 2006-03-10 2008-03-26 浙江大学 嵌入式操作系统多任务并行启动优化实现方法
CN101853182A (zh) * 2010-05-05 2010-10-06 中兴通讯股份有限公司 基于数据库的任务执行方法及装置
CN102902544A (zh) * 2012-09-29 2013-01-30 福建升腾资讯有限公司 一种电话支付终端软件平台的实现方法
CN103778001A (zh) * 2014-01-26 2014-05-07 北京仿真中心 一种基于dag图的仿真任务并行度分析方法
US20140372995A1 (en) * 2013-06-14 2014-12-18 Denso Corporation Parallelizing compile method, parallelizing compiler, parallelizing compile apparatus, and onboard apparatus

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100377084C (zh) * 2006-03-10 2008-03-26 浙江大学 嵌入式操作系统多任务并行启动优化实现方法
CN101853182A (zh) * 2010-05-05 2010-10-06 中兴通讯股份有限公司 基于数据库的任务执行方法及装置
CN102902544A (zh) * 2012-09-29 2013-01-30 福建升腾资讯有限公司 一种电话支付终端软件平台的实现方法
US20140372995A1 (en) * 2013-06-14 2014-12-18 Denso Corporation Parallelizing compile method, parallelizing compiler, parallelizing compile apparatus, and onboard apparatus
CN103778001A (zh) * 2014-01-26 2014-05-07 北京仿真中心 一种基于dag图的仿真任务并行度分析方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
侯东: "核电厂DCS闭环测试平台的开发及应用", 《核动力工程》 *
林伟伟: "基于概率冗余调度的可靠P2P计算模型", 《华南理工大学学报(自然科学版)》 *

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019028992A1 (zh) * 2017-08-09 2019-02-14 上海壹账通金融科技有限公司 多模块版本依赖关系构建方法、装置、服务器和存储介质
CN108343437A (zh) * 2018-02-11 2018-07-31 陕西陕煤黄陵矿业有限公司 一种高效率综采工作面设备启动方法
CN108343437B (zh) * 2018-02-11 2019-08-30 陕西陕煤黄陵矿业有限公司 一种高效率综采工作面设备启动方法
CN109725995A (zh) * 2018-06-15 2019-05-07 中国平安人寿保险股份有限公司 数据抽取任务执行方法、装置、设备及可读存储介质
CN109725995B (zh) * 2018-06-15 2024-04-12 中国平安人寿保险股份有限公司 数据抽取任务执行方法、装置、设备及可读存储介质
CN109359256A (zh) * 2018-09-29 2019-02-19 北京城市网邻信息技术有限公司 页面加载方法、装置、设备及存储介质
CN109246470A (zh) * 2018-09-29 2019-01-18 武汉斗鱼网络科技有限公司 多线程同步的弹幕分发方法、装置、设备及存储介质
CN109246470B (zh) * 2018-09-29 2020-10-16 武汉斗鱼网络科技有限公司 多线程同步的弹幕分发方法、装置、设备及存储介质
CN109151216B (zh) * 2018-10-30 2021-01-26 努比亚技术有限公司 应用启动方法、移动终端、服务器及计算机可读存储介质
CN109151216A (zh) * 2018-10-30 2019-01-04 努比亚技术有限公司 应用启动方法、移动终端、服务器及计算机可读存储介质
CN109358916A (zh) * 2018-11-20 2019-02-19 锐捷网络股份有限公司 嵌入式系统的启动方法及装置
CN111209052A (zh) * 2018-11-20 2020-05-29 北京京东尚科信息技术有限公司 一种应用启动的方法及系统
CN113127089A (zh) * 2019-12-27 2021-07-16 深圳市华胜软件技术有限公司 一种服务架构的模块的启动控制方法、计算机设备
CN111258674A (zh) * 2020-01-14 2020-06-09 清华大学 一种数值应用程序的软件模块集成系统及运行方法
CN111258674B (zh) * 2020-01-14 2021-01-01 清华大学 一种数值应用程序的软件模块集成系统及运行方法
CN111258740A (zh) * 2020-02-03 2020-06-09 北京无限光场科技有限公司 一种用于启动应用程序的方法、装置和电子设备
CN112559156A (zh) * 2020-12-23 2021-03-26 百果园技术(新加坡)有限公司 一种多依赖任务分组管理方法、装置、设备及存储介质
WO2022206227A1 (zh) * 2021-03-30 2022-10-06 阿里巴巴(中国)有限公司 系统启动方法、设备、系统及存储介质
CN113126968A (zh) * 2021-05-19 2021-07-16 网易(杭州)网络有限公司 任务执行方法、装置、电子设备和存储介质
CN113126968B (zh) * 2021-05-19 2024-05-10 网易(杭州)网络有限公司 任务执行方法、装置、电子设备和存储介质
CN114647464A (zh) * 2022-05-19 2022-06-21 恒生电子股份有限公司 应用的并行启动处理方法、装置及电子设备

Also Published As

Publication number Publication date
CN106874031B (zh) 2020-08-28

Similar Documents

Publication Publication Date Title
CN106874031A (zh) 一种终端设备系统程序的启动方法及装置
CN100517219C (zh) 多芯架构中的资源管理装置和方法以及多芯处理器
US20040039455A1 (en) Dynamic multilevel task management method and apparatus
CN102222014B (zh) 基于内存热插拔的虚拟机动态内存管理方法
CN107273331A (zh) 一种基于cpu+gpu+fpga架构的异构计算系统和方法
CN104102548B (zh) 任务资源调度处理方法和系统
CN107168782A (zh) 一种基于Spark与GPU的并行计算系统
CN105487919A (zh) 多核心处理器系统及任务分配方法
CN101051280A (zh) 智能卡嵌入式操作系统及其控制方法
CN104598426A (zh) 用于异构多核处理器系统的任务调度方法
CN108228343A (zh) 内存回收方法及装置、计算机装置及计算机可读存储介质
CN112445616B (zh) 资源分配方法以及装置
CN112486642B (zh) 资源调度方法、装置、电子设备及计算机可读存储介质
CN116560860B (zh) 一种基于机器学习的资源优先级的实时优化调整方法
CN109818810A (zh) 一种接入服务器连接优化方法、接入服务器以及通信系统
CN109086135A (zh) 资源伸缩方法、装置、计算机设备及存储介质
CN103019848B (zh) 一种pci总线非向量中断实现方法
CN111274021A (zh) 一种gpu集群任务调度分配方法
CN103823712A (zh) 一种多cpu虚拟机系统的数据流处理方法和装置
CN110912967A (zh) 一种服务节点调度方法、装置、设备及存储介质
CN111475299B (zh) 内存分配方法、装置、存储介质及电子设备
CN111459648B (zh) 面向应用程序的异构多核平台资源优化方法和装置
CN115794359A (zh) 用于联邦学习的异构系统及处理方法
CN102427468A (zh) 一种云计算操作系统及其调度方法
CN107463829B (zh) 一种密码卡中dma请求的处理方法、系统及相关装置

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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20221031

Address after: 83 Intekte Street, Devon, Netherlands

Patentee after: VIDAA (Netherlands) International Holdings Ltd.

Address before: 266555, No. 218, Bay Road, Qingdao economic and Technological Development Zone, Shandong

Patentee before: Hisense Video Technology Co.,Ltd.