辅助计算机系统中多个管理程序的联合操作的系统和方法_3

文档序号:9750622阅读:来源:国知局
理程序执行控制器引擎260结合组成处理程 序210的其他引擎激活的和去激活持续管理程序110a的进程的过程的更详细的讨论。该过 程包括以下动作:
[0047] a.保留处理器的先前状态(即保护环-1的管理程序模式中的管理程序110b之一的 代码的执行的最后时刻);
[0048] b.在不同的模式例如监管员程序模式(保护环0)中执行持续管理程序110a的代 码;
[0049] c.确定企图执行任何管理程序110b的代码;
[0050] d.恢复处理器的先前状态用于由管理程序110b正确处理用于虚拟机的激活的指 令;
[0051] e.在管理程序ll〇b的代码的执行之前,从管理程序模式退出并且在监管员程序模 式下转移对的管理程序ll〇a的最后的指令的控制。该操作确保持续管理程序110a被退出管 理程序模式并且进入监管员程序模式,从而当管理程序ll〇b在管理程序模式下执行时管理 程序ll〇b意识不到持续管理程序110a的存在。
[0052]因此,因为继续执行已经在不同的保护环的权限内实施(通常,它会是对应于内核 的优先权级别的环〇),所以持续管理程序110a的线程的下一个指令已经在管理程序模式之 外执行,。
[0053]图3示出了根据一个实施例的操作的过程。在310,处理程序210(使用命令检测器 250和参数改变监控器252)跟踪系统的状态信息220。如果在320管理程序执行检测器引擎 256确定系统的状态已经改变(例如页目录被覆写或者vmrun命令已经运行),那么在330持 续管理程序ll〇a的执行由持续管理程序执行控制器260停止。
[0054]在相关的实施例中,在320由管理程序执行检测器引擎256实施附加的检查,即确 定CR3注册表的重新加载被从中调用的处理器模式。如果注册表重新加载被从内核模式调 用,则被认为仅是上下文的切换,并且如果是从用户模式调用,则有可能另外检查这是例如 来自虚拟机的进程的调用。这样的检测允许系统最小化在停止持续管理程序ll〇a的情况下 "错误的激活"的数目,以便避免无绝对的必要而停止它。
[0055]在340,管理程序执行监测器引擎256针对恢复持续管理程序110a的适合性进行检 查。该动作可以响应于以下一个或多个条件:
[0056] ?由调度程序120分配用于管理程序110b之一的执行的执行时间量到期;
[0057] ?系统120的状态的改变已经发生;
[0058] ?处理程序210跟踪管理程序110b的执行并且接收关于其操作结束的通知(例如, 通过由管理程序的开发者提供的正式的应用程序可编程接口或者API)。
[0059] 如果在350确定了管理程序110b之一已经完成执行(通过检查条件诸如以上标识 的那些),那么在360持续管理程序110a由持续管理程序执行控制器260恢复。在相关实施例 中,存在多个不同的管理程序ll〇b的情况下,在紧接着第一管理程序110b的执行完成之后、 持续管理程序ll〇a恢复之前,持续管理程序110a在恢复执行前等待所有管理程序110b完成 它们的执行。
[0060] 在一个实施例中,持续管理程序110a的操作的恢复使用定时器过程来实施(例如, 在Windows 0S中使用KeSetTimer调用来进行)。例如,一旦指定的时间到期(当执行时间量 已经到期),那么调度程序120确定哪个代码必须被执行(例如,持续管理程序110a的开始)。 定时器可以被重新设置以便在下一次管理程序ll〇b完成其操作并且持续管理程序110a可 以启动时允许后续的启动。
[0061 ]持续管理程序110a何时应该停止的另一个示例与系统的状态信息220中的电源相 关的改变有关,例如,当将要进入"休眠"模式时。为此,跟踪与电源相关的函数(Windows 0S 中的电源管理事件回调函数)或系统变量(Windows 0S中的SYSTEM_POWER_STATE)。
[0062] 需要停止管理程序110a的另一个示例是也导致处理器的状态的显著改变的一段 代码的启动,例如,仿真器(诸如QEMU(快速仿真器)和其他类似的程序,包括在反病毒应用 程序中使用的那些)。但是如果仿真器和持续管理程序ll〇a包括在反病毒产品中,那么在仿 真器的操作之后,后者可以自动启动持续管理程序ll〇a。
[0063] 图4为更详细地示出了计算机系统400的图示,其被制成具有根据本文所描述的发 明的方面的实现的改善功能的专用机器。计算机系统400可以包括诸如个人计算机402的计 算设备。个人计算机402包括一个或多个处理单元404、系统存储器406、视频接口 408、输出 外围设备接口 410、网络接口 412、用户输入接口 414、可移除存储器接口 416和非可移除存储 器接口 418以及耦合到各个组件的系统总线或高速通信通道420。在各个实施例中,处理单 元404可以具有多个逻辑核,其能够处理存储在计算机可读介质诸如系统存储器406或附接 到可移除存储器接口 416和非可移除存储器接口 418的存储器上的信息。计算机402系统存 储器406可以包括诸如只读存储器(ROM)的非易失性存储器422或者诸如随机存取存储器 (1^1〇的易失性存储器424。1?01 422可以包括级别输入/输出系统(8105)426以帮助与计算 机402的其他部分通信。RAM 424可以存储各种软件应用程序部分诸如操作系统428、应用程 序430和其他程序引擎432。此外,RAM 424可以存储诸如程序或应用程序数据434的其他信 息。在各个实施例中,RAM 424存储要求低延时和高效率访问的信息诸如程序和对其进行操 纵或操作的数据。在各个实施例中,RAM 424包括双倍数据速率(DDR)存储器、错误纠正存储 器(ECC)或具有改变的延迟和配置的其他存储器技术诸如RAMBUS或DDR2和DDR3。这样,在各 个实施例中,系统存储器406可以存储输入数据存储、访问证书数据存储、操作存储器数据 存储、指令集数据存储、分析结果数据存储和操作存储器数据存储。此外,在各个实施例中, 处理单元404可以配置为通过要求在对信息的访问被授予之前访问证书来执行限制对上述 数据存储的访问的指令。
[0064] 可移除存储器接口 416和非可移除存储器接口 418可以将计算机402耦合到硬盘驱 动器436诸如SSD或旋转硬盘驱动器。这些硬盘驱动器436可以提供针对各种软件应用程序 的进一步存储,诸如操作系统438、应用程序440和其他程序引擎442。此外,硬盘驱动器436 可以存储诸如程序或应用程序数据444的其他信息。在各个实施例中,硬盘驱动器436存储 不要求如在其他存储介质中的同样的低延迟的信息。此外,操作系统438、应用程序440数 据、程序引擎442和程序或应用程序数据444可以是如在上述的各个实施例中的RAM 424中 存储的同样的信息或者它可以是RAM 424存储的数据的不同的数据可能衍生。
[0065]此外,可移除非易失性存储器接口 416可以耦合计算机402到利用磁介质诸如软盘 448,Iomega?Zip or Jazz的磁便携硬盘驱动器446,或耦合到利用诸如Blu-Ray?,DVD-R/RW,CD-R/RW以及其他类似格式的用于计算机可读介质的存储的光盘驱动器450。另外其 他实施例利用SSD或封装在便携外壳54中的旋转硬盘以增加可以移除存储器的容量。
[0066] 计算机402可以利用网络接口 412通过本地局域网(LAN)458或广域网(WAN)460和 一个或多个远程计算机456通信。网络接口 412可以利用网络接口卡(NIC)或其他接口诸如 调制解调器462以使能通信。调制解调器462可以使能通过电话线、同轴线、光纤、电力线或 无线的通信。远程计算机456可以包含类似的硬件和软件配置或者可以具有存储器464,其 包含可以提供附加的计算机可读指令给计算机402的远程应用程序466。在各个实施例中, 远程计算机存储器464可以用于存储信息诸如识别的文件信息,其可以随后下载到本地系 统存储器406。此外,在各个实施例中,远程计算机456可以是应用程序服务器、管理服务器、 客户端计算机或网络装置。
[0067]用户可以使用连接到用户输入接口 414输入设备诸如鼠标468和键盘470来输入信 息到计算机402。此外,输入设备可以是触控板、指纹扫描仪、操纵杆、条形码扫描仪、媒体扫 描仪等。视频接口 408可以提供可视信息到诸如监控器的显示器472。视频接口 408可以是嵌 入式接口或者可以是分离式接口。而且,为了增加计算机402操作中的灵活性,计算机可以 利用多个视频接口 408、网络接口 412以及可移除接口 416和非可移除接口 418。而且,各个实 施例利用若干监视器472和若干视频接口 408改变计算机402的性能和容量。计算机402中可 以包括其他计算机接口,例如输出外围接口410。该接口可以耦合至打印机474或扬声器476 或其他给计算机402提供附加功能的外围接口。
[0068] 计算机402的不同的可替代的配置和实现方式都落入本发明的精神。这些改变可 以包括但不限于
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1