並發編程基礎底層原理學習(一)

電腦基本構成

電腦主要由處理器,存儲器,輸入/輸出設備組成。

  • 處理器:控制電腦的操作,執行程式數據處理,只有一個處理器時,它通常指中央處理器 (CPU)
  • 記憶體:存儲數據和程式,該類存儲器是易失性的,即電腦關機時存儲器的內容會丟失,而磁碟存儲器在電腦關閉時不會丟失
  • 輸入/輸出模組:在電腦與外部環境之間移動數據
電腦指令

處理器執行的程式是由一組保存在存儲器中的指令組成。最簡單的指令處理包括兩步:處理器從存儲器中一次讀取一條指令然後執行每條指令。程式的執行就是由不斷重複的取指令和執行指令的過程組成的。處理器從存儲器中讀取一條指令,程式計數器(Program Counter) 保存下一次要讀取的指令地址。

中斷

中斷通常是用於提高處理器效率的一種手段,多數IO設備遠遠慢於處理器,例如在使用印表機時,在每次寫操作後處理器必須暫停並保持空閑,直到印表機設備完成工作,毫無疑問,暫停的這段時間對處理器來說是非常浪費的。下圖展示了中斷的幾種分類:

image-20220416221612599

利用中斷功能,處理器可以在I/O操作的執行過程中執行其他指令,中斷打斷了正常的執行順序,中斷處理完成後再恢復執行,用戶程式不需要為中斷添加任何處理的程式碼,處理器和作業系統負責掛起用戶程式,然後在同一個地方恢復執行。

高速快取

處理器讀取指令時至少要訪問一次存儲器,而且通常需要多次訪問存儲器用於保存程式執行結果,處理器執行指令的速度顯然受到存儲器讀寫速度的影響,而處理器速度遠遠超過存儲器,處理器與記憶體速度的不匹配已經成為很嚴重的問題。理想狀態下,記憶體的構造技術使用與處理器中暫存器相同的構造技術,這樣的話記憶體的速度與處理器差不多,但是成本過於昂貴。解決辦法時利用局部性原理,在處理器和記憶體之間提供一個容量小且速度快的存儲器,稱為高速快取。

image-20220417002728159

三級高速快取結構如上圖所示。2級快取比1級快取要慢但是2級快取容量較大,而3級快取比2級快取慢而容量要比2級快取大。