【筆記】深入理解計算機系統(edition3)

第一章 計算機系統漫遊

1.1 信息就是位+上下文

源程序實際上就是一個由值0和1組成的位(比特)序列,8個位被組織成一組,稱爲字節,每個字節就表示程序中的某些文本字符。用一個唯一的單字節大小的整數值表示每個字符。下圖給出了hello.c程序的ASCII碼錶示:
在這裏插入圖片描述
系統中所有的信息——包括磁盤文件、內存中的程序、內存中存放的用戶數據以及網上傳送的數據,都是用一串比特表示的。

1.2 程序被其他程序翻譯成不同的格式

在這裏插入圖片描述
GCC將一個.c程序編譯成一個可執行目標文件.o,這個翻譯過程可分爲四個階段:
在這裏插入圖片描述

1.3 編譯系統是如何工作益處

  1. 優化程序性能
  2. 理解鏈接時出現的錯誤
  3. 避免安全漏洞

1.4 處理器讀並解釋存儲在內存中的指令

在這裏插入圖片描述

1.4.1 系統的硬件組成

  1. 總線
    貫穿整個系統的是一組電子管道,稱爲總線,它攜帶信息字節並負責在各個部件之間傳遞。可以傳送定長的字節塊,就是字,字中的資產是一個基本的系統參數。
  2. I/O設備
    I/O設備是系統和外部世界的聯繫通道。每個I/O設備都通過一個控制器或適配器與I/O總線相連。封裝方式不同,控制器是I/O設備本身或者系統的主印製電路板上的芯片組。適配器則是一塊插在主瓣插槽上的卡。都是用來總線和設備之間傳遞信息。
    在這裏插入圖片描述
  3. 主存
    臨時存儲設備,在處理器執行程序時,用來存放程序和程序處理的數據。主存是由一組動態隨機存取存儲器DRAM芯片組成的。是一個線性的字節數組,每個字節都有其唯一的地址數組索引,從0開始。
  4. 處理器
    中央處理單元CPU,簡稱處理器,解釋或執行存儲在主存中指令的引擎。處理器的核心是一個大小爲一個字的存儲設備(寄存器),稱爲程序計數器PC,在任何時刻PC都指向主存中某條機器語言指令(即含有該條指令的地址)。
    在這裏插入圖片描述
    在這裏插入圖片描述
    寄存器文件是一個小的存儲設備,由一些單個字長的寄存器組成,每個寄存器都有唯一的名字,ALU計算新的數據和地址值。

1.7.4 文件

文件:字節序列。每一個I/O設備(磁盤、鍵盤、顯示器等)都可看成是文件。

文件的設計爲應用程序提供了一個統一的視圖,看待系統中的各種I/O設備。

1.8 系統之間利用網絡通信

網絡可以將多態設備連接到一起,從一個單獨的設備看,網絡也是一個I/O設備。
在這裏插入圖片描述

1.9 重要主題

系統是硬件和系統軟件互相交織的集合體,共同協作達到運行應用程序的最終目的。

1.9.1 Amdahl定律

當我們對系統的某個部分加速時,其對整個系統的性能的影響去決定於該部分的重要性和加速程度。雖然我們對系統的一個主要部分做出了重大改進,但是獲得的系統加速卻明顯小於這部分的加速比。這就是Amdahl定律的主要觀點——想顯著加速整個系統,必須提升全系統中相當大的部分組件的速度。

1.9.2 併發和並行

併發:指一個同時具有多個活動的系統;
並行:用併發來使一個系統運行更快。在多個抽象層次上運用

  1. 線程級併發
    傳統意義上,同時具有多個程序執行的系統就是併發,只是模擬出來的,通過一臺計算機在它執行的進程間快速切換來實現的。在以前,及時處理器必須在多個任務間切換,大多數的計算也都是由一個處理器來完成,這種配置稱爲單處理器系統。
    構建一個由單操作系統內核控制的多處理器組成的系統時,得到多處理器系統。
    在這裏插入圖片描述
    多處理器是將多個CPU(核)集成到一個集成電路芯片上。典型的多處理器的組織結構的微處理器芯片有4個CPU核,每個核都有自己的L1和L2高速緩存,L1分爲兩個部分,一個保存最近取到的指令,另一個存放數據。這些核共享更高層次的高速緩存,以及到主存的接口。
    在這裏插入圖片描述
    超線程有時稱爲同時多線程,是一項允許一個CPU執行多個控制流的技術。Intel Core i7處理器可以讓每個核執行兩個線程,所以一個4核的系統實際上可以並行地執行8個線程。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章