CN102707966B - 加速操作系统启动的方法及装置、预取信息生成方法及装置和终端 - Google Patents
加速操作系统启动的方法及装置、预取信息生成方法及装置和终端 Download PDFInfo
- Publication number
- CN102707966B CN102707966B CN201210106270.1A CN201210106270A CN102707966B CN 102707966 B CN102707966 B CN 102707966B CN 201210106270 A CN201210106270 A CN 201210106270A CN 102707966 B CN102707966 B CN 102707966B
- Authority
- CN
- China
- Prior art keywords
- information
- data block
- starting
- set value
- prefetching
- 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
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/4401—Bootstrapping
- G06F9/4406—Loading of operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- 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/4401—Bootstrapping
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种加速操作系统启动的方法及装置、预取信息生成方法及装置和终端,属于操作系统领域。所述方法包括:获取操作系统启动过程中的至少一个待加速的进程的预取信息,所述预取信息包括所述进程所需数据块的文件路径、偏移值和长度值;根据所述预取信息将起始位置为所述文件路径和偏移值所指示的位置,读取长度为所述长度值的数据块读取到系统缓存中,利用所述系统缓存中的数据块完成所述进程的启动过程。本发明通过对启动过程中全部或者部分进程所需数据块进行预取,使得启动过程中的页面错误出现次数和对低速存储器的读写次数大幅度减少,可以有效降低各个程序对应进程的启动时间,从而达到了显著提升操作系统启动速度的效果。
Description
技术领域
本发明涉及操作系统领域,特别涉及适用于操作系统的内核层中的加速操作系统启动的方法及装置、预取信息生成方法及装置和终端。
背景技术
诸如台式电脑、笔记本、智能手机和平板电脑等终端已经在人们的日常生活中被广泛使用,这些终端通常采用操作系统和运行在操作系统基础上的第三方应用程序为用户提供服务。其中,操作系统的启动过程是这些终端在正常提供服务之前必经的一个过程。
操作系统的启动过程通常都需要经过按下电源键、运行启动引导程序、加载操作系统内核、加载驱动程序、启动系统服务和第三方应用程序等几个阶段。出于用户体验性的考虑,用户希望操作系统的启动过程越快越好。为此,现有技术中已经存在有一些加速操作系统启动的方法供终端使用。较为常见的一种加速操作系统启动的方法为:对在操作系统启动过程中需要启动的系统服务和第三方应用程序进行筛选,将不是必须启动的系统服务和第三方应用程序进行禁用,使得操作系统启动过程中需要启动的系统服务和第三方应用程序的数量减少到最少,从而使得操作系统的启动速度加快。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:由于很多系统服务和第三方应用程序都是用户希望在开机时就进行启动的启动项,也即存在用户即不想禁用某些启动项,又想获得更快的启动速度的需求,现有技术中的加速操作系统启动的方法无法满足该需求。
发明内容
为了能够在不禁用某些启动项的情况下,也能够加速操作系统的启动过程,本发明实施例提供了一种加速操作系统启动的方法及装置、预取信息生成方法及装置和装置。所述技术方案如下:
根据本发明的一个方面,本发明实施例提供一种加速操作系统启动的方法,所述方法包括:
获取操作系统启动过程中的至少一个待加速的进程的预取信息,所述预取信息包括所述进程所需数据块的文件路径、偏移值和长度值;其中,所述进程所需数据块的文件路径、偏移值和长度值是预先将操作系统启动过程中的所有输入/输出信息涉及到的数据块按照先后顺序进行排序,分别统计每个数据块的文件路径、偏移值和长度值;将所有页面错误信息涉及到的数据块按照先后顺序进行排序,分别统计每个数据块的文件路径、偏移值和长度值,去掉所有页面错误信息涉及到的数据块与所有输入/输出信息涉及到的数据块交集的部分后得到的;
根据所述预取信息将起始位置为所述文件路径和偏移值所指示的位置,读取长度为所述长度值的数据块读取到系统缓存中;
利用所述系统缓存中的数据块完成所述进程的启动过程。
进一步地,所述获取操作系统启动过程中的至少一个待加速的进程的预取信息之前,还包括:
获取预取策略信息;
根据所述预取策略信息获知操作系统启动过程中的所有进程中的全部或者部分为所述至少一个待加速的进程。
进一步地,所述获取操作系统启动过程中的至少一个待加速的进程的预取信息,具体包括:
判断操作系统启动过程中的输入/输出是否处于空闲状态;
如果判断到所述操作系统启动过程中的输入/输出处于空闲状态,则从预设数据库中获取所述进程的预取信息。
进一步地,所述获取操作系统启动过程中的至少一个待加速的进程的预取信息,具体包括:
判断所述进程或者所述进程中的单位是否被创建;
如果判断到所述进程或者所述进程中的单位被创建,则从预设数据库中获取所述进程或者所述进程中的单位的预取信息;
其中,所述进程中的单位包括所述进程中的线程或所述进程中等待加载的模块。
进一步地,所述系统缓存包括:物理页面;或物理页面和页面交换文件。
根据本发明的再一方面,本发明实施例还提供一种预取信息生成方法,所述方法包括:
提取在操作系统启动过程中的输入/输出信息和页面错误信息;
根据所述输入/输出信息和页面错误信息获得操作系统启动过程中各个进程所需数据块的文件路径、偏移值和长度值;
对文件路径相同的相邻数据块的所述偏移值和所述长度值进行合并;
根据经过合并过程之后的各个数据块的文件路径、偏移值和长度值生成预取信息;
所述根据所述输入/输出信息和页面错误信息获得操作系统启动过程中各个进程所需数据块的文件路径、偏移值和长度值,包括:
将所有输入/输出信息涉及到的数据块按照先后顺序进行排序,分别统计每个数据块的文件路径、偏移值和长度值;
将所有页面错误信息涉及到的数据块按照先后顺序进行排序,分别统计每个数据块的文件路径、偏移值和长度值;
去掉所有页面错误信息涉及到的数据块与所有输入/输出信息涉及到的数据块交集的部分,得到的所述操作系统启动过程中各个进程所需的数据块的文件路径、偏移值和长度值。
进一步地,所述根据经过合并过程之后的各个数据块的文件路径、偏移值和长度值生成预取信息,具体包括:
将经过合并过程之后的各个数据块按照预定对象进行分类,所述预定对象包括以下几种对象中的任一种:进程、线程、进程中待加载的模块和文件;
根据分类后的数据块的文件路径、偏移值和长度值生成所述预定对象的预取信息。
根据本发明的再一方面,本发明实施例还提供一种加速操作系统启动的装置,所述装置包括:
预取信息获取模块,用于获取操作系统启动过程中的至少一个待加速的进程的预取信息,所述预取信息包括所述进程所需数据块的文件路径、偏移值和长度值;其中,所述进程所需数据块的文件路径、偏移值和长度值是预先将操作系统启动过程中的所有输入/输出信息涉及到的数据块按照先后顺序进行排序,分别统计每个数据块的文件路径、偏移值和长度值;将所有页面错误信息涉及到的数据块按照先后顺序进行排序,分别统计每个数据块的文件路径、偏移值和长度值,去掉所有页面错误信息涉及到的数据块与所有输入/输出信息涉及到的数据块交集的部分后得到的;
预取数据读取模块,用于根据所述预取信息将起始位置为所述文件路径和偏移值所指示的位置,读取长度为所述长度值的数据块读取到系统缓存中;
进程启动模块,用于利用所述系统缓存中的数据块完成所述进程的启动过程。
进一步地,所述装置还包括:策略信息获取模块和策略信息分析模块;
所述策略信息获取模块,用于获取预取策略信息;
所述策略信息分析模块,用于根据所述预取策略信息获知操作系统启动过程中的所有进程中的全部或者部分为所述至少一个待加速的进程。
进一步地,所述预取信息获取模块,具体包括:
空闲判断单元和第一预取信息获取单元;
所述空闲判断单元,用于判断开机启动过程中的输入/输出是否处于空闲状态;
所述第一预取信息获取单元,用于如果判断到所述开机启动过程中的输入/输出处于空闲状态,则从预设数据库中获取所述进程的预取信息。
进一步地,所述预取信息获取模块,具体包括:
创建判断单元和第二预取信息获取单元;
所述创建判断单元,用于判断所述进程或者所述进程中的单位是否被创建;
所述第二预取信息获取单元,用于如果判断到所述进程或者所述进程中的单位被创建,则从预设数据库中获取所述进程或者所述进程中的单位的预取信息;
其中,所述进程中的单位包括所述进程中的线程或所述进程中等待加载的模块。
进一步地,所述系统缓存包括物理页面和页面交换文件。
根据本发明的再一方面,本发明实施例提供一种预取信息生成装置,所述装置包括:
信息提取模块,用于提取在开机启动过程中的输入/输出信息和页面错误信息;
信息分析模块,用于根据所述输入/输出信息和页面错误信息获得操作系统启动过程中各个进程所需数据块的文件路径、偏移值和长度值;
信息合并模块,用于对文件路径相同的相邻数据块的所述偏移值和所述长度值进行合并;
信息生成模块,用于根据经过合并过程之后的各个数据块的文件路径、偏移值和长度值生成预取信息;
所述信息分析模块,还用于将所有输入/输出信息涉及到的数据块按照先后顺序进行排序,分别统计每个数据块的文件路径、偏移值和长度值;
所述信息分析模块,还用于将所有页面错误信息涉及到的数据块按照先后顺序进行排序,分别统计每个数据块的文件路径、偏移值和长度值;
所述信息分析模块,还用于去掉所有页面错误信息涉及到的数据块与所有输入/输出信息涉及到的数据块交集的部分,得到的所述操作系统启动过程中各个进程所需的数据块的文件路径、偏移值和长度值。
进一步地,所述信息生成模块,具体包括:
信息分类单元和信息生成单元;
所述信息分类单元,用于将经过合并过程之后的各个数据块按照预定对象进行分类,所述预定对象包括以下几种对象中的任一种:进程、线程、进程中待加载的模块和文件;
所述信息生成单元,用于根据分类后的数据块的文件路径、偏移值和长度值生成所述预定对象的预取信息;
所述根据所述输入/输出信息和页面错误信息获得操作系统启动过程中各个进程所需数据块的文件路径、偏移值和长度值,包括:
将所有输入/输出信息涉及到的数据块按照先后顺序进行排序,分别统计每个数据块的文件路径、偏移值和长度值;
将所有页面错误信息涉及到的数据块按照先后顺序进行排序,分别统计每个数据块的文件路径、偏移值和长度值;
去掉所有页面错误信息涉及到的数据块与所有输入/输出信息涉及到的数据块交集的部分,得到的所述操作系统启动过程中各个进程所需的数据块的文件路径、偏移值和长度值。
根据本发明的再一方面,本发明实施例还提供一种终端,所述终端包括本发明实施例提供的加速操作系统启动的装置。
根据本发明的再一方面,本发明实施例还提供一种终端,其特征在于,所述终端包括本发明实施例提供的预取信息生成装置。
本发明实施例提供的技术方案带来的有益效果是:
通过对操作系统启动过程中全部或者部分进程所需数据块进行预取,使得操作系统启动过程中的页面错误出现次数和对低速存储器的读写次数大幅度减少,可以有效降低各个程序对应进程的启动时间,从而达到了显著提升操作系统启动速度的效果。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了操作系统在进行内存管理时的结构示意图;
图2是本发明实施例一提供的预取信息生成方法的方法流程图;
图3是本发明实施例二提供的加速操作系统启动的方法的方法流程图;
图4是本发明实施例三提供给的加速操作系统启动的方法流程图;
图5是本发明实施例四提供的加速操作系统启动的方法流程图;
图6是本发明实施例五提供的预取信息生成装置的结构方框图;
图7是本发明实施例五提供的信息生成模块的结构方框图;
图8是本发明实施例六提供的加速操作系统启动的装置的结构方框图;
图9是本发明实施例六提供的预取信息获取模块的一种结构方框图;
图10是本发明实施例六提供的预取信息获取模块的另一种结构方框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
操作系统的启动过程主要是指终端开始上电到操作系统的各项服务及所有开机时需要自运行的第三方应用程序都运行完毕的这一段过程。操作系统启动过程通常都包括以下几个阶段:第一,按下电源键使终端上电;第二,运行启动引导程序,比如BIOS(Basic Input OutputSystem,基本输入输出系统),Bootloader等等;第三,加载操作系统内核,操作系统内核可以是微软的Windows系统的NT系列内核或者开源的LINUX内核等等;第四,加载驱动程序;第五,启动系统服务和第三方应用程序。
以操作系统为windows操作系统为例,在启动系统服务和第三方应用程序时,每个系统服务和第三方应用程序通常都对应一个进程,每个进程基本都需要加载可执行文件(.exe文件)和DLL文件(Dynamic Link Library,动态链接库)。当一个进程加载可执行文件和DLL文件时,是使用内存映射文件来访问的。
为了便于描述本发明,请首先参考图1,其示出了操作系统在进行内存管理时的结构示意图。一个终端内通常包括有二个层级的存储器,一个层级的存储器是读写数据较快但容量小的高速存储器,比如内存;另一个层级的存储器是读写数据较慢但容量大的低速存储器,比如计算机中的硬盘、智能手机中的SD卡,两个层级的存储器在读写速度上通常有几个数量级的差距。为了能够高效地使用高速存储器,一般将高速存储器中的存储空间分割为若干个预定大小的物理页面102,每个物理页面102具有各自的物理地址,预定大小可以是每个物理页面为4096字节。为了保护各个进程之间不会混乱读取其它进程的存储空间,操作系统还为每个进程设置了一个虚拟地址空间,每个虚拟地址空间也被分割为若干个预定大小的虚拟页面104,每个虚拟页面104也具有各自的虚拟地址,比如windows系统为每个进程可以提供2GB到3GB的虚拟地址空间,每个虚拟地址空间都包括有很多个4096字节的虚拟页面。
操作系统中会为每个进程的虚拟地址空间维护一个页表106,用来维护物理页面102的物理地址和虚拟页面104的虚拟地址之间的对应关系。由于物理页面102通常都比较少,比如只有1GB;而虚拟页面104比较多,比如每个进程都有2GB,所以实质上虚拟页面104并不总是能够与物理页面102对应上。具体地讲,页表106为每个虚拟页面设置有有效位和地址字段,有效位表征了该虚拟页面104是否与物理页面102真实对应,当一个虚拟页面104对应的有效位有效时,该有效位后对应的地址字段中的数值才代表一个真实的物理页面102的物理地址。由于操作系统中每个进程的虚拟地址空间对应于实际上的一个高速存储器(如内存),所以事实上在内存管理过程中会出现页面错误的情况,也即当前进程访问的虚拟页面104没有被映射到有效的物理页面102时,发生页面错误(Page Fault)。如果虚拟页面104被映射到高速存储器中其它状态的物理页面102,发生的是软页面错误(Soft Fault),如果虚拟页面104被映射到低速存储器上的文件中,发生的是硬页面错误(Hard Fault)。
回到上一话题,当一个进程访问可执行文件和DLL文件时,是采用内存映射文件来访问。内存映像文件也即将低速存储器(如硬盘、SD卡)上的文件直接映射到当前进程的虚拟地址空间,使得当前进程能够像访问高速存储器一样来访问这些文件。以一个可执行文件为例,操作系统初始会通过内存映射将该可执行文件映射进来,但是这时仅仅只是会读取映射基地址附近的少量字节,只有当真实访问时,发生了硬页面错误,操作系统才会将访问到的附近的一些字节读取进来。显然,对于开机过程中的每个进程来讲,由于低速存储器的读写速度低于高速存储器的读写速度有几个数量级之多,使得频繁的硬页面错误会花费很多IO(Input/Output,输入/输出)时间。对于普通的可执行程序文件来讲,自身文件体积一般比较小,通常影响IO时间的主要因素是IO的读写次数,而不是IO的大小。
为了能够减轻这种页面错误的出现次数和对低速存储器的读写次数以达到加速操作系统启动过程的目的,请参考如下实施例。如下实施例主要从两个方面来描述:第一,预取信息的生成过程,或称学习、提取过程;第二,利用前一过程得到的预取信息来加速操作系统启动的过程。
实施例一
请参考图2,其示出了本发明实施例一提供的预取信息生成方法的方法流程图。该预取信息生成方法可以用于终端中或者服务器中。也就是说,可以由于需要加速启动速度的终端自身来生成预取信息并使用;也可以是由服务器来生成该预取信息,然后由服务器将该预取信息提供给需要加速操作系统启动速度的终端使用。该预取信息生成方法可以包括:
步骤202,提取在操作系统启动过程中的输入/输出信息和页面错误信息;
首先可以捕捉操作系统启动过程中的日志文件,该日志文件中包括了每个进程在启动时的IO信息和页面错误信息。
步骤204,根据输入/输出信息和页面错误信息获得操作启动过程中各个进程所需数据块的文件路径、偏移值和长度值;
在诸如硬盘之类的低速存储器上的一个数据块或者说一段数据内容通常采用<文件路径,偏移值,长度值>的格式来描述。以硬盘为例,文件路径代表该数据块在硬盘中所在的文件,偏移值代表该数据块在硬盘中对应文件内的字节偏移,长度值代表该数据块在硬盘中对应文件内的字节大小。
根据上一步骤中获得的输入/输出信息和页面错误信息可以获得操作系统启动过程中所需数据块的文件路径、偏移值和长度值。具体地讲,一方面,可以将所有IO涉及到的数据块按照先后顺序进行排序,分别统计每个数据块的文件路径、偏移值和长度值,在这个过程中还可以对长度值进行页面大小对齐,“页面大小对齐”也即可以将长度值调整为4096字节的倍数以便访问;另一方面,可以将所有页面错误涉及到的数据块也按照上述方式进行处理,同时去掉与上述所有IO涉及到的数据块交集的部分,该交集是重复的部分。上述两个过程分析后获得到的所有数据块就是操作系统启动过程中所需的数据块。
为了形象说明,举例一个进程A所需的B.DLL文件中的三个数据块的偏移值和长度值的对应表如下:
偏移值 | 长度值 |
0 | 4096 |
4096 | 4096 |
16384 | 4096 |
其中,第一个数据块在B.DLL文件中的偏移值为0字节,长度值为4096字节;第二个数据块在B.DLL文件中的偏移值为4096字节,长度值为4096字节;第三个数据块在B.DLL文件中的偏移值为16384字节,长度值为4096字节。
步骤206,对文件路径相同的相邻数据块的偏移值和长度值进行合并;
由于第一个数据块和第二个数据块都属于B.DLL文件,所以它们的文件路径是相同的,同时第一个数据块的最后一个字节(也即偏移值+长度值)与第二个数据块的第一个字节(也即偏移值)相接,所以第一个数据块与第二个数据块是相邻数据块,对于相邻数据块可以将长度值和偏移值进行合并成为新的数据块。
比如,对上述第一个数据块和第二个数据块的长度值和偏移值进行合并,合并结果如下:
偏移 | 长度 |
0 | 8192 |
16384 | 4096 |
其中,原第一个数据块和第二个数据块被合并成为一个新的数据块,该数据块的偏移值为0,长度值为8192。当然,在实际的实施例中,数据块的数量会非常多,并不局限于上述举例中的几个文件或者几个数据块。
步骤208,根据经过合并过程之后的各个数据块的文件路径、偏移值和长度值生成预取信息。
经过上述合并过程之后,根据所有数据块的文件路径、偏移值和长度值可以生成预取信息以便后续使用。这里的所有数据块包括合并后生成的新数据块和未进行合并的数据块。为了便于使用,还可以在上述生成预取信息的过程中将预取信息进行分类。也即,步骤208可以具体包括:
第一,将经过合并过程之后的各个数据块按照预定对象进行分类,该预定对象包括以下几种对象中的任一种:进程、线程、进程中待加载的模块和文件;
例如,可以将各个数据块按照所属文件路径分类;再比如,可以将各个数据块按照被需要的进程分类,也即将每个进程所需要的数据块各自分类出来。如果需要实现更为精确地预取,还可以按照线程或者进程中待加载的模块进行分类。其中,线程是进程中包括的一种对象,一个进程可以包括多个线程。
第二,根据分类后的数据块的文件路径、偏移值和长度值生成预定对象的预取信息。
在各个数据块被分类后,可以根据各个数据块的文件路径、偏移值和长度值来生成各个个进程的预取信息、各个线程的预取信息和进程中的各个待加载模块的预取信息等等。
综上所述,本实施例一提供的预取信息生成方法通过对操作系统启动过程中所需的数据块进行统计分析,对其中相邻的数据块合并为新的数据块,从而得到了操作系统启动过程中的各个进程所需数据块的文件路径、偏移值和长度值,这些信息可以被生成为后续使用的预取信息。
实施例二
请参考图3,其示出了本发明实施例二提供的加速操作系统启动的方法的方法流程图。该加速操作系统启动的方法可以用于终端中。该终端可以是台式电脑、笔记本电脑、平板电脑和智能手机等任何运行有操作系统,且内部包括有2个层级的存储器的硬件设备。该终端中可以预先设立一个数据库,用于存储有实施例一提供的预取信息生成方法生成的预取信息。该加速操作系统启动的方法可以包括:
步骤302,获取操作系统启动过程中的至少一个待加速的进程的预取信息,预取信息包括该进程所需数据块的文件路径、偏移值和长度值;
在操作系统启动过程中,可以将全部或者部分进程指定为待加速的进程。对于待加速的进程,可以获取该进程对应的预取信息,该预取信息内包括该进程所需数据块的文件路径、偏移值和长度值。通常意义上讲,该预取信息表征该进程所需数据块在低速存储器上的存储位置。
步骤304,根据预取信息将起始位置为文件路径和偏移值所指示的位置,读取长度为长度值的数据块读取到系统缓存中;
在获取到待加速的进程的预取信息之后,可以根据预取信息将起始位置为文件路径和偏移值所指示的位置,读取长度为长度值的数据块读取到系统缓存中。视具体的实施例,该系统缓存通常是指高速存储器,可以是物理页面,也可以是物理页面和页面交换文件两者。其中物理页面通常就是终端中的内存中的存储单位,页面交换文件通常是终端中的硬盘中的用于与内存进行页面置换的存储单位。
步骤306,利用系统缓存中的数据块完成进程的启动过程。
在该进程在操作系统启动过程中被创建之后,可以利用系统缓存中的数据块完成该进程的启动过程。
综上所述,本实施例二提供的加速操作系统启动的方法通过对操作系统启动过程中全部或者部分进程所需数据块从低速存储器中提前预取到高速存储器中,使得操作系统启动过程中的页面错误出现次数和对低速存储器的读写次数大幅度减少,可以有效降低各个程序对应进程的启动时间,从而达到了显著提升操作系统启动速度的效果。
根据预取操作具体执行的时间不同,本文分不同实施例来描述该加速操作系统启动的方法。下述实施例以预取操作在操作系统启动过程的IO空闲时间执行为例。
实施例三
请参考图4,其示出了本发明实施例三提供的加速操作系统启动的方法的方法流程图。该加速操作系统启动的方法可以用于终端中。该终端可以是台式电脑、笔记本电脑、平板电脑和智能手机等任何运行有操作系统,且内部包括有2个层级的存储器的硬件设备。该终端可以预先设立一个数据库,用于存储有实施例一提供的预取信息生成方法生成的预取信息。该加速操作系统启动的方法可以包括:
步骤401,获取预取策略信息;
在终端上电之后,在加载驱动程序时可以加载一个预取驱动,该预取驱动可以获取预取策略信息,该预取策略信息可以是用户预先指定的信息。也即,采取何种预取策略可以由用户选择,比如用户可以预先选择操作系统启动过程中的所有进程都加速,也可以只选择其中一部分进程进行加速。
步骤402,根据预取策略信息获知操作系统启动过程中的至少一个待加速的进程;
该预取驱动根据预取策略信息可以获知操作系统启动过程中的待加速的进程。“待加速的进程”可以是全部进程;也可以是用户选择的一部分进程。
步骤403,判断操作系统启动过程中的输入/输出是否处于空闲状态;
因为在开机启动过程中,有一些间隔时间中IO是属于空闲状态的,在这些间隔时间中对待加速进程需要的数据块进行预取可以使操作系统达到负载均衡的效果。同时,步骤402中的预取策略信息中还可以保存每段IO空闲时对哪些待加速进程的所需数据块进行预取,或者说,每段IO空闲时对多少个待加速进程所需数据块或多个字节的数据块进行预取。
为此,预取驱动可以判断在操作系统启动过程中的IO是否处于空闲状态。具体地讲,预取驱动可以监控当前IO访问量等参数来判断操作系统启动过程中的IO是否处于空闲状态。
步骤404,如果判断到操作系统启动过程中的输入/输出处于空闲状态,则从预设数据库中获取待加速的进程的预取信息。
如果预取驱动判断到开机启动过程中的IO处于空闲状态,则可以从预设数据库中获取待加速的进程的预取信息,需要加速的进程可以从预取策略信息中获知。预设数据库中可以存储有所有进程的预取信息,然后预取驱动从预设数据库中获取待加速的进程的预取信息。预取信息包括该进程所需数据块的文件路径、偏移值和长度值。
步骤405,根据预取信息将起始位置为文件路径和偏移值所指示的位置,读取长度为长度值的数据块读取到系统缓存中。
在获取到待加速的进程的预取信息之后,可以根据预取信息将起始位置为文件路径和偏移值所指示的位置,读取长度为长度值的数据块读取到系统缓存中。该系统缓存通常是高速存储器,可以是内存中的物理页面,也可以是物理页面和页面交换文件。
如果本次预取操作执行完毕后,操作系统启动过程还未结束,则继续返回步骤403,等待下一次IO空闲时间,以便执行下一次预取操作。
需要说明的是,虽然预取操作可以分段在不同的IO空闲时间执行,但是对于一个待加速的进程来讲,仍然需要在该待加速的进程被创建且真正执行之前完成该待加速的进程所需数据块的相关预取操作。
步骤406,利用系统缓存中的数据块完成进程的启动过程。
在该进程在操作系统启动过程中被创建并真正执行时,可以利用系统缓存中的数据块完成该进程的启动过程。
综上所述,本实施例三提供的加速操作系统启动的方法通过对开机启动过程中全部或者部分进程所需数据块进行预取,使得开机启动过程中的页面错误出现次数和对低速存储器的读写次数大幅度减少,可以有效降低各个程序对应进程的启动时间,从而达到了显著提升终端的开机启动速度的效果。同时,本实施例三提供的加速操作系统启动的方法利用操作系统启动过程中的IO空闲时间来完成预取工作,可以使系统达到负载均衡和更高的效率。
下述实施例以预取操作在进程创建时并行执行为例。
实施例四
请参考图5,其示出了本发明实施例四提供的加速操作系统启动的方法的方法流程图。该加速操作系统启动的方法可以用于终端中。该终端可以是台式电脑、笔记本电脑、平板电脑和智能手机等任何运行有操作系统,且内部包括有2个层级的存储器的硬件设备。该终端可以预先设立一个数据库,用于存储有实施例一提供的预取信息生成方法生成的预取信息。该加速操作系统启动的方法可以包括:
步骤501,获取预取策略信息;
在终端上电之后,在加载驱动程序时可以加载一个预取驱动,该预取驱动可以获取预取策略信息,该预取策略信息可以是用户预先指定的信息。也即,采取何种预取策略可以由用户选择,比如用户可以选择开机启动过程中的所有进程都加速,也可以只选择其中一部分进行加速。
步骤502,根据预取策略信息获知操作系统启动过程中的至少一个待加速的进程;
该预取驱动根据预取策略信息可以获知操作系统启动过程中的待加速的进程。“待加速的进程”可以是全部进程;也可以是用户选择的一部分进程。同时,预取驱动在获知所有待加速的进程之后,可以向系统注册一些事件回调,这些事件回调可以是进程创建消息回调、线程创建消息回调等等。这样,在待加速的进程被创建后,就会立刻触发该回调函数;或者,在待加速的进程中的线程被创建后,就会立刻触发该回调函数。
步骤503,判断进程或者进程中的单位是否被创建;
此步骤可以通过回调函数是否被触发来实现,比如,一个进程被创建,则对应这个进程的回调函数就会被触发,可以认为判断到该进程被创建了,但是该进程此时还未被真正地执行;又比如,一个进程中的线程被创建,则对应这个线程的回调函数就会被触发,可以认为判断到该线程被创建了,但是该线程此时还未被真正地执行。
步骤504,如果判断到进程或者进程中的单位被创建,则从预设数据库中获取进程或者进程中的单位的预取信息;
其中,进程中的单位包括该进程中的线程或该进程中等待加载的模块。
如果回调函数被触发,则可以从预设数据库中获取该进程或者该进程中的单位的预取信息。比如,一个进程的回调函数被触发,则可以从预设数据库中获取该进程的预取信息;又比如,一个线程的回调函数被触发,则可以从预设数据库中获取该线程的预取信息;再比如,一个等待加载的模块被触发,则可以从预设数据库中获取该等待加载的模块的预取信息。
步骤505,根据预取信息将起始位置为文件路径和偏移值所指示的位置,读取长度为长度值的数据块读取到系统缓存中。
在获取到进程或者进程中的单位的预取信息之后,可以根据预取信息将起始位置为文件路径和偏移值所指示的位置,读取长度为长度值的数据块读取到系统缓存中。该系统缓存通常是高速存储器,可以是内存中物理页面,也可以是物理页面和页面交换文件两者。这样在该进程或者进程中的单位被实际执行之前或者实际加载之前,就可以完成相关数据块的预取操作。
步骤506,利用系统缓存中的数据块完成进程的启动过程。
在该进程在操作系统启动过程中被创建并真正执行时,可以利用系统缓存中的数据块完成该进程的启动过程。
综上所述,本实施例四提供的加速操作系统启动的方法通过对操作系统启动过程中全部或者部分进程所需数据块进行预取,使得操作系统启动过程中的页面错误出现次数和对低速存储器的读写次数大幅度减少,可以有效降低各个程序对应进程的启动时间,从而达到了显著提升终端的开机启动速度的效果。同时,本实施例四提供的加速操作系统启动的方法还通过在进程被创建时并行预取的方式来完成预取操作,比较适合需要加速的进程较多时的预取。
实施例五
请参考图6,其示出了本发明实施例五提供的预取信息生成装置的结构方框图。该预取信息生成装置可以用于终端中或者服务器中。该预取信息生成装置可以包括信息提取模块620、信息分析模块640、信息合并模块660和信息生成模块680。
信息提取模块620用于提取在操作系统启动过程中的输入/输出信息和页面错误信息。
信息分析模块640用于根据输入/输出信息和页面错误信息获得操作系统启动过程中各个进程所需数据块的文件路径、偏移值和长度值。
信息合并模块660用于对文件路径相同的相邻数据块的偏移值和长度值进行合并。
信息生成模块680用于根据经过合并过程之后的各个数据块的文件路径、偏移值和长度值生成预取信息。信息生成模块680又可以具体包括信息分类单元682和信息生成单元684,如图7所示。其中,信息分类单元682用于将经过合并过程之后的各个数据块按照预定对象进行分类,预定对象包括以下几种对象中的任一种:进程、线程、进程中待加载的模块和文件;信息生成单元684用于根据分类后的数据块的文件路径、偏移值和长度值生成预定对象的预取信息。
综上所述,本发明实施例五提供的预取信息生成装置通过对操作系统启动过程中所需的数据块进行统计分析,对其中相邻的数据块合并为新的数据块,从而得到了操作系统启动过程中的各个进程所需数据块的文件路径、偏移值和长度值,根据这些信息可以生成后续使用的预取信息。
需要说明的是:上述实施例五提供的预取信息生成装置在生成预取信息时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例五提供的预取信息生成装置与实施例一提供的预取信息生成方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述
实施例六
请参考图8,其示出了本发明实施例六提供的加速操作系统启动的装置的结构方框图。该加速操作系统启动的装置可以用于终端中。该终端可以是台式电脑、笔记本电脑、平板电脑和智能手机等任何运行有操作系统,且内部包括有2个层级的存储器的硬件设备。该终端可以预先设立一个数据库,用于存储有实施例一提供的预取信息生成方法或者实施例五提供的预取信息生成装置生成的预取信息。该加速操作系统启动的装置包括策略信息获取模块810、策略信息分析模块830、预取信息获取模块850、预取信息读取模块870和进程启动模块890。
策略信息获取模块810用于获取预取策略信息。
策略信息分析模块830用于根据预取策略信息获知操作系统启动过程中的至少一个待加速的进程。
预取信息获取模块850用于获取操作系统启动过程中的至少一个待加速的进程的预取信息,预取信息包括进程所需数据块的文件路径、偏移值和长度值。
在一种优选地情况下,预取信息获取模块850可以包括空闲判断单元852和第一预取信息获取单元854,如图9所示。其中,空闲判断单元852用于判断操作系统启动过程中的输入/输出是否处于空闲状态;第一预取信息获取单元854用于如果判断到操作系统启动过程中的输入/输出处于空闲状态,则从预设数据库中获取进程的预取信息。
在另一种优选地情况下,预取信息获取模块850可以包括创建判断单元856和第二预取信息获取单元858,如图10所示。其中,创建判断单元856用于判断进程或者进程中的单位是否被创建;第二预取信息获取单元858用于如果判断到进程或者进程中的单位被创建,则从预设数据库中获取进程或者进程中的单位的预取信息,其中,进程中的单位包括进程中的线程或进程中等待加载的模块。
预取数据读取模块870用于根据预取信息将起始位置为文件路径和偏移值所指示的位置,读取长度为长度值的数据块读取到系统缓存中。系统缓存包括物理页面,或物理页面和页面交换文件。
进程启动模块890用于利用系统缓存中的数据块完成进程的启动过程。
综上所述,本实施例六提供的加速操作系统启动的装置通过对操作系统启动过程中全部或者部分进程所需数据块进行预取,使得操作系统启动过程中的页面错误出现次数和对低速存储器的读写次数大幅度减少,可以有效降低各个程序对应进程的启动时间,从而达到了显著提升操作系统启动速度的效果。
需要说明的是:上述实施例提供的加速操作系统启动的装置在实现加速操作系统启动时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的加速操作系统启动的装置与加速操作系统启动的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (16)
1.一种加速操作系统启动的方法,其特征在于,所述方法包括:
获取操作系统启动过程中的至少一个待加速的进程的预取信息,所述预取信息包括所述进程所需数据块的文件路径、偏移值和长度值;其中,所述进程所需数据块的文件路径、偏移值和长度值是预先将操作系统启动过程中的所有输入/输出信息涉及到的数据块按照先后顺序进行排序,分别统计每个数据块的文件路径、偏移值和长度值;将所有页面错误信息涉及到的数据块按照先后顺序进行排序,分别统计每个数据块的文件路径、偏移值和长度值,去掉所有页面错误信息涉及到的数据块与所有输入/输出信息涉及到的数据块交集的部分后得到的;
根据所述预取信息将起始位置为所述文件路径和偏移值所指示的位置,读取长度为所述长度值的数据块读取到系统缓存中;
利用所述系统缓存中的数据块完成所述进程的启动过程。
2.根据权利要求1所述的加速操作系统启动的方法,其特征在于,所述获取操作系统启动过程中的至少一个待加速的进程的预取信息之前,还包括:
获取预取策略信息;
根据所述预取策略信息获知操作系统启动过程中的所有进程中的全部或者部分为所述至少一个待加速的进程。
3.根据权利要求1或2所述的加速操作系统启动的方法,其特征在于,所述获取操作系统启动过程中的至少一个待加速的进程的预取信息,具体包括:
判断操作系统启动过程中的输入/输出是否处于空闲状态;
如果判断到所述操作系统启动过程中的输入/输出处于空闲状态,则从预设数据库中获取所述进程的预取信息。
4.根据权利要求1或2所述的加速操作系统启动的方法,其特征在于,所述获取操作系统启动过程中的至少一个待加速的进程的预取信息,具体包括:
判断所述进程或者所述进程中的单位是否被创建;
如果判断到所述进程或者所述进程中的单位被创建,则从预设数据库中获取所述进程或者所述进程中的单位的预取信息;
其中,所述进程中的单位包括所述进程中的线程或所述进程中等待加载的模块。
5.根据权利要求1所述的加速操作系统启动的方法,其特征在于,
所述系统缓存包括:物理页面;或物理页面和页面交换文件。
6.一种预取信息生成方法,其特征在于,其包括:
提取在操作系统启动过程中的输入/输出信息和页面错误信息;
根据所述输入/输出信息和页面错误信息获得操作系统启动过程中各个进程所需数据块的文件路径、偏移值和长度值;
对文件路径相同的相邻数据块的所述偏移值和所述长度值进行合并;
根据经过合并过程之后的各个数据块的文件路径、偏移值和长度值生成预取信息;
所述根据所述输入/输出信息和页面错误信息获得操作系统启动过程中各个进程所需数据块的文件路径、偏移值和长度值,包括:
将所有输入/输出信息涉及到的数据块按照先后顺序进行排序,分别统计每个数据块的文件路径、偏移值和长度值;
将所有页面错误信息涉及到的数据块按照先后顺序进行排序,分别统计每个数据块的文件路径、偏移值和长度值;
去掉所有页面错误信息涉及到的数据块与所有输入/输出信息涉及到的数据块交集的部分,得到的所述操作系统启动过程中各个进程所需的数据块的文件路径、偏移值和长度值。
7.根据权利要求6所述的预取信息生成方法,其特征在于,所述根据经过合并过程之后的各个数据块的文件路径、偏移值和长度值生成预取信息,具体包括:
将经过合并过程之后的各个数据块按照预定对象进行分类,所述预定对象包括以下几种对象中的任一种:进程、线程、进程中待加载的模块和文件;
根据分类后的数据块的文件路径、偏移值和长度值生成所述预定对象的预取信息。
8.一种加速操作系统启动的装置,其特征在于,所述装置包括:
预取信息获取模块,用于获取操作系统启动过程中的至少一个待加速的进程的预取信息,所述预取信息包括所述进程所需数据块的文件路径、偏移值和长度值;其中,所述进程所需数据块的文件路径、偏移值和长度值是预先将操作系统启动过程中的所有输入/输出信息涉及到的数据块按照先后顺序进行排序,分别统计每个数据块的文件路径、偏移值和长度值;将所有页面错误信息涉及到的数据块按照先后顺序进行排序,分别统计每个数据块的文件路径、偏移值和长度值,去掉所有页面错误信息涉及到的数据块与所有输入/输出信息涉及到的数据块交集的部分后得到的;
预取数据读取模块,用于根据所述预取信息将起始位置为所述文件路径和偏移值所指示的位置,读取长度为所述长度值的数据块读取到系统缓存中;
进程启动模块,用于利用所述系统缓存中的数据块完成所述进程的启动过程。
9.根据权利要求8所述的加速操作系统启动的装置,其特征在于,所述装置还包括:策略信息获取模块和策略信息分析模块;
所述策略信息获取模块,用于获取预取策略信息;
所述策略信息分析模块,用于根据所述预取策略信息获知操作系统启动过程中的所有进程中的全部或者部分为所述至少一个待加速的进程。
10.根据权利要求8或9所述的加速操作系统启动的装置,其特征在于,所述预取信息获取模块,具体包括:
空闲判断单元和第一预取信息获取单元;
所述空闲判断单元,用于判断开机启动过程中的输入/输出是否处于空闲状态;
所述第一预取信息获取单元,用于如果判断到所述开机启动过程中的输入/输出处于空闲状态,则从预设数据库中获取所述进程的预取信息。
11.根据权利要求8或9所述的加速操作系统启动的装置,其特征在于,所述预取信息获取模块,具体包括:
创建判断单元和第二预取信息获取单元;
所述创建判断单元,用于判断所述进程或者所述进程中的单位是否被创建;
所述第二预取信息获取单元,用于如果判断到所述进程或者所述进程中的单位被创建,则从预设数据库中获取所述进程或者所述进程中的单位的预取信息;
其中,所述进程中的单位包括所述进程中的线程或所述进程中等待加载的模块。
12.根据权利要求8所述的加速操作系统启动的装置,其特征在于,
所述系统缓存包括:物理页面;或物理页面和页面交换文件。
13.一种预取信息生成装置,其特征在于,其包括:
信息提取模块,用于提取在开机启动过程中的输入/输出信息和页面错误信息;
信息分析模块,用于根据所述输入/输出信息和页面错误信息获得操作系统启动过程中各个进程所需数据块的文件路径、偏移值和长度值;
信息合并模块,用于对文件路径相同的相邻数据块的所述偏移值和所述长度值进行合并;
信息生成模块,用于根据经过合并过程之后的各个数据块的文件路径、偏移值和长度值生成预取信息;
所述信息分析模块,还用于将所有输入/输出信息涉及到的数据块按照先后顺序进行排序,分别统计每个数据块的文件路径、偏移值和长度值;
所述信息分析模块,还用于将所有页面错误信息涉及到的数据块按照先后顺序进行排序,分别统计每个数据块的文件路径、偏移值和长度值;
所述信息分析模块,还用于去掉所有页面错误信息涉及到的数据块与所有输入/输出信息涉及到的数据块交集的部分,得到的所述操作系统启动过程中各个进程所需的数据块的文件路径、偏移值和长度值。
14.根据权利要求13所述的预取信息生成装置,其特征在于,所述信息生成模块,具体包括:
信息分类单元和信息生成单元;
所述信息分类单元,用于将经过合并过程之后的各个数据块按照预定对象进行分类,所述预定对象包括以下几种对象中的任一种:进程、线程、进程中待加载的模块和文件;
所述信息生成单元,用于根据分类后的数据块的文件路径、偏移值和长度值生成所述预定对象的预取信息。
15.一种终端,其特征在于,其包括如权利要求8至12任一所述的加速操作系统启动的装置。
16.一种终端,其特征在于,其包括如权利要求13至14任一所述的预取信息生成装置。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210106270.1A CN102707966B (zh) | 2012-04-12 | 2012-04-12 | 加速操作系统启动的方法及装置、预取信息生成方法及装置和终端 |
US14/125,219 US9329873B2 (en) | 2012-04-12 | 2013-03-20 | Method and device, terminal and computer readable medium for accelerating startup of operating system |
PCT/CN2013/072960 WO2013152660A1 (zh) | 2012-04-12 | 2013-03-20 | 加速操作系统启动的方法、装置、终端及计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210106270.1A CN102707966B (zh) | 2012-04-12 | 2012-04-12 | 加速操作系统启动的方法及装置、预取信息生成方法及装置和终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102707966A CN102707966A (zh) | 2012-10-03 |
CN102707966B true CN102707966B (zh) | 2014-09-03 |
Family
ID=46900787
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210106270.1A Active CN102707966B (zh) | 2012-04-12 | 2012-04-12 | 加速操作系统启动的方法及装置、预取信息生成方法及装置和终端 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9329873B2 (zh) |
CN (1) | CN102707966B (zh) |
WO (1) | WO2013152660A1 (zh) |
Families Citing this family (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102707966B (zh) * | 2012-04-12 | 2014-09-03 | 腾讯科技(深圳)有限公司 | 加速操作系统启动的方法及装置、预取信息生成方法及装置和终端 |
CN102981869B (zh) * | 2012-11-05 | 2016-08-31 | 北京奇虎科技有限公司 | 一种系统启动项程序的运行处理方法和装置 |
CN103902260B (zh) * | 2012-12-25 | 2016-08-31 | 华中科技大学 | 一种对象文件系统的预取方法 |
CN103914318A (zh) * | 2013-01-04 | 2014-07-09 | 腾讯科技(深圳)有限公司 | 程序启动的方法和装置 |
CN103927192A (zh) * | 2013-01-14 | 2014-07-16 | 腾讯科技(深圳)有限公司 | 一种加速客户端启动的方法、装置及终端 |
US9110677B2 (en) * | 2013-03-14 | 2015-08-18 | Sandisk Technologies Inc. | System and method for predicting and improving boot-up sequence |
CN103235764B (zh) * | 2013-04-11 | 2016-01-20 | 浙江大学 | 线程感知多核数据预取自调方法 |
CN103677900B (zh) * | 2013-11-15 | 2017-05-31 | 北京奇虎科技有限公司 | 一种计算机设备系统启动加速的方法和装置 |
CN103677920B (zh) * | 2013-12-11 | 2017-01-25 | 清华大学 | 关键应用程序识别及启动提速的方法及系统 |
CN104133691B (zh) * | 2014-05-05 | 2016-08-31 | 腾讯科技(深圳)有限公司 | 加速启动的方法及装置 |
EP3173931B1 (en) * | 2014-09-01 | 2018-08-29 | Huawei Technologies Co., Ltd. | File access method, device and storage system |
EP3190520B1 (en) * | 2014-09-01 | 2019-08-07 | Huawei Technologies Co. Ltd. | File access method and apparatus, and storage system |
WO2016082191A1 (zh) * | 2014-11-28 | 2016-06-02 | 华为技术有限公司 | 访问文件的方法和装置 |
CN104572205B (zh) * | 2015-01-12 | 2018-02-23 | 安一恒通(北京)科技有限公司 | 一种用于软件加速的方法和装置 |
CN106293792B (zh) * | 2015-06-02 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 软件启动方法和装置 |
US10397365B2 (en) | 2015-11-06 | 2019-08-27 | International Business Machines Corporation | Method to reduce reactivation time of cloud based services |
CN107480150B (zh) * | 2016-06-07 | 2020-12-08 | 阿里巴巴集团控股有限公司 | 一种文件加载方法和装置 |
WO2018033220A1 (en) * | 2016-08-19 | 2018-02-22 | Huawei Technologies Co., Ltd. | Device and method arranged to support execution of a booting process |
CN107783911B (zh) * | 2016-08-31 | 2021-06-08 | 华为技术有限公司 | 一种数据过滤方法及终端设备 |
CN106792185B (zh) * | 2016-11-15 | 2020-08-04 | 深圳Tcl数字技术有限公司 | 开机方法、开机装置及Android智能设备 |
US10289421B2 (en) * | 2017-02-17 | 2019-05-14 | Dell Products, L.P. | Booting of IHS from SSD using PCIe |
CN111095204A (zh) * | 2017-11-22 | 2020-05-01 | 英特尔公司 | 针对高速缓存存储器进行文件预取调度以减少等待时间 |
US10503660B2 (en) * | 2017-12-20 | 2019-12-10 | Arm Limited | Technique for determining address translation data to be stored within an address translation cache |
CN108228876A (zh) * | 2018-01-19 | 2018-06-29 | 维沃移动通信有限公司 | 一种读取文件数据的方法及移动终端 |
CN111061516B (zh) * | 2018-10-15 | 2021-09-14 | 华为技术有限公司 | 加速应用的冷启动的方法、装置和终端 |
CN110213351A (zh) * | 2019-05-17 | 2019-09-06 | 北京航空航天大学 | 一种面向广域高性能计算环境的动态自适应io负载均衡方法 |
CN111209051B (zh) * | 2020-01-13 | 2023-07-28 | 奇安信科技集团股份有限公司 | 一种基于国产操作系统的优化加速方法及装置 |
CN112905111A (zh) * | 2021-02-05 | 2021-06-04 | 三星(中国)半导体有限公司 | 数据缓存的方法和数据缓存的装置 |
CN112948024B (zh) * | 2021-04-15 | 2022-11-04 | 网易(杭州)网络有限公司 | 动态链接库的加载方法、装置、存储介质及电子设备 |
US20230045617A1 (en) * | 2021-08-03 | 2023-02-09 | Samsung Electronics Co., Ltd. | Method and electronic device for managing a boost time required for an application launch |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1604055A (zh) * | 2003-09-30 | 2005-04-06 | 国际商业机器公司 | 利用永久历史页表数据预取数据到高速缓存的装置和方法 |
CN101866293A (zh) * | 2009-04-20 | 2010-10-20 | 英特尔公司 | 利用预读技术引导系统的操作系统 |
CN102171647A (zh) * | 2009-10-26 | 2011-08-31 | 美国索尼电脑娱乐有限责任公司 | 使用即时数据分块的文件输入/输出调度 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6633968B2 (en) * | 1999-03-30 | 2003-10-14 | Microsoft Corporation | Pre-fetching of pages prior to a hard page fault sequence |
US20010047473A1 (en) | 2000-02-03 | 2001-11-29 | Realtime Data, Llc | Systems and methods for computer initialization |
JP4131514B2 (ja) * | 2003-04-21 | 2008-08-13 | インターナショナル・ビジネス・マシーンズ・コーポレーション | ネットワークシステム、サーバ、データ処理方法及びプログラム |
US7127600B2 (en) * | 2003-09-30 | 2006-10-24 | Intel Corporation | Aggressive content pre-fetching during pre-boot runtime to support speedy OS booting |
DE102006036597A1 (de) | 2006-01-11 | 2007-07-19 | Intervideo Digital Technology Corp. | Elektronische Vorrichtung mit beschleunigtem Boot-Prozess und Verfahren zum Beschleunigen des Boot-Prozesses für elektronische Vorrichtungen |
US8082431B2 (en) | 2006-09-29 | 2011-12-20 | Intel Corporation | System and method for increasing platform boot efficiency |
CN100555222C (zh) * | 2007-02-15 | 2009-10-28 | 凌阳科技股份有限公司 | 应用程序可重定位加载的方法及地址重定位装置 |
CN101339511B (zh) * | 2007-07-02 | 2011-06-15 | 国际商业机器公司 | 用于监控和自适应地预载入关键动态连接库的方法和系统 |
US8010776B2 (en) * | 2007-12-17 | 2011-08-30 | Spansion Llc | Adaptive system boot accelerator for computing systems |
CN102160035A (zh) * | 2008-09-18 | 2011-08-17 | 马维尔国际贸易有限公司 | 至少部分地在引导期间向存储器预加载应用 |
CN101814038B (zh) * | 2010-03-23 | 2012-10-03 | 杭州顺网科技股份有限公司 | 一种加快计算机启动速度的方法 |
CN102707966B (zh) | 2012-04-12 | 2014-09-03 | 腾讯科技(深圳)有限公司 | 加速操作系统启动的方法及装置、预取信息生成方法及装置和终端 |
-
2012
- 2012-04-12 CN CN201210106270.1A patent/CN102707966B/zh active Active
-
2013
- 2013-03-20 WO PCT/CN2013/072960 patent/WO2013152660A1/zh active Application Filing
- 2013-03-20 US US14/125,219 patent/US9329873B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1604055A (zh) * | 2003-09-30 | 2005-04-06 | 国际商业机器公司 | 利用永久历史页表数据预取数据到高速缓存的装置和方法 |
CN101866293A (zh) * | 2009-04-20 | 2010-10-20 | 英特尔公司 | 利用预读技术引导系统的操作系统 |
CN102171647A (zh) * | 2009-10-26 | 2011-08-31 | 美国索尼电脑娱乐有限责任公司 | 使用即时数据分块的文件输入/输出调度 |
Also Published As
Publication number | Publication date |
---|---|
WO2013152660A1 (zh) | 2013-10-17 |
US20140129814A1 (en) | 2014-05-08 |
US9329873B2 (en) | 2016-05-03 |
CN102707966A (zh) | 2012-10-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102707966B (zh) | 加速操作系统启动的方法及装置、预取信息生成方法及装置和终端 | |
US8793427B2 (en) | Remote memory for virtual machines | |
CN1261868C (zh) | 计算机快速启动方法 | |
CN107153643B (zh) | 数据表连接方法及装置 | |
CN108959118B (zh) | 一种数据写入的方法及装置 | |
CN1398371A (zh) | 在操作系统装载之前更改操作系统启动顺序的系统和方法 | |
CN103150257A (zh) | 一种内存管理方法和装置 | |
CN103218312A (zh) | 文件访问方法及系统 | |
CN107562483A (zh) | 一种挂载引导文件系统的方法及装置 | |
CN111090521A (zh) | 内存分配方法、装置、存储介质及电子设备 | |
EP3846036B1 (en) | Matrix storage method, matrix access method, apparatus and electronic device | |
CN110704161A (zh) | 虚拟机创建方法、装置及计算机设备 | |
CN114996173A (zh) | 一种管理存储设备写操作的方法和装置 | |
CN112925606A (zh) | 一种内存管理方法、装置及设备 | |
CN105389190A (zh) | 一种操作系统启动的方法、装置及系统 | |
CN115151902A (zh) | 集群扩容方法、装置、存储介质及电子设备 | |
CN111444117A (zh) | 存储空间碎片化实现方法、装置、存储介质及电子设备 | |
CN113360215A (zh) | 程序运行方法、装置及计算机可读存储介质 | |
CN112654965A (zh) | 动态模块的外部分页和交换 | |
CN112835967B (zh) | 基于分布式存储系统的数据处理方法、装置、设备和介质 | |
CN114385368A (zh) | 预写日志的刷写方法和装置 | |
EP3048541A1 (en) | File access method and device | |
CN113111013A (zh) | 一种闪存数据块绑定方法、装置及介质 | |
CN112000462A (zh) | 一种基于共享外设资源的数据处理方法及装置 | |
CN105373421A (zh) | 终端和终端中处理数据的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20230920 Address after: 100191 Beijing Haidian District Zhichun Road 49 No. 3 West 309 Patentee after: TENCENT CLOUD COMPUTING (BEIJING) Co.,Ltd. Address before: 2 East 403 room, SEG science and technology garden, Futian District, Guangdong, Shenzhen 518000, China Patentee before: TENCENT TECHNOLOGY (SHENZHEN) Co.,Ltd. |
|
TR01 | Transfer of patent right |