计算机系统中保护硬盘驱动器的队列溢出防止设备和方法

文档序号:6601983阅读:249来源:国知局
专利名称:计算机系统中保护硬盘驱动器的队列溢出防止设备和方法
技术领域
本发明涉及计算机系统硬盘驱动器领域。更具体地讲,本发明涉及一种用于限制 磁盘输入/输出(I/O)请求的产生以防止队列溢出的设备和方法。
背景技术
近年来,安装有计算机系统的产品已迅速的从固定的形式(例如,桌面计算机)变 为移动的形式(例如,膝上计算机)。由于移动装备通常在移动期间被使用,移动装备很可 能遭受外部的碰撞(例如,振动、摔落等)。因此,需要用于保护移动装备中数据不受外部碰 撞的技术。具体地讲,在组成计算机系统的存储介质中,硬盘驱动器(HDD)对外部碰撞特别 地畏惧。因此,需要一种用于防止HDD受外部碰撞的技术。在现有技术中,HDD是在旋转涂有磁性物质的盘形铝基底(即,盘片)的同时用于 存储和读取数据的辅助存储装置。用于读取以磁形式存储的数据的磁头被安装在离盘片非 常小的距离。磁头左右移动。如果磁头在盘片的任何位置受到强烈的碰撞,磁头可能直接 与盘片接触并损坏盘片的表面。因此,磁头不能物理性地在盘片上读取和写入数据。因此, 传统的技术提供了这样一种技术,即,通过加速度计传感器感知振动或碰撞的产生,并在碰 撞传递到HDD之前将磁头移至安全区域来防止损坏。图1是示出根据传统技术用于保护计算机系统中的HDD的设备构造的框图。参照图1,HDD保护管理器100通过传感器驱动器102接收由加速度计传感器104 周期性地测量出的加速度值,并确定当前系统是处于稳定状态还是不稳定状态。如果确定 当前系统处于不稳定状态,则HDD保护管理器100请求HDD过滤器驱动器116将磁头移动 至安全区域。如果系统从不稳定状态变为稳定状态,则HDD保护管理器100请求HDD过滤 器驱动器116将磁头恢复到原来的位置。如果请求HDD过滤器驱动器116将磁头移动至安全区域,则HDD过滤器驱动器116 将请求移动磁头至安全区域的信号发送到物理硬盘驱动器124,并为磁头留出移至安全区 域的时间。此时,HDD过滤器驱动器116使用I/O请求流控制器118阻止从HDD驱动器114 发送的所有I/O请求被发送到I/O控制驱动器122。从而防止物理硬盘驱动器124的磁头 回到盘片表面并暴露于危险中。即,HDD过滤器驱动器116将所有从HDD驱动器114发送 的I/O请求存储在内部I/O队列120中,以便处于不稳定状态时不将I/O请求发送到I/O 控制驱动器122,从而保护物理硬盘驱动器124。另一方面,如果HDD保护管理器100请求 HDD过滤器驱动器116将磁头恢复到原来的位置,则HDD过滤器驱动器116能够通过I/O控 制驱动器122将存储在内部I/O队列120内的所有I/O请求发送到物理硬盘驱动器124,从 而允许物理硬盘驱动器124的磁头移到安全区域外的盘片表面之上,并执行物理的I/O。在振动或碰撞时间很短,并且这段时间内产生有限数量的磁盘I/O请求的情况 下,上述传统的HDD保护技术没有问题。但是,在振动或碰撞时间非常长,或是短时间内产 生了大量的磁盘I/O请求且数量超过了内部I/O队列120的容量的情况下,存在产生队列 溢出的问题。如果产生了队列溢出,计算机系统会进入致命的状态(例如,意外停机、停止或是蓝屏死机(Blue ScreenOf Death,BSOD))。同样,因为对超过内部I/O队列120容量 的磁盘I/O请求的后处理是不可能的,因此用户数据的损失是无法避免的。为了防止上述问题,可增加队列的大小,但通常可分配给队列的存储器的大小是 有限制的。因此,需要不同的方法解决上述问题。

发明内容
因此,本发明的一方面提供了一种用于计算机系统中的硬盘驱动器(HDD)保护的 队列溢出防止设备和方法。本发明的另一方面提供了一种用于在计算机系统中限制磁盘输入/输出(I/O)请 求的产生以防止队列溢出的设备和方法。本发明的另一方面提供了一种用于在计算机系统处于不稳定状态的情况下,在计 算机系统中限制磁盘I/O请求的产生的设备和方法。本发明的另一方面提供了一种用于在计算机系统处于不稳定状态时,在计算机系 统中在硬件侧降低整个系统的处理速度以限制磁盘I/O请求的产生的设备和方法。本发明的另一方面提供了一种用于在计算机系统处于不稳定状态时,在计算机系 统中冻结每个进程的操作或者控制优先级以限制磁盘I/O请求的产生的设备和方法。本发明的另一方面提供了一种用于在计算机系统处于不稳定状态时,在计算机系 统中控制网络吞吐量以限制磁盘I/O请求的产生的设备和方法。根据本发明的一方面,提供了一种用于计算机系统中HDD保护的队列溢出防止方 法。该方法包括测量系统的加速度信息;使用加速度信息确定系统是处于稳定状态还是 不稳定状态;当系统处于不稳定状态时限制磁盘I/O请求的产生。根据本发明的另一方面,提供了一种用于计算机系统中HDD保护的队列溢出防止 设备。该设备包括保护管理器和I/O请求控制器。保护管理器使用系统的加速度值确定 系统是处于稳定状态还是不稳定状态。I/O请求控制器在系统处于不稳定状态时限制磁盘 I/O请求的产生。


通过下面结合附图进行的详细描述,本发明的上述和其它方面、特点和优点将会 变得更加清楚,其中图1是示出根据传统技术的用于保护计算机系统中的硬盘驱动器(HDD)的构造的 框图;图2是示出根据本发明的用于保护计算机系统中的HDD的构造的框图;图3是示出根据本发明的一个示例性实施例的用于在计算机系统中限制磁盘I/O 请求的构造的框图;图4是示出根据本发明的另一个示例性实施例的用于在计算机系统中限制磁盘 I/O请求的构造的框图;图5是示出根据本发明的一个示例性实施例的用于在计算机系统中限制磁盘I/O 请求的处理的流程图;图6是示出根据本发明和传统技术的计算机系统中的磁盘I/O吞吐量的曲线图。
具体实施方式
提供参考附图的以下描述来帮助对发明的示例性实施例的充分理解,本发明是由 权利要求及其同等物限定。该描述包括多种特定细节以便于理解,但这些细节仅被视为示 意性的,因此,本领域的普通技术人员将认识到,在不脱离本发明的范围和精神的情况下, 可对在此描述的实施例进行各种改变和修改。另外,为了清楚和简明,将省略对已知功能和 结构的描述。应该理解,除非上下文另有清楚的指示,否则单数形式包括复数形式。因此,例如, 参考“元件的表面”包括参考一个或多个这样的表面。术语“基本上”表示不需要精确地达到所陈述的特征、参数或值,但在不妨碍该特 征意图提供的效果的情况下,可存在偏差或变化(包括例如本领域技术人员所知的公差、 测量误差、测量精确度限制以及其他因素)。以下描述了根据本发明的示例性实施例的当计算机系统处于不稳定状态时,用于 在计算机系统中限制磁盘输入/输出(I/O)请求的设备和方法。图2是示出根据本发明的用于保护计算机系统中的硬盘驱动器(HDD)的构造的框 图。参照图2,计算机系统包括HDD保护管理器200、传感器驱动器202、加速度计传 感器204、使用磁盘I/O的应用程序210、文件系统212、HDD驱动器214、HDD过滤器驱动器 216、I/O控制驱动器222、物理硬盘驱动器224和I/O请求控制器230。这里,HDD过滤器 控制器216包括1/0请求流控制器218和内部I/O队列220。I/O请求控制器230包括 平台硬件(platf0rmHardware,H/W)性能控制器232、进程控制器234和网络吞吐量控制器 236。HDD保护管理器200通过传感器驱动器202接收由加速度计传感器204周期性测 量的加速度值。基于加速度值,HDD保护管理器200确定当前系统是处于稳定状态还是不 稳定状态。这里,加速度计传感器204可测量X轴、Y轴和Z轴的加速度,并可测量仅X轴 和Y轴的加速度。如果确定当前系统处于不稳定状态,则HDD保护管理器200将请求移动磁头至安 全区域的信号输出到HDD过滤器驱动器216,并且根据本发明,HDD保护管理器200将指示 系统处于不稳定状态的信号输出到I/O请求流控制器230。另一方面,如果确定系统从不稳 定状态变为稳定状态,则HDD保护管理器200将请求恢复磁头至原来位置的信号输出到HDD 过滤器控制器216,并且根据本发明,HDD保护管理器200将指示系统处于稳定状态的信号 输出到I/O请求流控制器230。如果请求移动磁头至安全区域的信号从HDD保护管理器200被输入,则HDD过滤 器驱动器216通过I/O控制驱动器222将请求移动至安全区域的信号提供给物理硬盘驱动 器224。这里,HDD过滤器驱动器216使用I/O请求流控制器218阻止从HDD驱动器214 (即, 上驱动器)发送的所有I/O请求被发送到I/O控制驱动器222。BP,HDD过滤器控制器216 将从HDD驱动器214发送的所有I/O请求存储在内部I/O队列220中,从而在处于不稳定状 态时,I/O请求不被发送到I/O控制驱动器222。这里,I/O请求在使用磁盘I/O的应用程 序210中被产生,并通过文件系统212和HDD驱动器214被发送到HDD过滤器驱动器216。
另外,根据本发明,HDD过滤器驱动器216确定内部I/O队列220的状态信息并将 状态信息提供给I/O请求控制器230。这里,内部I/O队列220的状态信息包括内部I/O队 列220的大小和当前使用率。这是为了 I/O请求控制器230根据内部I/O队列220的状态 信息来选择和使用适于限制I/O请求产生的技术。另一方面,如果请求恢复磁头至原来位置的信号从HDD保护管理器200被输入,则 HDD过滤器驱动器216将通过I/O控制驱动器222将存储在内部I/O队列220中的所有1/ 0请求发送到物理硬盘驱动器224。如果请求移动磁头至安全区域的信号通过I/O控制驱动器222被输入,则物理硬 盘驱动器224将磁头移动至安全区域。如果I/O请求通过I/O控制驱动器222被输入,则 物理硬盘驱动器224将磁头移动至靠近盘片表面的位置,然后执行与输入的I/O请求相应 的物理I/O。根据本发明,当系统处于不稳定状态时I/O请求控制器230限制I/O请求的产生。 即,I/O请求控制器230从HDD保护管理器200接收关于系统是处于稳定状态还是不稳定状 态的信息,并且当系统处于不稳定状态时,I/O请求控制器230通过平台H/W性能控制、进 程控制或网络吞吐量控制来限制系统中的I/O请求的产生。这里,I/O请求控制器230在 限制I/O请求的产生之前监控并存储系统的状态信息,并且如果系统由不稳定状态变为稳 定状态,则I/O请求控制器230按照存储的状态信息的顺序恢复系统。这里,由I/O请求控 制器230监控的系统状态信息是关于状态或值的信息,如下所述,I/O请求控制器230通过 该状态或值控制或改变磁盘I/O请求的产生的限制。当系统处于不稳定状态时,I/O请求控制器230使用平台硬件性能控制器232、进 程控制器234和网络吞吐量控制器236限制I/O请求的产生。如果系统变为不稳定状态,平台H/W性能控制器232通过监控和改变平台H/W的 设置来获得并存储当前系统的H/W状态信息。这样做,平台H/W性能控制器232降低了系统 的整个硬件性能并限制了 I/O请求的产生。这里,平台H/W是指处理器和平台芯片组(或 是南桥芯片组)。即,平台H/W性能控制器232使用改变系统中的所有处理器(例如,单处 理器、多处理器和多核处理器)的性能状态(P-state)的技术、改变处理器的点播时钟调制 占空比(on-demand clock modulation duty-cycles)的技术或者执行平台芯片组热量缩 减(thermal throttling)的技术来改变平台H/W的设置。这样做,平台H/W性能控制器 232限制了 1/0请求的产生。这里,处理器的P-state在高级配置与电源接口(Advanced Configuration and Power Interface,ACPI)标准中被描述,该标准是公知的,不需要在这 里详细讨论。P-state以‘Px,的形式被标记。在存在‘P0,至‘Pn,的情况下,‘P0,表示最大性 能容量,‘Pn’表示最小性能容量。即,‘Px’表示随着‘X’值的增长性能降低。如图3所示,为改变平台H/W的设置,平台H/W性能控制器300使用系统管理中断 (System Management Interrupt, SMI#) 312,ACPI 驱动器 314、处理器驱动器 316、芯片组驱 动器318和单独定制的驱动器320与基本输入/输出系统(BIOS) 330、处理器340、平台芯片 组350接口连接。之后,如果系统从不稳定状态变为稳定状态,则平台H/W性能控制器300 根据存储的状态信息恢复系统H/W值。但是,当系统处于不稳定状态时,平台H/W性能控制器300根据队列状态信息使用三种技术中的每一个,或者根据预设方案,平台H/W性能控制器232独立的使用所述三种技 术中的一种技术或者使用所述三种技术中的一个或多个技术的组合。
如果系统变为不稳定状态,则进程控制器234通过监控和改变进程的执行的状态 来获取并存储当前系统的所有进程的磁盘I/O请求量。这样做,当系统处于不稳定状态时, 进程控制器234限制来自各自进程的磁盘I/O请求。即,当系统处于不稳定状态时,进程控 制器234使用将每个进程变为软件冻结(software-frozen)状态的技术或是降低每个进程 的操作系统(OS)调度优先级的技术来限制来自磁盘I/O请求。这里,冻结状态表示一种 进程被挂起而不执行更进一步的操作或命令的状态。在冻结状态的过程中,磁盘I/O量降 为0。此外,如果进程的调度优先级被降低,则磁盘I/O量也会减少。这是因为OS在同时 执行多个进程时给具有较高调度优先级的进程使用系统的处理器的机会。这里,如图4所 示,通过用系统提供的应用程序接口(API)来与进程管理器416接口连接,进程控制器400 能够获得在当前系统中执行的所有进程422的磁盘I/O信息,并能够冻结进程422中的一 个或多个或者改变它们的优先级。这里,API 410可以是系统调用、内核提供的本地API、 Winpcap或WinSock内核(WSK)。如果系统从不稳定状态变为稳定状态,则进程控制器400 应该恢复冻结的进程并将进程的优先级恢复到它们原来的水平。这里,当系统处于不稳定状态时,进程控制器400能够根据队列状态信息使用冻 结进程的技术和改变优先级的技术中的所有技术或是仅一种技术。同样,进程控制器400 可根据队列状态信息、预期的碰撞量和预期碰撞持续时间来使用交替地使用两种技术的方 法。网络吞吐量控制器236(图2)监控当前系统的网络使用率、关于传输控制协议/ 因特网协议(TCP/IP)协议的发送/接收缓冲器窗的口大小的信息、网络适配器信息和网络 使用率与磁盘I/O请求之间的相关性。如果系统变为不稳定状态,则网络吞吐量控制器236 存储监控的信息,控制网络吞吐量,并限制由网络使用引起的磁盘I/O请求的产生。网络吞 吐量控制器236能够使用控制TCP/IP协议的发送/接收缓冲器的窗口大小的技术、改变 最大传输单元(MTU)的技术和改变网络适配器H/W的链路速度的技术来控制网络吞吐量。 此时,如图4所示,网络吞吐量控制器402能够使用由系统提供的API 410与TCP/IP协议 426接口连接,并改变发送/接收缓冲器的窗口大小和MTU大小,并能够与网络适配器驱动 器418接口连接并改变网络适配器H/W 420的链路速度。这里,API 410可以是系统调用、 内核提供的本地API、WinpCap或WinSock内核(WSK)。如果系统从不稳定状态变为稳定状 态,则网络吞吐量控制器402根据存储的监控信息将当前系统的网络状态恢复到原来的水 平。这里,当系统处于不稳定状态时,根据队列状态信息,网络吞吐量控制器402可独 立的使用窗口大小改变技术、MTU改变技术和链路速度改变技术中的至少一种,或者使用一 种或多种上述技术的组合。I/O请求控制器230 (图2)可使用分别用于平台H/W性能控制器232、进程控制器 234和网络吞吐量控制器236中的所有技术来限制I/O请求的产生,并可使用上述所有技术 中的一种或多种技术限制I/O请求的产生。此时,I/O请求控制器230能够根据由HDD过 滤器驱动器216提供的队列的状态信息来选择合适的技术。例如,作为识别队列的状态信 息的结果,如果队列的使用率高于阈值,则I/O请求控制器230能够使用多种技术来增加限制I/O请求的产生的强度,如果队列的使用率低于阈值,I/O请求控制器230能够使用一种 或两种技术来降低限制I/O请求的产生的强度。上述描述是用于具有单独I/O请求控制器230的构造,其中I/O请求控制器230 控制I/O请求的产生并通过接口与HDD保护管理器200进行操作。尽管I/O控制器是单独 示出,但是本领域的技术人员应该理解,I/O请求控制器230能够被包括在HDD保护管理器 200 内。图5是示出根据本发明的示例性实施例的用于在计算机系统中限制磁盘I/O请求 的过程的流程图。参照图5,在步骤501,计算机系统监控系统的信息。例如,系统监控平台H/W的状 态信息、关于进程的状态信息和关于网络的状态信息。在步骤503,系统确定当前系统是处于稳定状态还是不稳定状态。这里,系统使用 通过加速度计传感器周期性测量的加速度值来确定当前系统是处于稳定状态还是可能经 受碰撞引起的不稳定状态。如果当前系统处于稳定状态,则系统返回到步骤501并继续地 监控系统的状态信息。另一方面,如果当前系统处于不稳定的状态,则在步骤505,系统存储监控的系统 的状态信息,并在步骤507通过平台H/W性能控制、进程控制或网络吞吐量控制来限制系统 内的磁盘I/O请求的产生。在步骤509,系统确定当前系统是处于稳定状态还是不稳定状态。当系统仍旧处于 不稳定状态时,系统返回步骤507并继续限制磁盘I/O请求的产生。另一方面,如果当前系统处于稳定状态,则系统根据存储的系统的状态信息将系 统恢复到原状。系统返回到步骤501监控系统信息。图6示出根据本发明和传统技术的计算机系统中的磁盘I/O吞吐量。这里,横轴 代表时间,纵轴代表每秒的磁盘I/O吞吐量。‘G1’代表传统计算机系统的磁盘I/O吞吐量, ‘G2’,‘G3’和‘G4’代表根据本发明的计算机系统的磁盘I/O吞吐量。参照图6,即使处于不稳定状态,传统的计算机系统也会连续的产生磁盘I/O请 求,因此造成HDD过滤器驱动器中的队列溢出的现象。与此不同,根据本发明的计算机系统 在碰撞开始时间点(600)与碰撞结束时间点(602)之间延迟或限制磁盘I/O请求的产生, 以在不稳定状态期间不产生磁盘I/O请求或产生低速率的磁盘I/O请求。这样做,计算机 系统能够防止HDD过滤器驱动器中的队列溢出的现象。如上所述,在本发明的示例性实施例中,存在这样的优点能够以较少的成本对传 统的系统进行简单的应用,即使在故障的情况下,恢复也较容易并且危险小,这是因为设置 为在系统启动将系统恢复到原始状态而不用永久地改变系统设置。本发明的示例性实施例具有在计算机系统处于不稳定状态时限制磁盘I/O请求 的产生的效果,因而能够在不稳定状态期间防止存储磁盘I/O请求的队列的溢出,并且,通 过这样,能够保持系统的稳定性并防止用户数据的丢失或损坏。根据本发明,在一个或多个示出的控制器上可操作的上述方法能够被实现为硬件 或软件或能够存储在记录介质(例如,CD ROM、RAM、软盘、硬盘或磁光盘)中或通过网络下 载(即,计算机程序能够由通过网络(例如,因特网、POTS)电子地下载的外部资源提供)的 计算机代码,从而这里描述的方法能够实现为使用计算机或专用处理器的软件,或实现为可编程的或专用硬件(例如,ASIC或FPGA)。如本领域技术人员所理解的,计算机、处理器或可编程的硬件包括可存储或接收软件或计算机代码的存储元件(如,RAM、ROM、闪存),当 被计算机、处理器或硬件工具访问和执行时,所述软件或代码实现在这里所描述的处理方 法。当被载入通用计算机时代码将通用计算机转变为部分专用于这里所示的处理的专用计 算机。另外,计算机、处理器或专用硬件可包含单处理器、多处理器和多核处理器中的至少 一个。 尽管已经参照特定的优选实施例显示和描述了本发明,但是本领域的技术人员应 该理解,在不脱离权利要求所限定的本发明的精神和范围的情况下,可以对其进行形式和 细节上的各种改变。
权利要求
一种用于计算机系统中的硬盘驱动器保护的队列溢出防止方法,所述方法包括测量计算机系统的加速度信息;使用测量的加速度信息确定计算机系统是处于稳定状态还是不稳定状态;在计算机系统处于不稳定状态时限制磁盘I/O请求的产生。
2.如权利要求1所述方法,其中,计算机系统使用平台硬件性能的控制、运行在计算机 系统中的进程的控制和网络吞吐量的控制中的至少一个来限制磁盘I/O请求的产生。
3.如权利要求2所述方法,其中,使用处理器状态改变、点播时钟调制占空比改变和平 台芯片组热量缩减中的至少一个来控制平台硬件性能。
4.如权利要求2所述方法,其中,使用进程挂起和进程调度优先级的改变中的至少一 个来控制运行在计算机系统中的进程。
5.如权利要求2所述方法,其中,使用TCP/IP协议的发送/接收缓冲器的窗口大小的 改变、最大传输单元的大小的改变和网络适配器的链路速度的改变中的 至少一个来控制网 络吞吐量。
6.如权利要求2所述方法,还包括将计算机系统处于不稳定状态时产生的磁盘I/O请求存储在队列中;识别队列的使用率;根据队列的使用率选择用于限制磁盘I/O请求产生的技术。
7.如权利要求1所述方法,还包括监控计算机系统的状态信息;当计算机系统处于不稳定状态时,存储监控的计算机系统的状态信息;在不稳定状态结束时,使用存储的计算机系统的状态信息恢复计算机系统。
8.一种用于计算机系统中的硬盘驱动器保护的队列溢出防止设备,所述设备包括保护管理器,用于使用计算机系统的加速度信息来确定计算机系统是处于稳定状态还 是不稳定状态;输入/输出请求控制器,用于当计算机系统处于不稳定状态时,限制磁盘I/O请求的产生。
9.如权利要求8所述设备,其中,I/O请求控制器使用平台硬件性能的控制、运行在计 算机系统中的进程的控制和网络吞吐量的控制中的至少一个来限制磁盘I/O请求的产生。
10.如权利要求9所述设备,其中,I/O请求控制器使用处理器状态改变、点播时钟调制 占空比改变和平台芯片组热量缩减中的至少一个来控制平台硬件性能。
11.如权利要求9所述设备,其中,I/O请求控制器使用进程挂起和进程调度优先级的 改变中的至少一个来控制运行在计算机系统中的进程。
12.如权利要求9所述设备,其中,I/O请求控制器使用TCP/IP协议的发送/接收缓冲 器的窗口大小的改变、最大传输单元的大小的改变和网络适配器的链路速度的改变中的至 少一个来控制网络吞吐量。
13.如权利要求9所述设备,还包括队列,用于存储当计算机系统处于不稳定状态时 产生的磁盘I/O请求, 其中,I/O请求控制器根据队列的使用率选择用于限制磁盘I/O请求产生的技术。
14.如权利要求8所述设备,其中,I/O请求控制器监控计算机系统的状态信息,当计算机系统处于不稳定状态时,存储当前监控的计算机系统的状态信息;在不稳定状态结束时,使用存储的计算机系统的状态信息恢复计算机系统。
15.如权利要求8所述设备,其中,I/O请求控制器包括 平台硬件性能控制器,用于控制平台硬件性能; 进程控制器,用于控制运行在计算机系统中的进程; 网络吞吐量控制器,用于控制网络吞吐量。
全文摘要
计算机系统中保护硬盘驱动器的队列溢出防止设备和方法。该队列溢出防止方法包括测量计算机系统的加速度信息;使用加速度信息确定计算机系统是处于稳定状态还是不稳定状态;在计算机系统处于不稳定状态时,限制磁盘输入/输出(I/O)请求的产生。
文档编号G06F12/16GK101876950SQ20101016697
公开日2010年11月3日 申请日期2010年4月27日 优先权日2009年4月28日
发明者金范根 申请人:三星电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1