1. 程式人生 > >程式設計師的自我修養讀書筆記---01

程式設計師的自我修養讀書筆記---01

計算機內部結構很複雜,但是畢竟是人發明出來的,只要花了足夠的時間,瞭解內部結構還是不成問題的。瞭解的越多,越能發現前人的思維多麼的奇妙,一個看起來普通的浮點數格式,當你去自習思考的時候,才知道用原碼錶示尾數,使用補碼錶示階碼等充分的發揮了它們的特性與優點。

作為高階語言程式設計師,我們並不需要了解太多的內部結構,在計算機的內部,一個簡單的計算機模型主要包括以下三個部件:

  1. 中央處理器CPU(暫存器與運算器)
  2. 記憶體
  3. 輸入輸出裝置(I/O)

對於高階語言程式設計師來說,只需要瞭解CPU的知識即可,但是要做到優化程式,就必須要清楚的知道計算機內部的結構。在早期的計算中,計算機部件基本都是靠一條匯流排(Bus)連線的。但是我們知道,由於I/O裝置的速度遠遠低於CPU,為了讓它們之間能夠相互通訊,就使用了I/O控制器將其連線。

後來隨著CPU核心頻率的提升,導致記憶體跟不上CPU速度,以及圖形化作業系統的普及,為了調節各部件之間速度差距帶來的不便,人們發明了北橋晶片。

SMP與多核:

有人曾預言CPU的頻率將每年翻倍,前期也確實如此,但是隨著CPU製作工藝的完善,這個規律好像失效了,於是便有了多核這一思想的產生。

CPU的充分利用:多道程式(Multiprogramming):

在程式執行的時候,有時可能會不佔用CPU,但是早期的計算機在執行時,卻存在這樣一個問題:當一個程式執行沒有結束,其他程式無法啟動。於是人們編寫了一個監控程式,在某個程式執行且暫時無需使用CPU時,就將正在排隊的其他啟動,合理利用CPU資源。

分時系統(Time-Sharing system):

多道程式存在的一個致命不足便是,當我想要點選滑鼠來開啟其他程式時,只有在當前程式執行完後才會有反應(難以置信.jpg)。於是,為了解決這個問題,分時系統產生了,CPU會在一段時間後自動給其他程式執行。

多工系統(multi-tasking):

也許分時系統在我們看來,已經完善了。但是,假使程式碰上了死迴圈,這時CPU也正在被使用,因此就只能通過拔電源來關閉程式了...多系統便由此誕生,也成為了目前幾乎所有作業系統使用的方法(雖然內部實現機制可能不一樣,但是核心思想相同),多工系統提供了程序這一概念,而程序具有優先順序屬性(系統判定)。這樣一來,當某一程序使用時間太長後,作業系統會將他中止,而且一般如滑鼠點選這樣的互動式程序,優先順序時比較高的。

(先出去浪了,後續會補充內容的)

參考:程式設計師的自我修養---連結、裝載與庫