天天看點

程式運作時硬體的工作流程

#以Linux系統為例

1.當在終端輸入指令行時,由鍵盤控制器将信号流傳至CPU中的寄存器,再由寄存器傳至記憶體中

程式運作時硬體的工作流程

2.指令輸入完成點選回車,系統會判定輸入完成,調用程式檔案這時存放在磁盤的檔案會傳至記憶體中

程式運作時硬體的工作流程

3.記憶體中的程式代碼資料執行後會傳至寄存器,再由寄存器傳至ALU進行二進制流的計算,計算完畢傳回至寄存器,最終由寄存器傳回至顯示器輸出

程式運作時硬體的工作流程
總結:執行輸入指令是有控制器走向CPU,再由CPU走向記憶體,執行程式是由磁盤走向記憶體再到CPU,最後由CPU輸出到顯示器

cache存在的必要條件

首先要清楚的知道計算機每個存儲元件都有讀取速率這個概念,而不同元件之間的讀取速率又不相同,例如:寄存器>記憶體(主存儲器)>磁盤,是以CPU内部又誕生出了cache元件(SRAM),1.cache又分為L1/L2/L3讀取速度依次下降,造價也依次下降,但均快于記憶體讀取速率

2.讀取速率快的存儲元件存儲空間都小,反之都大

3.L1的讀取速率與寄存器的速率幾乎相同

程式運作時硬體的工作流程

金字塔形存儲元件對比圖

程式運作時硬體的工作流程

作業系統的存在

1.計算機應用程式與硬體裝置CPU/記憶體/磁盤/IO控制器進行互動是由作業系統作為中間橋梁搭建聯系的,也就是說軟硬體溝通的橋梁源于作業系統,當然作業系統也是軟體,其最重要部分就是我們常說的核心

2.作業系統可以控制應用程式防止對硬體裝置進行濫用,同時也可以管理我們的硬體,這都是通過作業系統中的程序、虛拟記憶體、檔案來實作的

淺談程序

1.程序是由作業系統核心來進行管理的

2.在CPU核心中,多個并發的程序其實是交替運作的,簡單的說就是當A程序運作到某個節點位子時,B程序開始從上次停止的位子運作,當B到達某個節點時停止,A運作也同理

程式運作時硬體的工作流程
注:有疑問的朋友可以寫兩個循環的代碼列印循環的内容,注意循環資料盡量大,可以加上sleep以便看清最主要的還是要求是并發哦,如果不這樣做的話代碼會等上一個循環結束而後進行下一個循環的哦

本文内容摘選自《深入了解計算機系統》第三版

繼續閱讀