预计阅读本页时间:-
5.8 电源管理
第一代通用电子计算机ENIAC具有180 00个电子管并且消耗140 000瓦的电力。结果,它迅速积累起非同一般的电费账单。晶体管发明后,电力的使用量戏剧性地下降,并且计算机行业失去了在电力需求方面的兴趣。然而,如今电源管理由于若干原因又像过去一样成为焦点,并且操作系统在这里扮演着重要的角色。
我们从桌面PC开始讨论。桌面PC通常具有200瓦的电源(其效率一般是85%,15%进来的能量损失为热量)。如果全世界l亿台这样的机器同时开机,合起来它们要用掉20 000兆瓦的电力。这是20座中等规模的核电站的总产出。如果电力需求能够削减一半,我们就可以削减10座核电站。从环保的角度看,削减10座核电站(或等价数目的矿物燃料电站)是一个巨大的胜利,非常值得追求。
另一个要着重考虑电源的场合是电池供电的计算机,包括笔记本电脑、掌上机以及Web便笺簿等。问题的核心是电池不能保存足够的电荷以持续非常长的时间,至多也就是几个小时。此外,尽管电池公司、计算机公司和消费性电子产品公司进行了巨大的研究努力,但进展仍然缓慢。对于一个已经习惯于每18个月性能翻一番(摩尔定律)的产业来说,毫无进展就像是违背了物理定律,但这就是现状。因此,使计算机使用较少的能量因而现有的电池能够持续更长的时间就高悬在每个人的议事日程之上。操作系统在这里扮演着主要的角色,我们将在下面看到这一点。
广告:个人专属 VPN,独立 IP,无限流量,多机房切换,还可以屏蔽广告和恶意软件,每月最低仅 5 美元
在最低的层次,硬件厂商试图使他们的电子装置具有更高的能量效率。使用的技术包括减少晶体管的尺寸、利用动态电压调节、使用低摆幅并隔热的总线以及类似的技术。这些内容超出了本书的范围,感兴趣的读者可以在Venkatachalam和Franz(2005)的论文中找到很好的综述。
存在两种减少能量消耗的一般方法。第一种方法是当计算机的某些部件(主要是I/O设备)不用的时候由操作系统关闭它们,因为关闭的设备使用的能量很少或者不使用能量。第二种方法是应用程序使用较少的能量,这样为了延长电池时间可能会降低用户体验的质量。我们将依次看一看这些方法,但是首先就电源使用方面谈一谈硬件设计。
5.8.1 硬件问题
电池一般分为两种类型:一次性使用的和可再充电的。一次性使用的电池(AAA、AA与D电池)可以用来运转掌上设备,但是没有足够的能量为具有大面积发光屏幕的笔记本电脑供电。相反,可再充电的电池能够存储足够的能量为笔记本电脑供电几个小时。在可再充电的电池中,镍镉电池曾经占据主导地位,但是它们后来让位给了镍氢电池,镍氢电池持续的时间更长并且当它们最后被抛弃时不如镍镉电池污染环境那么严重。锂电池更好一些,并且不需要首先完全耗尽就可以再充电,但是它们的容量同样非常有限。
大多数计算机厂商对于电池节约采取的一般措施是将CPU、内存以及I/O设备设计成具有多种状态:工作、睡眠、休眠和关闭。要使用设备,它必须处于工作状态。当设备在短时间内暂时不使用时,可以将其置于睡眠状态,这样可以减少能量消耗。当设备在一个较长的时间间隔内不使用时,可以将其置于休眠状态,这样可以进一步减少能量消耗。这里的权衡是,使一个设备脱离休眠状态常常比使一个设备脱离睡眠状态花费更多的时间和能量。最后,当一个设备关闭时,它什么事情也不做并且也不消耗电能。并非所有的设备都具有这些状态,但是当它们具有这些状态时,应该由操作系统在正确的时机管理状态的变迁。
某些计算机具有两个甚至三个电源按钮。这些按钮之一可以将整个计算机置于睡眠状态,通过键入一个字符或者移动鼠标,能够从该状态快速地唤醒计算机。另一个按钮可以将计算机置于休眠状态,从该状态唤醒计算机花费的时间要长得多。在这两种情况下,这些按钮通常除了发送一个信号给操作系统外什么也不做,剩下的事情由操作系统在软件中处理。在某些国家,依照法律,电气设备必须具有一个机械的电源开关,出于安全性考虑,该开关可以切断电路并且从设备撤去电能。为了遵守这一法律,可能需要另一个开关。
电源管理提出了操作系统必须处理的若干问题,其中许多问题涉及资源休眠——选择性地、临时性地关闭设备,或者至少当它们空闲时减少它们的功率消耗。必须回答的问题包括:哪些设备能够被控制?它们是工作的还是关闭的,或者它们具有中间状态吗?在低功耗状态下节省了多少电能?重启设备消耗能量吗?当进入低功耗状态时是不是必须保存某些上下文?返回到全功耗状态要花费多长时间?当然,对这些问题的回答是随设备而变化的,所以操作系统必须能够处理一个可能性的范围。
许多研究人员研究了笔记本电脑以了解电能的去向。Li等人(1994)测量了各种各样的工作负荷,得出的结论如图5-45所示。Lorch和Smith(1998)在其他机器上进行了测量,得出的结论如图5-45所示。Weiser等人(1994)也进行了测量,但是没有发表数值结果。这些结论清楚地说明能量吸收的前三名依次是显示器、硬盘和CPU。可能因为测量的不同品牌的计算机确实具有不同的能量需求,这些数字并不紧密地吻合,但是很显然,显示器、硬盘和CPU是节约能量的目标。
