1. 計算機系統是由硬體和系統軟體組成的,它們共同工作來執行應用程式。
3. 大部分現代系統都使用asc2標準來表示文字字元,即用乙個唯一的單位元組大小的整數值來表示每個字元。
4. 乙個基本的思想:系統中所有的資訊——包括磁碟檔案、儲存器中的程式、儲存器中存放的使用者資料以及網路上傳送的資料,都是由一串位表示的。
5. 區分不同資料物件的唯一方法是我們獨到這些資料物件時的上下文。比如,在不同的上下文中,乙個同樣的位元組序列可能表示乙個整數、浮點數、字串或者機器指令。
6. 綜合2-5,可知:資訊就是位+上下文。
7. 為了在系統上執行程式,只有源**是不行的,所以每條語句都必須被其他程式轉化為一系列的低階機器語言指令。然後這些指令按照一種稱為可執行目標程式的格式打好包,並以二進位制磁碟檔案的形式存放起來。
8. 在類unix系統中,從原始檔到目標檔案的轉化是由編譯器驅動程式完成的:
$ gcc -o hello hello.c
gcc編譯器讀取原始檔hello.c,並把它翻譯成乙個可執行目標檔案hello。這個翻譯的過程可以分為四個階段完成:
源程式——>被修改的源程式——>匯程式設計序——>可重定位目標程式——>可執行目標程式
hello.c hello.i hello.s hello.o+printf.o hello
文字 文字 文字 二進位制 二進位制
第一階段(第乙個箭頭),預處理階段:修改源**,將標頭檔案**插入其中並且去掉注釋和無用的空格等,結果就得到另乙個c程式,通常以.i 作為副檔名。
第三階段,彙編階段:將*.s翻譯成機器語言指令,把這些指令打包成一種叫做 可重定位目標程式(relocatable object program) 的格式,並將結果儲存在目標檔案*.o 中。
第四階段,鏈結階段:鏈結器合併各種.o檔案,生成乙個可執行檔案。
9. 系統的硬體大約有:匯流排、i/o裝置、主存、處理器等
匯流排:貫穿整個系統的一組電子管道,它攜帶資訊位元組並負責在各部件間傳遞。
i/o裝置:輸入/輸出裝置是系統與外部世界的聯絡通道。例如:鍵盤、滑鼠、顯示器、磁碟等。每個i/o裝置都通過乙個控制器或介面卡與i/o匯流排相連。控制器和介面卡之間的區別主要在於他們的封裝方式。控制器置於裝置本身或主機板上,介面卡則是一塊插在主機板插槽上的卡。它們的功能都是在i/o匯流排和i/o裝置之間傳遞資訊。
主存:乙個臨時儲存裝置。從物理上來說,主存是由一組動態隨機訪問儲存器(dram)晶元組成的。從邏輯上說,儲存器是乙個線性的位元組陣列,每個位元組都有其唯一的位址(即陣列索引),這些位址是從零開始的。
處理器(cpu):是解釋(或執行)儲存在主存中指令的引擎。
10. 由於處理器與主存之間的讀取速度差異太大,系統設計者採用了更小更快的儲存裝置,即快取記憶體儲存器(快取記憶體),作為暫時的集結區域,用來存放處理器近期可能會需要的資訊。
11. 一直到快取記憶體存在的應用程式原可以利用快取記憶體將他們的程式效能提高乙個數量級。
12.作業系統管理硬體。
13. 作業系統有兩個基本功能:1)防止硬體被失控的應用程式濫用。2)向應用程式提供簡單一致的機制來控制複雜而又通常大相徑庭的低階硬體裝置。
14. 作業系統通過幾個基本的抽象概念(程序、虛擬儲存器和檔案)來實現這兩個功能。
程序:作業系統對正在執行的程式的一種抽象。在乙個系統上可以同時執行多個程序,而每個程序都好像在獨佔地使用硬體。併發執行,是說乙個程序的指令和另乙個程序的指令是交錯執行的。通常情況下,需要執行的程序數是多餘可以存行它們的cpu個數的。作業系統實現這種交錯執行的機制稱為上下文切換。作業系統保持跟蹤程序執行所需的所有狀態資訊。這種狀態,也就是上下文,它包括許多資訊,例如pc和暫存器檔案的當前值,以及主存的內容。
執行緒:乙個程序實際上可以由多個稱為執行緒的執行單元組成。每個執行緒都執行在程序的上下文中,並共享同樣的**和全域性資料。
虛擬儲存器:乙個抽象的概念,它為每個程序提供了乙個假象,即每個程序都在獨立地使用主存。在linux中,位址空間最上面的區域是為作業系統中的**和資料保留的,這對所有程序都一樣。位址空間的底部區域存放使用者程序定義的**和資料。
檔案:檔案就是位元組序列。每個裝置都可以視為檔案。它向應用程式提供了乙個統一的視角,開看代系統中可能含有的所有各式各樣的裝置。例如,處理磁碟檔案內容的應用程式設計師非常幸福,因為他們無需了解具體的磁碟技術。進一步說,同乙個程式可以在使用不同磁碟機數的不同系統上執行。
16. 併發是乙個通用的概念,指乙個同時具有多個活動的系統;並行指的是用併發使乙個系統執行得更快。
執行緒級併發(同時執行多個執行緒),指令級並行(處理器同時執行多條指令),單指令、多資料並行(simd並行)。
17.抽象的使用是電腦科學中最為重要的概念之一。
檔案是對i/o的抽象;
虛擬儲存器是對程式儲存器的抽象;
程序是對乙個正在執行的程式的抽象;
虛擬機器是對整個計算機的抽象;
18. 網路提供了計算機系統之間通訊的手段。從特殊的角度來看,網路就是一種i/o裝置。
宣告:本文為 iddmx 對《computer systems : a programmer's perspective》(second edition) chapter 1 | a tour of computer systems 的讀書筆記。內容大部分都是書中內容,也有一些個人理解,由於 iddmx 水平,並不能把書中所有精華全部提取,如果想要深入了解,請閱讀原書。
祝身體健康,工作順利。☺
計算機系統概述
計算機硬體發展 第一代計算機,電子管計算機,這代計算機只有機器語言即01 執行速度比較慢,第二代計算機,電晶體計算機,開始出現分時作業系統和一些高階語言 第三代計算機,中小規模計算機,開始有了作業系統雛形 計算機,超大規模積體電路,開始出現微型處理器 計算機軟體的發展。剛開始的計算機沒有什麼軟體,直...
計算機系統概述
cpu工作的基本週期中,首先從記憶體中提取指令,之後對其解碼以確定其型別和運算元,最後執行 重複取指 解碼並執行下一指令,直至所有程序執行完畢。進一步分析 cpu必須具有控制程式的順序執行 指令控制 產生完成每條指令所需要的控制命令 操作控制 對各種操作加上時間上的控制 時間控制 對資料進行算術運算...
計算機系統概述
電子計算機可以分成兩類 電子模擬計算機特點 以連續變化的電流或電壓來表示被運算量的電子計算機 電子數字計算機特點 按位運算,是不連續地跳動運算。數字計算機按照 速度 效率 執行的經濟效益又分為兩大類 通用計算機又有下面這幾種 計算機的效能指標主要是 cpu效能指標,儲存器效能指標和io的吞吐率 運算...