休眠管理方法及相关装置制造方法
【专利摘要】本发明提供一种休眠管理方法及相关装置,该方法适用于一装置,其中,装置包括一存储器以及多个执行程序,每一执行程序于存储器中有一对应工作集。首先,接收一休眠指示。接着,相应休眠指示,对执行程序执行一设定工作集操作,用以调整每一执行程序于存储器的工作集的尺寸。之后,依据调整后的存储器产生一休眠映像,并将休眠映像存储至一存储装置。本发明可在不增加硬体成本的情况下,利用设定工作集操作来周期性地调整存储器内执行程序的工作集的容量,借此缩减整个存储器映像的大小,使得休眠映像的尺寸变小,减少装置由休眠状态恢复系统时的拷贝时间,进而加速恢复时间,因此可增进快速开机的反应时间,让使用者有更佳的使用经验。
【专利说明】休眠管理方法及相关装置
【技术领域】
[0001]本发明涉及一种休眠管理方法及其装置,尤其涉及一种可自动调整休眠映像的大小的休眠管理方法及其装置。
【背景技术】
[0002]在现存的作业系统中,为了省电的考虑,装置,如电脑系统与手持式装置可以选择进入省电模式例如休眠(Hibernate)模式来关闭不必要的电源或关机。当装置进入休眠模式时,作业系统会将目前动态存储器内的数据存储至硬盘上,成为一个与存储器容量大小相同的图像文件。而在装置从休眠模式恢复为正常模式时,作业系统便会将此文件复制到存储器中,使得使用者上次开机时或休眠前的工作画面能够快速的恢复并进行显示。
[0003]由于新一代的电脑系统例如超极致电脑(Ultrabook)除了一般的电脑功能之外,也加入了随时联网、快速开机(Rapid Start Technology)功能,以更迎合使用者需要。快速开机功能可提供电脑系统在几秒内快速从休眠状态恢复到先前暂停的作业状态,其技术的原理将整个存储器中正在执行的系统状态和应用程序的程序(Process),暂存到高速的存储装置例如固态硬盘(Solid State Disk, SSD)磁盘机中。
[0004]然而,目前的快速开机功能例如Intel公司的快速开机((Intel Rapid StartTechnology,简称iRST)服务仅是被动的等待使用者进入暂停(Suspend)模式且仅释放待命页面列表(standby page list),当系统从休眠状态下进行恢复时,读取硬盘中的文件仍非常耗时,因此,目前的快速开机所拷贝至休眠分割区(Hibernation partition)的存储器映像(Memory image)容量仍然是有缩减的改进空间,同时目前的快速开机功能也无法动态的调整存储器使用状况。
【发明内容】
[0005]有鉴于此,为了克服现有技术的缺陷,本发明的目的之一为提供一种休眠管理方法及其装置。
[0006]本发明实施例提供一种休眠管理方法,适用于一装置,其中,装置包括一存储器以及多个执行程序,每一执行程序于存储器中有一对应工作集。方法包括下列步骤。首先,接收一休眠指示。接着,相应休眠指示,对执行程序执行一设定工作集操作,用以调整每一执行程序于存储器的工作集的尺寸。之后,依据调整后的存储器产生一休眠映像,并将休眠映像存储至一存储装置。
[0007]本发明实施例还提供一种装置,至少包括一存储器、一存储装置以及一处理单元。存储器包括多个执行程序且每一执行程序于存储器中有一对应工作集。处理单元于接收一休眠指示时,相应休眠指示,对执行程序执行一设定工作集操作,用以调整每一执行程序的工作集的尺寸,依据调整后的存储器产生一休眠映像,且将休眠映像存储至一存储装置。
[0008]本发明上述方法可以通过程序码方式收录于实体媒体中。当程序码被机器载入且执行时,机器变成用以实行本发明的装置。[0009]综上所述,依据本发明的休眠管理方法及其相关的装置,可在不增加硬体成本的情况下,利用设定工作集操作来周期性地调整存储器内执行程序的工作集的容量,借此缩减整个存储器映像的大小,使得休眠映像的尺寸变小,减少装置由休眠状态恢复系统时的拷贝时间,进而加速恢复时间,因此可增进快速开机的反应时间,让使用者有更佳的使用经验。
[0010]为使本发明的上述和其他目的、特征、和优点能更明显易懂,下文特举出较佳实施例,并配合附图,作详细说明如下。
【专利附图】
【附图说明】
[0011]图1是显示依据本发明实施例的装置架构的示意图。
[0012]图2是显示依据本发明实施例的休眠管理方法的流程图。
[0013]图3是显示依据本发明实施例的设定工作集操作前的各个执行程序的工作集容量例子的示意图。
[0014]图4是显示依据本发明实施例的设定工作集操作前的存储器例子的示意图。
[0015]图5是显示依据本发明实施例的设定工作集操作之后的各个执行程序的工作集容量例子的示意图。
[0016]图6是显 示依据本发明实施例的设定工作集操作之后的存储器例子的示意图。
[0017]图7是显示依据本发明实施例的系统恢复方法的流程图。
[0018]其中,附图标记说明如下:
[0019]100~装置;
[0020]110- 存储器;
[0021]120-存储装置;
[0022]122~休眠分割区;
[0023]130~处理单元;
[0024]S210、S220、S230、S240、S250~执行步骤;
[0025]S710、S720、S730~执行步骤。
【具体实施方式】
[0026]本发明实施例中提供一种休眠管理方法及其装置,可于装置进入休眠状态前周期性执行设定工作集操作来调整位于存储器内执行的各程序工作集的尺寸,并在装置进入休眠状态时执行设定工作集操作,再有选择性的清理部分使用中区段的存储器空间和整个待命区段的存储器空间,可有效缩减由休眠模式恢复系统时的时间。
[0027]图1是显示依据本发明实施例的装置架构的示意图。依据本发明实施例的装置100至少包括一存储器110、一存储装置120、与一处理单元130。其中,装置100可以是电脑系统如笔记本电脑、超极致电脑(Ultrabook)、与手持式装置,如移动电话、智能手机、与个人数字助理(PDA)等等。存储器110可以是装置100的系统存储器,用以存储所有于装置100上运作的系统程序或应用程序本身或其所需的数据。存储装置120可以是一硬盘,或非挥发性存储器,如快闪存储器(Flash Memory)或电子可抹除程序化只读存储器(EEPROM),用以存储休眠时所产生的相关数据。特别来说,于一实施例中,存储装置120为一高速的存储装置例如一固态硬盘(Solid State Disk,简称SSD)磁盘机,使得存储器中的数据可快速地写入至SSD磁盘机中或者SSD磁盘机中的数据也可快速地写回存储器110。存储装置120可还包括一休眠分割区122,其可用以存储对应于休眠状态的一休眠映像。处理单元130用以进行本发明中装置进行休眠与恢复的相关操作,其细节将于后进行说明。
[0028]值得注意的是,装置100中可以设置一触发模块(图中未显示),如装置100上的按键或是装置100上的软件程序,用以相应一休眠指示而产生休眠信号,从而致使装置100进入休眠状态,或者也可用以相应一开机启动指示而产生开机启动信号,从而致使装置100进入开机状态。此外,装置100中亦可设置一恢复模块(图中未显示),用以相应一恢复指示而产生恢复信号,从而致使装置100由休眠状态中进行系统恢复。须注意的是,此处的休眠状态泛指所有可以将目前存储器的内容存储至硬盘(suspend to disk)的各种省电状态例如S4或iRST状态等。
[0029]图2为一流程图显示依据本发明实施例的休眠管理方法。
[0030]首先,如步骤S210,判断是否接收到一休眠指示。若否(步骤S210的否),则如步骤S220,每隔一段时间周期性地对所有执行程序执行一设定工作集操作,用以调整每一执行程序的工作集的尺寸并且继续步骤S210的判断。举例来说,处理单元130可于尚未接收到休眠指示时,每隔一段既定时间周期(例如:一小时)对所有执行程序执行设定工作集操作,用以调整每一执行程序的工作集的尺寸。值得注意的是,于一些实施例中,处理单元130可还判断是否接收到一开机启动启示,若是,则于开机一段既定时间(例如:5分钟)之后就先执行一次设定工作集操作来对所有运行中的程序的工作集的尺寸进行初步调整。之后,处理单元130可周期性的唤醒负责微调程序工作集存储器分页的执行绪去调整位于存储器内运行的各程序工作集的尺寸。举例来说,处理单元130可于装置开机时接收到一开机启动启示,并于开机5分钟之后自动对当前的执行程序执行初步的设定工作集操作,之后,每隔一小时再对所有执行程序执行一次设定工作集操作,借此调整各个执行程序的工作集的尺寸。
[0031]若接收到休眠指示(步骤S210的是),亦即装置准备进入休眠状态时,则如步骤S230,相应休眠指示,于一既定时间(例如:5分钟)之后对所有执行程序执行设定工作集操作,调整每一执行程序的工作集的尺寸。其中,对所有执行程序执行设定工作集操作是将每个执行程序在存储器内所占用的工作集容量进行最佳化来缩减其工作集的尺寸。于一些实施例中,存储器可至少包含一使用中(In used)区段、一已修改(Modified)区段以及一待命(Standby)区段,其中使用中区段、已修改区段以及待命区段分别包含一使用中存储器分页列表(page list)、一已修改存储器分页列表以及一待命存储器分页列表,而调整每一执行程序的工作集的尺寸是将各个执行程序对应的工作集于存储器中的使用中区段的至少一数据/存储器分页搬移至存储器的一待命区段,致使存储器中的使用中区段的尺寸变小。举例来说,调整每一执行程序的工作集的尺寸是将某一执行程序在存储器的一使用中区段或已修改区段的存储器分页搬移至一待命区段中,但并不限于此。
[0032]图3为一示意图显示设定工作集操作前的各个执行程序的工作集容量例子。如图所示,存储器110中包含多个程序,每个程序有一对应工作集,其中每个工作集表示该程序所对应的存储器分页集合。其中,程序“dwm.exe”在执行设定工作集操作前的工作集的尺寸为58,616千位元组(KB)。图4为一示意图显示设定工作集操作前的存储器配置情形例子。如图4所示,存储器110中的使用中区段约占了 2037百万位元组(MB)的存储器空间,其已修改区段约占了 20百万位元组的存储器空间,总共约2057百万位元组的存储器空间。也就是说,在不执行设定工作集操作的情况下,需要将2057百万位元组的存储器数据写入至存储装置120中。类似地,当装置从休眠状态恢复后需要将存储装置120中所存储2057百万位元组的数据写回至存储器110。
[0033]经过设定工作集操作之后,图3中的执行程序的工作集容量将变小,如图5所示。其中,程序“dwm.exe”在执行设定工作集操作之后的工作集的尺寸缩小为8,124千位元组(KB)。
[0034]图6为一示意图显示设定工作集操作之后的存储器配置情形例子。如图6所示,经过设定工作集操作之后,存储器110中的使用中区段从2037百万位元组缩小为1640百万位元组,其已修改区段则约占了 283百万位元组的存储器空间,总共约1923百万位元组的存储器空间。因此,在执行设定工作集操作的情况下,只需要将1640百万位元组的存储器数据写入至存储装置120中。在这种情况下,当装置从休眠状态恢复后只需要将存储装置120中所存储1923百万位元组的数据写回至存储器110,因此其恢复速度将比未执行设定工作集操作时加快许多。
[0035]比较图3与图5以及图4与图6可知,通过执行设定工作集操作调整各执行程序的工作集后,明显的缩小了存储器内各程序所占用的工作集大小,使得原本在使用中区段的存储器分页也会被作业系统有选择性的置换到已修改区段与待命区段的分页列表(PageList)中,也因为存储器分页搬移到待命分页列表中,当进入休眠模式或iRST模式时能够移除更多的存储器空间,借以缩短休眠模式或iRST的恢复时间。须注意的是,于一些实施例中,为了要能够清除使用中存储器空间区段且避免造成不必要的错误产生,可事先将执行程序分类,设定一预设群组,其包含特定程序例如预期在系统状态恢复时所必须立即执行到的系统程序,而当处理单元130执行步骤S230之前会先判断各个执行程序是否属于此预设群组,当执行程序属于预设群组时,便不执行设定工作集操作,亦即,预设群组内的程序将不会执行设定工作集操作。举例来说,预设群组可包括但不限于以下程序:
[0036]“smss.exe”、“csrss.exe”、“wininit.exe'“services.exe”、“svchost.exe,,、“lsass.exe,,、“lsm.exe,,、“winlogon.exe,,、“exploere.exe”、“dwm.exe”等系统程序或常驻程序。
[0037]于一些实施例中,执行设定工作集操作采用微软(Microsoft)Windows提供的SetProcessWorkingSetSize应用程序界面(Application Programming Interface, API)来作为调整工作集演算法的核心元件,挑选系统正在运行的执行程序,对其可用的存储器工作集做最佳化的调整。由于每个程序的存储器工作集都有其最大允许值与最小必要值,可借此在不妨碍运行效能与安全性下,对工作集大小作最佳化。
[0038]接着,如步骤S240,依据整理后的存储器产生一休眠映像(image)。于一些实施例中,依据调整的存储器产生休眠映像的步骤可还包括清除存储器中的待命区段的数据,再依据清除后的存储器产生休眠映像。举例来说,如图6所示,假设存储器110的使用中区段的尺寸为1640百万位元组,其已修改区段则约占了 283百万位元组的存储器空间,待命区段的尺寸约为1532百万位元组,则处理单元130可先清除存储器中的待命区段的数据,得到清除后的存储器,再依据清除后仅包含使用中区段以及已修改区段的存储器产生休眠映像,因此休眠映像的大小约1923百万位元组。
[0039]之后,如步骤S250,将休眠映像存储至存储装置120。值得注意的是,存储装置120事先设定(preset) —休眠分割区122,使得休眠映像存储至存储装置120的休眠分割区122 中。
[0040]图7为一流程图显示依据本发明实施例的系统恢复方法。
[0041]首先,如步骤S710,判断是否接收到一恢复指示。若否(步骤S710的否),则继续步骤S710的判断。若接收到恢复指示(步骤S710的是),则如步骤S720,由存储装置120中读取休眠映像。其中,由存储装置120中读取休眠映像是由存储装置120的休眠分割区122读取休眠映像。如步骤S730,将读出的休眠映像回存至存储器110,使得装置100恢复至进入休眠状态前的系统状态。
[0042]综上所述,依据本发明的休眠管理方法及其相关的装置,可在不增加硬体成本的情况下,利用设定工作集操作来周期性地调整存储器内执行程序的工作集的容量,借此缩减整个存储器映像的大小,使得休眠映像的尺寸变小,减少装置由休眠状态恢复系统时的拷贝时间,进而加速恢复时间,因此可增进快速开机的反应时间,让使用者有更佳的使用经验。
[0043]本发明的方法,或特定型态或其部份,可以以程序码的型态包含于实体媒体,如软盘、光盘片、硬盘、或是任何其他机器可读取(如电脑可读取)存储媒体,其中,当程序码被机器,如电脑载入且执行时,此机器变成用以参与本发明的装置。本发明的方法与装置也可以以程序码型态通过一些传送媒体,如电线或电缆、光纤、或是任何传输型态进行传送,其中,当程序码被机器,如电脑接收、载入且执行时,此机器变成用以参与本发明的装置。当在一般用途处理器实作时,程序码结合处理器提供一操作类似于应用特定逻辑电路的独特装置。
[0044]虽然本发明已以较佳实施例揭示如上,然其并非用以限定本发明,任何本领域普通技术人员,在不脱离本发明的精神和范围内,当可做些许更动与润饰,因此本发明的保护范围当视所附的权利要求所界定的范围为准。
【权利要求】
1.一种休眠管理方法,适用于一装置,该装置包括一存储器以及多个执行程序,每一所述多个执行程序于该存储器中有一对应工作集,包括下列步骤: 接收一休眠指示; 相应该休眠指示,对所述多个执行程序执行一设定工作集操作,用以调整每一所述多个执行程序于该存储器的该工作集的尺寸; 依据调整后的该存储器产生一休眠映像;以及 将该休眠映像存储至一存储装置。
2.如权利要求1所述的休眠管理方法,其中调整每一所述多个执行程序于该存储器的该工作集的尺寸是将每一所述多个执行程序的该工作集于该存储器中的该使用中区段的至少一数据搬移至该存储器的一待命区段。
3.如权利要求2所述的休眠管理方法,其中依据调整后的该存储器产生该休眠映像的步骤还包括: 清除该存储器中的该待 命区段的数据;以及 依据清除后的该存储器产生该休眠映像。
4.如权利要求1所述的休眠管理方法,还包括: 当未接收到该休眠指示之前,周期性对所述多个执行程序执行该设定工作集操作,以调整每一所述多个执行程序于该存储器的该工作集的尺寸。
5.如权利要求4所述的休眠管理方法,还包括: 判断是否接收到一开机启动指示;以及 于接收到该开机启动指示一既定时间之后,对所述多个执行程序执行该设定工作集操作。
6.如权利要求4所述的休眠管理方法,其中相应该休眠指示,对所述多个执行程序执行该设定工作集操作,用以调整每一所述多个执行程序的该工作集的尺寸的步骤还包括: 当所述多个执行程序属于一预设群组时,不对该预设群组的所述多个执行程序执行该设定工作集操作; 其中该预设群组包含恢复后预期会立即动作的所有程序。
7.如权利要求1所述的休眠管理方法,其中当该装置接收一恢复指示时,由该存储装置中读取该休眠映像,并将该休眠映像回存至该存储器。
8.一种装置,包括: 一存储器,其包括多个执行程序,每一所述多个执行程序于该存储器中有一对应工作集; 一存储装置;以及 一处理单元,当接收一休眠指示时,相应该休眠指示,对所述多个执行程序执行一设定工作集操作,用以调整每一所述多个执行程序的该工作集的尺寸,依据调整后的该存储器产生一休眠映像,且将该休眠映像存储至一存储装置。
9.如权利要求8所述的装置,其中该存储器还包含一使用中区段以及一待命区段且该处理单元调整每一所述多个执行程序的该工作集的尺寸是将每一所述多个执行程序的该工作集于该存储器中的该使用中区段的至少一数据搬移至该存储器的该待命区段;其中该处理单元还清除该存储器中的该待命区段的数据,并且依据清除后的该存储器产生该休眠映像;其中该处理单元还于未接收到该休眠指示之前,周期性对所述多个执行程序执行该设定工作集操作,以调整每一所述多个执行程序的该工作集的尺寸。
10.如权利要求9所述的装置,其中该处理单元还于所述多个执行程序属于一预设群组时,不对该预设群组的所述多个执行程序执行该设定工作集操作,其中该预设群组包含恢复后预期会有动作的所有程`序。
【文档编号】G06F1/32GK103677202SQ201210363575
【公开日】2014年3月26日 申请日期:2012年9月26日 优先权日:2012年9月26日
【发明者】黄尚毅, 王书涵, 刘郁明, 蔡孟达 申请人:宏碁股份有限公司