Share via


牛逼的Windows 7: Service Controller and Background Processing

各位读者牛年好,希望每个人都已经开始了一个牛逼的牛年。相信很多报道已经确认了Windows 7在性能上的牛逼性,但是,这是为什么呢?C9采访了NT核心组的大牛Chittur Subbaraman解释服务控制器和后台进程方面对性能提升方面的贡献:

在任何时候,Windows都在执行一大坨代码,其中有些是作为服务在后台执行。在Windows 7之前的系统中,有些服务甚至在系统配置不支持其运行时也会自动起动。这会带来四重潜在的影响:

  1. Windows启动速度会因为开动服务而降低
  2. 用户会觉得系统变卡,因为服务占用了处理器和内存资源
  3. Windows关机可能需要非常长的时间,因为服务们在忙着释放资源和自我了断
  4. 在代码级被安全攻破的攻击面积加大(尽管自从Vista开始,大多数服务使用收限权限运行)

Chittur Subbaraman和他的团队沉思良久,找到了重构Windows 7的服务控制器的方法。他们也标明了不需要自动启动的服务(比如TablePC Pen服务不需要在桌面机上默认启动)。不过他们做的要比简单的把服务弄成手动启动要多得多。他们为服务开发者添加了trigger pattern特性:服务们可以被trigger启动和关闭——这意味着开发者可以编程指定服务何时需要开关,这让Windows更动态的控制服务,使得任何时刻都只需要运行更小坨的代码。Service Controller监视触发器时间并做出响应,而不是系统启动时就猛开所有自动启动的服务。更少的后台服务意味着更多的资源给前台应用,更快的开机和关机速度。

Chittur Subbaraman: Inside Windows 7 - Service Controller and Background Processing