預處理器(cpp)識別以#字元開頭的指令 修改源程式,比如#iclude告訴預處理器讀取系統標頭檔案stdio.h的內容並把它插入程式文字中就得到另乙個c程式,以 .i 為副檔名
編譯器(ccl)將hello.i翻譯成文字檔案hello.s,它包含乙個匯程式設計序,每條語句都以一種文字格式描述了一條低階的機器語言指令
接下來彙編器(as)將hello.s翻譯成機器語言指令,並將結果打包在乙個二進位制檔案 hello.o 中
將程式中需要用到的函式,例如printf,從printf.o包中用鏈結器(ld)合併到hello.o程式中得到乙個hello檔案,載入到記憶體中交給系統執行。
深入理解計算機系統
關鍵路徑是在迴圈的反覆執行中形成的資料相關鏈。迴圈展開是一種程式變換,通過增加每次迭代計算的元素的數量,減少迴圈的迭代次數。重新結合變換能夠減少計算中關鍵路徑上操作的數量,通過更好地利用功能單元的流水線能力得到更好的效能。浮點運算不保證是可結合的,通常迴圈展開和並行地累積在多個值中,是提高程式效能的...
《深入理解計算機系統》
知乎 深入理解計算機系統 這本書需要什麼水平能看懂?15 213 18 218 15 513 introduction to computer systems schedule fall 2016 鏈結失效則 cmu15 213的課程主頁,有ppt,還有錄影,主講人就是這本書的作者。備註 備註 詳細...
深入理解計算機系統
系統的硬體組成 快取記憶體 作業系統管理硬體 程序虛擬記憶體 檔案amdahl定律 併發和並行 0和1組成的位序列,又稱為位元序列,8個位被組織成一組,成為位元組。每個位元組表示程式中的某些文字字元。系統中的所有資訊 包括磁碟檔案 記憶體中的程式 記憶體中存放的的使用者資料以及網路上傳送的資料,都是...