深入理解計算機系統 計算機系統漫遊

2021-07-27 22:37:51 字數 1813 閱讀 6178

第一章 計算機系統漫遊

計算機系統是由硬體和系統軟體組成的。所有計算機系統都是由相似的硬體和軟體組成,它們又執行著相似的功能。

以hello程式為例。

1.1資訊就是位+上下文

hello程式的生命是從源程式(原始檔)開始的。源程式是程式設計師編寫的,hello.c。源程式是 0和1 的位元位,8個一組。ascii標準來表示文字字元。 這樣的檔案稱為文字檔案,所有其他的檔案稱為二進位制檔案。

乙個基本思想:系統中所有的資訊-----包括磁碟檔案、儲存器中的程式、儲存器中存放的使用者資料以及網路上傳送的資料,都是由一串位元表示的。區分的惟一方法是這些資料物件的上下文。

1.2 程式被其他程式翻譯成不用的格式

hello程式生命週期一開始時高階c程式,能夠被人讀懂。

編譯系統(預處理器,編譯器,彙編器,鏈結器)

預處理階段:

根據字元#開頭的命令(directives),修改原始的c程式。

編譯階段:

變成組合語言程式。

組合語言,為不同高階語言的不同編譯器提供了通用的輸出語言。

彙編階段:

將組合語言指令翻譯成可重定位(relocatable)目標程式格式,並儲存在helloc.c中。

鏈結printf函式。併入後。可執行檔案載入到儲存器後,由系統負責執行。

1.3 了解編譯系統如何工作是大有益處的

優化程式效能。

理解鏈結時出現的錯誤。

避免安全漏洞。

1.4 處理器讀並解釋儲存在儲存器中的指令

1.4.1 系統的硬體組成

匯流排:貫穿整個系統的是一組電子管道,稱為匯流排。

i/o裝置:是系統與外界的聯絡通道。

主存:臨時的儲存裝置

處理器:解釋(或執行)儲存在主存中指令的引擎。

1.4.2 執行hello程式

1.5 快取記憶體

1.6 形成層次結構的儲存裝置

1.7 作業系統管理硬體

作業系統兩個基本功能:防止硬體被失控的應用程式濫用。

1.7.1 程序

併發執行

上下文切換

系統儲存程序執行所需要的所有狀態資訊,稱為上下文。

1.7.2 執行緒

每個執行緒都執行在程序的上下文中,並共享同樣的**和全域性資料。

1.7.3 虛擬儲存器

抽象概念。

為每個程序提供乙個假象,好像程序都在獨佔使用主存。每個程序看到的儲存器都是一致的,稱為虛擬位址空間。

程式**和資料  堆

共享庫 棧

核心虛擬儲存器  核心是作業系統總是駐留在儲存器中的部分。

1.7.4 檔案

檔案是位元組序列。每個i/o裝置,包括磁碟、鍵盤、顯示器,甚至於網路,都可以看成是檔案。

1.8 利用網路系統和其他系統通訊

深入理解計算機系統 計算機系統漫遊

1 程式編譯階段 以hello world 程式為例,介紹計算機系統的基本組成結構和程式的編譯過程。include int main 該程式的執行經歷這樣乙個過程 源程式首先經預處理器處理 將 include中的內容插入到源程式中,得到另乙個程式hello.i 編譯階段 hello.i程式經過編譯,...

深入理解計算機系統 計算機系統漫遊

這裡以最簡單的例子 helloworld 為例,新建乙個 hello.c 的原始檔,新增如下 include stdio.h int main 使用 gcc o hello.c hello 指令可以將原始檔轉換為可執行程式,o 選項可以指定可執行程式的名稱,不指定該選項時預設為輸出乙個 a.out ...

1 深入理解計算機系統 計算機系統漫遊

1.資訊就是 位 上下文 由 ascii字元 乙個唯一的單位元組大小的整數值來表示每個字元 構成的檔案叫文字檔案,其他所有的檔案叫二進位制檔案 2.程式被其他程式翻譯成不同格式 gcc o hello hello.c 每條 c 語句必須被其他程式轉化為一些列的低階機器語言指令。然後這些指令按照一種稱...