休眠 (電腦)

本頁使用了標題或全文手工轉換
維基百科,自由的百科全書
(重新導向自休眠 (電腦)

休眠(或掛起到磁碟)在電腦科學中的含義指在關閉電腦的同時保持其執行狀態。

通過休眠,電腦將記憶體中的內容儲存至硬碟或其它非揮發性記憶體中,並在下次開機時從硬碟中將這些內容重新載入,使電腦還原到與休眠前一致的狀態。

當用作儲存電池電量的手段時,休眠與睡眠模式類似,不過比後者節約更多的電量,代價則是從休眠中恢復時速度更慢(因為硬碟的速度比記憶體慢得多)。

用途[編輯]

休眠可以節省電力,在休眠後,電腦硬件接近完全斷電的狀態,但又與一般的關機有所不同,一小部分電力繼續為CMOS供電,以防止用戶在下次開機恢復系統前進入BIOS設置。休眠的電腦耗電要比處於睡眠模式下少。休眠是一種減輕在關機前處理未儲存數據並重新打開所有正在執行的程式的負擔的手段。

休眠通常使用在手提電腦中,因為手提電腦的電池容量通常是有限的,而休眠可以由作業系統在電池低電量時自動觸發。大多數桌上電腦亦同樣支援休眠,主要是為了節省能源。

存在的問題[編輯]

某些情況下休眠可能導致錯誤,這是由於存在不相容的裝置或軟件所致。

一些機構,主要是大型企業,通過各種手段(如網絡策略等)強制要求電腦在一段時間無操作後進行自動休眠,主要是出於節省電費的考量,然而通常也會導致工作效率的下降,因為員工返回時必須等待機器從休眠中恢復,而機械硬碟的速度通常又很慢,導致恢復所需的時間延長。

與睡眠模式的比較[編輯]

許多系統也支援低能耗的睡眠模式(亦稱為待機模式),只使用少量的電源來維持記憶體中的內容,並支援喚醒操作,而喚醒通常是即時的。

睡眠模式的優越性在於從睡眠中恢復要比從休眠中恢復快得多。對處於休眠中的系統進行恢復首先要開機,然後將儲存在硬碟中的數據重新寫回記憶體(這一過程通常需要10秒或更長的時間)。而喚醒睡眠模式的機器只需要啟用CPU和顯示系統即可,差不多是即時性的。不過另一方面,處於睡眠模式的機器必須持續耗電(儘管比正常執行時低)來維持記憶體中的內容,而休眠模式比睡眠模式耗電更少(如前述,僅需給CMOS供電以防止用戶在重新開機時進入BIOS設置)。

混合休眠模式[編輯]

睡眠模式和休眠模式可以聯合進行:將RAM中的數據複製到硬碟中,然後電腦進入睡眠模式。這一方式可以獲得睡眠和休眠的雙重好處:電腦可以從睡眠中立刻恢復,而其執行狀態(包含已打開的檔案和未儲存的工作)在掉電後也不會丟失。混合休眠模式的耗電與睡眠模式同等,而休眠模式完全不耗電。

作業系統支援情況[編輯]

早期的休眠依賴BIOS功能,但現代作業系統通常接管了這一職責。休眠在進階組態與電源介面(ACPI)中被定義為S4睡眠模式。

Microsoft Windows[編輯]

休眠可以通過開始選單或命令列(shutdown命令)進行啟用。

Windows 95通過硬件製造商提供的驅動程式支援休眠,且只有系統中存在相容的硬件和BIOS時才能使用。由於Windows 95只支持進階電源管理(APM),休眠被稱作待機至硬碟(Suspend to Disk)。Windows 98及其後的系統支援ACPI,但由於當時的硬件並不完全與ACPI 1.0標準相容,或沒有WDM驅動程式,休眠常常引發問題。休眠也與FAT32檔案系統相容性不佳。

Windows 2000是第一個在作業系統層面支援休眠的Windows系統(系統控制的ACPI S4睡眠狀態),而不需要硬件製造商提供特殊驅動程式。一個被命名為hiberfil.sys的檔案被用來在系統休眠時儲存記憶體中的數據,其大小與總記憶體容量一致,該檔案儲存在系統分區下並具有隱藏和系統屬性。

Windows XP進一步改良了休眠,由於對記憶體頁使用了改進後的演算法進行壓縮,進入休眠模式及從休眠中恢復比以前速度更快。改進後的演算法可使休眠檔案的壓縮與寫入同步進行,未使用的記憶體頁得以釋放以縮小硬碟佔用,並且在重新開機寫入記憶體時使用了直接記憶體訪問(DMA)。

Windows Vista引入了「混合式睡眠」,「混合式睡眠」將記憶體中的數據儲存到硬碟,但接下來進入睡眠模式而不是斷電。如果在下次開機前斷電了,系統可以如進行休眠一般從硬碟恢復。

Windows 7支援對休眠檔案的壓縮。

Windows 8從休眠模式恢復的演算法對多核處理器進行了最佳化。Windows 8還引入了快速啟動(Fast Startup)功能,當用戶選擇關機時,Windows實際上進行了休眠,不過關閉了所有打開的程式並將用戶登出,從而使用戶下次開機速度更快。

Mac OS X[編輯]

在Mac機上,被稱作安全睡眠的功能將揮發性記憶體中的數據寫入系統硬碟,然後系統進入睡眠模式。在記憶體供電沒有切斷的情況下,Mac可以從睡眠模式中立刻喚醒。不過在記憶體供電被切斷的場合下(例如在未接交流電的情況下移除電池),Mac可以將記憶體數據從硬碟中讀出,進而從安全睡眠模式中恢復。

安全睡眠模式僅在2005年10月版本起的PowerBook G4及更新的型號上存在,同時需要Mac OS X 10.4版或更高版本的支援。

Linux[編輯]

Linux中,休眠功能通過systemd的systemctl命令實現。