CN106575234B - 程序执行系统以及常驻程序的启动方法 - Google Patents
程序执行系统以及常驻程序的启动方法 Download PDFInfo
- Publication number
- CN106575234B CN106575234B CN201480081068.5A CN201480081068A CN106575234B CN 106575234 B CN106575234 B CN 106575234B CN 201480081068 A CN201480081068 A CN 201480081068A CN 106575234 B CN106575234 B CN 106575234B
- Authority
- CN
- China
- Prior art keywords
- resident
- program
- program execution
- startup
- programs
- 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
Links
Images
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/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
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
程序执行系统具有:程序执行部(11),该程序执行部(11)执行包含有多个常驻程序的多个程序;以及常驻程序启动控制部(14),该常驻程序启动控制部(14)控制使多个常驻程序启动的顺序。程序执行部(11)在系统启动时,根据对使多个常驻程序启动的顺序进行规定的信息即启动顺序定义,依次启动多个常驻程序。常驻程序启动控制部(14)在因多个常驻程序的启动而使资源使用量超过规定值的情况下,根据本次的启动顺序定义来变更下一次系统启动时的启动顺序定义。
Description
技术领域
本发明涉及程序执行系统,尤其涉及常驻程序的启动方法。
背景技术
例如智能手机或平板型终端等具有程序执行系统的装置(程序执行装置)已普及有用户能够自由导入(安装)应用程序的装置。另外,在用户能够导入的应用程序中具有包含系统启动时自动启动且常驻于系统中的程序(常驻程序)的应用程序。通过使常驻程序常驻于系统中,能够降低用户的操作负担并实现持续的服务。
然而,在用户向程序执行装置导入了多个应用程序的情况下,若不限制这些常驻程序的启动,则程序执行装置的资源(存储容量或CPU(Central Processing Unit:中央处理器)的处理速度等)会不足,可能会导致应用程序无法正常执行的问题。在一般的程序执行装置中,为了消除该问题,对允许常驻的应用程序的种类进行限制,或者在存储器的空余容量变少的情况下、强行终止优先级较低的应用程序。
另外,在下述专利文献1中揭示了根据系统启动的时刻来切换自动启动的应用程序的技术。在专利文献2中揭示了如下技术:将各个应用程序分类成常驻型或者非常驻型(临时型),在信息终端装置的存储器发生不足的情况下,强制终止非常驻型的应用程序。专利文献3中揭示了基于各个应用程序的使用频率来决定各个应用程序的优先级的技术。
现有技术文献
专利文献
专利文献1:日本专利特开2004-157781号公报
专利文献2:日本专利特开2003-15892号公报
专利文献3:日本专利特开2013-246770号公报
发明内容
发明所要解决的技术问题
在现有的程序执行装置中,由于系统启动时常驻程序启动的顺序每次都是相同的,所以在因常驻程序而导致资源不足的情况下,每次仅启动相同的常驻程序。反而言之,会产生完全不会启动的常驻程序。然而,在常驻程序中,由于例如存在应用程序的自动上传程序等、定期使其启动的必要性较高的应用程序,所以不希望产生完全不会启动的常驻程序。
本发明正是为了解决上述问题而完成的,其目的在于提供一种能够防止产生完全不会启动的常驻程序的程序执行系统。
解决技术问题的技术方案
本发明所涉及的程序执行系统包括程序执行部,该程序执行部执行包含有多个常驻程序的多个程序;以及常驻程序启动控制部,该常驻程序启动控制部控制使多个常驻程序启动的顺序,程序执行部在系统启动时,根据对使多个常驻程序启动的顺序进行规定的信息即启动顺序定义,依次启动多个常驻程序,常驻程序启动控制部在因多个常驻程序的启动而使资源使用量超过规定值的情况下,根据本次系统启动时所使用的启动顺序定义来变更下一次系统启动时的启动顺序定义。
发明效果
根据本发明,在因常驻程序的启动而使资源使用量超过了规定值的情况下,根据本次系统启动时所使用的启动顺序定义来变更下一次系统启动时的启动顺序定义,因此,在下一次系统启动时多个常驻程序启动的顺序与本次系统启动时多个常驻程序启动的顺序变得不同。由此,能够防止产生完全不被启动的常驻程序。
本发明的目的、特征、方式以及优点通过以下详细的说明和附图来进一步阐明。
附图说明
图1是本发明所涉及的程序执行系统的结构图。
图2是示出了应用程序的结构的图。
图3是示出了启动顺序定义的示例的图。
图4是用于说明程序执行装置的存储容量的图。
图5是用于说明实施方式1所涉及的程序执行装置的动作的图。
图6是示出了图5所示的动作后的启动顺序定义的图。
图7是表示实施方式1所涉及的程序执行装置的动作的流程图。
图8是示出了在能够预先判断常驻程序的存储器使用量的情况下、实施方式1所涉及的程序执行装置的动作的流程图。
图9是用于说明导入新的应用程序时的程序执行装置的动作的图。
图10是用于说明导入新的应用程序时的程序执行装置的动作的图。
图11是示出了导入新的应用程序后的启动顺序定义的示例的图。
图12是用于说明实施方式2所涉及的程序执行装置的动作的图。
图13是表示实施方式2所涉及的程序执行装置的动作的流程图。
图14是用于说明实施方式3所涉及的程序执行装置的动作的图。
图15是表示实施方式3所涉及的程序执行装置的动作的流程图。
图16是示出了实施方式4的启动顺序定义的示例的图。
图17是示出了实施方式4的启动顺序定义的示例的图。
图18是示出了实施方式4的启动顺序定义的示例的图。
图19是表示实施方式5所涉及的程序执行装置的动作的流程图。
图20是示出了在能够预先判断常驻程序的存储器使用量的情况下、实施方式5所涉及的程序执行装置的动作的流程图。
图21是用于说明实施方式6所涉及的程序执行装置的动作的图。
具体实施方式
实施方式1
图1是本发明所涉及的程序执行系统的结构图。该程序执行程序具有程序执行装置10、与该程序执行装置10相连接的启动开关21、显示装置22、以及语音输出装置23。本发明能够广泛地适用于以个人电脑为主的程序执行系统中,尤其适用于因制造成本、产品尺寸、功耗等理由而限制了资源的便携型或小型的装置(例如智能手机、平板终端、车载的信息显示装置、导航装置等)。
启动开关21是程序执行装置10的电源开关,若用户操作启动开关21来导通程序执行装置10的电源,则程序执行系统启动。启动开关21可以是远程操作程序执行装置10的遥控器,也可以内置于程序执行装置10。另外,在程序执行系统适用于车载装置的情况下,启动开关21可以构成为与车辆的电源开关、点火开关联动。
作为显示装置22,代表的是液晶显示器,但是也可以利用具有图像显示功能的任意装置(例如智能手机、平板终端、车辆的仪表板的显示部等)。另外,显示装置22可以是起到供用户进行操作的输入单元的作用的触摸面板。语音输出装置23一般是扬声器、耳机等,但也可以利用具有语音输出功能的任意装置。
程序执行装置10具有程序执行部11、存储部12、资源监视部13、以及常驻程序启动控制部14。程序执行装置10利用计算机来构成,计算机根据程序进行动作,从而实现程序执行部11、资源监视部13以及常驻程序启动控制部14。存储部12利用例如硬盘、移动磁盘等非易失性的存储介质来构成。
程序执行部11能够同时执行多个应用程序。另外,程序执行部11也能够根据各个应用程序的动作,来从显示装置22或语音输出装置23输出该应用程序的执行结果。
一般而言,由程序执行装置执行的应用程序构成为包含1个以上的程序、以及记载了与该应用程序相关的各种信息的定义文件在内的数据包。另外,一般的应用程序如图2所示,构成为包含:具有显示于显示装置22的执行画面的显示程序、不进行对显示装置22的描绘而常驻(即在后台动作)的常驻程序、以及定义文件。此处,还有不包含显示程序而由常驻程序和定义文件构成的应用程序,或者不包含常驻程序而由显示程序和定义文件构成的应用程序。另外,一个应用程序也可以具有多个显示程序、常驻程序或者定义文件。
作为常驻程序的示例,具有导航用的地图更新确认程序、SNS(Social NetworkingService:社交网络服务)应用程序的投稿确认程序、新闻应用程序的最新新闻获取程序、音乐应用程序的更新确认程序、天气预报应用程序的最新信息获取程序等。
由程序执行部11执行的应用程序存储于存储部12。此处,设存储于存储部12的应用程序中具有多个包含常驻程序的应用程序。另外,程序执行部11在系统启动时,按照预先规定的顺序启动上述多个应用程序的常驻程序。对程序执行部11使多个常驻程序启动的顺序(常驻程序启动顺序)进行规定的信息、即“启动顺序定义”存储于存储部12,系统启动时由程序执行部11读取出。
图3是示意性地示出存储于存储部12的启动顺序定义的图。在图3的示例中,作为启动顺序定义,示出了启动常驻程序A~E的顺序。在本实施方式中,启动顺序定义将启动常驻程序的顺序规定为环状,且包含有表示作为启动对象的常驻程序的信息。
在将图3所示的启动顺序定义存储于存储部12中的情况下,程序执行部11最先启动作为启动对象的常驻程序A,然后根据启动顺序定义一个一个依次启动启动对象,并且启动作为启动对象的常驻程序。即,程序执行部11以常驻程序A、B、C、D、E…的顺序启动常驻程序A~E。
资源监视部13对各个应用程序使用资源的使用状况进行监视。作为表示资源的使用状况的信息,例举了存储器使用量、CPU的使用率等,在本实施方式中,设为资源监视部13对程序执行装置10的存储器使用量进行监视。
此处,在程序执行部11所执行的程序中不仅包含用户导入的应用程序中所包含的程序,还包括为了实现程序执行装置10的基本动作的程序(系统程序)。由于必须执行系统程序,所以一般而言,如图4所示那样,将程序执行装置10的存储容量的一部分预约成系统程序用区域,将其余部分作为应用程序用区域来使用。本说明书中所述的“存储容量”是指应用程序用区域的容量。
常驻程序启动控制部14对启动多个常驻程序的顺序(常驻程序启动顺序)进行控制。具体而言,检测出系统启动时由于启动常驻程序而造成存储器容量不足的情况下,常驻程序启动控制部14根据本次系统启动时所采用的启动顺序定义来变更下一次系统启动时的启动顺序定义。也就是说,常驻程序启动控制部14对存储于存储部12中的启动顺序定义的内容进行更新。由此,能够根据本次系统启动时的常驻程序启动顺序来更变下一次系统启动时的常驻程序启动顺序。
接着,利用图5来说明系统启动时程序执行装置10的动作。图5示出了假定存储部12中存储了图3的启动顺序定义时程序执行装置10的动作。此处,程序执行装置10的存储器容量为80MB,常驻程序能够使用的存储器容量的上限(存储器使用上限)被规定为50MB。也就是说,若常驻程序的存储器使用量超过50MB,则判断为存储器不足。另外,如图3所示,常驻程序A、B、C、D、E的存储器使用量分别设为20MB、10MB、30MB、15MB、25MB。
若利用启动开关21导通程序执行装置10的电源,系统启动,则程序执行部11根据启动顺序定义(图3)来启动成为启动对象的常驻程序A。如图5(a)所示那样,若仅仅启动常驻程序A,则存储器使用量为20MB,不会达到存储器使用上限的50MB。在此情况下,程序执行部11根据启动顺序定义使启动对象前进至常驻程序B,从而启动常驻程序B。如图5(b)所示那样,即使启动常驻程序A、B,存储器使用量为30MB,不会达到存储器使用上限,因此,程序执行部11进一步使启动对象前进至常驻程序C,从而启动常驻程序C。
如图5(c)所示那样,若启动常驻程序A、B、C,则存储器使用量为60MB,由于超过存储器使用上限,所以导致存储器不足。在此情况下,程序执行部11结束成为存储器使用量超过存储器使用上限的原因(即最新启动)的常驻程序C,从而如图5(d)所示那样消除存储器不足的问题。而且,常驻程序启动控制部14对存储于存储部12中的启动顺序定义进行更新,从而将此时作为启动对象的常驻程序C作为下次系统启动时最先启动的常驻程序。也就是说,如图6所示那样,将以常驻程序C作为启动对象的启动顺序定义存储于存储部12。其结果是,在下一次系统启动时,在利用程序执行部11最先启动常驻程序C之后,进行与上述一样的动作。
如上所述,在本实施方式中,不变更启动顺序定义的循环,而是通过变更最先启动的常驻程序,从而变更启动顺序定义的内容。因此,在反复系统的启动和结束之中,每一个常驻程序都有被执行的机会,能够防止出现完全不被启动的常驻程序。
图7是表示实施方式1所涉及的程序执行装置10的系统启动时的动作的流程图。利用图5所说明的动作是程序执行装置10进行基于该流程图的动作来实现的。
若利用启动开关21导通程序执行装置10的电源,系统启动,则程序执行部11从存储部12获取启动顺序定义(步骤S11),启动成为启动对象的常驻程序(步骤S12)。接着,资源监视部13监视程序执行装置10的存储器使用量,确认存储器使用量是否在存储器使用上限以下(步骤S13)。若存储器使用量在存储器使用上限以下(步骤S13为“是”),则将启动对象变更为下一个常驻程序(步骤S14),返回步骤S12。
若存储器使用量超过存储器使用上限(步骤S13为“否”),则程序执行部11使最新启动的常驻程序结束(步骤S15)。而且,常驻程序启动控制部14将当前成为启动对象的常驻程序确定为下一次系统启动时的启动对象(步骤S16),将该常驻程序作为启动对象的启动顺序定义存储于存储部12(步骤S17)。如上所述,系统的启动处理完成。
另外,在上述说明中,在实际启动常驻程序之后(步骤S12),判断是否为存储器不足(步骤S13),但是在预先知道各个常驻程序的存储器使用量的情况下,可以在启动常驻程序之前判断是否发生存储器不足。在此情况下,可以仅在判断为未发生存储器不足的情况下,启动常驻程序并使其常驻。
例如在将常驻程序的存储器使用量的信息记载于应用程序所包含的定义文件(图2)中的情况下,能够预先判断该常驻程序的存储器使用量。另外,记载于定义文件中的存储器使用量的信息也可以是该常驻程序过去启动时的实测值。
下面,更详细地示出了在能够预先判断常驻程序的存储器使用量的情况下的、程序执行装置10的系统启动时的动作。图8是表示该动作的流程图。
若利用启动开关21导通程序执行装置10的电源,系统启动,则程序执行部11从存储部12获取启动顺序定义(步骤S21)。接着,程序执行部11根据资源监视部13检测出的程序执行装置10的当前存储器使用量和成为启动对象的常驻程序的存储器使用量,预测使成为启动对象的常驻程序启动时的存储器使用量,判断此时的存储器使用量是否在存储器使用上限以下(步骤S22)。
即使启动成为启动对象的常驻程序,只要判断为存储器使用量在存储器使用上限以下(步骤S22为“是”),就启动该常驻程序(步骤S23)。而且,将启动对象变更为下一常驻程序(步骤S24),返回步骤S22。
另一方面,若启动成为启动对象的常驻程序且判断为存储器使用量超过存储器使用上限(步骤S22为“否”),则不启动该常驻程序。在此情况下,常驻程序启动控制部14将当前成为启动对象的常驻程序确定为下一次系统启动时的启动对象(步骤S25),将该常驻程序成为启动对象的启动顺序定义存储于存储部12(步骤S26)。如上所述,系统的启动处理完成。
另外,在用户向程序执行装置10导入了新的应用程序的情况下,如图9所述,常驻程序启动控制部14将新的常驻程序(F)追加至存储于存储部12的启动顺序定义中的常驻程序的顺序。向启动顺序定义追加新的应用程序的位置可以是任意的,例如可以追加至如下位置:即,使新的常驻程序和追加该新的常驻程序的位置前后的常驻程序的存储器使用量的平均值最接近启动顺序定义中所包含的全部常驻程序的存储器使用量的平均值的位置。由此,能够防止存储器使用量较大的应用程序集中在启动顺序定义的特定位置,能够同时执行更多的常驻程序。
如图9所示,在新的常驻程序F的存储器使用量为20MB的情况下,追加了常驻程序F后的启动顺序定义中所包含的全部常驻程序A~F的存储器使用量的平均值为20.0MB。另外,如图10所示,关于新的常驻程序F和追加该新的常驻程序F的位置前后的常驻程序的存储器使用量的平均值,若将常驻程序F追加至常驻程序A与B之间则为16.7MB,若将常驻程序F追加至常驻程序B与C之间则为20.0MB,若将常驻程序F追加至常驻程序C与D间则为21.7MB,若将常驻程序F追加至常驻程序D与E之间则为20.0MB,若将常驻程序F追加至常驻程序E与A之间则为21.7MB。由此,常驻程序F可以追加至常驻程序B与C之间,或者常驻程序D与E之间。图11示出了将常驻程序F追加至常驻程序B与C之间的情况下的启动顺序定义。
<实施方式2>
在实施方式1中,不变更启动顺序定义中常驻程序的顺序的循环,而是通过变更最初启动的常驻程序来变更启动顺序定义的内容,然而常驻程序启动顺序的变更方法不仅限于此。在实施方式2中,在常驻程序启动控制部14变更常驻程序启动顺序时,如图12所示,随机地决定启动顺序定义中的常驻程序的顺序。利用这样的方法,也能够得到与实施方式1相同的效果。
图13是表示实施方式2所涉及的程序执行装置10的系统启动时的动作的流程图。该流程图是针对图7的流程图将决定下一次系统启动时的启动对象的步骤S16置换成随机决定下一次系统启动时的启动顺序定义中的常驻程序的顺序的步骤S16a,因此,此处省略说明。
<实施方式3>
在实施方式1中,在因常驻程序的启动而发生存储器不足的情况下,不启动之后的常驻程序。例如在图5的示例中,如图5(c)所示那样,若因常驻程序C的启动而发生存储器不足,则在图5(d)的状态下结束系统启动的处理,不启动常驻程序D、E。
然而,在图5(d)的状态下存储器使用量为30MB,距离存储器使用上限的50MB还有20MB的余量,因此应该能够执行存储器使用量为15MB的常驻程序D。在实施方式3中,如上所述,能够防止存储器容量未被充分有效地活用的状态。
即,在实施方式3所涉及的程序执行装置10中,程序执行部11根据启动顺序定义反复进行如下动作:跳过成为存储器不足的原因的常驻程序的顺序,并使下一个常驻程序常驻。这样反复的动作一直执行到启动顺序定义内的常驻程序执行完一轮为止。
利用图14来说明该动作。图14示出了基于图3的启动顺序定义的动作。此处,程序执行装置部10的存储器容量为80MB,存储器使用上限设为50MB。
若利用启动开关21导通程序执行装置10的电源,系统启动,则程序执行部11根据存储于存储部12的启动顺序定义(图3)来启动成为启动对象的常驻程序A。如图14(a)所示那样,若仅仅启动常驻程序A,则存储器使用量为20MB,不会达到存储器使用上限。在此情况下,程序执行部11使启动对象前进至常驻程序B,从而启动常驻程序B。如图14(b)所示那样,即使启动常驻程序A、B,存储器使用量为30MB,不会达到存储器使用上限,因此,程序执行部11使启动对象前进至常驻程序C,从而启动常驻程序C。
如图14(c)所示那样,若启动常驻程序A、B、C,则存储器使用量为60MB,由于超过存储器使用上限,所以导致存储器不足。在此情况下,程序执行部11在使成为存储器使用量超过存储器使用上限的原因(即最新启动)的常驻程序C结束的基础上,使启动对象前进至常驻程序D,从而启动常驻程序D。如图14(d)所示那样,即使启动常驻程序A、B、D,存储器使用量为45MB,不会发生存储器不足。在此情况下,程序执行部11使启动对象前进至常驻程序E,从而启动常驻程序E。
如图14(e)所示那样,即使启动常驻程序A、B、D、E,存储器使用量为70MB,发生存储器不足。在此情况下,程序执行部11使成为存储器使用量超过存储器使用上限的原因的常驻程序E结束,使启动对象前进至常驻程序A。由此,由于执行了一轮启动对象为启动顺序定义内的常驻程序,所以结束使常驻程序启动的处理。
常驻程序启动控制部14变更启动顺序定义,从而在下一次系统启动时使最先成为存储器使用量超过存储器使用上限的原因的常驻程序最先启动。在图14所示的动作中,由于启动常驻程序C时第一次造成存储器不足,因此,将下一次系统启动时最先启动的常驻程序设定为常驻程序C。也就是说,如图6所示那样,将以常驻程序C作为启动对象的启动顺序定义存储于存储部12。其结果是,在下一次系统启动时,在最先启动常驻程序C之后,进行与上述一样的动作。
如上所述,在本实施方式中,在因常驻程序的启动而发生存储器不足的情况下,搜索能够取而代之启动的常驻程序,若找到这样的常驻程序则将其启动。因此,能够使比实施方式1更多的常驻程序常驻。
图15是表示实施方式3所涉及的程序执行装置10的系统启动时的动作的流程图。利用图14所说明的动作是程序执行装置10进行基于该流程图的动作来实现的。
首先,若利用启动开关21导通程序执行装置10的电源,系统启动,则程序执行部11从存储部12获取启动顺序定义(步骤S31),启动成为启动对象的常驻程序(步骤S32)。接着,资源监视部13监视程序执行装置10的存储器使用量,确认存储器使用量是否在存储器使用上限以下(步骤S33)。
若存储器使用量在存储器使用上限以下(步骤S33为“是”),则将启动对象变更为下一个常驻程序(步骤S34)。此时,若启动对象为启动顺序定义内的常驻程序还未执行一轮(步骤S35为“否”),则返回步骤S32。
另一方面,若步骤S33中存储器使用量超过存储器使用上限(步骤S33为“否”),则程序执行部11使最新启动的常驻程序结束(步骤S36)。此时,若存储器使用量超过存储器使用上限是首次(步骤S37为“是”),则常驻程序启动控制部14将当前成为启动对象的常驻程序确定为下一次系统启动时的启动对象(步骤S38),转移至步骤S34。若储存器使用量超过存储器使用上限不是首次(步骤S37为“否”),则不进行步骤S38的处理而转移至步骤S34。
反复进行上述处理,若执行了一轮启动对象为启动顺序定义内的常驻程序(步骤S35为“是”),则确认下一次系统启动时的启动对象是否已决定(即,是否已进行了步骤S38的处理)(步骤S39)。若下一次系统启动时的启动对象还未决定(步骤S39为“否”),则常驻程序启动控制部14使当前成为启动对象的常驻程序决定为下一次系统启动时的启动对象(步骤S40),并将由此规定的启动顺序定义存储于存储部12(步骤S41)。
若下一次系统启动时的启动对象已决定(步骤S39为“是”),则常驻程序启动控制部14不进行步骤S40的处理,正如步骤S38中所决定的那样,将规定了启动对象的启动顺序定义存储于存储部12(步骤S41)。如上所述,系统的启动处理完成。
另外,即使在实施方式3中,在预先知道各个常驻程序的存储器使用量的情况下,无需实际启动常驻程序就可以判断是否发生了存储器不足。
在实施方式3中,常驻程序启动控制部14不变更启动顺序定义中的循环,而变更启动顺序定义的内容,从而在下一次系统启动时将最先成为存储器使用量超过特定值的原因的常驻程序最先启动,但也可以应用实施方式2,在常驻程序启动控制部14变更启动顺序定义时,随机决定启动顺序定义中的常驻程序的顺序。
<实施方式4>
在实施方式1中,示出了程序执行装置10仅使用1个启动顺序定义的示例,但是在实施方式4中,示出了程序执行装置10使用多个启动顺序定义的示例。即,常驻程序启动控制部14管理图16所示那样的多个启动顺序定义,根据预先确定的条件,切换使程序执行部11所使用的启动顺序定义。其它动作与实施方式1(图7)相同。
例如根据当前位置的条件来切换多个启动顺序定义的情况下,在存储部12中存储与当前位置的各个条件相对应的多个启动顺序定义。常驻程序启动控制部14在程序执行装置10启动时获取当前位置,在图7的步骤S11中,向程序执行部11指示从存储部12中读取出与当前位置相对应的启动顺序定义。
作为选择哪个启动顺序定义的判断基准的条件,除了当前位置的条件以外,还考虑天气的条件、用户的条件等。使用这些条件的情况下的程序执行装置10的动作也与上述一样,常驻程序启动控制部14在图7的步骤S11中,向程序执行部11指示从存储部12读取出与当前的天气或用户相对应的启动顺序定义即可。
根据实施方式4,根据启动程序执行装置10时的当前位置或天气等,能够区分使用启动顺序定义。另外,能够根据使用程序执行装置10的用户,切换启动顺序定义。尤其是,在每个用户能够单独导入应用程序的情况下,如图17所示,由于每个用户导入的常驻程序本身可能就不同,所以每个用户能够区分使用启动顺序定义是非常有效的。
<实施方式5>
在实施方式5中示出了具有如下结构的程序执行装置10,该程序执行装置10对多个常驻程序分别规定优先级,且常驻程序启动控制部14管理与各优先级相对应的多个启动顺序定义。
图18是将常驻程序分为优先级高的常驻程序A~E和优先级低的常驻程序a~e,并且根据不同的优先级来区分启动顺序定义的示例。在系统启动时,程序执行部11根据与该优先级相对应的启动顺序定义的顺序来启动各个常驻程序。
在此情况下,优先级低的常驻程序可以仅在即使启动所有优先级高的常驻程序,存储器容量仍有余量的情况下被启动,但是在此情况下,考虑到优先级低的常驻程序完全无法启动。因此,优选决定使常驻程序启动的顺序,从而能够至少逐一执行各个优先级的常驻程序。系统启动时若至少逐一执行各优先级的常驻程序,则在反复系统的启动和结束的过程中,优先级低的常驻程序也全部能够得到被启动的机会,能够防止出现完全不被启动的常驻程序。
图19是表示实施方式5所涉及的程序执行装置10在系统启动时的动作的流程图。此处,示出了如下动作:规定了优先级高的常驻程序和优先级低的常驻程序,程序执行装置10至少逐一执行各优先级的常驻程序。另外,在程序执行装置10的存储部12中存储有如图18的示例所示那样的、用于优先级高的常驻程序的启动顺序定义和用于优先级低的常驻程序的启动顺序定义。
若利用启动开关21来导通程序执行装置10的电源,系统启动,则程序执行部11分别从存储部12获取用于优先级高的常驻程序的启动顺序定义和用于优先级低的常驻程序的启动顺序定义(步骤S51)。而且,程序执行部11启动优先级高的常驻程序的启动对象(步骤S52)。接着,资源监视部13监视程序执行装置10的存储器使用量,确认存储器使用量是否在存储器使用上限以下(步骤S53)。若存储器使用量在存储器使用上限以下(步骤S53为“是”),则将优先级高的常驻程序的启动对象变更为当前的启动对象的下一个启动对象(步骤S54),返回步骤S52。
反复进行步骤S52~S54的处理,若存储器使用量超过存储器使用上限(步骤S53为“否”),则程序执行部11使最新启动的优先级高的常驻程序结束(步骤S56)。根据目前为止的处理,在存储器使用量不超过存储器使用上限的范围内,启动优先级高的常驻程序。
接着,程序执行部11启动优先级低的常驻程序的启动对象(步骤S56)。然后,资源监视部13确认存储器使用量是否在存储器使用上限以下(步骤S57)。若存储器使用量在存储器使用上限以下(步骤S57为“是”),则将优先级低的常驻程序的启动对象变更为当前的启动对象的下一个启动对象(步骤S58),返回步骤S56。
若存储器使用量已超过存储器使用上限(步骤S57为“否”),则程序执行部11确认优先级低的常驻程序是否启动了2个以上(步骤S59)。另外,由于在步骤S59之前执行步骤S56,所以在步骤S59中,至少启动了1个优先级低的常驻程序。
在仅启动了1个优先级低的常驻程序的情况下(步骤S59为“否”),为了使该常驻程序的动作继续且降低存储器使用量,使已启动的优先级高的常驻程序中最后被启动的常驻程序结束(步骤S60)。而且,将优先级高的常驻程序的启动对象变更为当前的启动对象的前一个(步骤S61)。其结果是,优先级高的常驻程序的启动对象变为在步骤S60中使其结束的常驻程序。然后,资源监视部13再次确认存储器使用量是否在存储器使用上限以下(步骤S62),若存储器使用量超过存储器使用上限(步骤S62为“否”),则返回步骤S60。即,反复进行步骤S60、S61的处理,直到存储器使用量在存储器使用上限以下为止。由此,能够使已启动的唯一的优先级低的常驻程序继续,并且能够使存储器使用量降低至存储器使用上限以下。
而且,若存储器使用量在存储器使用上限以下(步骤S62为“是”),则返回步骤S56。由此,在步骤S60的处理中所增大的存储器的空余容量较大的情况下,能够启动优先级更加低的常驻程序,能够有效地活用存储器容量。
另一方面,在步骤S59中,在优先级低的常驻程序已启动了2个以上的情况下(步骤S59为“是”),为了使优先级高的常驻程序的动作继续且使存储器使用量在存储器使用上限以下,使已启动的优先级低的常驻程序中最后被启动的常驻程序结束(步骤S63)。然后,常驻程序启动控制部14将各个优先级的常驻程序的当前的启动对象分别决定为下一次系统启动时的启动对象(步骤S64),在此基础上,将用于各个优先级的常驻程序的启动顺序定义存储于存储部12(步骤S65)。如上所述,系统的启动处理完成。
另外,图19的动作在实际启动常驻程序(步骤S52、S56)之后,判断是否为存储器不足(步骤S53、S57),但是在预先知道各个常驻程序的存储器使用量的情况下,可以在启动常驻程序之前判断是否发生存储器不足。在此情况下,可以仅在判断为未发生存储器不足的情况下,启动常驻程序并使其常驻。
下面,说明在能够预先判断常驻程序的存储器使用量的情况下的、程序执行装置10在系统启动时的动作。图20是表示该动作的流程图。
若利用启动开关21来导通程序执行装置10的电源,系统启动,则程序执行部11分别从存储部12获取用于优先级高的常驻程序的启动顺序定义和用于优先级低的常驻程序的启动顺序定义(步骤S71)。接着,程序执行部11根据资源监视部13检测出的当前的存储器使用量、优先级高的常驻程序的启动对象的存储器使用量、优先级低的常驻程序的启动对象的存储器使用量,预测启动优先级高的常驻程序的启动对象和优先级低的常驻程序的启动对象时的存储器使用量,判断此时的存储器使用量是否在存储器使用上限以下(步骤S72)。
若判断为即使启动优先级高的常驻程序的启动对象和优先级低的常驻程序的启动对象、存储器使用量也收敛在存储器使用上限以下(步骤S72为“是”),则使优先级高的常驻程序的启动对象启动(步骤S73)。然后,将优先级高的常驻程序的启动对象变更为当前的启动对象的下一个启动对象(步骤S74),并返回步骤S72。利用步骤S72~S74的处理,在保留启动优先级低的常驻程序的启动对象所必需的存储器容量的同时,在存储器使用量不超过存储器使用上限的范围内启动优先级高的常驻程序。
然后,若判断为启动优先级高的常驻程序的启动对象和优先级低的常驻程序的启动对象时存储器使用量会超过存储器使用上限(步骤S72为“否”),则程序执行部11根据资源监视部13检测出的当前的存储器使用量和优先级低的常驻程序的启动对象的存储器使用量,预测启动优先级低的常驻程序的启动对象时的存储器使用量,判断这时的存储器使用量是否在存储器使用上限以下(步骤S75)。
即使启动优先级低的常驻程序的启动对象,只要判断为存储器使用量在存储器使用上限以下(步骤S75为“是”),就启动该优先级低的常驻程序的启动对象(步骤S76)。然后,将优先级低的常驻程序的启动对象变更为当前的启动对象的下一个启动对象(步骤S77),并返回步骤S75。如上所述的那样,在步骤S72~S74中由于确保了启动优先级低的常驻程序的启动对象所必需的存储器容量,所以在步骤S75中至少一次判定为“是”,从而优先级低的常驻程序至少启动了一次。
另一方面,若判断启动优先级低的常驻程序的启动对象时存储器使用量超过了存储器使用上限(步骤S75为“否”),则不进一步启动优先级低的常驻程序。在此情况下,常驻程序启动控制部14将各个优先级的常驻程序的当前的启动对象分别决定为下一次系统启动时的启动对象(步骤S78),在此基础上,将用于各个优先级的常驻程序的启动顺序定义存储于存储部12(步骤S79)。如上所述,系统的启动处理完成。
另外,各个常驻程序的优先级可以不固定,例如可以根据预先确定的条件(当前位置、天气、用户等条件)来变更优先级。
<实施方式6>
在实施方式1~5中示出了程序执行部11仅在系统启动时启动常驻程序的示例,但是在实施方式6中,程序执行部11在系统启动后,根据启动顺序定义,以一定周期来变更使其常驻的常驻程序。
具体而言,程序执行部11在系统启动时执行了实施方式1(图7)的处理之后,每经过一定时间,使已常驻的常驻程序中最先启动的常驻程序结束,再次执行图7的处理。
利用图21来说明该动作。在系统启动时,若根据图3的启动顺序定义来执行图7的处理,则如图21(a)所示那样,启动常驻程序A、B。然后,若经过一定时间,使常驻程序A、B中最先启动的常驻程序A结束,再次执行图7的处理。然后,启动常驻程序C,如图21(b)所示那样,常驻程序B、C成为已常驻的状态。若以一定周期反复该动作,则进行如下变化:如图21(c)所示那样常驻程序C、D成为已常驻的状态、如图21(d)所示那样常驻程序D、E成为已常驻的状态、如图21(e)所示那样常驻程序E、A成为已常驻的状态,从而返回图21(a)的状态。反复该动作直到程序执行装置10被断开为止。
在本实施方式,在系统动作的期间,常驻程序根据启动顺序定义进行切换,因此,无需结束系统的动作,也能够得到与实施方式1相同的效果。尤其对于智能手机等不会频繁关闭电源的装置是有效的。另外,在反复执行图7的处理的情况下,在结束系统的动作时,在下一次系统启动时,最先启动最后成为常驻的常驻程序之后的常驻程序、即成为存储器使用量超过存储器使用上限的原因的常驻程序。或者,可以适用实施方式2,随机决定下一次系统启动时所适用的启动顺序定义中的常驻程序的顺序。
另外,在实施方式5中示出了系统启动后以一定周期来执行实施方式1(图7)的处理的示例,但是也可以以一定周期来执行实施方式3(图15)的处理。
另外,本发明可以在其发明范围内对各实施方式进行自由组合,或者对各实施方式适当地进行变形、省略。
本发明进行了详细的说明,但上述说明仅是所有方式中的示例,本发明并不局限于此。未例示的无数变形例可解释为是在不脱离本发明的范围内可设想到的。
标号说明
10程序执行装置,11程序执行部,12存储部,13资源监视部,14常驻程序启动控制部,21启动开关,22显示装置,23语音输出装置。
Claims (17)
1.一种程序执行系统,其特征在于,包括:
程序执行部,该程序执行部执行包含有多个常驻程序的多个程序;以及
常驻程序启动控制部,该常驻程序启动控制部控制使多个所述常驻程序启动的顺序,
所述程序执行部在系统启动时,根据对使多个所述常驻程序启动的顺序进行规定的信息即启动顺序定义,依次使多个所述常驻程序启动,
所述常驻程序启动控制部在因多个所述常驻程序的启动而导致资源使用量超过规定值的情况下,根据本次系统启动时所适用的所述启动顺序定义来变更下一次系统启动时的所述启动顺序定义,以使得在下一次系统启动时使成为资源使用量超过所述规定值的原因的常驻程序最先启动。
2.如权利要求1所述的程序执行系统,其特征在于,
所述程序执行部使成为资源使用量超过所述规定值的原因的常驻程序不再启动。
3.如权利要求1所述的程序执行系统,其特征在于,
所述启动顺序定义中的常驻程序的顺序规定成环状。
4.如权利要求1所述的程序执行系统,其特征在于,
所述程序执行部根据所述启动顺序定义反复进行如下动作:跳过成为资源使用量超过所述规定值的原因的常驻程序的顺序,并使下一个常驻程序常驻。
5.如权利要求4所述的程序执行系统,其特征在于,
所述常驻程序启动控制部变更所述启动顺序定义,使得在下一次系统启动时使成为资源使用量第一次超过所述规定值的原因的常驻程序最先启动。
6.如权利要求1所述的程序执行系统,其特征在于,
若导入了新的常驻程序,则所述常驻程序启动控制部向所述启动顺序定义中的常驻程序的顺序的任意位置追加所述新的常驻程序。
7.如权利要求6所述的程序执行系统,其特征在于,
所述常驻程序启动控制部在向所述启动顺序定义追加新的常驻程序时,在如下位置追加所述新的常驻程序:即、所述新的常驻程序和追加该新的常驻程序的位置前后的常驻程序的资源使用量的平均值最接近所述启动顺序定义中所包含的全部常驻程序的资源使用量的平均值的位置。
8.如权利要求1所述的程序执行系统,其特征在于,
所述常驻程序启动控制部管理多个所述启动顺序定义,根据预先确定的条件来切换所使用的所述启动顺序定义。
9.如权利要求1所述的程序执行系统,其特征在于,
对多个常驻程序分别设定优先级,
所述常驻程序启动控制部根据优先级来管理多个所述启动顺序定义,
所述程序执行部在系统启动时,根据与各个常驻程序的优先级相对应的所述启动顺序定义,依次启动各个常驻程序。
10.如权利要求9所述的程序执行系统,其特征在于,
所述程序执行部决定使多个所述常驻程序启动的顺序,使得至少能够逐一执行各个优先级的常驻程序。
11.如权利要求9所述的程序执行系统,其特征在于,
对多个常驻程序分别设定的优先级根据预先决定的条件进行变更。
12.如权利要求1所述的程序执行系统,其特征在于,
在系统启动后,所述程序执行部根据所述启动顺序定义,以一定周期来变更成为常驻的常驻程序。
13.如权利要求12所述的程序执行系统,其特征在于,
所述常驻程序启动控制部在系统启动后启动常驻程序的情况下,变更所述启动顺序定义,使得在下一次系统启动时最先启动最后成为常驻的常驻程序的下一个常驻程序。
14.如权利要求1至13中任一项所述的程序执行系统,其特征在于,
还具备使所述程序执行系统的电源导通的启动开关。
15.如权利要求1至13中任一项所述的程序执行系统,其特征在于,
所述程序执行系统被搭载于车载装置。
16.如权利要求14所述的程序执行系统,其特征在于,
所述程序执行系统被搭载于车载装置。
17.一种常驻程序的启动方法,其特征在于,
程序执行系统在系统启动时,程序执行部根据对使多个常驻程序启动的顺序进行规定的信息即启动顺序定义,启动常驻程序,
所述程序执行部在使所述常驻程序启动之前或者之后,由资源监视部判断是否因所述常驻程序的启动而使资源使用量超过了规定值,
在判断为因所述常驻程序的启动而使资源使用量超过了所述规定值的情况下,常驻程序启动控制部根据本次的所述启动顺序定义来变更下一次系统启动时的所述启动顺序定义,以使得在下一次系统启动时使成为资源使用量超过所述规定值的原因的常驻程序最先启动。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2014/070891 WO2016021024A1 (ja) | 2014-08-07 | 2014-08-07 | プログラム実行システムおよび常駐プログラムの起動方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106575234A CN106575234A (zh) | 2017-04-19 |
CN106575234B true CN106575234B (zh) | 2020-10-27 |
Family
ID=55263330
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480081068.5A Active CN106575234B (zh) | 2014-08-07 | 2014-08-07 | 程序执行系统以及常驻程序的启动方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20180173540A1 (zh) |
JP (1) | JP6054003B2 (zh) |
CN (1) | CN106575234B (zh) |
DE (1) | DE112014006861T5 (zh) |
WO (1) | WO2016021024A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105389149A (zh) * | 2015-11-03 | 2016-03-09 | 惠州Tcl移动通信有限公司 | 一种智能设备多屏幕运行实现方法及其系统 |
CN112084049A (zh) * | 2019-06-14 | 2020-12-15 | 佛山市顺德区顺达电脑厂有限公司 | 用于监控基板管理控制器的常驻程序的方法 |
CN112148374A (zh) * | 2020-08-20 | 2020-12-29 | 瑞芯微电子股份有限公司 | 一种SoC芯片启动顺序控制方法及系统 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2383825A1 (en) * | 2002-04-24 | 2003-10-24 | Ibm Canada Limited-Ibm Canada Limitee | Dynamic configuration and self-tuning of inter-nodal communication resources in a database management system |
CA2428406A1 (en) * | 2002-05-10 | 2003-11-10 | Robert Amil Kleinert | Manual slide post driver and extractor for "t"-type metal or fiberglass or plastic posts |
US7702891B1 (en) * | 2005-09-16 | 2010-04-20 | Oracle America, Inc. | Starting-up software modules for computing systems |
JP2007148773A (ja) * | 2005-11-28 | 2007-06-14 | Fujitsu Ltd | Bios搭載コンピュータ及びbiosローディングプログラム |
JP2008097425A (ja) * | 2006-10-13 | 2008-04-24 | Mitsubishi Electric Corp | 携帯情報端末および携帯情報端末の制御方法 |
US8917655B2 (en) * | 2008-07-11 | 2014-12-23 | Samsung Electronics Co., Ltd. | Method and apparatus for allowing device supporting multiple PHY communication mode to communicate with device in wireless personal area network |
CN102331947B (zh) * | 2011-10-14 | 2013-12-11 | 中科创达软件股份有限公司 | 一种Android系统的重启方法 |
CN103823689A (zh) * | 2012-11-19 | 2014-05-28 | 宏碁股份有限公司 | 开机加速方法与电脑系统装置 |
-
2014
- 2014-08-07 CN CN201480081068.5A patent/CN106575234B/zh active Active
- 2014-08-07 DE DE112014006861.6T patent/DE112014006861T5/de not_active Withdrawn
- 2014-08-07 WO PCT/JP2014/070891 patent/WO2016021024A1/ja active Application Filing
- 2014-08-07 JP JP2016539756A patent/JP6054003B2/ja active Active
- 2014-08-07 US US15/329,195 patent/US20180173540A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
JPWO2016021024A1 (ja) | 2017-04-27 |
CN106575234A (zh) | 2017-04-19 |
WO2016021024A1 (ja) | 2016-02-11 |
JP6054003B2 (ja) | 2016-12-27 |
DE112014006861T5 (de) | 2017-04-20 |
US20180173540A1 (en) | 2018-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6465911B2 (ja) | 立ち上げ制御方法及び装置並びに端末デバイス | |
CN107256043B (zh) | 用于控制终端的温度的方法及支持该方法的终端 | |
KR20110112407A (ko) | 배터리 충전 절약 방법, 장치 및 컴퓨터 프로그램 | |
CN104142859A (zh) | 一种双系统的快速切换方法、装置和移动终端 | |
WO2009081293A1 (en) | Method, apparatus and computer program product for providing power consumption notification and management | |
CN104573472A (zh) | 移动终端及其操作方法 | |
CN106575234B (zh) | 程序执行系统以及常驻程序的启动方法 | |
CN104123144A (zh) | 移动终端桌面主题的切换方法和装置 | |
CN110704090B (zh) | 现场可编程门阵列fpga及其升级方法和升级系统 | |
JP2021112112A (ja) | 充電方法および装置、電子機器、記憶媒体 | |
CN105116996A (zh) | 一种智能手表的控制方法及智能手表 | |
CN105100915A (zh) | 一种切换音视频应用的方法及电视机 | |
CN106303096B (zh) | 电子设备及其调整电源管理策略的方法 | |
CN103019833A (zh) | 终端设备以及使终端设备支持操作系统快速切换的方法 | |
CN113359499B (zh) | 用于控制家电设备的方法、装置、家电设备和可读存储介质 | |
CN107317923B (zh) | 控制gps运行状态的方法、装置及终端 | |
CN108990029B (zh) | 一种无线设备的扫描启停方法及无线设备 | |
CN113721936B (zh) | 一种应用管理方法及智能终端、装置及存储介质 | |
JP2007336229A (ja) | 電子機器、および、プログラム | |
CN102915246A (zh) | 终端设备以及支持多固件加载的方法 | |
JP6087080B2 (ja) | 車載システム | |
US11216283B2 (en) | Parameter configuration system of electronic device | |
US9362770B2 (en) | Device control apparatus and device control method | |
KR101317901B1 (ko) | 애플리케이션 실행 단말 및 그 방법 | |
US20170201707A1 (en) | Television managing apparatus and television managing method cooperating with remote controller |
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 |