深入理解計算機系統(速讀筆記)

2022-04-22 03:51:18 字數 829 閱讀 8072

程序和執行緒都是乙個時間段的描述,程式執行時,cpu處理速度太快,只有暫存器能夠趕上cpu的速度,ram速度遠遠趕不上,當處理多個任務時,只能乙個乙個輪流處理,具體的輪流方法就是:先引導程式a的上下文,然後開始執行a,儲存程式a的上下文,調入下乙個要執行的程式b的程式上下文,然後開始執行b,儲存程式b的上下文。程序就是上下文切換的程式執行時間總和 = cpu載入上下文+cpu執行+cpu儲存上下文。

如果我們把程序比喻為乙個執行在電腦上的軟體,那麼乙個軟體的執行不可能是一條邏輯執行的,必定有多個分支和多個程式段,就好比要實現程式a,實際分成 a,b,c等多個塊組合而成。那麼這裡具體的執行就可能變成:cpu載入上下文,開始執行程式a的a小段,然後執行a的b小段,然後再執行a的c小段,最後cpu儲存a的上下文。這裡a,b,c的執行是共享了a的上下文,cpu在執行的時候沒有進行上下文切換的。這裡的a,b,c就是執行緒,也就是說執行緒是共享了程序的上下文環境。

資訊=位+上下文(context  也可以翻譯為 語境)  

位:位是資料儲存的最小單位,位又稱為位元(bit),8位=1位元組(8bit=1byte),每個位元組表示程式中的某些文字字元。

每一位的狀態只能是0或1:1bit=0或者1bit=1。

字母用乙個位元組表示(即8位)進行表示和儲存,而乙個漢字是兩個位元組(即13位)表示和儲存。

程式的生命週期是從乙個源程式(或者說是原始檔)開始的。源程式實際上就是乙個由值0和1組成的位序列。

context理解:

每一段程式都有很多外部變數。只有像add這種簡單的函式才是沒有外部變數的。一旦一段程式有了外部變數,這段程式就不完整,不能獨立執行。為了使他們執行,就要給所有的外部變數乙個乙個寫一些值進去。這些值的集合就叫上下文。

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

本週速讀了 深入理解計算機系統 這本書,這本書從程式設計師的角度介紹了計算機系統的內在運作,展示了一些本質概念是如何實際的影響應用程式的正確性 效能和實用性的。收穫如下 movw 傳送兩個位元組,當乙個運算元為暫存器時,必須為下圖中八個雙位元組暫存器元素中的乙個。movb 傳遞乙個位元組,當乙個運算...

深入理解計算機系統 筆記

cu control unit cpu暫存器,晶元的快取記憶體sram 晶元外的快取記憶體sram 主存dram 本地硬碟 網路分布式檔案系統。拷貝次數越少,越好,netty,零拷貝 dma控制器與cpu分時使用記憶體的三種方式 程序 作業系統對執行程式的一種抽象,乙個系統上,多個程序都好像獨佔硬體...

深入理解計算機系統

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