利用预读技术引导系统的操作系统的制作方法

文档序号:6601925阅读:137来源:国知局
专利名称:利用预读技术引导系统的操作系统的制作方法
利用预读技术引导系统的操作系统
背景技术
计算机系统由硬件、固件以及软件的集合形成。通常,计算机系统包括一个或多个 处理器、存储器、外围和输入/输出(10)设备等等。多个用户应用程序利用操作系统(OS) 的系统服务且受控地在计算机系统上执行。示例操作系统包括Linux 和Windows 操作系 统。在用户能开始使用计算机系统之前,引导进程在系统加电时执行,以使作为操作 系统的主功能的OS内核能启动。在典型的系统中,在操作系统引导之前,通常执行基本输 入/输出系统(BIOS)固件以实现多种自检和其他功能,然后这将产生对OS引导加载器的 控制,该0S引导加载器是操作系统的一部分,其用于加载实现多种系统功能所需的多种内 核项,包括提供图形能力从而启动显示以允许用户登入。系统启动速度是用户在描述计算机系统有多快时考虑的因素之一。随着0S软件 的日益庞大,0S的引导时间受影响,从而导致用户不希望有的延迟。


图1是根据本发明一实施例的计算机系统的框图。图2是根据本发明一实施例的执行系统启动的总体方法的流程图。图3是根据本发明一实施例的优化进程的流程图。图4是根据本发明一实施例的优化启动进程的流程图。图5是根据本发明一实施例的系统的框图。详细描述在多个实施例中,作为0S内核一部分的系统启动管理器可包括用于实现高效OS 启动的多个子功能。在一个此类实施例中,系统启动管理器可包括预读概况收集器、概况 优化器、数据预读代理以及进程启动器。然而,应理解在不同实施例中可提供不同的功能。 此外,应理解在不同的实现中,这些子功能中的每一个可由一个或多个不同部件执行。此 外,系统启动管理器的每次执行不需要执行所有功能。因此,该概况和优化功能可保守地执 行。例如,此类功能可在系统最初加电时执行,以产生和优化要在0S引导期间执行的文件 清单。然后,这些功能不需要在系统每次加电时执行。替代地,在多个实施例中,这些功能 仅在系统更新时进一步执行。不同的更新程度可触发这些功能执行。例如,某些实现可仅 在诸如0S服务包更新之类的主更新时触发这些功能。然而,其他实现可在诸如安全更新之 类的更小更新时更常规地执行这些功能。如上所述,在多个实施例中,系统启动管理器可以是0S内核的一部分。当然,本发 明的范围不限于此方面,而且其他实现可在用户级空间内执行。为更好理解系统启动管理 器工作的上下文参照了图1,其中图1是根据本发明的实施例的计算机系统的框图。如图1所示,计算机系统10被抽象为包括多个层,包括硬件20、0S内核30以及可 利用0S内核30的多种功能在硬件20上执行的用户级软件应用程序的应用程序40。如图 1中可见,硬件20可包括处理器22,例如一个或多个多核处理器。处理器22可耦合至存储器24,如下文进一步所讨论的那样,存储器24可以是诸如动态随机存取存储器(DRAM)之 类的易失性存储器,且可起OS磁盘高速缓存的作用。此外,还可存在一个或多个输入/输 出(10)/外围设备26,包括例如显示器、网络接口、诸如旋转盘(例如硬盘驱动器)或固态 盘(SSD)之类的大容量存储器。虽然示出具有这些有限的硬件部件,但应当理解在代表性 系统中可能存在许多其他此类部件。多个操作可利用硬件20在OS内核30的控制下执行。一般而言,OS内核30可执 行系统或应用程序40所请求的多种功能。为实现根据本发明的实施例的启动,可能存在系 统启动管理器32。此外,OS内核30中可能存在多种其他管理器和控制模块。代表性示例 包括进程间通信管理器34和用于建立、终止以及操作多个进程的进程控制管理器36。此 外,中断处理程序38可用于响应从硬件或软件接收的多个中断。当然,OS内核30可包括许 多更多的此类部件。应用程序40可包括利用0S内核30执行的多个用户级应用程序。虽 然在图1中示出具有该特定示例,本发明的范围不限于此方面。如上所讨论的那样,在一个实施例中,系统启动管理器32可包括概况收集器、概 况优化器、预读代理以及进程启动器。一般而言,系统启动管理器的任务是使系统从“操 作系统内核已经启动”的状态变成“准备好全用户交互”的状态。作为示例,该0S内核启 动可包括类似于检测和挂载文件系统并启动执行背景和关键任务的多个进程的管道任务 (plumbing task)。Linux OS上的示例任务可包括启动X服务器、多种后台程序等等。现参照图2,其示出了根据本发明的实施例的执行系统启动的总体方法的流程图。 更具体地,方法100可用于执行初始获取概况运行和优化,以及在此类优化之后的附加启 动。如图所见,首先可在系统启动时确定这是否是系统的第一次加电(菱形105)。例如,该 确定可采取检查指示该系统之前是否已通电的指示器(例如作为文件系统上的标记存在, 或通过之前准备好的预读清单的缺少)的形式。如果是这样,控制进行到可执行系统启动 的框110。这样的启动可以是常规的启动,其中文件利用磁盘存取从存储器获得,并被提供 给进程启动器以执行这些文件来启动多个进程。在这样的系统启动期间,可产生文件清单 (框120)。更具体而言,该系统启动可以是其中该清单产生的获取概况集合。在一个实施 例中,该清单可包括文件标识符和与各个文件相关联的时间指示器。作为示例,时间指示器 可以是从系统启动开始的时间测量值(例如以毫秒(ms)为单位),或者它可以是提供文件 利用进程启动器启动的次序的序号。因此在任一事件中,该清单提供文件标识符以及其中 这些文件执行的次序的指示。接着,可执行概况优化以产生经优化的文件清单(框130)。如下文将进一步讨论 的那样,此类优化可旨在减少从存储器中文件的位置获得这些文件所需的寻道时间。然后 可将该经优化的文件清单存储在存储介质中(框140)。例如,可将该经优化的文件清单存 储在包括0S文件的同一存储介质中,例如诸如磁盘驱动器或固态磁盘之类的大容量存储 器。此时,该优化完成,且常规0S操作可进行。在此之后,在系统的其他加电时,可确定该系统是否已经更新(菱形150)。不同 类型的更新可导致该确定在此方面得以满足。例如,如上所述,仅诸如新服务包之类的主系 统更新会触发该确定,而在其他实施例中,更不重要的更新会触发该确定。如果确定更新已 经发生,控制返回上述框110。否者,控制进行至框160,在该处预读代理可利用经优化的文 件清单执行启动文件的预读。当给定数量的这些文件已经成功预读至0S磁盘高速缓存空
5间中时,控制进行至框170,在该处可向进程启动器传达这些文件存在。这使进程启动器直 接从OS高速缓存执行启动文件,而无需从大容量存储器请求文件(框180)。注意,框160、 170以及180的操作可重复和并行执行,直到OS内核已经完全引导。虽然在图2的实施例 中示出具有该特定实现,本发明的范围不限于此方面。现在描述系统启动管理器的部件所执行的多个操作的进一步细节。在初始系统启 动(以及在某些更新之后)时进行的概况收集运行中,概况由预读概况收集器部件收集,该 部件记录哪些文件被使用以及处于引导进程期间的哪个时刻。在由概况优化器执行的概况优化阶段,所记录的概况被转换成最优数据集以便未 来使用。具体而言,概况优化器检测系统是在固态磁盘(SSD)(无寻道时间)上运行还是具 有旋转式存储器(相当多的寻道时间)。对于“无寻道时间”情况,概况优化阶段包括根据 首次使用的概况将文件清单排序,以及检测实际使用了这些文件的哪些部分。对于SSD情 况,可产生包括表示在OS引导期间使用的文件以及指示所使用的这些文件的部分的最优 文件清单。此外,该清单可根据首次使用时间即依次排序。对于旋转存储器情形,除这些操作之外,进行了更深入的工作以应对此类旋转存 储器的物理限制——即寻道时间。在旋转情形下,来自该概况的文件清单首先按首次使用 的时间来排序。即,原始清单基于首次使用被重写成经排序的清单。然后该经排序的清单 被分割成表示引导期间的固定时间量(例如1秒)或表示从磁盘读取的固定数据量的存储 段。然而,这些存储段中的每一个的内容可通过将存储段中的文件按文件的起始扇区数排 序而被优化,以减少寻道次数。注意,在此过程中,优化器可进一步扫描整个清单,以确定在引导进程期间存取 (但可能存在于另一存储段中)的任何文件与正被优化的当前存储段中的任何文件共位。 如果是这样,此类文件可被添加至当前存储段,以减少磁盘存取的次数。虽然本发明的范围 不限于此方面,但两个文件是否被认为共位可基于它们彼此的距离而不同。在某些实施例 中,这样的共位可对应于共享同一磁道或在毗邻的扇区中。因此,虽然给定文件将与后续存 储段的文件一起被进程启动器存取,但因为它们的共位,该文件将提前被有效地预取到OS 磁盘高速缓存中。这种两段式排序的结果是,文件清单按时间以粗粒度水平排序,但在这些粗粒度 存储段内,该文件清单被排序以减少寻道时间。所得的经优化的文件清单可进一步包括有 关这些文件的某些元数据。例如,在这个经优化的文件清单数据结构(其可存储在OS文件 所存储的同一存储介质上)中,存储段之间的边界可被标记。此外,“感兴趣文件”也被特 别标记。这些“感兴趣文件”通常是要在引导期间启动的后台程序的应用程序二进制文件 (即可执行( exe)文件)。现参照图3,示出了根据本发明的一个实施例的优化过程的流程图,而且在某些实 施例中,该过程可由0S内核的系统启动管理器的概况优化器执行。如图3所示,方法200 可通过确定这些0S文件是存储在固态磁盘还是旋转存储器上开始(框210)。如果这些文 件存储在固态磁盘上,则控制可进行至框220,在该处通过按首次使用时间对这些文件排序 可执行优化(框220)。此外,所得的经优化的文件清单可包括诸如感兴趣文件的标记之类 的元数据(框225)。替代地,如果存在旋转存储器,则控制进行至框230。在框230,这些文件也可以按
6首次使用时间来排序。然而,如图3所示,可执行附加的优化操作。具体而言,这些文件可 分成存储段(框240)。如上所述的这些存储段可对应于预定的时间或数据量。然后,在各 个存储段内,可基于磁盘位置进行排序(框250)。即,这些文件可基于起始扇区号码在存储 段内重新排序。在其他实现中,该重新排序可基于文件名的字母顺序。最终,在产生经优化 的清单时,可标记感兴趣文件。此外,还可标记这些存储段之间的边界(框260)。虽然在图 3的实施例中示出具有该特定实现,本发明的范围不限于此方面。在优化之后,该清单可在常规系统启动期间使用。在启动早期,系统启动管理器激 活数据预读代理子部件。该数据预读代理从存储介质获取清单,并将该清单上的文件逐个 读入操作系统磁盘高速缓存(其可以是DRAM)中。在一个实施例中,该读取在存储于SSD 存储上时可按照多线程方式完成,而在存储于旋转存储时可按照单线程方式完成。当预读 代理遇到感兴趣文件时,它将读入磁盘高速缓存的完成操作记录在存储于存储器中的完成 清单中。每当预读代理遇到存储段的结尾时,在存储段中遇到并记录在完成清单中的感兴 趣文件被发送至进程启动器部件。在某些实现中,对于SSD情况,此类发送不会发生。该进程启动器部件具有存储在存储器中的要启动的应用程序的常规清单。虽然进 程启动器仍按照该清单中阐明的次序启动文件,但在多个实施例中,该进程启动器推迟启 动进程,直到预读代理已经传达该文件(以及该文件所在的存储段的余下部分)已完成预 读任务。通过引入该延迟,进程启动器启动进程实际将不会引起磁盘10(因为所有数据在 进程启动时就位于OS高速缓存中),这避免了这样的磁盘10干扰预读代理正在执行的经小 心排序以避免寻道的10模式。该延迟实际会提高引导性能,这是因为磁盘在最优10模式 中为与受干扰的10模式的10倍-50倍或更快。现参照图4,示出了根据本发明一实施例的经优化的启动过程的流程图。如图4所 示,方法300可通过如310处所示的叠层所示的预读代理和如370处所示的叠层所示的进 程启动器两者的大致并行执行来开始。注意,一般而言,预读代理可在进程启动器执行之前 首先开始执行以开始读取文件,然而本发明的范围不限于此方面。参照预读代理,从OS存储器(可以位于大容量存储器中)一次读取单个文件,并 将其存储在OS磁盘高速缓存中(框320)。对于在OS磁盘高速缓存中读取和存储的各个文 件,可确定该文件是感兴趣文件还是存储段结尾(框330)。如果不是,则控制返回框320。 如果该文件是感兴趣文件或代表存储段的结尾,则控制进行至框340,在该处文件指示器被 存储在完成清单中(如果该文件是感兴趣文件)。如果在框350处确定了存储段的结尾,则 控制进行至框360,在该处完成清单可(经由通信365)被发送至进程启动器。如图4中所示,进程启动器叠层通过标识要启动的下一程序开始(框375)。如上 所讨论地,这可以参照进程启动器中存在或进程启动器存取的文件清单。然而,在执行这下 一个程序之前,进程启动器可进入等待状态(框380),直到它从预读代理接收到该程序存 在于OS磁盘高速缓存空间中的传达。因此,一旦接收到该传达(假定该文件尚不存在),就 可执行该程序(框390)。虽然在图4的实施例中示出具有该具体实现,但提供预读代理与 进程启动器之间的交互和通信的其他实施例也是可能的。实施例因此提供智能排序次序, 并限制(即阻止)进程/后台程序在预读中进行启动。实施例可在许多不同的系统类型中实现。参照图5,其中示出了根据本发明一实 施例的系统的框图。如图5所示,多处理器系统500是点对点互连系统,且包括经由点对点
7互连550耦合的第一处理器570和第二处理器580。如图5所示,处理器570和580中的 每一个可以是包括第一和第二处理器核(即处理器核574a和574b以及处理器核584a和 584b)的多核处理器,尽管这些处理器中可能存在更多核。根据本发明的实施例,这些处理 器核可在启动时引导存储在大容量存储设备中的一个或多个OS。再者,根据本发明的实施 例,这些处理器可执行OS内核的一部分来执行启动文件清单的优化。仍参照图5,第一处理器570还包括存储器控制器集线器(MCH)572与点对点 (P-P)接口 576和578。类似地,第二处理器580包括MCH 582与P-P接口 586和588。如 图5中所示,MCH的572和582将这些处理器耦合至相应的存储器——即存储器532和存储 器534,它们可以是本地附连至相应处理器的主存储器(例如动态随机存取存储器(DRAM)) 的部分,而且可用作存储在引导进程期间存取的文件的OS磁盘高速缓存。第一处理器570 和第二处理器580可分别经由P-P互连552和554耦合至芯片组590。如图5中所示,芯片 组590包括P-P接口 594和598。此外,芯片组590包括通过P-P互连539将芯片组590与高性能图形引擎538耦 合的接口 592。芯片组590又经由接口 596耦合至第一总线516。如图5所示,多个输入/ 输出(I/O)设备514以及总线桥518可耦合至第一总线516,该总线桥518将第一总线516 耦合至第二总线520。多个设备可耦合至第二总线520,包括例如键盘/鼠标522、通信设备 526以及诸如磁盘驱动器之类的可包括代码530(在一个实施例中包括OS)的数据存储单元 528。当然,其他实施例可在包括代替磁盘驱动器或除磁盘驱动器之外的其中存储了 OS的 SSD的系统中实现。此外,音频1/0 524可耦合至第二总线520。实施例可以代码的形式实现,而且可存储在其上存储有可用于对系统编程以执 行这些指令的存储介质上。该存储介质可包括但不限于包括软盘、光盘、光盘只读存储 器(CD-ROM)、可重写光盘(CD-RW)以及磁光盘的任何类型的磁盘;诸如只读存储器(ROM)、 诸如动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)之类的随机存取存储器 (RAM)、可擦写可编程只读存储器(EPR0M)、闪存、电可擦写可编程只读存储器(EEPR0M)之 类的半导体器件;磁卡或光卡,或适合于存储电子指令的任何其他类型的介质。虽然已经关于有限个实施例描述了本发明,但本领域技术人员将会理解从中得出 的多种修改和变化。所附权利要求旨在覆盖落入本发明的真实精神和范围中的所有这些修 改和变化。
权利要求
一种方法,包括在计算机系统的处理器中产生在所述计算机系统的操作系统(OS)引导进程期间所存取的文件清单,以获取所述OS引导进程的概况,所述清单包括用于各个所存取文件的文件标识符和用于指示所述文件被存取的时间的时序指示器;在所述处理器中确定所述文件是从固态介质还是从旋转介质存取的;优化所述文件清单以产生经优化的文件清单以供所述计算机系统的将来OS引导进程使用,其中如果所述文件从所述固态介质存取,则所述优化依照第一优化技术,而如果所述文件从所述旋转介质存取,则所述优化依照第二优化技术;以及将所述经优化的文件清单存储在所述计算机系统的存储介质中。
2.如权利要求1所述的方法,其特征在于,还包括利用所述经优化的文件清单来执行 所述OS引导进程,以获得所存取的文件并将所存取的文件的第一部分载入OS磁盘高速缓 存中,且通知进程启动器所述第一部分装载完成,其中所述进程启动器等待直到得到执行 所述第一部分的第一文件的传达,以避免用于获得所述第一文件的输入/输出存取。
3.如权利要求2所述的方法,其特征在于,还包括用兴趣指示器在所述经优化的文件 清单中标识第一种类型的文件。
4.如权利要求3所述的方法,其特征在于,所述传达包括标识所述第一种类型的文件 存在于所述经优化的文件清单中。
5.如权利要求1所述的方法,其特征在于,所述第一优化技术包括按首次使用时间将 所存取的文件排序以形成所述经优化的文件清单。
6.如权利要求5所述的方法,其特征在于,所述第二优化技术包括首先按首次使用时 间将所存取的文件排序、将经排序的所存取的文件分到多个存储段中、再基于所述多个存 储段在所述旋转介质上的位置来将所述多个存储段的每一个排序。
7.如权利要求6所述的方法,其特征在于,还包括用兴趣标识符在所述经优化的文件清单中标识第一类型的文件;以及标识所述多个存储段之间的边界。
8.如权利要求6所述的方法,其特征在于,还包括在第一存储段中包括共位文件,其中 所述共位文件与存在于所述第一存储段中的文件位于所述旋转介质上的基本相似位置,其 中所述共位文件将与另一存储段的文件一起由所述OS引导进程从所述OS磁盘高速缓存中 存取。
9.一种系统,包括处理器,用于执行操作系统(OS)的优化例程,所述优化例程将要在所述OS的引导期间 执行的文件清单排序成经优化的清单,以减少从存储设备获取所述文件的输入/输出存取 时间;耦合至所述处理器的OS磁盘高速缓存,用于存储所述OS的至少一部分;以及所述存储设备耦合至所述OS磁盘高速缓存且用于存储所述OS,其中在OS引导期间,所 述经优化的文件清单用于将所述OS的第一部分载入所述OS磁盘高速缓存中,而且所述第 一部分的载入完成被传达至进程启动器,其中所述进程启动器等待直至接收到所述传达, 以从所述OS磁盘高速缓存存取所述第一部分的第一文件,以避免用于获得所述第一文件 的输入/输出存取。
10.如权利要求9所述的系统,其特征在于,所述优化例程用兴趣标识符在所述经优化 的文件清单中标识第一类型的文件,而且其中所述OS引导期间的所述传达包括标识所述 第一类型的文件存在于所述第一部分中。
11.如权利要求9所述的系统,其特征在于,如果所述文件从固态介质中存取,则所述 优化例程依照第一优化技术优化所述文件清单,而如果所述文件从旋转介质中存取,则所 述优化例程依照第二优化技术优化所述文件清单。
12.如权利要求11所述的系统,其特征在于,所述第一优化技术包括按首次使用时间 将所存取的文件排序以形成经优化的文件清单,而所述第二优化技术包括按首次使用时间 将所述文件排序、将所述经排序的文件分成多个存储段、以及再基于所述多个存储段中的 每一个在所述旋转介质上的位置将所述多个存储段中的每一个排序。
13.如权利要求12所述的系统,其特征在于,所述第二优化技术包括在第一存储段中 提供共位文件,其中所述共位文件与存在于所述第一存储段中的文件位于所述旋转介质上 的基本相似位置,其中所述共位文件将在所述OS引导期间与另一存储段的文件一起从所 述OS磁盘高速缓存中存取。
14.如权利要求9所述的系统,其特征在于,所述优化例程包括概况收集器、概况优化 器、预读代理以及进程启动器。
15.如权利要求14所述的系统,其特征在于,所述概况收集器和所述概况优化器将在 所述系统的初始启动时执行,之后仅在所述OS的服务包更新之后执行。
16.一种制品,包括含有指令的机器可存取存储介质,所述指令在执行时使系统从存储于大容量存储设备中的操作系统(OS)重复读取单个文件、将所述单个文件存储于OS磁盘高速缓存中、以及如果所述单个文件为第一类型则将文件指示器存储于完成 清单中,直至所述OS的预定部分已被存储到所述OS磁盘高速缓存中;当所述OS的所述预定部分已被存储时,将所述完成清单发送至进程启动器;以及标识所述进程启动器要存取的文件清单的下一文件,并从所述OS磁盘高速缓存存取 所述下一文件,其中如果所述下一文件在所述OS磁盘高速缓存中不存在,则所述进程启动 器进入等待状态,直到它接收到所述发送。
17.如权利要求16所述的制品,其特征在于,还包括指令,所述指令在执行时使所述系 统产生在OS引导期间存取的文件清单以获取所述OS引导的概况,所述清单包括各个要存 取文件的文件标识符和指示所述文件被存取的时间的时序指示器。
18.如权利要求17所述的制品,其特征在于,还包括指令,所述指令在执行时使所述 系统确定所述文件是从固态介质还是从旋转介质存取的,如果所述文件从所述固态介质存 取,则依照第一优化技术优化所述文件清单,而如果所述文件从所述旋转介质存取,则依照 第二优化技术优化所述文件清单。
19.如权利要求17所述的制品,其特征在于,所述指令包括概况收集器、概况优化器、 预读代理以及进程启动器。
20.如权利要求19所述的制品,其特征在于,所述概况收集器和所述概况优化器将在 所述系统的初始启动时执行,之后仅在所述OS的服务包更新之后执行。
全文摘要
在一个实施例中,本发明包括一种用于产生在操作系统(OS)引导进程期间存取的文件清单以获取OS引导进程的概况、并优化该文件清单以产生经优化的文件清单以供将来OS引导进程使用的方法,其中如果这些文件从固态介质存取,则该优化依照第一优化技术,而如果这些文件从旋转介质存取,则该优化依照第二优化技术。描述和要求保护了其它实施例。
文档编号G06F9/445GK101866293SQ201010165549
公开日2010年10月20日 申请日期2010年4月16日 优先权日2009年4月20日
发明者A·V·德冯 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1