一种终端设备系统程序的启动方法及装置制造方法及图纸

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

Method and device for starting program of terminal equipment system

The present invention provides a method and device for starting terminal equipment system, the method of multiple program module is divided into several task groups, the program module of a program module and other task group has depended on the existence of at least each task group, and between each task group within each program module has no dependence. The above grouping makes the dependency system within the program, each program module is more clear, in the program module according to the actual needs and decrease the need to start, can directly adjust relevant task group according to the dependency of program modules, which enhances the system startup configurable performance and scalability. In this method, the task group according to the dependency of the corresponding program module in order to start, can ensure the normal start of each task group within the program module; the task group of the program modules in parallel system program start, beneficial to shorten the start-up time, improve the efficiency of system resource.

【技术实现步骤摘要】
一种终端设备系统程序的启动方法及装置
本专利技术涉及终端设备
,尤其涉及一种终端设备系统程序的启动方法及装置。
技术介绍
终端设备操作系统的系统程序通常包括硬件抽象层、中间件层以及外围设备管理模块等多个系统层次,每个系统层次又包括多个具有特定功能的程序模块。通常,系统启动需要各个层次的程序模块参与,由于不同的程序模块分别用于实现不同的功能,因此,程序模块之间可能存在依赖关系。例如,在系统启动过程中,某个程序模块需要调用其它程序模块提供的方法,或者访问其它程序模块中的某些数据成员,这样,存在依赖关系的两个程序模块需要按照被依赖程序模块先启动,依赖程序模块后启动的顺序依次启动。通常,系统层次高的程序模块的启动需要依赖系统层次低的程序模块。例如,外围设备管理模块所处的层次高于中间件层和硬件抽象层的系统层次,因此,若启动外围设备管理模块的某些程序模块,则需要预先启动中间件层和硬件抽象层中相应的程序模块。图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以本文档来自技高网
...
一种终端设备系统程序的启动方法及装置

【技术保护点】
一种终端设备系统程序的启动方法,其特征在于,所述方法包括:将系统程序内包含的多个程序模块划分为多个任务组,每个所述任务组中包括至少一个程序模块,具有依赖关系的两个程序模块被分配在不同的任务组,每个所述任务组中的部分或全部程序模块与其它任务组中的程序模块具有依赖关系;根据各任务组之间程序模块的依赖关系,确定各个所述任务组的组间启动顺序;按照所述任务组内各程序模块并行启动,各任务组之间根据所述组间启动顺序依次启动的方式启动系统程序。

【技术特征摘要】
1.一种终端设备系统程序的启动方法,其特征在于,所述方法包括:将系统程序内包含的多个程序模块划分为多个任务组,每个所述任务组中包括至少一个程序模块,具有依赖关系的两个程序模块被分配在不同的任务组,每个所述任务组中的部分或全部程序模块与其它任务组中的程序模块具有依赖关系;根据各任务组之间程序模块的依赖关系,确定各个所述任务组的组间启动顺序;按照所述任务组内各程序模块并行启动,各任务组之间根据所述组间启动顺序依次启动的方式启动系统程序。2.根据权利要求1所述的方法,其特征在于,将系统程序内包含的多个程序模块划分为多个任务组包括:确定系统程序内包含的所述多个程序模块的系统层次;确定属于同一系统层次的各个程序模块之间的依赖关系;将属于同一系统层次的各个程序模块划分为至少一个任务组,其中,属于同一系统层次的具有依赖关系的程序模块被分配在相应系统层次的不同任务组中。3.根据权利要求2所述的方法,其特征在于,确定属于同一系统层次的各个程序模块之间的依赖关系,包括:在同一系统层次内,确定各个程序模块之间所具有的各个依赖关系的依赖级数,其中,所述依赖级数至少为两级,每一级至少对应一个程序模块;将属于同一系统层次的各个程序模块划分为至少一个任务组,包括:将所述各个依赖关系中属于同一级别的程序模块划分为一组。4.根据权利要求3所述的方法,其特征在于,将属于同一系统层次的各个程序模块划分为至少一个任务组,还包括:将与所属系统层次内的程序模块均不具有依赖关系的程序模块,随机划分到所属系统层次的任意一个任务组中。5.根据权利要求3所述的方法,其特征在于,根据各任务组之间程序模块的依赖关系,确定各个所述任务组的组间启动顺序包括:根据各个所述任务组的系统层次,确定不同系统层次的所述各个任务组的组间启动顺序;如果同一系统层次内包括多个任务组,则根据同一系统层次内各个任务组中程序模块的依赖级数,确定...

【专利技术属性】
技术研发人员:王新志臧晓华
申请(专利权)人:青岛海信电器股份有限公司
类型:发明
国别省市:山东,37

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1