計算機程式設計基礎之深入理解計算機系統1

2022-03-28 08:23:38 字數 1233 閱讀 5460

計算機程式設計基礎之深入理解計算機系統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編譯系統包括了預處理器 編譯器 彙編...

深入理解計算機系統

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