CN103810009B - 一种计算机操作系统启动加速的方法和装置 - Google Patents
一种计算机操作系统启动加速的方法和装置 Download PDFInfo
- Publication number
- CN103810009B CN103810009B CN201410058571.0A CN201410058571A CN103810009B CN 103810009 B CN103810009 B CN 103810009B CN 201410058571 A CN201410058571 A CN 201410058571A CN 103810009 B CN103810009 B CN 103810009B
- Authority
- CN
- China
- Prior art keywords
- read
- data
- operating system
- reading
- disk
- 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
- 238000000034 method Methods 0.000 title claims abstract description 49
- 230000001133 acceleration Effects 0.000 title claims abstract description 18
- 230000004044 response Effects 0.000 claims abstract description 22
- 238000007689 inspection Methods 0.000 claims description 19
- 238000012163 sequencing technique Methods 0.000 claims description 13
- 230000006399 behavior Effects 0.000 claims description 5
- 238000001514 detection method Methods 0.000 claims description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000009434 installation Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000005611 electricity Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004883 computer application Methods 0.000 description 1
- 230000009849 deactivation Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 238000013467 fragmentation Methods 0.000 description 1
- 238000006062 fragmentation reaction Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种计算机操作系统启动加速的方法和装置,该方法包括:响应于启动计算机的操作系统的引导程序的请求,从计算机的磁盘中读取预先设置的用于操作系统启动的预读取数据;将读取的预读取数据缓存到计算机的内存中;以及响应于加载计算机的操作系统的预读取数据的请求,从计算机的内存中读取并加载预先设置的用于操作系统启动的预读取数据,通过本发明的实施例能够有效减少操作系统启动所需的时间。
Description
技术领域
本发明属于计算机技术领域,尤其涉及一种计算机操作系统启动加速的方法和装置。
背景技术
开机启动项也即启动项,就是开机的时候会在前台或后台运行的程序。目前的系统启动服务包括:SERVICE_FILE_SYSTEM_DRIVER、SERVICE_KE RNEL_DRIVER、SERVICE_WIN32_OWN_PROCESS和SERVICE_WIN32_S HARE_PROCESS四种,通过注册表项HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\service\XXXX下的TYPE值标识可以识别的服务类型,其中表项中的XXXX表示服务名称。
通常情况下,操作系统启动时,操作系统需要加载很多应用程序。现有的加快操作系统启动速度的做法是在操作系统启动时禁用不需要的应用程序,通过禁用没必要启动的应用程序,达到对操作系统启动速度进行优化的目的,例如,禁用第三方安装的应用程序的启动项,用户用不到的打印机启动项,远程登陆服务的启动项等。然而这种启动加速是由用户修改操作系统的启动配置文件实现,需要用户对操作系统的启动配置文件有所了解,以免因禁用操作系统启动所必须的启动项,而导致操作系统无法正常启动。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的计算机操作系统启动加速的方法和装置。
依据本发明的一个方面,提供了一种计算机操作系统启动加速的方法,包括:响应于启动计算机的操作系统的引导程序的请求,创建预读取线程;所述预读取线程和计算机的操作系统并发地去读取数据,其中预读取线程从计算机的磁盘中读取用于操作系统启动的预先定义的预读取数据;将读取的预读取数据缓存到计算机的内存中;以及响应于加载计算机的操作系统的预读取数据的请求,从计算机的内存中读取并加载预先设置的用于操作系统启动的预读取数据。
可选地,在操作系统启动过程中,利用所述预读取线程继续读取所述预读取数据,并且接收到操作系统从磁盘中读取数据的请求时,在预先定义的时间段内暂停所述预读取线程的读取,并响应所述操作系统从磁盘中读取数据的请求。
可选地,所述方法还包括:预先记录操作系统启动的信息,并且基于所述信息以及用于之前一次或多次操作系统启动的预先定义的预读取数据,生成用于之后一次或多次操作系统启动的预先定义的预读取数据,并且按照系统启动时读取的优先级对所述预先定义的预读取数据中的数据进行排序,其中数据的优先级越高,该数据越早被预读取线程从计算机的磁盘中读取出来。
可选地,记录计算机的磁盘进行磁盘碎片整理时磁盘中数据的移动信息;
根据所述磁盘中数据的移动信息和之前的所述预先定义的预读取数据重新生成用于之后一次或多次操作系统启动的预读取数据。
可选地,其中所述操作系统启动的信息包括操作系统启动所花费的时间、操作系统从内存中读取所缓存的预读取数据的描述信息。
可选地,其中利用预读取线程读取所述预读取数据的步骤包括:在小于或等于预先定义的读取时间间隔的情况下,利用至少两个读取请求按照磁盘排序和磁盘偏移同时读取至少两个文件;以及在大于预先定义的读取时间间隔的情况下,利用至少两个读取请求按照操作系统启动时处理文件的时间顺序先后读取至少两个文件。
可选地,其中利用预读取线程读取所述预读取数据的步骤还包括:在接收到操作系统从磁盘中读取数据的请求时,在预先定义的时间段后,在操作系统未从磁盘中获取到所述数据的情况下,利用预读取线程读取所述数据,并将所述数据缓存到内存中以供操作系统读取。
可选地,其中利用预读取线程读取所述预读取数据的步骤还包括:在接收到操作系统从磁盘中读取数据的请求时,在预先定义的时间段后,在检测到操作系统仍在读取地址偏移连续的数据的情况下,保持暂停所述预读取线程的读取,直到检测到操作系统读取地址偏移不连续的数据,然后恢复所述预读取线程的读取。
可选地,其中利用预读取线程读取所述预读取数据的步骤还包括:在检测到操作系统对磁盘进行自检时,暂停所述预读取线程读取所述预读取数据,直到检测到磁盘自检结束,然后恢复所述预读取线程读取所述预读取数据。
可选地,其中利用预读取线程读取所述预读取数据的步骤还包括:在接收到操作系统从磁盘中读取数据的请求时,在检测到操作系统要从磁盘中读取的数据中的部分包括在所述预读取数据中的情况下,将读取的数据缓存到内存中以供操作系统读取;并且在预先定义的时间段后,在操作系统未从磁盘中获取到其它部分的数据的情况下,利用预读取线程读取所述其它部分的数据,并将所述其它部分的数据缓存到内存中以供操作系统读取。
依据本发明的另一个方面,还提供了一种计算机操作系统启动加速的装置,包括:读取模块,用于响应于启动计算机的操作系统的引导程序的请求,创建预读取线程;所述预读取线程和计算机的操作系统并发地去读取数据,其中预读取线程从计算机的磁盘中读取用于操作系统启动的预先定义的预读取数据;缓存模块,用于将读取的预读取数据缓存到计算机的内存中;以及启动加载模块,用于响应于加载计算机的操作系统的预读取数据的请求,从计算机的内存中读取并加载预先设置的用于操作系统启动的预读取数据。
可选地,所述读取模块包括:线程创建单元,用于响应于启动计算机的操作系统的引导程序的请求,创建预读取线程;读取单元,用于利用预读取线程开始从计算机的磁盘中读取用于操作系统启动的预先定义的预读取数据。
可选地,所述读取模块在操作系统启动过程中,利用所述预读取线程继续读取所述预读取数据,并且接收到操作系统从磁盘中读取数据的请求时,在预先定义的时间段内暂停所述预读取线程的读取。
可选地,所述装置还包括:预读取数据生成模块,用于预读取数据预先记录操作系统启动的信息,并且基于所述信息以及用于之前一次或多次操作系统启动的预先定义的预读取数据,生成用于之后一次或多次操作系统启动的预先定义的预读取数据,并且按照系统启动时读取的优先级对所述预先定义的预读取数据中的数据进行排序,其中数据的优先级越高,该数据越早被预读取线程从计算机的磁盘中读取出来。
可选地,所述装置还包括:磁盘碎片整理检测模块,用于记录计算机的磁盘进行磁盘碎片整理时磁盘中数据的移动信息;根据所述磁盘中数据的移动信息和所述预先定义的预读取数据重新生成用于之后一次或多次操作系统启动的预读取数据。
可选地,其中所述操作系统启动的信息包括操作系统启动所花费的时间、操作系统从内存中读取所缓存的预读取数据的描述信息。
可选地,其中所述读取单元进一步用于在小于或等于预先定义的读取时间间隔的情况下,利用至少两个读取请求按照磁盘排序和磁盘偏移同时读取至少两个文件;以及在大于预先定义的读取时间间隔的情况下,利用至少两个读取请求按照操作系统启动时处理文件的时间顺序先后读取至少两个文件。
可选地,其中所述读取单元在接收到操作系统从磁盘中读取数据的请求时,在预先定义的时间段后,在操作系统未从磁盘中获取到所述数据的情况下,利用预读取线程读取所述数据,并将所述数据缓存到内存中以供操作系统读取。
可选地,其中所述读取单元在接收到操作系统从磁盘中读取数据的请求时,在预先定义的时间段后,在检测到操作系统仍在读取地址偏移连续的数据的情况下,保持暂停所述预读取线程的读取,直到检测到操作系统读取地址偏移不连续的数据,然后恢复所述预读取线程的读取。
可选地,其中所述读取单元在检测到操作系统对磁盘进行自检时,暂停所述预读取线程读取所述预读取数据,直到检测到磁盘自检结束,然后恢复所述预读取线程读取所述预读取数据。
可选地,其中所述读取单元在接收到操作系统从磁盘中读取数据的请求时,在检测到操作系统要从磁盘中读取的数据中的部分包括在所述预读取数据中的情况下,将读取的数据缓存到内存中以供操作系统读取;并且在预先定义的时间段后,在操作系统未从磁盘中获取到其它部分的数据的情况下,利用预读取线程读取所述其它部分的数据,并将所述其它部分的数据缓存到内存中以供操作系统读取。
由上述技术方案可知,本发明的实施例具有如下有益效果:本发明提供了上述计算机操作系统启动加速的方法和装置。根据本发明的实施例,能够在计算机启动时,操作系统启动前,创建预读取线程,尽可能早地将操作系统启动所需要的数据读取出来,并缓存到内存中以供操作系统启动时使用,避免了磁盘请求队列阻塞,从而使操作系统启动加速;根据本发明的实施例,能够通过一次或少数几次从磁盘中读取出操作系统启动所需的预读取数据,将其合并成一个数据块并缓存到内存中,加快了操作系统启动的速度;根据本发明的实施例,预读取线程从磁盘中读取数据与操作系统从内存中读取数据能够同时进行,减少了操作系统启动所需的时间;根据本发明的实施例,通过对预读取线程从磁盘中读取数据、操作系统从内存中读取数据、以及操作系统从磁盘中读取数据的请求的适当安排,并且在需要时暂停预读取线程从磁盘中读取数据,为操作系统从磁盘读取数据让路,能够实现快速读取数据,同时满足操作请求的时序性。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明的实施例中的计算机操作系统启动加速的方法的流程图之一;
图2示出了根据本发明的实施例中的计算机操作系统启动加速的方法的流程图之二;
图3示出了根据本发明的实施例中计算机操作系统启动加速的装置图之一;以及
图4示出了根据本发明的实施例中计算机操作系统启动加速的装置图之二。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
在本发明的实施例中,计算机可以是计算机、移动电话、平板电脑、视频播放器、电子阅读器、数码相框等。本发明的实施例适用于任何计算机的操作系统,包括但不限于:计算机的Windows、Linux、Mac OS、Unix等桌面操作系统;移动电话、平板电脑、视频播放器、电子阅读器、数码相框的IOS、Android、Windows Phone、Symbian等移动操作系统。
在下文中,将以计算机作为计算机的例子、以Windows作为操作系统的例子,对本发明的原理进行示例性地描述。然而,这只是为了以具体的示例描述本发明,以帮助读者理解本发明的原理,本发明的范围不限于此,而是可以适用于任何计算机和任何操作系统。
如图1所示,为本发明实施例的计算机操作系统启动加速的方法的流程图之一,方法100包括:
步骤S110、响应于启动计算机的操作系统的引导程序的请求,从计算机的磁盘中读取预先设置的用于操作系统启动的预读取数据。
引导程序(Boot loader,也称启动加载器)位于计算机或其他计算机应用上,是指引导操作系统启动的程序。任何一台计算机,在开机后,第一件事情就是引导(Booting),通过引导,计算机为自身搭建好运行环境,为以后OS的启动与运行做好准备。引导程序启动方式及程序视应用机型种类而不同。例如在普通的个人计算机上,引导程序通常分为两部分:第一阶段引导程序位于主引导记录(MBR),用以引导位于某个分区上的第二阶段引导程序,如NTLDR、GNU GRUB等。
预读取数据可以预先由启动文件生成,该启动文件是指操作系统正常启动所需启动的文件,以Windows操作系统为例,如果是win7系统,预读取数据保存路径如下:
C:\Users\用户名称\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup。
具体地,在本发明的实施例中,在启动计算机的操作系统的Boot loader时,即响应于启动计算机的操作系统的引导程序的请求,创建预读取线程,该预读取线程会和计算机的操作系统并发地去读数据,其中利用预读取线程从计算机的磁盘中读取预先设置的用于操作系统启动的预读取数据。以Windows系统为例,在Windows启动过程中,即初始化完成BOOT驱动后,会创建一个线程进行并发的预读,这个过程发生在IoInitSystem函数中,然后通过CcPfBeginBootPhase函数创建新线程去执行CcPfBootWorker,并由其负责整个预读取的任务。
根据本发明的实施例,可以在计算机加电开机后、Boot loader驱动初始化时,从注册表中获取预先设置的预读取数据的信息(例如这些数据的偏移地址),并且创建预读取线程,在磁盘设备附加好后,利用该预读取线程按照从注册表获取到的预读取数据的信息,开始从磁盘中读取预先设置的用于操作系统启动的预读取数据,并加载该预读取数据。由于预读取线程与操作系统是并发运行的,且预读取线程先于操作系统运行,因此操作系统启动所要读取的数据会尽可能早地被预读取线程读取出来。
可选地,所述磁盘可以是任何类型的用于在计算机中实现存储功能的磁性存储设备,包括但不限于:普通硬盘、混合式硬盘、固态硬盘等等。而所述磁盘采用各种格式的文件系统,包括但不限于:FAT(File AllocationTable,文件配置表)、FAT32、NTFS(NewTechnology File System,新技术文件系统,是WindowsNT操作环境和Windows NT高级服务器网络操作系统环境的文件系统)等。
根据本发明的实施例,利用预读取线程读取所述预读取数据的步骤可以包括:在小于或等于预先设置的读取时间间隔的情况下,利用至少两个读取请求按照磁盘排序和磁盘偏移同时读取至少两个文件;以及在大于预先设置的读取时间间隔的情况下,利用至少两个读取请求按照操作系统启动时处理文件的时间顺序先后读取至少两个文件。
在现有技术方法中,例如微软公司的操作系统Windows XP,采用磁盘请求队列的方式读取数据,往往会存在上千个请求排队,此时,如果系统的主线程发出请求,就会根据其偏移排在适当的位置,往往都是在队尾。根据本发明的方案,尽量将系统要读取的数据利用预读取线程提前读取并缓存到内存中,并采取上述方式避免队列阻塞。即,在小于或等于预先设置的读取时间间隔的情况下,利用至少两个读取请求按照磁盘排序和磁盘偏移同时读取至少两个文件,此时系统时间间隔很短,无需考虑时间顺序。而在大于预先设置的读取时间间隔的情况下,利用至少两个读取请求按照操作系统启动时处理文件的时间顺序先后读取至少两个文件,这主要是按照系统初始化时处理文件的顺序来进行读取。
可选地,所述预先设置的时间间隔可以根据实际需要来选取,一个示例可以是200毫秒。在预先设置的时间间隔是200毫秒的情况下,如果第一毫秒访问文件A,第二毫秒访问文件B,则可以一起读出这至少两个文件;而如果第一秒访问文件A,第二秒访问文件B,则需要按照时间顺序进行处理。按照上述方式,在接收到请求时,可以保证只有两个请求在排队。由于请求只能一个一个地进行处理,因此磁盘队列中存在两个请求与存在上千个请求对于磁盘IO的吞吐量是一样的。
步骤S130、将读取的预读取数据缓存到计算机的内存中。
一般来说,内存具有比磁盘更快的读写速度。可选地,所述内存可以采用半导体存储单元,包括但不限于:随机存储器(RAM)、只读存储器(ROM)、高速缓冲存储器(Cache)等等。
步骤S150、响应于加载计算机的操作系统的预读取数据的请求,从计算机的内存中读取并加载预先设置的用于操作系统启动的预读取数据,使得计算机可以根据加载的预读取数据完成操作系统的启动。
在本发明的实施例中,能够在计算机加电启动时,操作系统启动前,创建预读取线程,尽可能早地将操作系统启动所需要的数据读取出来,并缓存到内存中以供操作系统启动时使用,避免了磁盘请求队列阻塞,从而使操作系统启动加速。
在本发明的实施例中,可以根据启动文件生成预读取数据。
具体地,在本发明的又一个实施例中,在步骤S110之前,方法100还可以包括以下步骤:预先记录操作系统启动的信息,并且基于所述信息以及用于之前一次或多次操作系统启动的预先设置的预读取数据,生成用于之后一次或多次操作系统启动的预先设置的预读取数据,并且按照系统启动时读取的优先级对所述预先设置的预读取数据中的数据进行排序。其中,所述操作系统启动的信息包括操作系统启动所花费的时间、操作系统从内存中读取所缓存的预读取数据的描述信息(例如,缓存的预读取数据命中操作系统请求的比例、预读取数据的名称、预读取数据的位置等)。例如,可以基于上述操作系统启动的信息以及例如前三次操作系统启动的预读取数据,来生成用于之后的操作系统启动的预读取数据。优选地,在生成预读取数据时,既要保证能够快速读取,又要在操作系统请求之前将所需的数据读取出来。
可选地,在本发明的又一个实施例中,所述方法100还可以包括步骤:记录计算机的磁盘进行磁盘碎片整理时磁盘中数据的移动信息;根据所述磁盘中数据的移动信息和所述预先定义的预读取数据重新生成用于之后一次或多次操作系统启动的预读取数据。。由于预读取线程是根据磁盘偏移与大小来读取预读取数据的,因此在用户执行磁盘碎片整理操作之后,原有数据的磁盘偏移可能会发生改变,导致预读取线程无法正确读取到预读取数据。此时,利用上述可选步骤,可以在检测到磁盘碎片整理时数据移动的情况下,根据数据移动来重新生成正确的预读取数据,以用于之后的操作系统启动。
在本发明的实施例中,能够通过一次或少数几次从磁盘中读取出操作系统启动所需的预读取数据,将其合并成一个数据块并缓存到内存中,加快了操作系统启动的速度。
如图2所示,为本发明的实施例中的计算机操作系统启动加速的方法的流程图之二,与图1所示的方法100不同的是,在图2中还包括:步骤S170。
在步骤S170中,在操作系统启动过程中,利用预读取线程继续读取所述预读取数据,并且接收到操作系统从磁盘中读取数据的请求时,在预先设置的时间段内暂停预读取线程的读取,并响应操作系统从磁盘中读取数据的请求。
在步骤S170中,在操作系统开始启动(一般要在读取系统驱动文件之后再进行)之后,继续利用所述预读取线程读取所述预读取数据,即,在操作系统启动后从内存中读取所述预读取数据的同时,预读取线程并发地继续读取所述预读取数据。预读取线程在系统底层操作,不需要解析数据结构,即使在操作系统存在读取阻塞的情况下,预读取线程仍然可以正常读取数据。操作系统在读取文件系统元数据和文件碎片数据时,会将请求和偏移分散着一次一次读取,速度非常慢,而根据本发明的方案,预读取线程可以在底层将要读取的数据合并为一个数据块,从磁盘中一次性地(或者用很少的次数)将数据读取出来。
根据本发明的实施例,在上述步骤S170中,利用预读取线程读取所述预读取数据的步骤可以包括:在小于或等于预先设置的读取时间间隔的情况下,利用至少两个读取请求按照磁盘排序和磁盘偏移同时读取至少两个文件;以及在大于预先设置的读取时间间隔的情况下,利用至少两个读取请求按照操作系统启动时处理文件的时间顺序先后读取至少两个文件。
在现有技术方法中,例如微软公司的操作系统Windows XP,采用磁盘请求队列的方式读取数据,往往会存在上千个请求排队,此时,如果系统的主线程发出请求,就会根据其偏移排在适当的位置,往往都是在队尾。根据本发明的方案,尽量将系统要读取的数据利用预读取线程提前读取并缓存到内存中,并采取上述方式避免队列阻塞。即,在小于或等于预先设置的读取时间间隔的情况下,利用至少两个读取请求按照磁盘排序和磁盘偏移同时读取至少两个文件,此时系统时间间隔很短,无需考虑时间顺序。而在大于预先设置的读取时间间隔的情况下,利用至少两个读取请求按照操作系统启动时处理文件的时间顺序先后读取至少两个文件,这主要是按照系统初始化时处理文件的顺序来进行读取。
可选地,所述预先设置的时间间隔可以根据实际需要来选取,一个示例可以是200毫秒。在预先设置的时间间隔是200毫秒的情况下,如果第一毫秒访问文件A,第二毫秒访问文件B,则可以一起读出这至少两个文件;而如果第一秒访问文件A,第二秒访问文件B,则需要按照时间顺序进行处理。按照上述方式,在接收到请求时,可以保证只有两个请求在排队。由于请求只能一个一个地进行处理,因此磁盘队列中存在两个请求与存在上千个请求对于磁盘IO的吞吐量是一样的。
如果操作系统在启动过程中,发现所述预读取线程缓存到内存的预读取数据之外的数据中没有所需的数据,此时操作系统会向磁盘请求读取数据,在上述步骤S170中,在接收到操作系统从磁盘中读取数据的请求时,可以在预先设置的时间段内暂停所述预读取线程的读取,例如暂停30毫秒,这样,就可以保证操作系统能够及时读取到数据,而不会因磁盘队列问题被堵塞。当然,本领域技术人员可以根据实际需要来选择上述预先设置的时间段,本发明的范围不仅限于30毫秒。
可选地,根据本发明的一个实施例,利用预读取线程读取所述预读取数据的步骤还可以包括:在接收到操作系统从磁盘中读取数据的请求时,在预先设置的时间段后,在操作系统未从磁盘中获取到所述数据的情况下,利用预读取线程读取所述数据,并将所述数据缓存到内存中以供操作系统读取。仍以30毫秒的预先设置的时间段为例,在暂停所述预读取线程的读取达30毫秒之后,如果此时操作系统仍未从磁盘中获取到所需的数据,则可以利用预读取线程读取所述数据,并将所述数据缓存到内存中以供操作系统读取。
可选地,根据本发明的另一个实施例,利用预读取线程读取所述预读取数据的步骤还可以包括:在接收到操作系统从磁盘中读取数据的请求时,在预先设置的时间段后,在检测到操作系统仍在读取地址偏移连续的数据的情况下,保持暂停所述预读取线程的读取,直到检测到操作系统读取地址偏移不连续的数据,然后恢复所述预读取线程的读取。操作系统在连续读取磁盘中地址偏移连续的数据时,磁头连续移动,读取效率较高,此时,不便打断操作系统的读取,而一旦检测到操作系统读取地址偏移不连续的数据,则可以停止操作系统的读取,恢复预读取线程对于磁盘的读取。
可选地,根据本发明的又一个实施例,利用预读取线程读取所述预读取数据的步骤还可以包括:在检测到操作系统对磁盘进行自检时,暂停所述预读取线程读取所述预读取数据,直到检测到磁盘自检结束,然后恢复所述预读取线程读取所述预读取数据。如果在操作系统对磁盘进行自检时,所述预读取线程仍读取预读取数据,则可能会导致磁盘自检异常,因此此时需要暂停所述预读取线程读取所述预读取数据。
可选地,根据本发明的又一个实施例,利用预读取线程读取所述预读取数据的步骤还可以包括:在接收到操作系统从磁盘中读取数据的请求时,在检测到操作系统要从磁盘中读取的数据中的部分包括在所述预读取数据中的情况下,将读取的数据缓存到内存中以供操作系统读取;并且在预先设置的时间段后,在操作系统未从磁盘中获取到其它部分的数据的情况下,利用预读取线程读取所述其它部分的数据,并将所述其它部分的数据缓存到内存中以供操作系统读取。具体来说,操作系统要从磁盘读取的数据可能会存在部分已经包括预读取数据中、而其它部分未包括在其中的情况,此时,可以将该部分数据缓存到内存中以供操作系统读取,而在预先设置的时间段(例如如上所述的30毫秒)后,在操作系统未从磁盘中获取到其它部分的数据的情况下,就可以利用预读取线程读取所述其它部分的数据,并将所述其它部分的数据缓存到内存中以供操作系统读取。由此,完成了一个数据读取请求切割的过程。
在本发明的实施例中还提供了一种计算机操作系统启动加速的装置。图3是根据本发明的实施例的计算机操作系统启动加速的装置300的结构示意图之一。
如图3所示,该操作系统启动加速的装置300包括:读取模块310、缓存模块330和启动加载模块350,其中读取模块310用于响应于启动计算机的操作系统的引导程序的请求,创建预读取线程;所述预读取线程和计算机的操作系统并发地去读取数据,其中预读取线程从计算机的磁盘中读取用于操作系统启动的预先定义的预读取数据;缓存模块330用于将读取的预读取数据缓存到计算机的内存中;以及启动加载模块350用于响应于加载计算机的操作系统的预读取数据的请求,从计算机的内存中读取并加载预先设置的用于操作系统启动的预读取数据。
如图4所示,为本发明的实施例的操作系统启动加速的装置300的结构示意图之二,其中读取模块310包括:线程创建单元3110和读取单元3130,其中线程创建单元3110用于响应于启动计算机的操作系统的引导程序的请求,创建预读取线程;读取单元3130用于与计算机的操作系统并发地读取数据,该读取单元3130利用预读取线程开始从计算机的磁盘中读取用于操作系统启动的预先定义的预读取数据。
可选地,在本发明的实施例中,所述读取模块310在操作系统启动过程中,利用所述预读取线程继续读取所述预读取数据,并且接收到操作系统从磁盘中读取数据的请求时,在预先定义的时间段内暂停所述预读取线程的读取,并响应所述操作系统从磁盘中读取数据的请求。
可选地,在本发明的实施例中,所述装置300还包括:预读取数据生成模块,用于预读取数据预先记录操作系统启动的信息,并且基于所述信息以及用于之前一次或多次操作系统启动的预先定义的预读取数据,生成用于之后一次或多次操作系统启动的预先定义的预读取数据,并且按照系统启动时读取的优先级对所述预先定义的预读取数据中的数据进行排序,其中数据的优先级越高,该数据越早被预读取线程从计算机的磁盘中读取出来。
可选地,在本发明的实施例中,所述装置300还包括:磁盘碎片整理检测模块,用于记录计算机的磁盘进行磁盘碎片整理时磁盘中数据的移动信息;根据所述磁盘中数据的移动信息和所述预先定义的预读取数据重新生成用于之后一次或多次操作系统启动的预读取数据。。
可选地,在本发明的实施例中,其中所述操作系统启动的信息包括操作系统启动所花费的时间、操作系统从内存中读取所缓存的预读取数据的描述信息。
可选地,在本发明的实施例中,其中所述读取单元3130进一步用于在小于或等于预先定义的读取时间间隔的情况下,利用至少两个读取请求按照磁盘排序和磁盘偏移同时读取至少两个文件;以及
在大于预先定义的读取时间间隔的情况下,利用至少两个读取请求按照操作系统启动时处理文件的时间顺序先后读取至少两个文件。
可选地,在本发明的实施例中,其中所述读取单元3130在接收到操作系统从磁盘中读取数据的请求时,在预先定义的时间段后,在操作系统未从磁盘中获取到所述数据的情况下,利用预读取线程读取所述数据,并将所述数据缓存到内存中以供操作系统读取。
可选地,在本发明的实施例中,其中所述读取单元3130在接收到操作系统从磁盘中读取数据的请求时,在预先定义的时间段后,在检测到操作系统仍在读取地址偏移连续的数据的情况下,保持暂停所述预读取线程的读取,直到检测到操作系统读取地址偏移不连续的数据,然后恢复所述预读取线程的读取。
可选地,在本发明的实施例中,其中所述读取单元3130在检测到操作系统对磁盘进行自检时,暂停所述预读取线程读取所述预读取数据,直到检测到磁盘自检结束,然后恢复所述预读取线程读取所述预读取数据。
可选地,在本发明的实施例中,其中所述读取单元3130在接收到操作系统从磁盘中读取数据的请求时,在检测到操作系统要从磁盘中读取的数据中的部分包括在所述预读取数据中的情况下,将读取的数据缓存到内存中以供操作系统读取;并且在预先定义的时间段后,在操作系统未从磁盘中获取到其它部分的数据的情况下,利用预读取线程读取所述其它部分的数据,并将所述其它部分的数据缓存到内存中以供操作系统读取。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干设备的单元权利要求中,这些设备中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本发明还公开了A1、一种计算机操作系统启动加速的方法,包括:
响应于启动计算机的操作系统的引导程序的请求,创建预读取线程;
所述预读取线程和计算机的操作系统并发地去读取数据,其中预读取线程从计算机的磁盘中读取用于操作系统启动的预先定义的预读取数据;
将读取的预读取数据缓存到计算机的内存中;以及
响应于加载计算机的操作系统的预读取数据的请求,从计算机的内存中读取并加载预先设置的用于操作系统启动的预读取数据,以完成计算机操作系统的启动。
A2.根据A1所述的方法,其中,在操作系统启动过程中,利用所述预读取线程继续读取所述预读取数据,并且接收到操作系统从磁盘中读取数据的请求时,在预先定义的时间段内暂停所述预读取线程的读取,并响应所述操作系统从磁盘中读取数据的请求。
A3.根据A2所述的方法,所述方法还包括:
预先记录操作系统启动的信息,并且基于所述信息以及用于之前一次或多次操作系统启动的预先定义的预读取数据,生成用于之后一次或多次操作系统启动的预先定义的预读取数据,并且按照系统启动时读取的优先级对所述预先定义的预读取数据中的数据进行排序,其中数据的读取的优先级越高,所述数据越早被预读取线程从计算机的磁盘中读取出来。
A4.根据A3所述的方法,所述方法还包括:
记录计算机的磁盘进行磁盘碎片整理时磁盘中数据的移动信息;
根据所述磁盘中数据的移动信息和之前的所述预先定义的预读取数据重新生成用于之后一次或多次操作系统启动的预读取数据。
A5.根据A3所述的方法,其中所述操作系统启动的信息包括操作系统启动所花费的时间、操作系统从内存中读取所缓存的预读取数据的描述信息。
A6.根据A2至A5中的任一项所述的方法,其中利用预读取线程读取所述预读取数据的步骤包括:
在小于或等于预先定义的读取时间间隔的情况下,利用至少两个读取请求按照磁盘排序和磁盘偏移同时读取至少两个文件;以及
在大于预先定义的读取时间间隔的情况下,利用至少两个读取请求按照操作系统启动时处理文件的时间顺序先后读取至少两个文件。
A7.根据A2至A5中的任一项所述的方法,其中利用预读取线程读取所述预读取数据的步骤还包括:
在接收到操作系统从磁盘中读取数据的请求时,在预先定义的时间段后,在操作系统未从磁盘中获取到所述数据的情况下,利用预读取线程读取所述数据,并将所述数据缓存到内存中以供操作系统读取。
A8.根据A2至A5中的任一项所述的方法,其中利用预读取线程读取所述预读取数据的步骤还包括:
在接收到操作系统从磁盘中读取数据的请求时,在预先定义的时间段后,在检测到操作系统仍在读取地址偏移连续的数据的情况下,保持暂停所述预读取线程的读取,直到检测到操作系统读取地址偏移不连续的数据,然后恢复所述预读取线程的读取。
A9.根据A2至A5中的任一项所述的方法,其中利用预读取线程读取所述预读取数据的步骤还包括:
在检测到操作系统对磁盘进行自检时,暂停所述预读取线程读取所述预读取数据,直到检测到磁盘自检结束,然后恢复所述预读取线程读取所述预读取数据。
A10.根据A2至A5中的任一项所述的方法,其中利用预读取线程读取所述预读取数据的步骤还包括:
在接收到操作系统从磁盘中读取数据的请求时,在检测到操作系统要从磁盘中读取的数据中的部分包括在所述预读取数据中的情况下,将读取的数据缓存到内存中以供操作系统读取;并且在预先定义的时间段后,在操作系统未从磁盘中获取到其它部分的数据的情况下,利用预读取线程读取所述其它部分的数据,并将所述其它部分的数据缓存到内存中以供操作系统读取。
B11.一种计算机操作系统启动加速的装置,包括:
读取模块,用于响应于启动计算机的操作系统的引导程序的请求,创建预读取线程;所述预读取线程和计算机的操作系统并发地去读取数据,其中预读取线程从计算机的磁盘中读取用于操作系统启动的预先定义的预读取数据;
缓存模块,用于将读取的预读取数据缓存到计算机的内存中;以及
启动加载模块,用于响应于加载计算机的操作系统的预读取数据的请求,从计算机的内存中读取并加载预先设置的用于操作系统启动的预读取数据。
B12.根据B11所述的装置,其中,所述读取模块包括:
线程创建单元,用于响应于启动计算机的操作系统的引导程序的请求,创建预读取线程;
读取单元,用于与计算机的操作系统并发地读取数据,其中所述读取单元利用预读取线程开始从计算机的磁盘中读取用于操作系统启动的预先定义的预读取数据。
B13.根据B12所述的装置,其中,所述读取模块在操作系统启动过程中,利用所述预读取线程继续读取所述预读取数据,并且接收到操作系统从磁盘中读取数据的请求时,在预先定义的时间段内暂停所述预读取线程的读取,并响应所述操作系统从磁盘中读取数据的请求。
B14.根据B12所述的装置,所述装置还包括:
预读取数据生成模块,用于预读取数据预先记录操作系统启动的信息,并且基于所述信息以及用于之前一次或多次操作系统启动的预先定义的预读取数据,生成用于之后一次或多次操作系统启动的预先定义的预读取数据,并且按照系统启动时读取的优先级对所述预先定义的预读取数据中的数据进行排序,其中数据的优先级越高,该数据越早被预读取线程从计算机的磁盘中读取出来。
B15.根据B13所述的装置,所述装置还包括:
磁盘碎片整理检测模块,用于记录计算机的磁盘进行磁盘碎片整理时磁盘中数据的移动信息;根据所述磁盘中数据的移动信息和所述预先定义的预读取数据重新生成用于之后一次或多次操作系统启动的预读取数据。
B16.根据B14所述的装置,其中所述操作系统启动的信息包括操作系统启动所花费的时间、操作系统从内存中读取所缓存的预读取数据的描述信息。
B17.根据B11至B16中的任一项所述的装置,其中所述读取单元进一步用于在小于或等于预先定义的读取时间间隔的情况下,利用至少两个读取请求按照磁盘排序和磁盘偏移同时读取至少两个文件;以及
在大于预先定义的读取时间间隔的情况下,利用至少两个读取请求按照操作系统启动时处理文件的时间顺序先后读取至少两个文件。
B18.根据B11至B16中的任一项所述的装置,其中所述读取单元在接收到操作系统从磁盘中读取数据的请求时,在预先定义的时间段后,在操作系统未从磁盘中获取到所述数据的情况下,利用预读取线程读取所述数据,并将所述数据缓存到内存中以供操作系统读取。
B19.根据B11至B16中的任一项所述的装置,其中所述读取单元在接收到操作系统从磁盘中读取数据的请求时,在预先定义的时间段后,在检测到操作系统仍在读取地址偏移连续的数据的情况下,保持暂停所述预读取线程的读取,直到检测到操作系统读取地址偏移不连续的数据,然后恢复所述预读取线程的读取。
B20.根据B11至B16中的任一项所述的装置,其中所述读取单元在检测到操作系统对磁盘进行自检时,暂停所述预读取线程读取所述预读取数据,直到检测到磁盘自检结束,然后恢复所述预读取线程读取所述预读取数据。
B21.根据B11至B16中的任一项所述的装置,其中所述读取单元在接收到操作系统从磁盘中读取数据的请求时,在检测到操作系统要从磁盘中读取的数据中的部分包括在所述预读取数据中的情况下,将读取的数据缓存到内存中以供操作系统读取;并且在预先定义的时间段后,在操作系统未从磁盘中获取到其它部分的数据的情况下,利用预读取线程读取所述其它部分的数据,并将所述其它部分的数据缓存到内存中以供操作系统读取。
Claims (15)
1.一种计算机操作系统启动加速的方法,包括:
响应于启动计算机的操作系统的引导程序的请求,创建预读取线程;
所述预读取线程和计算机的操作系统并发地去读取数据,其中预读取线程从计算机的磁盘中读取用于操作系统启动的预先定义的预读取数据,所述预读取数据预先由启动文件生成;
将读取的预读取数据缓存到计算机的内存中;以及
响应于加载计算机的操作系统的预读取数据的请求,从计算机的内存中读取并加载预先设置的用于操作系统启动的预读取数据,以完成计算机操作系统的启动;
其中,在操作系统启动过程中,利用所述预读取线程继续读取所述预读取数据,并且接收到操作系统从磁盘中读取数据的请求时,在预先定义的时间段内暂停所述预读取线程的读取,并响应所述操作系统从磁盘中读取数据的请求;
所述方法还包括:
预先记录操作系统启动的信息,并且基于所述信息以及用于之前一次或多次操作系统启动的预先定义的预读取数据,生成用于之后一次或多次操作系统启动的预先定义的预读取数据,并且按照系统启动时读取的优先级对所述预先定义的预读取数据中的数据进行排序,其中数据的读取的优先级越高,所述数据越早被预读取线程从计算机的磁盘中读取出来;
其中利用预读取线程读取所述预读取数据的步骤包括:
在小于或等于预先定义的读取请求时间间隔的情况下,利用至少两个读取请求按照磁盘排序和磁盘偏移同时读取至少两个文件;以及
在大于预先定义的读取请求时间间隔的情况下,利用至少两个读取请求按照操作系统启动时处理文件的时间顺序先后读取至少两个文件。
2.根据权利要求1所述的方法,所述方法还包括:
记录计算机的磁盘进行磁盘碎片整理时磁盘中数据的移动信息;
根据所述磁盘中数据的移动信息和之前的所述预先定义的预读取数据重新生成用于之后一次或多次操作系统启动的预读取数据。
3.根据权利要求1所述的方法,其中所述操作系统启动的信息包括操作系统启动所花费的时间、操作系统从内存中读取所缓存的预读取数据的描述信息。
4.根据权利要求1至3中的任一项所述的方法,其中利用预读取线程读取所述预读取数据的步骤还包括:
在接收到操作系统从磁盘中读取数据的请求时,在预先定义的时间段后,在操作系统未从磁盘中获取到所述数据的情况下,利用预读取线程读取所述数据,并将所述数据缓存到内存中以供操作系统读取。
5.根据权利要求1至3中的任一项所述的方法,其中利用预读取线程读取所述预读取数据的步骤还包括:
在接收到操作系统从磁盘中读取数据的请求时,在预先定义的时间段后,在检测到操作系统仍在读取地址偏移连续的数据的情况下,保持暂停所述预读取线程的读取,直到检测到操作系统读取地址偏移不连续的数据,然后恢复所述预读取线程的读取。
6.根据权利要求1至3中的任一项所述的方法,其中利用预读取线程读取所述预读取数据的步骤还包括:
在检测到操作系统对磁盘进行自检时,暂停所述预读取线程读取所述预读取数据,直到检测到磁盘自检结束,然后恢复所述预读取线程读取所述预读取数据。
7.根据权利要求1至3中的任一项所述的方法,其中利用预读取线程读取所述预读取数据的步骤还包括:
在接收到操作系统从磁盘中读取数据的请求时,在检测到操作系统要从磁盘中读取的数据中的部分包括在所述预读取数据中的情况下,将读取的数据缓存到内存中以供操作系统读取;并且在预先定义的时间段后,在操作系统未从磁盘中获取到其它部分的数据的情况下,利用预读取线程读取所述其它部分的数据,并将所述其它部分的数据缓存到内存中以供操作系统读取。
8.一种计算机操作系统启动加速的装置,包括:
读取模块,用于响应于启动计算机的操作系统的引导程序的请求,创建预读取线程;所述预读取线程和计算机的操作系统并发地去读取数据,其中预读取线程从计算机的磁盘中读取用于操作系统启动的预先定义的预读取数据,所述预读取数据预先由启动文件生成;
缓存模块,用于将读取的预读取数据缓存到计算机的内存中;以及
启动加载模块,用于响应于加载计算机的操作系统的预读取数据的请求,从计算机的内存中读取并加载预先设置的用于操作系统启动的预读取数据;
其中,所述读取模块在操作系统启动过程中,利用所述预读取线程继续读取所述预读取数据,并且接收到操作系统从磁盘中读取数据的请求时,在预先定义的时间段内暂停所述预读取线程的读取,并响应所述操作系统从磁盘中读取数据的请求;
预读取数据生成模块,用于预读取数据预先记录操作系统启动的信息,并且基于所述信息以及用于之前一次或多次操作系统启动的预先定义的预读取数据,生成用于之后一次或多次操作系统启动的预先定义的预读取数据,并且按照系统启动时读取的优先级对所述预先定义的预读取数据中的数据进行排序,其中数据的优先级越高,该数据越早被预读取线程从计算机的磁盘中读取出来;
其中所述读取单元进一步用于在小于或等于预先定义的读取请求时间间隔的情况下,利用至少两个读取请求按照磁盘排序和磁盘偏移同时读取至少两个文件;以及
在大于预先定义的读取请求时间间隔的情况下,利用至少两个读取请求按照操作系统启动时处理文件的时间顺序先后读取至少两个文件。
9.根据权利要求8所述的装置,其中,所述读取模块包括:
线程创建单元,用于响应于启动计算机的操作系统的引导程序的请求,创建预读取线程;
读取单元,用于与计算机的操作系统并发地读取数据,其中所述读取单元利用预读取线程开始从计算机的磁盘中读取用于操作系统启动的预先定义的预读取数据。
10.根据权利要求8所述的装置,所述装置还包括:
磁盘碎片整理检测模块,用于记录计算机的磁盘进行磁盘碎片整理时磁盘中数据的移动信息;根据所述磁盘中数据的移动信息和所述预先定义的预读取数据重新生成用于之后一次或多次操作系统启动的预读取数据。
11.根据权利要求8所述的装置,其中操作系统启动的信息包括操作系统启动所花费的时间、操作系统从内存中读取所缓存的预读取数据的描述信息。
12.根据权利要求8至10中的任一项所述的装置,其中所述读取单元在接收到操作系统从磁盘中读取数据的请求时,在预先定义的时间段后,在操作系统未从磁盘中获取到所述数据的情况下,利用预读取线程读取所述数据,并将所述数据缓存到内存中以供操作系统读取。
13.根据权利要求8至10中的任一项所述的装置,其中所述读取单元在接收到操作系统从磁盘中读取数据的请求时,在预先定义的时间段后,在检测到操作系统仍在读取地址偏移连续的数据的情况下,保持暂停所述预读取线程的读取,直到检测到操作系统读取地址偏移不连续的数据,然后恢复所述预读取线程的读取。
14.根据权利要求8至10中的任一项所述的装置,其中所述读取单元在检测到操作系统对磁盘进行自检时,暂停所述预读取线程读取所述预读取数据,直到检测到磁盘自检结束,然后恢复所述预读取线程读取所述预读取数据。
15.根据权利要求8至10中的任一项所述的装置,其中所述读取单元在接收到操作系统从磁盘中读取数据的请求时,在检测到操作系统要从磁盘中读取的数据中的部分包括在所述预读取数据中的情况下,将读取的数据缓存到内存中以供操作系统读取;并且在预先定义的时间段后,在操作系统未从磁盘中获取到其它部分的数据的情况下,利用预读取线程读取所述其它部分的数据,并将所述其它部分的数据缓存到内存中以供操作系统读取。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410058571.0A CN103810009B (zh) | 2014-02-20 | 2014-02-20 | 一种计算机操作系统启动加速的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410058571.0A CN103810009B (zh) | 2014-02-20 | 2014-02-20 | 一种计算机操作系统启动加速的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103810009A CN103810009A (zh) | 2014-05-21 |
CN103810009B true CN103810009B (zh) | 2017-06-16 |
Family
ID=50706823
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410058571.0A Active CN103810009B (zh) | 2014-02-20 | 2014-02-20 | 一种计算机操作系统启动加速的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103810009B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110008016A (zh) * | 2019-04-15 | 2019-07-12 | 深圳市万普拉斯科技有限公司 | 匿名页面管理方法、装置、终端设备及可读存储介质 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104050001B (zh) * | 2014-06-24 | 2018-05-18 | 中科创达软件股份有限公司 | 基于Android系统的资源处理方法、装置和设备 |
CN104408209A (zh) * | 2014-12-25 | 2015-03-11 | 中科创达软件股份有限公司 | 移动操作系统启动过程中文件处理方法、装置及电子设备 |
US10042773B2 (en) * | 2015-07-28 | 2018-08-07 | Futurewei Technologies, Inc. | Advance cache allocator |
CN108228387B (zh) * | 2017-12-27 | 2019-11-05 | 中兴通讯股份有限公司 | 一种启动控制方法、电子设备以及计算机可读存储介质 |
CN108763104B (zh) * | 2018-05-23 | 2022-04-08 | 北京小米移动软件有限公司 | 预读取文件页的方法、装置及存储介质 |
CN110430264B (zh) * | 2019-08-05 | 2020-09-25 | 江苏普旭软件信息技术有限公司 | 一种云计算中的数据读取方法 |
US20210373908A1 (en) * | 2020-05-29 | 2021-12-02 | Micron Technology, Inc. | Data techniques for system boot procedures |
CN114090130A (zh) * | 2021-11-26 | 2022-02-25 | 上海星融汽车科技有限公司 | 一种预加载执行逻辑的方法和系统 |
CN116541102A (zh) * | 2023-06-27 | 2023-08-04 | 荣耀终端有限公司 | 文件预加载方法、装置、电子设备及可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5461718A (en) * | 1992-04-24 | 1995-10-24 | Digital Equipment Corporation | System for sequential read of memory stream buffer detecting page mode cycles availability fetching data into a selected FIFO, and sending data without aceessing memory |
CN101814038A (zh) * | 2010-03-23 | 2010-08-25 | 杭州顺网科技股份有限公司 | 一种加快计算机启动速度的方法 |
CN102323888A (zh) * | 2011-08-11 | 2012-01-18 | 杭州顺网科技股份有限公司 | 一种无盘计算机启动加速方法 |
CN103677900A (zh) * | 2013-11-15 | 2014-03-26 | 北京奇虎科技有限公司 | 一种计算机设备系统启动加速的方法和装置 |
-
2014
- 2014-02-20 CN CN201410058571.0A patent/CN103810009B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5461718A (en) * | 1992-04-24 | 1995-10-24 | Digital Equipment Corporation | System for sequential read of memory stream buffer detecting page mode cycles availability fetching data into a selected FIFO, and sending data without aceessing memory |
CN101814038A (zh) * | 2010-03-23 | 2010-08-25 | 杭州顺网科技股份有限公司 | 一种加快计算机启动速度的方法 |
CN102323888A (zh) * | 2011-08-11 | 2012-01-18 | 杭州顺网科技股份有限公司 | 一种无盘计算机启动加速方法 |
CN103677900A (zh) * | 2013-11-15 | 2014-03-26 | 北京奇虎科技有限公司 | 一种计算机设备系统启动加速的方法和装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110008016A (zh) * | 2019-04-15 | 2019-07-12 | 深圳市万普拉斯科技有限公司 | 匿名页面管理方法、装置、终端设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN103810009A (zh) | 2014-05-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103810009B (zh) | 一种计算机操作系统启动加速的方法和装置 | |
US9870288B2 (en) | Container-based processing method, apparatus, and system | |
US9043923B2 (en) | Virtual machine monitor (VMM) extension for time shared accelerator management and side-channel vulnerability prevention | |
US9104431B2 (en) | Deployment of a software image on multiple targets with streaming technique | |
US20080209198A1 (en) | Boot Acceleration For Computer Systems | |
US9516094B2 (en) | Event-responsive download of portions of streamed applications | |
CN102652308A (zh) | 将数据高效地载入计算系统的存储器中 | |
CN103677900B (zh) | 一种计算机设备系统启动加速的方法和装置 | |
US9424113B2 (en) | Virtual appliance deployment | |
WO2014040424A1 (en) | Method and apparatus for patching | |
US20230067317A1 (en) | Code update in system management mode | |
CN112084488A (zh) | 应用权限管理方法、装置及系统 | |
US20130159689A1 (en) | Method and apparatus for initializing embedded device | |
US20170308386A1 (en) | Disk sector based remote storage booting | |
CN103617133A (zh) | 一种Windows系统中虚拟内存压缩方法和装置 | |
KR102205899B1 (ko) | 메모리의 뱅크 충돌을 방지하기 위한 방법 및 장치 | |
US9201699B2 (en) | Decommissioning virtual appliances | |
US8813103B1 (en) | Methods and systems for handling component-object-model communications | |
CN106294209A (zh) | 一种信息处理方法及电子设备 | |
CN103927207A (zh) | 软件加速方法和装置 | |
CN105653377B (zh) | 一种异构多核系统核间通讯方法及控制器 | |
JP2009301504A (ja) | コンピュータ、記録媒体および情報処理方法 | |
EP4055475A1 (en) | Saving and restoring virtual machine states and hardware states for application content | |
CN105630532A (zh) | 电脑程序的开机启动方法 | |
CN111027055A (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 | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220715 Address after: Room 801, 8th floor, No. 104, floors 1-19, building 2, yard 6, Jiuxianqiao Road, Chaoyang District, Beijing 100015 Patentee after: BEIJING QIHOO TECHNOLOGY Co.,Ltd. Address before: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park) Patentee before: BEIJING QIHOO TECHNOLOGY Co.,Ltd. Patentee before: Qizhi software (Beijing) Co.,Ltd. |