懂電腦的人每天都會重啓一次路由器,有什麼好處?看完大開眼界

前兩天小編在刷pyq的時候,看到了一朋友發的一張與客服的對話截圖:

真是Amazing!雖然先前小編就有聽說重啓和關機後再開機不一樣但當電腦跳出“需要重啓”的彈窗時,我依舊會選擇“稍後重啓”,然後在使用完電腦後關機,下次使用時開機,當作重啓……

小編當時還天真地以爲,這樣既沒有打斷正在進行的工作,還完成了重啓,可謂是做到了效率的最大化……

今天親眼見證了兩種方式所帶來的不同結果,小編決心好好探索一下:

“重啓”和“關機後再開機”到底有哪些不同?

01

定性來看

從最表層看,當我們點擊“重啓”後,計算機會自動進行註銷用戶、關閉系統、重新打開並裝載系統等操作,主機似乎停了一下,但並沒有完全關閉

而選擇關機再開機,不僅中途主機會完全關閉,我們還要手動按一下主機上的電源鍵才能再次將系統開啓。

所以從操作手段上,關機再開機相比重啓要多按一次按鈕;從主機經歷的過程上看,關機再開機相比重啓經歷得更多。Emmm,似乎說了一段廢話……

不過通過主機呈現出的不同狀態,我們應該能感覺到兩者肯定是有不同的。

在主機沒有完全關閉的背後,究竟還藏着什麼不爲人知的祕密?

02

定量來看

想要深挖計算機重啓背後的祕密,就要知道計算機在重啓過程中都發生了什麼。

首先我們來看看,操作系統是通過什麼來區分重啓和關機再開機的,這裏就要引入一個概念——高級配置電源管理接口(Advanced Configuration and Power Interface),簡稱ACPI

ACPI是1997年由多家公司共同提出、制定的操作系統電源管理、硬件配置接口,是一種開放標準

ACPI整體框架圖

相信大家看到上圖的感覺一定是非常頭大,因爲小編自己也一樣(狗頭)

不過我們今天不是去深挖ACPI的,而是看ACPI是如何決定計算機的重啓的。

ACPI規範定義了一臺兼容ACPI的計算機系統可以有以下七個狀態(所謂的全局狀態):

G0(S0):正常工作狀態。計算機的正常工作狀態-操作系統和應用程序都在運行。

G1:睡眠。這個狀態還可以再細分爲以下幾種:

(1)S0ixModern Standby。在這種睡眠狀態下,計算機還能聯網,音樂還可以播放,其餘大部分應用處於暫停的狀態,輕按任意鍵即可登錄賬戶並進入工作狀態。

(2)S1比較耗電的睡眠模式。CPU的所有寄存器被刷新,並且停止執行指令,但CPU和內存的電源會被維持。

(3)S2:一種比S1更深的睡眠狀態,會停止CPU的電源供應,這種模式通常不被採用。

(4)S3:稱爲Suspend to RAM,簡稱STR。這個模式就是我們計算機上常見的“睡眠”

(5)S4:稱爲Suspend to Disk,也是我們常說的“休眠”,其和S3的差別在於,S4消耗的時間更長,而且如果此時系統斷電,S3狀態下沒有保存的數據會丟失,而S4狀態下不會影響。

G2(S5):稱爲Soft Off。此狀態和下面所所述的G3(S6)類似,不過在這個狀態下,系統仍可以被部分設備(如鍵盤等)喚醒。

G3(S6):稱爲Mechanical Off。此狀態下所有部件斷電,需要再次按下電源鍵才能喚醒。

雖然看起來我們一直沒有提到重啓,但從ACPI規範下計算機的幾種狀態,我們卻可以看出其不同的運行模式和喚醒模式,這和我們馬上要講到的重啓都是有關聯的。

其實你可能想不到,重啓也分很多個種類,而我們平時最常接觸到的重啓,叫hard reset,其通過信號通知所有芯片、外圍網卡等等一起進行reset操作,使系統大多數寄存器重置到缺省值(默認值),而後CPU從reset vector 開始執行程序。

在這個過程中系統不會完全斷電,不會進入G3(S6)的狀態,CPU在其它組件的協助下執行reset的相關程序。

而關機再開機的過程中,系統會完全切斷電源,即進入G3(S6)的狀態,讓所有寄存器恢復到初始狀態,整個過程需要執行的程序會更多,速度上也會更慢一些。

03

重啓和關機再開機該怎麼選擇?

我們選擇重啓計算機,可能是計算機進行了軟件更新或者系統更新,亦或是系統的某個部件出了問題(就好比開頭處那張截圖裏遇到的問題)

一般情況下,如果是系統希望我們進行重啓,那就按照要求進行重啓就行。因爲在軟件或系統進行更新,計算機需要重新加載配置文件,這時候重啓會顯得更加得有針對性並且效率較高。

而當計算機的部分功能出現障礙時,由於重啓無法保證所有寄存器都恢復到默認狀態,所以就會導致重啓也可能解決不了問題,所以這時候就需要通過關機的方式來嘗試解決。

寫到這裏,小編也不禁感嘆,計算機這個系統真的太過龐大,一個小小的操作背後都隱藏有如此豐富的知識點,真心佩服研究計算機這個領域的大佬們,向你們學習!

參考資料

[1] 高級配置與電源接口 - 維基百科

[2] 計算機重啓的原理是什麼?- 知乎

[3] Sindre G, Conradi R, Karlsson E A。 The REBOOT approach to software reuse[J]。 Journal of Systems and Software, 1995, 30(3): 201-212。

本文轉自中科院物理所

相關文章