我們的hello程式的生命是從乙個源程式(或者說原始檔)開始的,該源程式由程式設計師通過編輯器建立並儲存為文字檔案,檔名就是helloc.c。源程式實際上就是乙個由0和1組成的位(又稱為位元)序列,這些位被組織8個一組,稱為位元組。每個位元組都表示程式中某個文字字元。
大部分的現代系統都使用asc碼標準來表示文字字元,這種方式實際上就是用乙個唯一的位元組大小的整數值來表示每個字元。下圖給出hello.c程式的asc碼表示。
hello.c程式是以位元組序列的方式儲存在檔案中的。每個位元組都有乙個整數值,對應於某個字元。例如,第乙個位元組的整數值是35,它對應的就是字元「#」。第二個字元整數值為105,它對應的字元是「i」,以此類推。注意,每行文字都是以乙個看不見的換行符「\n」來結束的,它所對應的整數值為10。像hello.c這樣只由asc碼字元構成的檔案稱為文字檔案,所有其他檔案則稱為二進位制檔案。
hello.c的表示方法說明了乙個基本的思想:系統中所有的資訊——包括磁碟檔案、儲存器中的程式、儲存器中存放的使用者資料以及網路上傳送的資料,都是一串位元表示的。區分不同資料物件的唯一方法是我們讀到這些資料物件時的上下文。比如,在不同的上下文中,同樣的位元組序列可能表示乙個整數、浮點數、字串或者及其指令。
深入理解計算機系統 1 1 資訊就是位 上下文
我們的hello程式作為乙個被程式設計師用編輯器建立並儲存在hello.c檔案中的源程式開始它的生命。源程式就是乙個位序列,每乙個位代表0或者1,這些位序列每八位組成乙個位元組。在程式中,每乙個位元組代表乙個字元。大部分現代系統用ascii標準呈現文字字元,ascii標準就是用乙個位元組大小的整型值...
上下文儲存 中斷 深入理解CPU上下文切換
我們都知道cpu上下文切換,會增加系統負載。那什麼是cpu上下文,為什麼要切換?我們都知道,linux 是乙個多工作業系統,它支援遠大於 cpu 數量的任務同時執行。當然,這些任務實際上並不是真的在同時執行,而是因為系統在很短的時間內,將 cpu 輪流分配給它們,造成多工同時執行的錯覺。而在每個任務...
第一章 計算機漫遊1 1 資訊就是位 上下文
這個系列的文章是對於本人讀 深入理解計算機系統 一書的讀書筆記記錄下來,方便隨時檢視,如果其中有什麼錯誤的地方請各位園友指正,文章顯示格式不好的地方也請指正。1 計算機系統是由硬體和系統軟體組成的。2 計算機中的cpu位數指的是一次能處理的最大位數 如 32位計算機cpu乙個機器週期內 可以處理32...