讀《深入理解計算機系統》Chapter1

2022-08-04 08:09:13 字數 2133 閱讀 9840

基礎很弱,來補一下。

我們知道計算機底層是有一堆積體電路元件組成,每個積體電路元件有很多個引腳,每個引腳同上直流電壓之後只有0v/5v,所以每個只能表示兩種狀態,這就注定計算機中的資訊資料只能以二進位制形式來處理,比如1,0,10,00...但是所有的資訊都以該形式表示時,同樣一串二進位制序列碼在不同的環境中可能表示不同的資料或者時要執行的指令,所以讀到這些資料物件時的上下文就是用來區分不同的資料物件的唯一方法。因而資訊在計算機中的表示形式就是位(二進位制)+上下文

馮·諾依曼結構計算機中組成部分包括:運算器、控制器、儲存器、輸入裝置和輸出裝置,其中運算器和控制器就對應到平常計算機中的cpu(central processing unit),儲存器就對應了記憶體和硬碟,輸入/輸出裝置就對應到平常使用的滑鼠、鍵盤、顯示器等。

系統中典型硬體組成部分包含:

匯流排時貫穿系統中一組電子管道,它攜帶資訊位元組並負責在各個部件間傳遞。通常是傳送定長的位元組塊 -word,每個word中的位元組個數是系統的乙個引數,平常我們使用的32位作業系統、64位作業系統就是指每個word中的位元組個數(32位就是4個位元組長度、64位就是8個位元組長度)。

是用於系統同外部世界的聯絡通道,每個i/o裝置通過乙個控制器/介面卡同io匯流排相連,控制器/介面卡用於io匯流排和io裝置之間傳遞資訊

計算機執行中的乙個臨時儲存裝置,在處理執行程式時用於存放程式和程式所需處理的資料。

物理上由一組dram晶元組成,邏輯上由一組線性的位元組陣列組成(房子模型),每個位元組都有乙個位址(從0開始)

cpu的一種簡稱,是用來解釋或執行儲存在主存中的指令的引擎。其內部有四大組成部分:運算器、控制器、暫存器和時鐘。暫存器分為很多種,其中的程式計數器(pc)用來儲存某條機器語言指令在主存中的位址。

cpu會執行到的指令可能會包括:

計算機中的儲存裝置之間的訪問差異非常大,暫存器的訪問速度非常快但其儲存容量比較小,主存較暫存器訪問速度就很慢,但是它比暫存器能儲存的資料量多。同理主存同硬碟之間、本地硬碟同網路之間的差異亦是如此。為了遮蔽這種差異對計算機運算處理的影響,引入乙個中間層:快取,利用區域性性原理讓其儲存一部分訪問慢的裝置上的資料讓計算達到良好的訪問效能。針對計算機處理器中暫存器同主存之間的差異設計出的儲存裝置被稱為快取記憶體儲存器。通常分為l1和l2二級快取記憶體(基於靜態隨記訪問儲存器基數sram,目前還有l3快取記憶體)。計算機系統中的儲存裝置層次結構圖:

作業系統可以看成是計算硬體同應用程式之間加入個乙個抽象層,它主要用於

它將計算機硬體中進行了一些抽象:

其中程序是對系統中正在執行的程式的乙個抽象。乙個系統上可以同時執行多個程序,每個程序看上去像是獨佔的使用硬體。虛擬記憶體讓程序看上去像是獨佔的使用了主存,每個程序看到的記憶體都是一致的,每個程序看到的就是虛擬位址空間。

空間圖:

組成部分(從下往上,記憶體位址逐漸增大)

簡單來說併發是乙個cpu交替執行多個程序中的指令,並行是指多個cpu在同一時間執行了多個程序的指令。

併發過程中會涉及到程序的上下文切換。上下文就是處理器跟蹤程序執行時所需的狀態資訊,比如該程序處理是暫存器檔案中的值、主存中的值等。在上下文切換時需要儲存原程序的上下文資訊、恢復新程序的上下文資訊,再將控制權交由新程序,新的程序就會從它上次暫停的地方繼續執行。其切換是由核心控制,所以切換時候會涉及到在使用者空間和核心空間的切換。

i. 執行緒級併發

現代作業系統中在程序中引入執行緒這個更細粒度的執行單元。乙個程序中包含了多個執行緒,所有執行緒執行在該程序的上下文環境中,同時共享其**同資料。鑑於多執行緒之間共享資料比多程序之間共享資料更便捷,多執行緒併發成為了越來越重要的變成模型。

ii. 指令級並行

處理器同時執行多條指令。

iii. 單指令、多資料並行【參考】[深入理解計算機系統] 第三版

讀《深入理解計算機系統》心得

聽過這本書大該是一年前,那時候剛考完研,因為隨後的研究方向偏計算機方向 本科學的通訊工程 所以經常水論壇,了解一些這個方向的經典之作,其中就提到過此書。他人關於這本書更多的心得體會是 計算機方向必讀書籍之一 大學唯一願意留下的一本書 云云。懷著對他人經驗之談的些許懷疑,我記下了這本書的名字 comp...

深入理解計算機系統

關鍵路徑是在迴圈的反覆執行中形成的資料相關鏈。迴圈展開是一種程式變換,通過增加每次迭代計算的元素的數量,減少迴圈的迭代次數。重新結合變換能夠減少計算中關鍵路徑上操作的數量,通過更好地利用功能單元的流水線能力得到更好的效能。浮點運算不保證是可結合的,通常迴圈展開和並行地累積在多個值中,是提高程式效能的...

《深入理解計算機系統》

知乎 深入理解計算機系統 這本書需要什麼水平能看懂?15 213 18 218 15 513 introduction to computer systems schedule fall 2016 鏈結失效則 cmu15 213的課程主頁,有ppt,還有錄影,主講人就是這本書的作者。備註 備註 詳細...