<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          linux電源管理

          作者: 時間:2008-07-23 來源:網(wǎng)絡(luò) 收藏

            1.概述

            雖然 linux 可以在任何一臺 386 以上的 PC 上運行,目前大多數(shù)人使用的都是新型的,帶有各種外設(shè)的桌面PC或者筆記本電腦,這樣,功能(PM)就逐漸變得越來越重要。在筆記本電腦上可以節(jié)能,延長電池壽命,而在桌面PC上它可以降低幅射,降溫,延長外設(shè)使用壽命?,F(xiàn)在的操作系統(tǒng)大都內(nèi)置了支持,例如 Windows 和 。

            2.PC機實現(xiàn)電源管理的方法

            要實現(xiàn)電源管理,最重要的有兩點:第一是需要設(shè)備本身支持節(jié)電功能,比如硬盤,可以通過指令暫時關(guān)閉;第二是需要操作系統(tǒng)支持電源管理,這樣就可以在空閑一段時間之后調(diào)用驅(qū)動的電源管理功能關(guān)閉設(shè)備。

            兩種電源管理標(biāo)準(zhǔn):APM和ACPI

            傳統(tǒng)的APM(Advanced Power Management)是一種基于bios的電源管理標(biāo)準(zhǔn),目前的最新版本是1.2,它提供了CPU和設(shè)備電源管理的功能,但是由于這種電源管理方式主要是由bios實現(xiàn),所以有些缺陷,比如對bios的過度依賴,新老bios之間的不兼容性,以及無法判斷電源管理命令是由用戶發(fā)起的還是由bios發(fā)起的,對某些新硬件如USB和1394的不支持性。

            為了彌補APM的缺陷,新的電源管理ACPI應(yīng)運而生,這就是ACPI(Advanced Configuration and Power InteRFace),它主要是將電源管理的主要執(zhí)行者由bios轉(zhuǎn)換成為操作系統(tǒng),這樣可以提供更大的靈活性以及可擴(kuò)展性。

            目前的PC機主板一般同時支持APM和ACPI兩種標(biāo)準(zhǔn)。

            3.linux對電源管理的支持

            內(nèi)核模塊

            針對APM和ACPI兩種不同的標(biāo)準(zhǔn),linux內(nèi)核提供了兩個不同的模塊來實現(xiàn)電源管理功能,這就是apm和acpi。需要注意,apm和acpi是互相沖突的兩個模塊,用戶在同一時間內(nèi)只能加載其中之一,如果當(dāng)他們在加載的時候發(fā)現(xiàn)二者之一已經(jīng)加載,就會自動退出。

            在官方發(fā)布的內(nèi)核中APM是較為成熟的電源管理方式,可以完成在Windows下ACPI所能完成的大部分功能。由于官方內(nèi)核中ACPI的功能比較有限,目前還處于開發(fā)版狀態(tài)。所以當(dāng)前的大多數(shù)distribution,如紅帽子默認(rèn)就使用了apm作為電源管理方式。但是值得注意的是linux中的ACPI實際上是由一個單獨的項目小組模塊進(jìn)行維護(hù)的,當(dāng)前內(nèi)核ACPI的版本實際上已經(jīng)遠(yuǎn)遠(yuǎn)落后于最新的版本。由于linux穩(wěn)定版中對任何新特性的加入都非常謹(jǐn)慎小心,所以我們也許只能等到2.6.x版本的linux誕生后才能看到ACPI的穩(wěn)定全功能版了。不過我們也可以自己對內(nèi)核打最新的ACPI補丁來獲得這些功能。

            下面對電源管理的介紹以APM為主。

            用戶態(tài)Daemon

            為了讓linux內(nèi)核中的電源管理功能夠更好的被利用,我們還需要用戶態(tài)daemon程序的配合。針對APM和ACPI,分別有apmd和acpid兩個不同軟件。他們實現(xiàn)的功能比較類似,都是允許用戶預(yù)先定義某些策略,然后跟蹤電源狀態(tài),執(zhí)行特定的操作。在apmd軟件包中還有一個工具apm,用戶可以用它使機器主動進(jìn)入standby和suspend狀態(tài),還可以查詢bios的apm版本號。在使用acpi時直接對proc文件系統(tǒng)進(jìn)行操作即可完成同樣的功能。

            4.linux下驅(qū)動的電源管理機制

            在linux下不必為驅(qū)動分別編寫與APM和ACPI相對應(yīng)的代碼,linux與Windows類似,為驅(qū)動提供了統(tǒng)一的電源管理接口。驅(qū)動只要實現(xiàn)了這些接口,就可以實現(xiàn)電源管理的功能。操作系統(tǒng)在它認(rèn)為合適的時候就會通知驅(qū)動完成這些操作。

            實現(xiàn)設(shè)備電源管理接口主要需要實現(xiàn)以下5點:

            1)使用pm_register對設(shè)備的每個實例(instance)進(jìn)行注冊;

            2)在對硬件進(jìn)行操作之前調(diào)用pm_access(這樣會保證設(shè)備已被喚醒并且處于ready狀態(tài));

            3)用戶自己的pm_callback函數(shù)在系統(tǒng)進(jìn)入suspend狀態(tài)(ACPI D1-D3),或者從suspend狀態(tài)恢復(fù)(ACPI D0)的時候會被調(diào)用;

            4)當(dāng)設(shè)備不在被使用的時候調(diào)用pm_dev_idle函數(shù),這個操作是可選的,可以增強設(shè)備idle狀態(tài)的監(jiān)測能力;

            5)當(dāng)被unload的時候,使用pm_unregister來取消設(shè)備的注冊。

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

          上一頁 1 2 下一頁

          關(guān)鍵詞: Linux 電源管理

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();