深入理解計算機系統閱讀
14:50
1 計算系統中所有的資訊都是由位元來表示
計算系統中所有的資訊都是由位元來表示。區分這些資料物件的唯一方法是我們讀到這些資料的上下文。在不同的上下文中,同樣的位元組可以表示為字串,整數,機器指令。
2 hello.c 字元文字-->機器指令-->打包成exe可執行目標檔案
hello.i
優化被
修改的
文字 hello.s
彙編文字
鏈結 print.o
文字 預處理器
cpp
編譯器
ccl
鏈結器
ld hello
彙編器
as hello.o
可重定位
的目標程式
二進位制
可執行的目標程式
暫存器
l0 快取記憶體
l1 快取記憶體
l2 主儲存器dram
本地磁碟
分布式檔案系統
web伺服器
3層架構
應用 作業系統
處理器記憶體
io裝置
2作業系統有兩個基本作用
防止應用濫用硬體
向應用提供簡單一致的操作方法
作業系統通過抽象的概念來實現這些
如檔案是對io裝置的抽象表示
虛擬儲存器是對主存和磁碟i/o裝置的抽象表示
程序是對處理器主存i/o裝置的抽象表示
3什麼是程序
像 hello 這樣的程式在系統上執行時,系統會提供一種假象,就好像系統上只有
這個程式在執行,看上去只有這個程式在使用處理器、主存和 i/o 裝置。處理器看上去就像在不
間斷地一條接一條地執行程式中的指令,即該程式的**和資料是系統儲存器中唯一的物件。這些假象是通過程序的概念來實現的
4什麼上下文
cpu 看上去都像是在併發地執行多個程序,這是通過處理器在程序間切
換來實現的。作業系統實現這種交錯執行的機制稱為上下文切換
作業系統保持跟蹤程序執行所需的所有狀態資訊。這種狀態,也就是上下文
它包括許多資訊,例如 pc 和暫存器檔案的當前值,以及主存的內容。在任何乙個時刻,單處理器系統都只能執行乙個程序的**。
作業系統負責儲存並切換上下文
等hello.exe執行完畢作業系統切換回shell程序
5什麼是執行緒
程序是最小的資源單位
執行緒是最小的執行單位
乙個程序實際上可以由
多個稱為執行緒的執行單元組成
每個執行緒都執行在程序的上下文中,
並共享同樣的**和全域性資料
6虛擬儲存器
虛擬儲存器是乙個抽象概念,它為每個程序提供了乙個假象,即每個程序都在獨佔地使用主
存,每個程序看到的是一致的儲存器,稱為虛擬位址空間
虛擬位址空間
核心虛擬儲存器
使用者棧
執行時建立
共享庫的儲存器對映區
執行堆區
malloc建立資料
讀寫資料
唯讀**和資料
hello程式載入
深入理解計算機系統1
hello.c include int main 源程式 原始檔 實際上就是乙個由0和1組成的位 又成位元bit 序列,8個位被組組成一組,稱為位元組。每個位元組表示程式中的某些文字字元 大部分的現代計算機系統都使用ascii標準來表示文字字元 hello.c 預處理器 cpp hello.i 修改...
深入理解計算機系統
關鍵路徑是在迴圈的反覆執行中形成的資料相關鏈。迴圈展開是一種程式變換,通過增加每次迭代計算的元素的數量,減少迴圈的迭代次數。重新結合變換能夠減少計算中關鍵路徑上操作的數量,通過更好地利用功能單元的流水線能力得到更好的效能。浮點運算不保證是可結合的,通常迴圈展開和並行地累積在多個值中,是提高程式效能的...
《深入理解計算機系統》
知乎 深入理解計算機系統 這本書需要什麼水平能看懂?15 213 18 218 15 513 introduction to computer systems schedule fall 2016 鏈結失效則 cmu15 213的課程主頁,有ppt,還有錄影,主講人就是這本書的作者。備註 備註 詳細...