計算機程式設計基礎之深入理解計算機系統1
目錄概述——《深入理解計算機系統》
computer systems a programmers perspective 英文名
計算機系統漫遊
本章簡介
當系統上執行hello程式時,系統發生了什麼以及為什麼會這樣
資訊就是位+上下文
源程式(或者原始檔) hello.c,實際上是由值0和1組成的位(bit)序列,8個位被組織成一組,成為位元組。每個位元組表示程式中某個文字字元,大部分的現代系統都使用ascii標準來表示文字字元
程式被其他程式翻譯成不同的格式
編譯系統(compilation system)
預處理器、編譯器、彙編器和鏈結器
翻譯過程的四個階段
預處理階段:hello.c(源程式) -> hello.i(被修改的源程式) ps:兩者都是文字
編譯階段:hello.i -> hello.s (匯程式設計序 文字)
彙編階段:hello.s -> hello.o(可重定位目標程式 二進位制)
鏈結階段:hello.o -> hello(可執行目標程式 二進位制)
了解編譯系統如何工作是大有益處的
優化程式效能
理解鏈結時出現的錯誤
避免安全漏洞
處理器讀並解釋儲存在儲存器中的指令
外殼(shell)
外殼是乙個命令列直譯器
系統的硬體組成
匯流排貫穿整個系統的一組電子管道,通常匯流排被設計成傳送定長的位元組塊,也就是字(word)。字中的位元組數(即字長)是乙個基本的系統引數。有4個位元組(32位)和8個位元組(64位)
i/o裝置
通過乙個控制器或介面卡與i/o匯流排相連。控制器是置於i/o裝置本身的或者系統的主印製電路板(通常稱為主機板)上的晶元組,而介面卡則是一塊插在主機板插槽上的卡
主存處理器
載入、儲存、操作、跳轉
執行hello程式
快取記憶體至關重要
儲存裝置形成層次結構
作業系統管理硬體
程序執行緒
虛擬儲存器
程式**和資料
堆共享庫
棧核心虛擬儲存器
檔案系統之間利用網路通訊
重要主題
併發和並行
執行緒級併發
指令級並行
單指令、多資料並行
計算機系統中抽象的重要性
資訊的表示和處理
計算機深入理解 一
1.1 匯流排 匯流排是用來在計算機各個部件中傳遞資料的快遞員,這個快遞員攜帶的資料是有限制的通常是4個位元組32位,8個位元組64位。1.2 io 裝置 io 裝置是計算機與外界資料交換的快遞員。包括四個功能不一的快遞員 1 作為使用者輸入的鍵盤和滑鼠 2 作為使用者輸出的顯示器 3 用來長期儲存...
深入理解計算機筆記1
第一章 本書可以使你成為鳳毛麟角的權威程式設計師。1系統中的所有資訊都是由一串二進位制表示的,區分不同資料物件的唯一方法是我們讀到這些資料物件時的上下文。比如10000110,可以是乙個無符號數,也可以是乙個有符號數,還可以是乙個ascii碼,還可能是一條指令。2編譯系統包括了預處理器 編譯器 彙編...
深入理解計算機系統
關鍵路徑是在迴圈的反覆執行中形成的資料相關鏈。迴圈展開是一種程式變換,通過增加每次迭代計算的元素的數量,減少迴圈的迭代次數。重新結合變換能夠減少計算中關鍵路徑上操作的數量,通過更好地利用功能單元的流水線能力得到更好的效能。浮點運算不保證是可結合的,通常迴圈展開和並行地累積在多個值中,是提高程式效能的...