1. 程式人生 > >【讀書筆記】《csapp》第一章:計算機系統漫遊

【讀書筆記】《csapp》第一章:計算機系統漫遊

第一章 計算機系統漫遊

這是跟著劉欣大佬讀csapp的作業。 這裡不是純粹一本書的讀書筆記,只是摘錄了我感興趣的部分,結合之前的書和感想。儘量讓這個作業有那麼點意義。

幾個重要概念

1.抽象

還記得大一時候,接觸類,物件。實際上這個是我第一次在計算機世界中接觸抽象。(C語言入門好像沒學到過函式原型。。。。)

計算機系統中的抽象

抽象的使用是電腦科學中最為重要的概念之一。

在計算機系統中使用的幾個抽象:

  • 在處理器裡,指令架構提供了對實際處理器硬體提供了抽象,使用這個抽象,機器程式碼程式表現的就好像執行在一個一次只執行一條指令的處理器上
  • 檔案是對I/O裝置的抽象
  • 虛擬記憶體是對程式儲存器的抽象
  • 程序(processes)是對一哥正在執行的程式的抽象。
  • 虛擬機器提供了對整個計算機的抽象,包括作業系統、處理器和程式。

Java中的抽象

通過類實現自定義資料型別,封裝該型別的資料所具有的屬性和操作,隱藏實現細節,從而在更高的層次(類和物件的層次,而非基本資料型別和函式的層次)上考慮和操作資料,是計算機程式解決複雜問題的一種重要的思維方式——《Java程式設計的邏輯》馬俊昌

介面

介面:對能力的一種抽象。

2.Amdahl定律

定義:

當我們對系統的某個部分加速時,其對系統整體效能的影響取決於部分的重要性和加速程度。

即:想要加速某個系統,必須提升全系統中相當大的部分的速度。——就是死磕一點沒用,你都都磕完才行。

3.併發(concurrency)和並行(parallelism)

併發:

是一個通用的概念,只一個同時具有多個活動的系統

並行:

指的是用併發來使一個系統執行得更快

3.1並行在計算機系統的多個抽象層次上的使用(由高到低)

  • 執行緒級併發 構建在程序這個抽象智商,我們能夠設計出同時有多個程式執行的系統,這就導致了併發。

  • 指令級並行 在較低抽象層次上,現代處理器可以同時執行多條指令的屬性稱為指令級並行。

  • 單指令、多資料並行 在最低層次上,許多現代處理器擁有特殊的硬體,允許一條指令產生多個可以並行執行的操作,這種方式稱為單指令、多資料。