专利名称:用于缩短开机时间的驱动程序加载与初始化方法
用于缩短开机时间的驱动程序加载与初始化方法
技术领域:
本发明是有关于ー种缩短开机时间的技木,特别是指ー种用于缩短开机时间的驱动程序加载与初始化方法。
背景技木在现有的WinCE (Windows Embedded Compact)操作系统的开机过程中,加载(load)驱动程序(driver)的程序是利用单执行绪(single-thread)的方式循序进行;此种方式使得开机过程中,驱动程序初始化的整体时间为所有驱动程序初始化的时间之累カロ,导致开机时间较长。
发明内容
因此,本发明的目的,即在提供一种用于缩短开机时间的驱动程序加载与初始化方法。于是,本发明用于缩短开机时间的驱动程序加载与初始化方法,实现于一电子装置,该方法包含下列步骤A)在该电子装置执行ー开机程序中,根据预先建立的一驱动程序群数据组,产生多个执行绪,其中,该驱动程序群数据组包括至少ー驱动程序群数据,该驱动程序群数据与一驱动程序群相对应,该驱动程序群数据包括多笔驱动程序相关信息,该驱动程序群包括多个不相依的驱动程序,这些驱动程序相关信息分别与这些驱动程序相对应;B)在该开机程序中,以对应该驱动程序群的一事件信号,来触发该驱动程序群的这些驱动程序的加载与初始化;及C)在该开机程序中,若已触发该驱动程序群的这些驱动程序的加载与初始化,则根据这些驱动程序相关信息,利用这些执行绪以多执行绪的方式同步进行该驱动程序群的这些驱动程序的加载与初始化。本发明的另一目的,即在提供一种内储驱动程序加载与初始化的程序的程序产品,该程序由ー电子装置的一处理器执行而作用如上述用于缩短开机时间的驱动程序加载与初始化方法。本发明的功效在于在该电子装置的开机程序中,利用这些执行绪以多执行绪的方式同步进行这些驱动程序的加载与初始化,可有效缩短开机时间。
图I是本发明的将ー电子装置执行ー开机程序中需进行加载与初始化的多个驱动程序,区分为N个驱动程序群的示意图。图2是本发明用于缩短开机时间的驱动程序加载与初始化方法的第一较佳实施例的流程图。图3是本发明用于缩短开机时间的驱动程序加载与初始化方法的第二较佳实施例的流程图。
具体实施方式有关本发明之前述及其它技术内容、特点与功效,在以下配合參考图式的ニ个较佳实施例的详细说明中,将可清楚的呈现。本发明用于缩短开机时间的驱动程序加载与初始化方法的第一较佳实施例,实现于ー电子装置(图未示),该电子装置所安装之操作系统为WinCE操作系统,该方法于该电子装置执行ー开机程序中执行。值得ー提的是,在执行本发明用于缩短开机时间的驱动程序加载与初始化方法之前,必需预先编辑该操作系统中与驱动程序相关的ー预设注册档(registry),以预先建立一驱动程序群(driver group)数据组;编辑完的该预设注册文件包括该驱动程序群数据 组。该驱动程序群数据组包括至少ー驱动程序群数据,该驱动程序群数据与ー驱动程序群相对应,该驱动程序群数据包括多笔驱动程序相关信息,该驱动程序群包括多个不相依(independent)的驱动程序,这些驱动程序相关信息分别与这些驱动程序相对应。參阅图1,举例来说,假设该电子装置执行该开机程序中需进行加载与初始化的驱动程序为驱动程序I 8 ;这些驱动程序被区分为驱动程序群I N ;在本范例中,N = 3。其中,区分这些驱动程序I 8的原则是将不相依的驱动程序区分至同一驱动程序群;在本范例中,驱动程序I、驱动程序5,及驱动程序7两两之间不相依,且这些驱动程序需优先被加载与初始化,故,被区分至同一驱动程序群I ;驱动程序2、驱动程序4,及驱动程序8两两之间不相依,且这些驱动程序需等待驱动程序群I内至少ー驱动程序j(j = 1,5,7)被加载与初始化后方能开始进行加载与初始化,故,被区分至同一驱动程序群2 ;驱动程序3及驱动程序6彼此不相依,且这些驱动程序需等待驱动程序群2内至少ー驱动程序j (j = 2,4,8)被加载与初始化后方能开始进行加载与初始化,故,被区分至同一驱动程序群3。所谓不相依的两个驱动程序,是指彼此之间不需等待对方完成加载与初始化方能开始进行自身的加载与初始化。配合上述范例,该驱动程序群数据组包括对应驱动程序群I的驱动程序群I数据、对应驱动程序群2的驱动程序群2数据,及对应驱动程序群3的驱动程序群3数据。其中,驱动程序群I数据包括分别与驱动程序I、驱动程序5,及驱动程序7相对应的驱动程序I相关信息、驱动程序5相关信息,及驱动程序7相关信息;驱动程序群2数据包括分别与驱动程序2、驱动程序4,及驱动程序8相对应的驱动程序2相关信息、驱动程序4相关信息,及驱动程序8相关信息;驱动程序群3数据包括分别与驱动程序3及驱动程序6相对应的驱动程序3相关信息及驱动程序6相关信息。參阅图I与图2,在本第一较佳实施例中,本发明用于缩短开机时间的驱动程序加载与初始化方法,其实施态样为内储驱动程序加载与初始化之程序的程序产品,该程序系由该电子装置的一处理器(图未示)于该开机程序中执行以下步骤。在步骤101中,根据预先建立的该驱动程序群数据组,产生(create)多个执行绪(thread)。假设该驱动程序群数据组包括N笔驱动程序群数据,且每一驱动程序群数据的这些驱动程序相关信息的数量以ai表示,其中,1 = 1,2,..., N,在步骤101中所产生之这些执行绪的数量系等于Hiaxta1, a2, · · · , aN}。
配合上述范例,该驱动程序群数据组包括驱动程序群I数据( = 3)、驱动程序群2数据(a2 = 3),及驱动程序群3数据(a3 = 2);在该步骤101中所产生的这些执行绪的数量等于Hiaxia1, a2, a3},即,在该步骤101中系产生3个执行绪。在步骤102中,初始化ー驱动程序群索引(以i表示),即,i = I。在步骤103中,以对应第i个驱动程序群(即,驱动程序群i)的一事件信号(event),来触发(trigger)第i个驱动程序群的这些驱动程序的加载与初始化;若已触发,则继续进行步骤104 ;否则,搁置(suspend)等待该事件信号。在本第一较佳实施例中,每ー驱动程序群还包括一事件控制程序(eventhandler),在步骤103中,传送对应第i个驱动程序群的该事件信号给第i个驱动程序群的 事件控制程序,来触发进行步骤104。在步骤104中,根据第i个驱动程序群数据的这些驱动程序相关信息,利用这些执行绪以多执行绪(multi-thread)的方式同步进行第i个驱动程序群的这些驱动程序的加载与初始化。其中,每ー驱动程序的加载与初始化由ー执行绪负责处理。在步骤105中,等待这些执行绪完成第i个驱动程序群的所有驱动程序的加载与初始化。在步骤106中,判断是否已执行完最后ー个驱动程序群,即,判断i == N是否成立;若是,则继续进行步骤108 ;否则,继续进行步骤107。在步骤107中,更新该驱动程序群索引,使得i = i+Ι。然后,回到步骤103。在步骤108中,结束(terminate)这些执行緒。然后结束该开机程序中关于驱动程序的加载与初始化。參阅图I与图3,本发明用于缩短开机时间的驱动程序加载与初始化方法的第二较佳实施例类似于该第一较佳实施例,最主要的差别是在于在本第二较佳实施例中,执行緒的产生与结束时间点不同。在步骤201中,初始化ー驱动程序群索引(以i表示),即,i = I。在步骤202中,根据预先建立的该驱动程序群数据组,产生多个执行緒。在本第二较佳实施例中,根据第i个驱动程序群数据的这些驱动程序相关信息的数量来产生这些执行緒。假设该驱动程序群数据组包括N笔驱动程序群数据,且每一驱动程序群数据的这些驱动程序相关信息的数量以を表示,其中i = 1,2,. . .,N,在步骤202中所产生的这些执行绪的数量等于a”接下来,步骤203 205所执行的动作类似于步骤103 105,故不再赘述。在步骤206中,结束用于第i个驱动程序群的も个执行緒。在步骤207中,判断是否已执行完最后ー个驱动程序群,即,判断i == N是否成立;若是,则结束该开机程序中关于驱动程序之加载与初始化;否则,继续进行步骤208。在步骤208中,更新该驱动程序群索引,使得i = i+Ι。然后,回到步骤202。综上所述,在该电子装置的开机程序中,本发明利用这些执行绪以多执行绪的方式同步进行这些驱动程序的加载与初始化,可有效缩短开机时间,故确实能达成本发明之目的。以上所述仅为本发明之较佳实施例而已,其描述较为详细具体,不能以此限定本发明实施的范围,即凡依本发明申请专利范围及发明说明内容所作的简单的等效变化与修饰,皆属本发明专利涵盖的 范围。
权利要求
1.一种用于缩短开机时间的驱动程序加载与初始化方法,实现于ー电子装置,该方法包含下列步骤 A)在该电子装置执行ー开机程序中,根据预先建立的一驱动程序群数据组,产生多个执行緒,其中,该驱动程序群数据组包括至少ー驱动程序群数据,该驱动程序群数据与ー驱动程序群相对应,该驱动程序群数据包括多笔驱动程序相关信息,该驱动程序群包括多个不相依的驱动程序,这些驱动程序相关信息分别与这些驱动程序相对应; B)在该开机程序中,以对应该驱动程序群的一事件信号,来触发该驱动程序群之这些驱动程序的加载与初始化;及 C)在该开机程序中,若已触发该驱动程序群之这些驱动程序的加载与初始化,则根据这些驱动程序相关信息,利用这些执行绪以多执行绪的方式同步进行该驱动程序群之这些驱动程序的加载与初始化。
2.根据权利要求I所述的用于缩短开机时间的驱动程序加载与初始化方法,其特征在于在该步骤A)中所产生的这些执行绪的数量,等于该驱动程序群数据的这些驱动程序相关信息的数量。
3.根据权利要求I所述的用于缩短开机时间的驱动程序加载与初始化方法,其特征在于该驱动程序群数据组包括多数笔驱动程序群数据,这些驱动程序群数据分别与多数个驱动程序群相对应,每ー驱动程序群数据包括多笔驱动程序相关信息,每ー驱动程序群包括多个不相依的驱动程序,每ー驱动程序群数据的这些驱动程序相关信息分别与相对应于该驱动程序群数据的该驱动程序群的这些驱动程序相对应;针对每一驱动程序群,在该步骤B)中,以对应该驱动程序群的一事件信号,来触发该驱动程序群之这些驱动程序的加载与初始化,在该步骤C)中,若已触发该驱动程序群的这些驱动程序的加载与初始化,则根据相对应于该驱动程序群的该驱动程序群数据的这些驱动程序相关信息,利用这些执行绪以多执行绪的方式同步进行该驱动程序群之这些驱动程序的加载与初始化。
4.根据权利要求3所述的用于缩短开机时间的驱动程序加载与初始化方法,其特征在于针对该驱动程序群数据组的每ー驱动程序群数据,在该步骤A)中所产生的这些执行绪的数量,等于该驱动程序群数据的这些驱动程序相关信息的数量。
5.根据权利要求3所述的用于缩短开机时间的驱动程序加载与初始化方法,其特征在于假设该驱动程序群数据组包括N笔驱动程序群数据,且每一驱动程序群数据的这些驱动程序相关信息的数量以A表示,其中,i = 1,2,.. .,N,在该步骤A)中所产生的这些执行绪的数量等于 Hiaxia1, a2, · · · , aN}。
6.根据权利要求3所述的用于缩短开机时间的驱动程序加载与初始化方法,其特征在于针对每ー驱动程序群,还包含步骤C)之后的ー步骤D):等待这些执行绪完成该驱动程序群之所有驱动程序之加载及初始化。
7.根据权利要求I所述的用于缩短开机时间的驱动程序加载与初始化方法,其特征在于还包含步骤A)之前的ー步骤E):提供一预设注册档,该预设注册档包括预先建立的该驱动程序群数据组。
全文摘要
一种用于缩短开机时间的驱动程序加载与初始化方法,包含下列步骤A)根据一驱动程序群数据组产生多个执行绪,其中,该驱动程序群数据组包括至少一驱动程序群数据,该驱动程序群数据与一驱动程序群相对应,该驱动程序群数据包括多笔驱动程序相关信息,该驱动程序群包括多个不相依的驱动程序,这些驱动程序相关信息分别与这些驱动程序相对应;B)以对应该驱动程序群的一事件信号,来触发该驱动程序群的这些驱动程序的加载与初始化;及C)根据这些驱动程序相关信息,以多执行绪的方式同步进行这些驱动程序的加载与初始化。本发明利用这些执行绪以多执行绪的方式同步进行这些驱动程序的加载与初始化,可有效缩短开机时间。
文档编号G06F9/445GK102693137SQ20111007163
公开日2012年9月26日 申请日期2011年3月24日 优先权日2011年3月24日
发明者林义杰 申请人:昆达电脑科技(昆山)有限公司, 神达电脑股份有限公司