深入理解計算機系統 1 1 資訊就是位 上下文

2021-06-29 06:29:29 字數 707 閱讀 5931

我們的hello程式作為乙個被程式設計師用編輯器建立並儲存在hello.c檔案中的源程式開始它的生命。源程式就是乙個位序列,每乙個位代表0或者1,這些位序列每八位組成乙個位元組。在程式中,每乙個位元組代表乙個字元。

大部分現代系統用ascii標準呈現文字字元,ascii標準就是用乙個位元組大小的整型值代表乙個文字字元。例如figure 1.2顯示了hello.c的程式的ascii表示。

hello.c程式作為位元組序列被存在檔案中。每乙個位元組有乙個和字元一致的整型值。例如,第乙個位元組的整型值是35,這個值和字元「#」的值一致。第二個位元組的整型值是105,這個值和字元「i」的值一致。每一文字行被乙個不可見不可見的換行符「\n」結束,換行符的整型值是10.像hello.c一樣僅僅被ascii字元組成的檔案叫做文字檔案。所有其它的檔案都是二進位制檔案。

hello.c的呈現說明了乙個基本觀點:乙個系統中的所有資訊——包括硬碟檔案,儲存在記憶體中的程式和資料,以及在網路上傳送的資料——都是被一系列位表示的。我們通過上下文來區分不同的資料物件。例如,在不同的上下文中,相同的位元組序列可能表示乙個整數,浮點數字串,或者機器指令。

作為乙個程式設計師,我們之所以要理解數字的機器表示,是因為它們和真實的整數和實數不一樣。他們是有限的近視值,這些近似值可能表現得和我們希望的不一樣。這個基本觀點將會在第二章深入研究。

深入理解計算機系統

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

《深入理解計算機系統》

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

深入理解計算機系統

系統的硬體組成 快取記憶體 作業系統管理硬體 程序虛擬記憶體 檔案amdahl定律 併發和並行 0和1組成的位序列,又稱為位元序列,8個位被組織成一組,成為位元組。每個位元組表示程式中的某些文字字元。系統中的所有資訊 包括磁碟檔案 記憶體中的程式 記憶體中存放的的使用者資料以及網路上傳送的資料,都是...