第一章,計算機系統漫遊

2021-10-14 11:04:28 字數 1744 閱讀 9752

1.1 資訊就是位 + 上下文

大部分的現在計算機系統都使用 ascii 標準來表示文字字元,

hello.c程式是以位元組序列的方式儲存在檔案中的。

系統中所有的資訊--包括磁碟檔案、記憶體中的程式、記憶體中存放的使用者資料以及網路上傳送的資料,都是由一串位元表示的。

區分不同資料物件的唯一方法時我們讀到這些資料物件時的上下文。

gcc -o hello hello.c

hello.c(源程式)-->預處理器(cpp)-->hello.i(修改了的源程式文字)-->編譯器(cc1)-->hello.s(匯程式設計序文字)-->彙編器(as)-->hello.o(可重定位目標程式二進位制)-->聯結器(ld)-->hello(可執行目標程式二進位制)

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

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

1.4 處理器讀並解決儲存在記憶體中的指令

1.4.1 系統的硬體組成

1.匯流排

2. i/o裝置

1.5  快取記憶體至關重要

1.6 儲存裝置形成層次結構

l0(暫存器)>l1(l1快取記憶體sram)>l2(l2快取記憶體sram)>l3(l3快取記憶體sram)>l4(主存dram)>l5(本地二級儲存本地磁碟)>l6(遠端二級儲存,分布式檔案系統,web伺服器)

1.7 作業系統管理硬體

作業系統有兩個基本功能:1.防止硬體被失控的應用程式濫用;2.向應用程式提供簡單一致的機制來控制複雜而又通常大不相同的低階硬體裝置。

作業系統通過幾個基本的抽象概念:程序,虛擬記憶體和檔案來實現上面兩個功能。

1.7.1 程序

作業系統實現交錯執行的機制稱為上下文切換。

作業系統保持跟蹤程序執行所需的所有狀態資訊。這種狀態,也就是上下文。

從乙個程序到另乙個程序的轉換是由作業系統核心管理的。

核心是作業系統**常駐主存的部分。

實現程序這個抽象概念需要低階硬體和作業系統軟體之間的緊密合作。

1.7.2 執行緒

現在系統中,乙個程序實際由多個執行緒執行單元組成,每個執行緒都執行在程序的上下文中,並共享同樣的**和全域性資料。

1.7.3 虛擬記憶體

它為每個程序提供乙個假象,即每個程序都在獨佔地使用主存。每個程序看到的記憶體都是一致的,稱為虛擬位址空間。

程式**和資料

堆共享庫

棧核心虛擬記憶體

1.7.4 檔案

檔案就是位元組序列,僅此而已。

1.8 系統之間利用網路通訊

1.9 重要主題

1.9.1 amdahl定律

1.9.2 併發和並行

1.執行緒級併發

2.指令級並行

3.單指令、多資料並行

1.9.3 計算機系統中抽象的重要性

第一章 計算機系統漫遊

一開始翻開書,大量的新概念,密集的知識,這不是讓人頭疼的主要原因。這本書於我而言,不僅僅是提公升計算機基礎那麼簡單,更多的是,放下那顆浮躁的心,同時接受自己的平凡,放慢腳步,腳踏實地。一開始連進製轉換都整不明白的我,經過乙個多月的 心靈洗禮 漸漸對書本上的概念有了那麼一點點感覺,更重要的是,沒有那麼...

第一章 計算機系統漫遊

1.1 資訊就是位 上下文 include int main 大部分系統都是使用ascii碼表示文字字元,每個字元都是以單位元組的整數值表示,每個字是乙個整數值,如下圖所示為 的第一行。其他的所有檔案都稱為二進位制檔案。i nclu dedio.h 35105 11099 108117 100101...

第一章 計算機系統漫遊

1.1 資訊就是位 上下文 位的理解 源程式如hello.c,實際上是由值0和1組成的位,8個位組成一組,成為位元組,如00011000。每個位元組表示程式中的某些文字字元,每個位元組都有乙個整數值。如 n 它的整數值為10,即00001010。若檔案由有ascii字元構成,則稱之為文字檔案,所有其...