全面認識APM和ACPI

2021-07-03 20:03:43 字數 1761 閱讀 3634

apm全稱advanced power management,中文名稱高階電源管理,目前最新的apm標準是1.2,它是一種基於bios的系統電源管理方案,它提供了cpu和裝置電源管理並通過裝置工作超時設定來決定何時將裝置轉換到低耗能狀態。

1.由於基於apm的bios都有它自己的電源管理方案,使得計算機與計算機之間缺乏一致性,每個bios開發者必須精心維護自己的apm bios**和功能。     2.系統進入掛起的原因無法知曉。使用者是否按了進入睡眠按鈕,還是bios認為系統已進入了空閒狀態,或者電池電壓過低,這些資訊apm都無法知道,但是windows必須要知道掛起的原因,即使系統沒有進入空閒狀態。     3.bios無法知道使用者在幹什麼,只有通過監視中斷和i/o埠來猜測使用者的活動。有時,bios會使系統處於完全混亂的狀態,當系統沒有空閒時將系統掛起或者當系統處於空閒狀態時,卻不進入掛起狀態。     4.早期版本的bios apm(1.0和1.1)不提供任何系統效能資訊,系統是否支援睡眠狀態就只有嘗試將系統轉入睡眠模式才知道。如果bios不支援睡眠模式,那將導致宕機。bios apm 1.2解決了這個缺陷。     5.bios對usb裝置、加插的電腦配件卡和ieee1394裝置全然不知,導致當以上裝置沒有進入空閒狀態,而bios卻認為系統已經進入空閒狀態,從而發生衝突,使這些裝置無法正常使用或系統宕機。

由於apm有以上不足,因此acpi應運而生。

acpi全稱advanced configuration power inte***ce,中文名稱高階配置電源介面,acpi是為了解決apm的缺陷而問世的。它定義了許多新的規範:     1.acpi將現有的電源管理bios**、apm應用程式設計介面、pnp bios應用程式設計介面、多處理器規範**等集合成一種新的電源管理和配置介面規範。     2.acpi允許作業系統(不是bios)控制電源管理,這點與apm不相同。     3.acpi標準定義了硬體暫存器、bios介面(包含配置**、控制方法以及主機板裝置列舉和配置)、系統和裝置的電源狀態和acpi熱模型。     4.bios支援的**不是用組合語言而是用aml(acpi machine language,acpi機器語言)編寫的。bios不能決定用於電源管理或資源管理的策略或超時。     5.使用acpi系統的所有裝置可以互相通訊來了解彼此的使用情況,並且都受作業系統的控制,作業系統對正在執行的系統狀態瞭如指掌,所以作業系統處於執行電源管理的最佳位置。

綜上所述,acpi與apm有著很多的優勢,推薦使用acpi來管理系統。

下面通過winxp關機問題來進一步**它們之間的區別與應用。有人問為什麼在winxp的控制面板→電源選項中沒有高階電源管理選項頁和啟用高階電源管理支援選項,從而使系統無法正常關機。其實在2023年以後出現的主機板bios大都支援acpi管理,因此當power management setup中的acpi function設為enabled時,winxp已經接管和控制了電源管理。所以系統中不會出現apm的選項頁,當然也就不會出現啟用高階電源管理支援選項。大多數的winxp是可以正常關機,如果不能關機,原因可能是acpi存在相容性問題,解決的方法是公升級最新的bios檔案。如果還是不行,就把power management setup中的acpi function設為disabled,並將pm control by apm設為yes。然後重啟進入winxp就會發現在控制面板→電源選項中多出了高階電源管理選項頁(apm)和啟用高階電源管理支援選項,只要勾選啟用高階電源管理支援,並且在登錄檔的hkey_local_machine/software /microsoft/windows nt/currentversion/ winlogon中找到powerdownaftershut- down,並將值設為1,再重啟,通常問題就可解決。

**:

電源管理方案APM和ACPI比較

apm和acpi比較 近期對linux的電源管理產生了興趣,索性來學習一下電源管理的東西。這不,遇到的乙個問題就是這個 apm acpi兩種電源管理方案有何異同?下面的東西全部來自於網路博文,當然有做一些整理。一 apm的不足和acpi產生 apm全稱是 advanced power managem...

爬蟲全面認識

爬蟲 其實爬蟲就像乙個瀏覽器瀏覽網上的資訊 只是我們稱之為爬蟲是因為它不是人為而是機器自動獲取某些程式設計師設定的信 息,對於某些 它不想讓爬蟲獲取訊息,我們稱之為反爬。裡面的具體一些技術,我會一 一解釋和貼原始碼 文章只是自己學習沒有任何商業用途。1 爬蟲用到的語言 python2 html js...

Google Exoplayer 之全面認識

demo 演示類庫的使用 支援高階 hls http live streaming 功能,如正確處理 ext x discontinuity的標籤。能夠無縫融合,串聯和迴圈 資源。支援定製和擴充套件,exoplayer是考慮到這一點而設計的,並允許許多部件與定製實現替換。更新起來更方便 裝置通用性更...