2012年11月16日 星期五

程式設計師的自我修養 - 筆記

所謂同步,即指在一個thread存取資料未結束的時候,其他thread不得存取同一個資料

mutex 與 binary semaphore 的不同點:
mutex 的 acqurie 和 release 需要同一個 thread 執行
也就是 解鈴還需繫鈴人
但binary semaphore 可以由不同的 threads 執行

編譯過程一般可分為六步:
掃描(詞法分析) scanner
語法分析 parser
語意分析 semantic analyer
原始碼最佳化 source code optimizer
目的碼產生 code generator
目的碼最佳化 code optimizer

目的檔的內容:
程式碼區段 code section
=> .text | .code
=> 存放編譯後的machine code

資料區段 data section
=> .data
=> 存放全域變數和區域靜態變數 [已初始化]

定數量未初始化區段 Block Started by Symbol section
=> .bss
=> 存放全域變數和區域靜態變數 [未初始化]
=> 在檔案中不佔據空間

唯讀區段
=> .rodata
=> 存放唯讀變數和字串常數

沒有留言:

張貼留言